From ecd0cda4edf4f8f90a7247d87e427f212f11d285 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 18 Sep 2024 13:47:07 +0800 Subject: [PATCH 001/619] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e243ece764..7eeb8deef8 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# Duke project template +# EventManagerCLI -This is a project template for a greenfield Java project. It's named after the Java mascot _Duke_. Given below are instructions on how to use it. +This is a project template for a greenfield Java project. It's named after the Java mascot EventManagerCLI. Given below are instructions on how to use it. ## Setting up in Intellij From 701e10e34748dbd3ade264d51b951283a02f22ee Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 1 Oct 2024 12:46:23 +0800 Subject: [PATCH 002/619] Add Ui class and greetUser method --- src/main/java/seedu/duke/ui/Ui.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/main/java/seedu/duke/ui/Ui.java diff --git a/src/main/java/seedu/duke/ui/Ui.java b/src/main/java/seedu/duke/ui/Ui.java new file mode 100644 index 0000000000..d967546616 --- /dev/null +++ b/src/main/java/seedu/duke/ui/Ui.java @@ -0,0 +1,13 @@ +package seedu.duke.ui; + +/** + * Represents the program's user interface + */ +public class Ui { + /** + * Greets user upon program startup + */ + public void greetUser() { + System.out.println("Welcome to EventManagerCLI."); + } +} From e4d5a6ddb9bd029f79be29557b36bb6a6c259e55 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 1 Oct 2024 19:16:36 +0800 Subject: [PATCH 003/619] Rewrite main function in Duke to use Ui class --- src/main/java/seedu/duke/Duke.java | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Duke.java index 5c74e68d59..fe35fe8b1e 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Duke.java @@ -1,21 +1,14 @@ package seedu.duke; -import java.util.Scanner; +import seedu.duke.ui.Ui; public class Duke { + private static final Ui ui = new Ui(); + /** - * Main entry-point for the java.duke.Duke application. + * Main entry-point for the EventManagerCLI application. */ public static void main(String[] args) { - String logo = " ____ _ \n" - + "| _ \\ _ _| | _____ \n" - + "| | | | | | | |/ / _ \\\n" - + "| |_| | |_| | < __/\n" - + "|____/ \\__,_|_|\\_\\___|\n"; - System.out.println("Hello from\n" + logo); - System.out.println("What is your name?"); - - Scanner in = new Scanner(System.in); - System.out.println("Hello " + in.nextLine()); + ui.greetUser(); } } From 8d80e0f6d940d42cebc7da9e28af6d7e0b5fb3d1 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 1 Oct 2024 19:20:08 +0800 Subject: [PATCH 004/619] Rename Duke class to Main --- src/main/java/seedu/duke/{Duke.java => Main.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/main/java/seedu/duke/{Duke.java => Main.java} (92%) diff --git a/src/main/java/seedu/duke/Duke.java b/src/main/java/seedu/duke/Main.java similarity index 92% rename from src/main/java/seedu/duke/Duke.java rename to src/main/java/seedu/duke/Main.java index fe35fe8b1e..d81e967bd7 100644 --- a/src/main/java/seedu/duke/Duke.java +++ b/src/main/java/seedu/duke/Main.java @@ -2,7 +2,7 @@ import seedu.duke.ui.Ui; -public class Duke { +public class Main { private static final Ui ui = new Ui(); /** From 0873f95114525516686dbf4903c8caf3a07fbe7e Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 1 Oct 2024 23:22:12 +0800 Subject: [PATCH 005/619] Update build.gradle to account for change in main class name --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index ea82051fab..4eabb40270 100644 --- a/build.gradle +++ b/build.gradle @@ -29,7 +29,7 @@ test { } application { - mainClass.set("seedu.duke.Duke") + mainClass.set("seedu.duke.Main") } shadowJar { From 6a69515986059edc217e6e14613890256b7122aa Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 1 Oct 2024 23:23:36 +0800 Subject: [PATCH 006/619] Update text redirection tests to follow changes in code behaviour --- text-ui-test/EXPECTED.TXT | 10 +--------- text-ui-test/input.txt | 2 +- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 892cb6cae7..282a9429be 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -1,9 +1 @@ -Hello from - ____ _ -| _ \ _ _| | _____ -| | | | | | | |/ / _ \ -| |_| | |_| | < __/ -|____/ \__,_|_|\_\___| - -What is your name? -Hello James Gosling +Welcome to EventManagerCLI. diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index f6ec2e9f95..8b13789179 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -1 +1 @@ -James Gosling \ No newline at end of file + From 261f7febc337dca8f4abc9cecaea3ac8a1015596 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Wed, 2 Oct 2024 13:15:34 +0800 Subject: [PATCH 007/619] update AboutUs --- docs/AboutUs.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 0f072953ea..3490c1b351 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -1,9 +1,6 @@ # About us -Display | Name | Github Profile | Portfolio ---------|:----:|:--------------:|:---------: -![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) +Display | Name | Github Profile | Portfolio +--------|:---------:|:--------------:|:---------: +![](https://via.placeholder.com/100.png?text=Photo) | FU Yixuan | [Github](https://github.com/MatchaRRR) | [Portfolio](docs/team/yixuan.md) + From 69e199cfce89f9927fe0dfb330245ee874294569 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 2 Oct 2024 13:15:53 +0800 Subject: [PATCH 008/619] Update personal details in AboutUs --- docs/AboutUs.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 0f072953ea..9f2a303d2d 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -1,9 +1,6 @@ # About us -Display | Name | Github Profile | Portfolio ---------|:----:|:--------------:|:---------: -![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) +Display | Name | Github Profile | Portfolio +--------|:----------:|:--------------:|:---------: +![](https://via.placeholder.com/100.png?text=Photo) | Jeremy Goh | [Github](https://github.com/jemehgoh) | [Portfolio](docs/team/johndoe.md) + From 1ce1df29e3546288f55ea5319120721c9a55a53e Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Wed, 2 Oct 2024 13:20:08 +0800 Subject: [PATCH 009/619] Update AboutUs with personal details --- docs/AboutUs.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 0f072953ea..d25d371c24 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -1,9 +1,5 @@ # About us -Display | Name | Github Profile | Portfolio ---------|:----:|:--------------:|:---------: -![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) +Display | Name | Github Profile | Portfolio +--------|:----------:|:--------------:|:---------: +![](https://via.placeholder.com/100.png?text=Photo) | Glenn Chew | [Github](https://github.com/glenn-chew) | [Portfolio](docs/team/johndoe.md) From 2f33efc2dd8258b10c9d90652eddaa2de91cbf97 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Wed, 2 Oct 2024 13:23:06 +0800 Subject: [PATCH 010/619] Update aboutus with my details --- docs/AboutUs.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 0f072953ea..ba807a323d 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -1,9 +1,6 @@ # About us -Display | Name | Github Profile | Portfolio ---------|:----:|:--------------:|:---------: -![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) +Display | Name | Github Profile | Portfolio +--------|:------------:|:-------------------------------:|:---------: +![](https://via.placeholder.com/100.png?text=Photo) | Lim Tze Kang | [LTK-1606](https://github.com/LTK-1606) | [Portfolio](docs/team/johndoe.md) + From 5c86d106dfa899d736b3633f5ca603f5718690a2 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Wed, 2 Oct 2024 13:27:13 +0800 Subject: [PATCH 011/619] Modify About Us --- docs/AboutUs.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 0f072953ea..da3991f350 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -1,9 +1,6 @@ # About us -Display | Name | Github Profile | Portfolio ---------|:----:|:--------------:|:---------: -![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) +Display | Name | Github Profile | Portfolio +--------|:----------------:|:--------------:|:---------: +![](https://via.placeholder.com/100.png?text=Photo) | Liang Kuan Hsien | https://github.com/KuanHsienn/tp.git | [Portfolio](docs/team/johndoe.md) + From 51355b37e8b67be1d5bd1910cbf7b1220024c7da Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 2 Oct 2024 13:44:15 +0800 Subject: [PATCH 012/619] Change main package name from seedu.duke to seedu.manager --- build.gradle | 2 +- src/main/java/seedu/{duke => manager}/Main.java | 2 +- src/main/java/seedu/{duke => manager}/ui/Ui.java | 2 +- src/test/java/seedu/{duke => manager}/DukeTest.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) rename src/main/java/seedu/{duke => manager}/Main.java (89%) rename src/main/java/seedu/{duke => manager}/ui/Ui.java (89%) rename src/test/java/seedu/{duke => manager}/DukeTest.java (89%) diff --git a/build.gradle b/build.gradle index 4eabb40270..f0dd47388b 100644 --- a/build.gradle +++ b/build.gradle @@ -29,7 +29,7 @@ test { } application { - mainClass.set("seedu.duke.Main") + mainClass.set("seedu.manager.Main") } shadowJar { diff --git a/src/main/java/seedu/duke/Main.java b/src/main/java/seedu/manager/Main.java similarity index 89% rename from src/main/java/seedu/duke/Main.java rename to src/main/java/seedu/manager/Main.java index d81e967bd7..4ad54a8b26 100644 --- a/src/main/java/seedu/duke/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -1,6 +1,6 @@ package seedu.duke; -import seedu.duke.ui.Ui; +import seedu.manager.ui.Ui; public class Main { private static final Ui ui = new Ui(); diff --git a/src/main/java/seedu/duke/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java similarity index 89% rename from src/main/java/seedu/duke/ui/Ui.java rename to src/main/java/seedu/manager/ui/Ui.java index d967546616..bbe06007f3 100644 --- a/src/main/java/seedu/duke/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -1,4 +1,4 @@ -package seedu.duke.ui; +package seedu.manager.ui; /** * Represents the program's user interface diff --git a/src/test/java/seedu/duke/DukeTest.java b/src/test/java/seedu/manager/DukeTest.java similarity index 89% rename from src/test/java/seedu/duke/DukeTest.java rename to src/test/java/seedu/manager/DukeTest.java index 2dda5fd651..7b9f930b03 100644 --- a/src/test/java/seedu/duke/DukeTest.java +++ b/src/test/java/seedu/manager/DukeTest.java @@ -1,4 +1,4 @@ -package seedu.duke; +package seedu.manager; import static org.junit.jupiter.api.Assertions.assertTrue; From 81a44d7ef95b749af871d7c5f2ba76be460f9153 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 2 Oct 2024 13:46:49 +0800 Subject: [PATCH 013/619] Update package at top of Main --- src/main/java/seedu/manager/Main.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 4ad54a8b26..a5dedf0bcf 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -1,4 +1,4 @@ -package seedu.duke; +package seedu.manager; import seedu.manager.ui.Ui; From 45155adf828b7793d3536d6e860ea5172c765800 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 2 Oct 2024 13:53:44 +0800 Subject: [PATCH 014/619] Extract welcome message in Ui to a Messages container class --- src/main/java/seedu/manager/common/Messages.java | 8 ++++++++ src/main/java/seedu/manager/ui/Ui.java | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 src/main/java/seedu/manager/common/Messages.java diff --git a/src/main/java/seedu/manager/common/Messages.java b/src/main/java/seedu/manager/common/Messages.java new file mode 100644 index 0000000000..caaaaf2954 --- /dev/null +++ b/src/main/java/seedu/manager/common/Messages.java @@ -0,0 +1,8 @@ +package seedu.manager.common; + +/** + * Represents a container class for messages for the user + */ +public class Messages { + public static final String WELCOME_MESSAGE = "Welcome to EventManagerCLI."; +} diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index bbe06007f3..c02dc8e909 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -1,13 +1,16 @@ package seedu.manager.ui; +import seedu.manager.common.Messages; + /** * Represents the program's user interface */ public class Ui { + /** * Greets user upon program startup */ public void greetUser() { - System.out.println("Welcome to EventManagerCLI."); + System.out.println(Messages.WELCOME_MESSAGE); } } From 9a481124a3ae3a0fdd8bc538ad6148aee35f446d Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 4 Oct 2024 15:11:38 +0800 Subject: [PATCH 015/619] Move welcome message back into Ui class --- src/main/java/seedu/manager/common/Messages.java | 8 -------- src/main/java/seedu/manager/ui/Ui.java | 6 ++---- 2 files changed, 2 insertions(+), 12 deletions(-) delete mode 100644 src/main/java/seedu/manager/common/Messages.java diff --git a/src/main/java/seedu/manager/common/Messages.java b/src/main/java/seedu/manager/common/Messages.java deleted file mode 100644 index caaaaf2954..0000000000 --- a/src/main/java/seedu/manager/common/Messages.java +++ /dev/null @@ -1,8 +0,0 @@ -package seedu.manager.common; - -/** - * Represents a container class for messages for the user - */ -public class Messages { - public static final String WELCOME_MESSAGE = "Welcome to EventManagerCLI."; -} diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index c02dc8e909..329cb6c6d9 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -1,16 +1,14 @@ package seedu.manager.ui; -import seedu.manager.common.Messages; - /** * Represents the program's user interface */ public class Ui { - + public static final String WELCOME_MESSAGE = "Welcome to EventManagerCLI."; /** * Greets user upon program startup */ public void greetUser() { - System.out.println(Messages.WELCOME_MESSAGE); + System.out.println(WELCOME_MESSAGE); } } From a160487536b2407ad1825447b845d327257f8917 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 4 Oct 2024 23:06:30 +0800 Subject: [PATCH 016/619] Move ui package out of seedu.manager package --- src/main/java/seedu/manager/Main.java | 2 +- src/main/java/{seedu/manager => }/ui/Ui.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/main/java/{seedu/manager => }/ui/Ui.java (91%) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index a5dedf0bcf..ad393076ea 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -1,6 +1,6 @@ package seedu.manager; -import seedu.manager.ui.Ui; +import ui.Ui; public class Main { private static final Ui ui = new Ui(); diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/ui/Ui.java similarity index 91% rename from src/main/java/seedu/manager/ui/Ui.java rename to src/main/java/ui/Ui.java index 329cb6c6d9..e98bd0383f 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/ui/Ui.java @@ -1,4 +1,4 @@ -package seedu.manager.ui; +package ui; /** * Represents the program's user interface From d0a3071120739e415dedc13e0f91693ad63a5c40 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 5 Oct 2024 10:22:35 +0800 Subject: [PATCH 017/619] Create new abstract Command class for executable commands --- src/main/java/command/Command.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 src/main/java/command/Command.java diff --git a/src/main/java/command/Command.java b/src/main/java/command/Command.java new file mode 100644 index 0000000000..5405f597d7 --- /dev/null +++ b/src/main/java/command/Command.java @@ -0,0 +1,12 @@ +package command; + +/** + * Represents an executable command + */ +public abstract class Command { + + /** + * Handles the command execution + */ + public abstract void execute(); +} From 2d76d0b4330d54369ce1fc4ecb0752ec326e5b0a Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 5 Oct 2024 10:31:32 +0800 Subject: [PATCH 018/619] Add a new EchoCommand class to echo user input --- src/main/java/command/EchoCommand.java | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/main/java/command/EchoCommand.java diff --git a/src/main/java/command/EchoCommand.java b/src/main/java/command/EchoCommand.java new file mode 100644 index 0000000000..c5ac281da0 --- /dev/null +++ b/src/main/java/command/EchoCommand.java @@ -0,0 +1,25 @@ +package command; + +/** + * Represents an executable echo command + */ +public class EchoCommand extends Command{ + private final String userInput; + + /** + * Constructs a new EchoCommand with the given user input + * + * @param userInput The user input + */ + public EchoCommand(String userInput) { + this.userInput = userInput; + } + + /** + * Executes echo command by printing user input + */ + @Override + public void execute() { + System.out.println(this.userInput); + } +} From d95f083f73772618221e0b73759ac8d0bbebe736 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 5 Oct 2024 10:54:31 +0800 Subject: [PATCH 019/619] Add a new Parser class to handle the parsing of user input --- src/main/java/parser/Parser.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/main/java/parser/Parser.java diff --git a/src/main/java/parser/Parser.java b/src/main/java/parser/Parser.java new file mode 100644 index 0000000000..6e175028c9 --- /dev/null +++ b/src/main/java/parser/Parser.java @@ -0,0 +1,19 @@ +package parser; + +import command.Command; +import command.EchoCommand; + +/** + * Represents the command parser for EventManagerCLI + */ +public class Parser { + + /** + * Returns an EchoCommand with a given user command string + * + * @param command The given command string from the user + */ + public Command parseCommand (String command){ + return new EchoCommand(command); + } +} From 1687c4020207c343320a83593cbe1510f696cf9c Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 5 Oct 2024 10:55:29 +0800 Subject: [PATCH 020/619] Add a unit test to check if the parser returns an EchoCommand --- src/test/java/parser/ParserTest.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/test/java/parser/ParserTest.java diff --git a/src/test/java/parser/ParserTest.java b/src/test/java/parser/ParserTest.java new file mode 100644 index 0000000000..1925a5d651 --- /dev/null +++ b/src/test/java/parser/ParserTest.java @@ -0,0 +1,18 @@ +package parser; + +import command.Command; +import command.EchoCommand; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +class ParserTest { + + @Test + public void parseCommand_nonEmptyString_echo() { + Parser parser = new Parser(); + Command command = parser.parseCommand("Hello world!"); + + assertTrue(command instanceof EchoCommand); + } +} From 1d107b32407bd335b5b2537733c29c0b192b35fd Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 5 Oct 2024 11:06:23 +0800 Subject: [PATCH 021/619] Move ui package back under seedu.manager --- src/main/java/seedu/manager/Main.java | 2 +- src/main/java/{ => seedu/manager}/ui/Ui.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/main/java/{ => seedu/manager}/ui/Ui.java (91%) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index ad393076ea..a5dedf0bcf 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -1,6 +1,6 @@ package seedu.manager; -import ui.Ui; +import seedu.manager.ui.Ui; public class Main { private static final Ui ui = new Ui(); diff --git a/src/main/java/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java similarity index 91% rename from src/main/java/ui/Ui.java rename to src/main/java/seedu/manager/ui/Ui.java index e98bd0383f..329cb6c6d9 100644 --- a/src/main/java/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -1,4 +1,4 @@ -package ui; +package seedu.manager.ui; /** * Represents the program's user interface From 932c0531bd79e95865b8e2452fdd6ddda534b890 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 5 Oct 2024 11:06:59 +0800 Subject: [PATCH 022/619] Make WELCOME_MESSAGE private --- src/main/java/seedu/manager/ui/Ui.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index 329cb6c6d9..7407cc0e9d 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -4,7 +4,8 @@ * Represents the program's user interface */ public class Ui { - public static final String WELCOME_MESSAGE = "Welcome to EventManagerCLI."; + private static final String WELCOME_MESSAGE = "Welcome to EventManagerCLI."; + /** * Greets user upon program startup */ From 084853fc22abe1c8e984c1cc2cda4dab34b04b5d Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 5 Oct 2024 11:22:26 +0800 Subject: [PATCH 023/619] Add a scanner to Ui to take in user input --- src/main/java/seedu/manager/ui/Ui.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index 7407cc0e9d..b25becd193 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -1,11 +1,19 @@ package seedu.manager.ui; +import java.util.Scanner; + /** * Represents the program's user interface */ public class Ui { private static final String WELCOME_MESSAGE = "Welcome to EventManagerCLI."; + private final Scanner userInput; + + public Ui() { + this.userInput = new Scanner(System.in); + } + /** * Greets user upon program startup */ From 6814eca594affe3b027512d8c0aca736763436d2 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 5 Oct 2024 13:24:16 +0800 Subject: [PATCH 024/619] Add getCommand method to Ui class to handle user input --- src/main/java/seedu/manager/Main.java | 1 + src/main/java/seedu/manager/ui/Ui.java | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index a5dedf0bcf..33cb910fd3 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -10,5 +10,6 @@ public class Main { */ public static void main(String[] args) { ui.greetUser(); + ui.getCommand(); } } diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index b25becd193..c728af1518 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -7,6 +7,7 @@ */ public class Ui { private static final String WELCOME_MESSAGE = "Welcome to EventManagerCLI."; + private static final String COMMAND_PROMPT_MESSAGE = "Enter a command: "; private final Scanner userInput; @@ -20,4 +21,13 @@ public Ui() { public void greetUser() { System.out.println(WELCOME_MESSAGE); } + + /** + * Gets input from the user, and prints that input back to the user + */ + public void getCommand() { + System.out.print(COMMAND_PROMPT_MESSAGE); + String rawInput = this.userInput.nextLine(); + System.out.println(rawInput); + } } From 601cea8d8df2c5d201a7a45817a264a6fef4921a Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 5 Oct 2024 13:28:54 +0800 Subject: [PATCH 025/619] Add a sayBye method to the Ui class --- src/main/java/seedu/manager/Main.java | 1 + src/main/java/seedu/manager/ui/Ui.java | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 33cb910fd3..cf8ae334d7 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -11,5 +11,6 @@ public class Main { public static void main(String[] args) { ui.greetUser(); ui.getCommand(); + ui.sayBye(); } } diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index c728af1518..a079a55af1 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -8,6 +8,7 @@ public class Ui { private static final String WELCOME_MESSAGE = "Welcome to EventManagerCLI."; private static final String COMMAND_PROMPT_MESSAGE = "Enter a command: "; + private static final String GOODBYE_MESSAGE = "Thank you for using EventManagerCLI. Goodbye!"; private final Scanner userInput; @@ -30,4 +31,11 @@ public void getCommand() { String rawInput = this.userInput.nextLine(); System.out.println(rawInput); } + + /** + * Prints a final message to the user before program shutdown + */ + public void sayBye() { + System.out.println(GOODBYE_MESSAGE); + } } From 8325bbccd463fce955e793bd7be1b7a7cf89b5f5 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 5 Oct 2024 13:33:46 +0800 Subject: [PATCH 026/619] Update text redirection tests to account for new Ui functionality --- text-ui-test/EXPECTED.TXT | 2 ++ text-ui-test/input.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 282a9429be..1e21feb24a 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -1 +1,3 @@ Welcome to EventManagerCLI. +Enter a command: hello world +Thank you for using EventManagerCLI. Goodbye! diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index 8b13789179..3b18e512db 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -1 +1 @@ - +hello world From 4fff6886bfbadde45310a36fa1cee4abbd28fecf Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 5 Oct 2024 13:58:55 +0800 Subject: [PATCH 027/619] Update user guide to account for new startup procedure --- docs/UserGuide.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index d6cf4c3b3a..43c1ce1af8 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -2,14 +2,20 @@ ## Introduction -{Give a product intro} +EventManager CLI is a CLI application that allows organisers of small-scale events to track +the participants and logistics of such events. ## Quick Start -{Give steps to get started quickly} - 1. Ensure that you have Java 17 or above installed. -1. Down the latest version of `Duke` from [here](http://link.to/duke). +2. Down the latest version of `EventManagerCLI` from [here](http://link.to/duke). +3. Open a new terminal in the folder that you put the JAR file in, and run the program with the +command ```java -jar EventManagerCLI.jar```. +The following message would be printed: +``` +Welcome to EventManagerCLI. +Enter a command: +``` ## Features From c187692a3bc400c419bf24638da208dfab710031 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 6 Oct 2024 15:01:44 +0800 Subject: [PATCH 028/619] Move command and parser packages under manager package --- src/main/java/{ => seedu/manager}/command/Command.java | 2 +- src/main/java/{ => seedu/manager}/command/EchoCommand.java | 2 +- src/main/java/{ => seedu/manager}/parser/Parser.java | 6 +++--- src/test/java/{ => seedu/manager}/parser/ParserTest.java | 7 ++++--- 4 files changed, 9 insertions(+), 8 deletions(-) rename src/main/java/{ => seedu/manager}/command/Command.java (84%) rename src/main/java/{ => seedu/manager}/command/EchoCommand.java (94%) rename src/main/java/{ => seedu/manager}/parser/Parser.java (75%) rename src/test/java/{ => seedu/manager}/parser/ParserTest.java (70%) diff --git a/src/main/java/command/Command.java b/src/main/java/seedu/manager/command/Command.java similarity index 84% rename from src/main/java/command/Command.java rename to src/main/java/seedu/manager/command/Command.java index 5405f597d7..531084755c 100644 --- a/src/main/java/command/Command.java +++ b/src/main/java/seedu/manager/command/Command.java @@ -1,4 +1,4 @@ -package command; +package seedu.manager.command; /** * Represents an executable command diff --git a/src/main/java/command/EchoCommand.java b/src/main/java/seedu/manager/command/EchoCommand.java similarity index 94% rename from src/main/java/command/EchoCommand.java rename to src/main/java/seedu/manager/command/EchoCommand.java index c5ac281da0..ccee451f6b 100644 --- a/src/main/java/command/EchoCommand.java +++ b/src/main/java/seedu/manager/command/EchoCommand.java @@ -1,4 +1,4 @@ -package command; +package seedu.manager.command; /** * Represents an executable echo command diff --git a/src/main/java/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java similarity index 75% rename from src/main/java/parser/Parser.java rename to src/main/java/seedu/manager/parser/Parser.java index 6e175028c9..4a37da55e9 100644 --- a/src/main/java/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -1,7 +1,7 @@ -package parser; +package seedu.manager.parser; -import command.Command; -import command.EchoCommand; +import seedu.manager.command.Command; +import seedu.manager.command.EchoCommand; /** * Represents the command parser for EventManagerCLI diff --git a/src/test/java/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java similarity index 70% rename from src/test/java/parser/ParserTest.java rename to src/test/java/seedu/manager/parser/ParserTest.java index 1925a5d651..8efa057775 100644 --- a/src/test/java/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -1,8 +1,9 @@ -package parser; +package seedu.manager.parser; -import command.Command; -import command.EchoCommand; +import seedu.manager.command.Command; +import seedu.manager.command.EchoCommand; import org.junit.jupiter.api.Test; +import seedu.manager.parser.Parser; import static org.junit.jupiter.api.Assertions.assertTrue; From bc4de9ae9b4e747974ffaaaaad878238649552cb Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 6 Oct 2024 15:11:09 +0800 Subject: [PATCH 029/619] Add a CommandOutput class to handle command output --- .../seedu/manager/command/CommandOutput.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/main/java/seedu/manager/command/CommandOutput.java diff --git a/src/main/java/seedu/manager/command/CommandOutput.java b/src/main/java/seedu/manager/command/CommandOutput.java new file mode 100644 index 0000000000..69b9969877 --- /dev/null +++ b/src/main/java/seedu/manager/command/CommandOutput.java @@ -0,0 +1,37 @@ +package seedu.manager.command; + +/** + * Represents the output of the executed command + */ +public class CommandOutput { + private final String message; + private final boolean canExit; + + /** + * Constructs a new CommandOutput with a given message and whether the program can be exited from + * + * @param message The given message + * @param canExit Whether the program can be exited from + */ + public CommandOutput(String message, boolean canExit) { + this.message = message; + this.canExit = canExit; + } + + /** + * Prints the message of the command output. + */ + public void printMessage() { + System.out.println(this.message); + } + + /** + * Returns true if the program can be exited from, + * returns false otherwise. + * + * @return Whether the program can be exited from + */ + public boolean ifCanExit() { + return canExit; + } +} From 02f91f5feffd797e00b53b66c5d94201db6132dc Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 6 Oct 2024 15:16:59 +0800 Subject: [PATCH 030/619] Remove redundant import from ParserTest --- src/test/java/seedu/manager/parser/ParserTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index 8efa057775..a5d0dced68 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -3,7 +3,6 @@ import seedu.manager.command.Command; import seedu.manager.command.EchoCommand; import org.junit.jupiter.api.Test; -import seedu.manager.parser.Parser; import static org.junit.jupiter.api.Assertions.assertTrue; From 86a78e2f4cc46d6f77e31d448146b7300ec5bcb0 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 6 Oct 2024 15:27:00 +0800 Subject: [PATCH 031/619] Update Ui to use Parser and Command to parse and execute commands --- src/main/java/seedu/manager/command/Command.java | 4 ++-- .../java/seedu/manager/command/EchoCommand.java | 6 +++--- src/main/java/seedu/manager/ui/Ui.java | 13 ++++++++++++- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/manager/command/Command.java b/src/main/java/seedu/manager/command/Command.java index 531084755c..528f1564ed 100644 --- a/src/main/java/seedu/manager/command/Command.java +++ b/src/main/java/seedu/manager/command/Command.java @@ -6,7 +6,7 @@ public abstract class Command { /** - * Handles the command execution + * Returns the output of the executable command */ - public abstract void execute(); + public abstract CommandOutput execute(); } diff --git a/src/main/java/seedu/manager/command/EchoCommand.java b/src/main/java/seedu/manager/command/EchoCommand.java index ccee451f6b..7176869e1b 100644 --- a/src/main/java/seedu/manager/command/EchoCommand.java +++ b/src/main/java/seedu/manager/command/EchoCommand.java @@ -16,10 +16,10 @@ public EchoCommand(String userInput) { } /** - * Executes echo command by printing user input + * Returns the command output, with the user input as the output message */ @Override - public void execute() { - System.out.println(this.userInput); + public CommandOutput execute() { + return new CommandOutput(this.userInput, false); } } diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index a079a55af1..14ea23a665 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -1,5 +1,9 @@ package seedu.manager.ui; +import seedu.manager.command.Command; +import seedu.manager.command.CommandOutput; +import seedu.manager.parser.Parser; + import java.util.Scanner; /** @@ -11,9 +15,14 @@ public class Ui { private static final String GOODBYE_MESSAGE = "Thank you for using EventManagerCLI. Goodbye!"; private final Scanner userInput; + private final Parser parser; + /** + * Constructs a new Ui + */ public Ui() { this.userInput = new Scanner(System.in); + this.parser = new Parser(); } /** @@ -29,7 +38,9 @@ public void greetUser() { public void getCommand() { System.out.print(COMMAND_PROMPT_MESSAGE); String rawInput = this.userInput.nextLine(); - System.out.println(rawInput); + Command command = parser.parseCommand(rawInput); + CommandOutput output = command.execute(); + output.printMessage(); } /** From fd55930eb0df6b8d348bcea76e79ac320cf52c5e Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 6 Oct 2024 16:03:20 +0800 Subject: [PATCH 032/619] Add ExitCommand class to handle program exit --- src/main/java/seedu/manager/command/ExitCommand.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 src/main/java/seedu/manager/command/ExitCommand.java diff --git a/src/main/java/seedu/manager/command/ExitCommand.java b/src/main/java/seedu/manager/command/ExitCommand.java new file mode 100644 index 0000000000..37f21d2447 --- /dev/null +++ b/src/main/java/seedu/manager/command/ExitCommand.java @@ -0,0 +1,12 @@ +package seedu.manager.command; + +/** + * + */ +public class ExitCommand extends Command { + public static final String COMMAND_WORD = "exit"; + + public CommandOutput execute() { + return new CommandOutput("Thank you for using EventManagerCLI. Goodbye!", true); + } +} From 2975988fe1a727e07d0cd0977c2b43c70355723e Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 6 Oct 2024 16:04:05 +0800 Subject: [PATCH 033/619] Change name of ifCanExit getter to follow coding standard --- src/main/java/seedu/manager/command/CommandOutput.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/command/CommandOutput.java b/src/main/java/seedu/manager/command/CommandOutput.java index 69b9969877..95d7213e6b 100644 --- a/src/main/java/seedu/manager/command/CommandOutput.java +++ b/src/main/java/seedu/manager/command/CommandOutput.java @@ -31,7 +31,7 @@ public void printMessage() { * * @return Whether the program can be exited from */ - public boolean ifCanExit() { + public boolean getCanExit() { return canExit; } } From 31cbb6692372947a6aa6380c7af77694ba3bed46 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 6 Oct 2024 16:04:25 +0800 Subject: [PATCH 034/619] Fix spacing in EchoCommand --- src/main/java/seedu/manager/command/EchoCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/command/EchoCommand.java b/src/main/java/seedu/manager/command/EchoCommand.java index 7176869e1b..d2f3498544 100644 --- a/src/main/java/seedu/manager/command/EchoCommand.java +++ b/src/main/java/seedu/manager/command/EchoCommand.java @@ -3,7 +3,7 @@ /** * Represents an executable echo command */ -public class EchoCommand extends Command{ +public class EchoCommand extends Command { private final String userInput; /** From b1d4e68a3008bd8ec7f3133d370f7dbf50794fbe Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 6 Oct 2024 16:04:53 +0800 Subject: [PATCH 035/619] Update Parser to handle exit command --- src/main/java/seedu/manager/parser/Parser.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 4a37da55e9..fe1f5d692b 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -2,6 +2,7 @@ import seedu.manager.command.Command; import seedu.manager.command.EchoCommand; +import seedu.manager.command.ExitCommand; /** * Represents the command parser for EventManagerCLI @@ -9,11 +10,20 @@ public class Parser { /** - * Returns an EchoCommand with a given user command string + * Returns a command based on the given user command string * * @param command The given command string from the user */ - public Command parseCommand (String command){ - return new EchoCommand(command); + public Command parseCommand(String command){ + String[] commandParts = command.split(" ", 2); + String commandWord = commandParts[0]; + + switch (commandWord) { + case ExitCommand.COMMAND_WORD: + return new ExitCommand(); + + default: + return new EchoCommand(command); + } } } From 1a724d2a878db5819951a049c1ecc977d3bddc18 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 6 Oct 2024 16:05:23 +0800 Subject: [PATCH 036/619] Update Ui and Main to handle exit command --- src/main/java/seedu/manager/Main.java | 1 - src/main/java/seedu/manager/ui/Ui.java | 22 ++++++++++------------ 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index cf8ae334d7..33cb910fd3 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -11,6 +11,5 @@ public class Main { public static void main(String[] args) { ui.greetUser(); ui.getCommand(); - ui.sayBye(); } } diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index 14ea23a665..62ac70aed6 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -36,17 +36,15 @@ public void greetUser() { * Gets input from the user, and prints that input back to the user */ public void getCommand() { - System.out.print(COMMAND_PROMPT_MESSAGE); - String rawInput = this.userInput.nextLine(); - Command command = parser.parseCommand(rawInput); - CommandOutput output = command.execute(); - output.printMessage(); - } - - /** - * Prints a final message to the user before program shutdown - */ - public void sayBye() { - System.out.println(GOODBYE_MESSAGE); + boolean isGettingCommands = true; + + while (isGettingCommands) { + System.out.print(COMMAND_PROMPT_MESSAGE); + String rawInput = this.userInput.nextLine(); + Command command = parser.parseCommand(rawInput); + CommandOutput output = command.execute(); + output.printMessage(); + isGettingCommands = !output.getCanExit(); + } } } From fe9dd663fc5f3f56f51b91ff0a8248296f36fb03 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 6 Oct 2024 16:06:12 +0800 Subject: [PATCH 037/619] Update text redirection tests to account for exit command --- text-ui-test/EXPECTED.TXT | 2 +- text-ui-test/input.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 1e21feb24a..d7531cfcea 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -1,3 +1,3 @@ Welcome to EventManagerCLI. Enter a command: hello world -Thank you for using EventManagerCLI. Goodbye! +Enter a command: Thank you for using EventManagerCLI. Goodbye! diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index 3b18e512db..1fc922a43a 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -1 +1,2 @@ hello world +exit From 31b76cdc908da7b6cf357cd0b5d513897ea2d020 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 6 Oct 2024 16:11:36 +0800 Subject: [PATCH 038/619] Change assert statement in ParserTest to assertInstanceOf --- src/test/java/seedu/manager/parser/ParserTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index a5d0dced68..1b53ec65b6 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -13,6 +13,7 @@ public void parseCommand_nonEmptyString_echo() { Parser parser = new Parser(); Command command = parser.parseCommand("Hello world!"); - assertTrue(command instanceof EchoCommand); + assertInstanceOf(EchoCommand.class, command); + } } } From 92199e9a6167b219a88e8fb776f5b203e81fb634 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 6 Oct 2024 16:11:49 +0800 Subject: [PATCH 039/619] Add unit test for exit command --- src/test/java/seedu/manager/parser/ParserTest.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index 1b53ec65b6..2471b56221 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -3,8 +3,9 @@ import seedu.manager.command.Command; import seedu.manager.command.EchoCommand; import org.junit.jupiter.api.Test; +import seedu.manager.command.ExitCommand; -import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.assertInstanceOf; class ParserTest { @@ -15,5 +16,12 @@ public void parseCommand_nonEmptyString_echo() { assertInstanceOf(EchoCommand.class, command); } + + @Test + public void parseCommand_exitWord_exit() { + Parser parser = new Parser(); + Command command = parser.parseCommand("exit"); + + assertInstanceOf(ExitCommand.class, command); } } From cb6db085a6a5dcf9dfa76b692edbb80777408446 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 6 Oct 2024 16:19:25 +0800 Subject: [PATCH 040/619] Remove unused GOODBYE_MESSAGE constant --- src/main/java/seedu/manager/ui/Ui.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index 62ac70aed6..be3d4f2ecb 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -12,7 +12,6 @@ public class Ui { private static final String WELCOME_MESSAGE = "Welcome to EventManagerCLI."; private static final String COMMAND_PROMPT_MESSAGE = "Enter a command: "; - private static final String GOODBYE_MESSAGE = "Thank you for using EventManagerCLI. Goodbye!"; private final Scanner userInput; private final Parser parser; From 0eb6c3c003b1d6606c3f1dabc553ef74cde5c5a5 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 7 Oct 2024 08:46:21 +0800 Subject: [PATCH 041/619] Extract out exit message and add Javadoc headers --- src/main/java/seedu/manager/command/ExitCommand.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/command/ExitCommand.java b/src/main/java/seedu/manager/command/ExitCommand.java index 37f21d2447..3b0c384d14 100644 --- a/src/main/java/seedu/manager/command/ExitCommand.java +++ b/src/main/java/seedu/manager/command/ExitCommand.java @@ -1,12 +1,18 @@ package seedu.manager.command; /** - * + * Represents an executable exit command */ public class ExitCommand extends Command { public static final String COMMAND_WORD = "exit"; + private static final String EXIT_MESSAGE = "Thank you for using EventManagerCLI. Goodbye!"; + /** + * Returns a command output with an exit message + * + * @return The command output with an exit message + */ public CommandOutput execute() { - return new CommandOutput("Thank you for using EventManagerCLI. Goodbye!", true); + return new CommandOutput(EXIT_MESSAGE, true); } } From 34ebd7bd9938a5d3c6462e9c1419c283196fdc8b Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 7 Oct 2024 08:53:44 +0800 Subject: [PATCH 042/619] Update user guide to account for exit command --- docs/UserGuide.md | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 43c1ce1af8..a9b21e76d6 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -21,19 +21,10 @@ Enter a command: {Give detailed description of each feature} -### Adding a todo: `todo` -Adds a new item to the list of todo items. +### Exiting the program: `exit` +Exits the program. -Format: `todo n/TODO_NAME d/DEADLINE` - -* The `DEADLINE` can be in a natural language format. -* The `TODO_NAME` cannot contain punctuation. - -Example of usage: - -`todo n/Write the rest of the User Guide d/next week` - -`todo n/Refactor the User Guide to remove passive voice d/13/04/2020` +Format: `exit` ## FAQ @@ -45,4 +36,4 @@ Example of usage: {Give a 'cheat sheet' of commands here} -* Add todo `todo n/TODO_NAME d/DEADLINE` +* Exit program `exit` From 44709ef56d363f9fa45c1628a0d12dffc4b71b55 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 7 Oct 2024 09:52:44 +0800 Subject: [PATCH 043/619] Rename getCommand method and update Javadoc header --- src/main/java/seedu/manager/Main.java | 2 +- src/main/java/seedu/manager/ui/Ui.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 33cb910fd3..1e3c9ca6b8 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -10,6 +10,6 @@ public class Main { */ public static void main(String[] args) { ui.greetUser(); - ui.getCommand(); + ui.getCommands(); } } diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index be3d4f2ecb..b50bb91ad9 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -32,9 +32,9 @@ public void greetUser() { } /** - * Gets input from the user, and prints that input back to the user + * Gets input from the user, and executes commands based on that input */ - public void getCommand() { + public void getCommands() { boolean isGettingCommands = true; while (isGettingCommands) { From 9c3fdcaf00b82842b722f82c608224ecfd13ca50 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 7 Oct 2024 20:37:38 +0800 Subject: [PATCH 044/619] Remove duplicate Command, Parser, EchoCommand and ParserTest classes --- src/main/java/command/Command.java | 12 ------------ src/main/java/command/EchoCommand.java | 25 ------------------------- src/main/java/parser/Parser.java | 19 ------------------- src/test/java/parser/ParserTest.java | 18 ------------------ 4 files changed, 74 deletions(-) delete mode 100644 src/main/java/command/Command.java delete mode 100644 src/main/java/command/EchoCommand.java delete mode 100644 src/main/java/parser/Parser.java delete mode 100644 src/test/java/parser/ParserTest.java diff --git a/src/main/java/command/Command.java b/src/main/java/command/Command.java deleted file mode 100644 index 5405f597d7..0000000000 --- a/src/main/java/command/Command.java +++ /dev/null @@ -1,12 +0,0 @@ -package command; - -/** - * Represents an executable command - */ -public abstract class Command { - - /** - * Handles the command execution - */ - public abstract void execute(); -} diff --git a/src/main/java/command/EchoCommand.java b/src/main/java/command/EchoCommand.java deleted file mode 100644 index c5ac281da0..0000000000 --- a/src/main/java/command/EchoCommand.java +++ /dev/null @@ -1,25 +0,0 @@ -package command; - -/** - * Represents an executable echo command - */ -public class EchoCommand extends Command{ - private final String userInput; - - /** - * Constructs a new EchoCommand with the given user input - * - * @param userInput The user input - */ - public EchoCommand(String userInput) { - this.userInput = userInput; - } - - /** - * Executes echo command by printing user input - */ - @Override - public void execute() { - System.out.println(this.userInput); - } -} diff --git a/src/main/java/parser/Parser.java b/src/main/java/parser/Parser.java deleted file mode 100644 index 6e175028c9..0000000000 --- a/src/main/java/parser/Parser.java +++ /dev/null @@ -1,19 +0,0 @@ -package parser; - -import command.Command; -import command.EchoCommand; - -/** - * Represents the command parser for EventManagerCLI - */ -public class Parser { - - /** - * Returns an EchoCommand with a given user command string - * - * @param command The given command string from the user - */ - public Command parseCommand (String command){ - return new EchoCommand(command); - } -} diff --git a/src/test/java/parser/ParserTest.java b/src/test/java/parser/ParserTest.java deleted file mode 100644 index 1925a5d651..0000000000 --- a/src/test/java/parser/ParserTest.java +++ /dev/null @@ -1,18 +0,0 @@ -package parser; - -import command.Command; -import command.EchoCommand; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertTrue; - -class ParserTest { - - @Test - public void parseCommand_nonEmptyString_echo() { - Parser parser = new Parser(); - Command command = parser.parseCommand("Hello world!"); - - assertTrue(command instanceof EchoCommand); - } -} From 13af35d67938bd083a78f55a8bf03c0388cf801a Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Tue, 8 Oct 2024 00:37:23 +0800 Subject: [PATCH 045/619] Implement an EventList class and an Event abstract class --- src/main/java/seedu/manager/Main.java | 2 + src/main/java/seedu/manager/event/Event.java | 36 ++++++++++++++++ .../java/seedu/manager/event/EventList.java | 42 +++++++++++++++++++ .../seedu/manager/event/LectureEvent.java | 8 ++++ 4 files changed, 88 insertions(+) create mode 100644 src/main/java/seedu/manager/event/Event.java create mode 100644 src/main/java/seedu/manager/event/EventList.java create mode 100644 src/main/java/seedu/manager/event/LectureEvent.java diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 1e3c9ca6b8..dbf2d6327d 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -1,9 +1,11 @@ package seedu.manager; +import seedu.manager.event.EventList; import seedu.manager.ui.Ui; public class Main { private static final Ui ui = new Ui(); + private static final EventList events = new EventList(); /** * Main entry-point for the EventManagerCLI application. diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java new file mode 100644 index 0000000000..8ff7f5550f --- /dev/null +++ b/src/main/java/seedu/manager/event/Event.java @@ -0,0 +1,36 @@ +package seedu.manager.event; + +public abstract class Event { + private final String eventName; + private String startTime; + private String endTime; + private String venue; + private String description; + public Event(String eventName, String startTime, String endTime, String venue) { + this.eventName = eventName; + this.startTime = startTime; + this.endTime = endTime; + this.venue = venue; + } + public String getEventName() { + return eventName; + } + public String getStartTime() { + return startTime; + } + public String getEndTime() { + return endTime; + } + public String getVenue() { + return venue; + } + public void setStartTime(String startTime) { + this.startTime = startTime; + } + public void setEndTime(String endTime) { + this.endTime = endTime; + } + public void setVenue(String venue) { + this.venue = venue; + } +} diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java new file mode 100644 index 0000000000..3f265abed6 --- /dev/null +++ b/src/main/java/seedu/manager/event/EventList.java @@ -0,0 +1,42 @@ +package seedu.manager.event; + +import java.util.ArrayList; + + +/** + * The EventList class manages a list of Event objects. + * It provides methods to manage an event list. + */ +public class EventList { + private final ArrayList eventList; + + /** + * Constructor that initializes EventList with a given list of event. + * + * @param eventList The initial list of tasks. + */ + public EventList(ArrayList eventList) { + this.eventList = eventList; + } + + /** + * Default constructor that initializes an empty event list. + */ + public EventList(){ + eventList = new ArrayList<>(); + } + + /** + * @return The list of events. + */ + public ArrayList getList() { + return eventList; + } + + /** + * @return The size of the event list. + */ + public int getListSize() { + return eventList.size(); + } +} diff --git a/src/main/java/seedu/manager/event/LectureEvent.java b/src/main/java/seedu/manager/event/LectureEvent.java new file mode 100644 index 0000000000..ab7f6ab6e7 --- /dev/null +++ b/src/main/java/seedu/manager/event/LectureEvent.java @@ -0,0 +1,8 @@ +package seedu.manager.event; + + +public class LectureEvent extends Event { + public LectureEvent(String eventName, String startTime, String endTime, String venue) { + super(eventName, startTime, endTime, venue); + } +} From 89656a608f5650d61cecc7537e57365abb20adcc Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Tue, 8 Oct 2024 02:26:20 +0800 Subject: [PATCH 046/619] Add MenuCommand class to display menu message --- .../seedu/manager/command/MenuCommand.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/main/java/seedu/manager/command/MenuCommand.java diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java new file mode 100644 index 0000000000..d450021b9c --- /dev/null +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -0,0 +1,26 @@ +package seedu.manager.command; + +/** + * Represents an executable menu command + */ +public class MenuCommand extends Command { + private static final String COMMAND_WORD = "menu"; + private static final String MENU_MESSAGE = "Here are the possible commands:\n\n" + + "add -e EVENT_NAME -st START_TIME -et END_TIME -v VENUE -d DESCRIPTION: " + + "Add an event to the event list.\n" + + "list: List events.\n" + + "remove -e EVENT_NAME: Remove an event from the event list.\n" + + "add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant an event.\n" + + "view -e EVENT_NAME: View the list of participants of an event.\n" + + "remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event. \n"; + + /** + * Returns a command output with the menu message + * + * @return The command output with the menu message + */ + @Override + public CommandOutput execute() { + return new CommandOutput(MENU_MESSAGE, false); + } +} \ No newline at end of file From b9a21f0b82cab5a8e6b991d84f261547efd84358 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Tue, 8 Oct 2024 02:51:38 +0800 Subject: [PATCH 047/619] Change COMMAND_WORD to public --- src/main/java/seedu/manager/command/MenuCommand.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index d450021b9c..64a3308fc0 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -4,7 +4,7 @@ * Represents an executable menu command */ public class MenuCommand extends Command { - private static final String COMMAND_WORD = "menu"; + public static final String COMMAND_WORD = "menu"; private static final String MENU_MESSAGE = "Here are the possible commands:\n\n" + "add -e EVENT_NAME -st START_TIME -et END_TIME -v VENUE -d DESCRIPTION: " + "Add an event to the event list.\n" @@ -23,4 +23,4 @@ public class MenuCommand extends Command { public CommandOutput execute() { return new CommandOutput(MENU_MESSAGE, false); } -} \ No newline at end of file +} From 5315720e30af5a918441ad1bc56d638c51c50fab Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Tue, 8 Oct 2024 03:11:01 +0800 Subject: [PATCH 048/619] Update menu message --- src/main/java/seedu/manager/command/MenuCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 64a3308fc0..c28cf95b25 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -12,7 +12,7 @@ public class MenuCommand extends Command { + "remove -e EVENT_NAME: Remove an event from the event list.\n" + "add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant an event.\n" + "view -e EVENT_NAME: View the list of participants of an event.\n" - + "remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event. \n"; + + "remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event.\n"; /** * Returns a command output with the menu message From 731bc39d25456cfa86c49323a8452a5f4636cf41 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Tue, 8 Oct 2024 03:11:49 +0800 Subject: [PATCH 049/619] Update Parser to handle menu command --- src/main/java/seedu/manager/parser/Parser.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index fe1f5d692b..8be9e631fa 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -3,6 +3,7 @@ import seedu.manager.command.Command; import seedu.manager.command.EchoCommand; import seedu.manager.command.ExitCommand; +import seedu.manager.command.MenuCommand; /** * Represents the command parser for EventManagerCLI @@ -21,6 +22,8 @@ public Command parseCommand(String command){ switch (commandWord) { case ExitCommand.COMMAND_WORD: return new ExitCommand(); + case MenuCommand.COMMAND_WORD: + return new MenuCommand(); default: return new EchoCommand(command); From fbba63741db13b338361142defb90b88f3ac3d54 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Tue, 8 Oct 2024 03:12:22 +0800 Subject: [PATCH 050/619] Add unit test for menu command --- src/test/java/seedu/manager/parser/ParserTest.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index 2471b56221..d8a4f5a7bc 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -4,6 +4,7 @@ import seedu.manager.command.EchoCommand; import org.junit.jupiter.api.Test; import seedu.manager.command.ExitCommand; +import seedu.manager.command.MenuCommand; import static org.junit.jupiter.api.Assertions.assertInstanceOf; @@ -24,4 +25,12 @@ public void parseCommand_exitWord_exit() { assertInstanceOf(ExitCommand.class, command); } + + @Test + public void parseCommand_menuWord_menu() { + Parser parser = new Parser(); + Command command = parser.parseCommand("menu"); + + assertInstanceOf(MenuCommand.class, command); + } } From 380f0cc744867af8b29136f1da24dbee95a0f861 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Tue, 8 Oct 2024 03:13:01 +0800 Subject: [PATCH 051/619] Update test input and expected output for menu command --- text-ui-test/EXPECTED.TXT | 9 +++++++++ text-ui-test/input.txt | 1 + 2 files changed, 10 insertions(+) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index d7531cfcea..400f9d63f8 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -1,3 +1,12 @@ Welcome to EventManagerCLI. Enter a command: hello world +Enter a command: Here are the possible commands: + +add -e EVENT_NAME -st START_TIME -et END_TIME -v VENUE -d DESCRIPTION: Add an event to the event list. +list: List events. +remove -e EVENT_NAME: Remove an event from the event list. +add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant an event. +view -e EVENT_NAME: View the list of participants of an event. +remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event. + Enter a command: Thank you for using EventManagerCLI. Goodbye! diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index 1fc922a43a..f6aab5a964 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -1,2 +1,3 @@ hello world +menu exit From 68775557244b9172b3b8366299da79d23321d2a0 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Tue, 8 Oct 2024 14:35:46 +0800 Subject: [PATCH 052/619] Update menu message and change to text block --- .../seedu/manager/command/MenuCommand.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 64a3308fc0..3010d5851c 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -5,14 +5,16 @@ */ public class MenuCommand extends Command { public static final String COMMAND_WORD = "menu"; - private static final String MENU_MESSAGE = "Here are the possible commands:\n\n" - + "add -e EVENT_NAME -st START_TIME -et END_TIME -v VENUE -d DESCRIPTION: " - + "Add an event to the event list.\n" - + "list: List events.\n" - + "remove -e EVENT_NAME: Remove an event from the event list.\n" - + "add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant an event.\n" - + "view -e EVENT_NAME: View the list of participants of an event.\n" - + "remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event. \n"; + private static final String MENU_MESSAGE = """ + Here are the possible commands: + + add -e EVENT_NAME: Add an event to the event list. + list: List events. + remove -e EVENT_NAME: Remove an event from the event list. + add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant an event. + view -e EVENT_NAME: View the list of participants of an event. + remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event. + """; /** * Returns a command output with the menu message From 427288dc8ff0afbf69cc459391c68f453a5abeb7 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Tue, 8 Oct 2024 14:48:59 +0800 Subject: [PATCH 053/619] Update expected test output for new menu message --- text-ui-test/EXPECTED.TXT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 400f9d63f8..5001973ebf 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -2,7 +2,7 @@ Welcome to EventManagerCLI. Enter a command: hello world Enter a command: Here are the possible commands: -add -e EVENT_NAME -st START_TIME -et END_TIME -v VENUE -d DESCRIPTION: Add an event to the event list. +add -e EVENT_NAME: Add an event to the event list. list: List events. remove -e EVENT_NAME: Remove an event from the event list. add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant an event. From b32fa6017a8e7059a1f3419c66f29db656e0e161 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Tue, 8 Oct 2024 15:00:13 +0800 Subject: [PATCH 054/619] modify the attribute of Event class --- src/main/java/seedu/manager/event/Event.java | 36 ++++++++------------ 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 8ff7f5550f..9888d43030 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -2,35 +2,27 @@ public abstract class Event { private final String eventName; - private String startTime; - private String endTime; - private String venue; - private String description; - public Event(String eventName, String startTime, String endTime, String venue) { + private String eventTime; + private String eventVenue; + public Event(String eventName, String eventTime, String eventVenue) { this.eventName = eventName; - this.startTime = startTime; - this.endTime = endTime; - this.venue = venue; + this.eventTime = eventTime; + this.eventVenue = eventVenue; } public String getEventName() { return eventName; } - public String getStartTime() { - return startTime; + public String getEventTime() { + return eventTime; } - public String getEndTime() { - return endTime; + public String getEventVenue() { + return eventVenue; } - public String getVenue() { - return venue; + public void setEventTime(String eventTime) { + this.eventTime = eventTime; } - public void setStartTime(String startTime) { - this.startTime = startTime; - } - public void setEndTime(String endTime) { - this.endTime = endTime; - } - public void setVenue(String venue) { - this.venue = venue; + public void setEventVenue(String eventVenue) { + this.eventVenue = eventVenue; } + } From 93d89a56f2fa2420d8e80f2f121381872e2d1868 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Tue, 8 Oct 2024 15:32:41 +0800 Subject: [PATCH 055/619] modify the subclass of Event class --- src/main/java/seedu/manager/event/LectureEvent.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/event/LectureEvent.java b/src/main/java/seedu/manager/event/LectureEvent.java index ab7f6ab6e7..a328211037 100644 --- a/src/main/java/seedu/manager/event/LectureEvent.java +++ b/src/main/java/seedu/manager/event/LectureEvent.java @@ -2,7 +2,7 @@ public class LectureEvent extends Event { - public LectureEvent(String eventName, String startTime, String endTime, String venue) { - super(eventName, startTime, endTime, venue); + public LectureEvent(String eventName, String eventTime, String eventVenue) { + super(eventName, eventTime, eventVenue); } } From f0717e7bfbac04f82bb425a0e6a17b5a97458af8 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Tue, 8 Oct 2024 17:47:23 +0800 Subject: [PATCH 056/619] delect the subclas of Event. Make Event not abstract. --- src/main/java/seedu/manager/event/Event.java | 3 +-- src/main/java/seedu/manager/event/LectureEvent.java | 8 -------- 2 files changed, 1 insertion(+), 10 deletions(-) delete mode 100644 src/main/java/seedu/manager/event/LectureEvent.java diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 9888d43030..85569c5e08 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -1,6 +1,6 @@ package seedu.manager.event; -public abstract class Event { +public class Event { private final String eventName; private String eventTime; private String eventVenue; @@ -24,5 +24,4 @@ public void setEventTime(String eventTime) { public void setEventVenue(String eventVenue) { this.eventVenue = eventVenue; } - } diff --git a/src/main/java/seedu/manager/event/LectureEvent.java b/src/main/java/seedu/manager/event/LectureEvent.java deleted file mode 100644 index a328211037..0000000000 --- a/src/main/java/seedu/manager/event/LectureEvent.java +++ /dev/null @@ -1,8 +0,0 @@ -package seedu.manager.event; - - -public class LectureEvent extends Event { - public LectureEvent(String eventName, String eventTime, String eventVenue) { - super(eventName, eventTime, eventVenue); - } -} From 2038c15190746bd39ec778f6be61cc00237c74ca Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Tue, 8 Oct 2024 21:01:43 +0800 Subject: [PATCH 057/619] add JavaDoc header comments --- src/main/java/seedu/manager/event/Event.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 85569c5e08..b1e6033356 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -1,5 +1,9 @@ package seedu.manager.event; +/** + * The Event class represents an event with a name, time, and venue. + * It provides methods to access and modify the time and venue of the event. + */ public class Event { private final String eventName; private String eventTime; From 15b16b6e7a26bffa1d057aa7e37c3a4218c2aae0 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Tue, 8 Oct 2024 21:05:41 +0800 Subject: [PATCH 058/619] add JavaDoc for methods --- src/main/java/seedu/manager/event/Event.java | 28 ++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index b1e6033356..7d123d6fb9 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -8,23 +8,51 @@ public class Event { private final String eventName; private String eventTime; private String eventVenue; + + /** + * Constructs an Event with the specified name, time, and venue. + * + * @param eventName the name of the event + * @param eventTime the time duration of the event + * @param eventVenue the venue of the event + */ public Event(String eventName, String eventTime, String eventVenue) { this.eventName = eventName; this.eventTime = eventTime; this.eventVenue = eventVenue; } + + /** + * @return the event name + */ public String getEventName() { return eventName; } + /** + * @return the event time + */ public String getEventTime() { return eventTime; } + /** + * @return the event venue + */ public String getEventVenue() { return eventVenue; } + /** + * Sets a new time for the event. + * + * @param eventTime the new event time + */ public void setEventTime(String eventTime) { this.eventTime = eventTime; } + /** + * Sets a new venue for the event. + * + * @param eventVenue the new event time + */ public void setEventVenue(String eventVenue) { this.eventVenue = eventVenue; } From b34d2aedf0f17cf618ea1c353e7784ac75977536 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Tue, 8 Oct 2024 23:05:00 +0800 Subject: [PATCH 059/619] Add support for the 'add' command to the parser --- .../seedu/manager/command/AddCommand.java | 21 +++++++++++++++++++ .../java/seedu/manager/parser/Parser.java | 7 +++---- 2 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 src/main/java/seedu/manager/command/AddCommand.java diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java new file mode 100644 index 0000000000..7804f1eddc --- /dev/null +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -0,0 +1,21 @@ +package seedu.manager.command; + +/** + * Represents an executable add command + */ +public class AddCommand extends Command { + public static final String COMMAND_WORD = "add"; + private static final String ADD_MESSAGE = "The following event has been added to the event list: %1$s"; + + /** + * Implement the adding command + * Returns a command output with a successful adding message + * + * @return The command output with a successful adding message + */ + @Override + public CommandOutput execute() { + + return new CommandOutput(ADD_MESSAGE, false); + } +} diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 8be9e631fa..aa8ff639c3 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -1,9 +1,6 @@ package seedu.manager.parser; -import seedu.manager.command.Command; -import seedu.manager.command.EchoCommand; -import seedu.manager.command.ExitCommand; -import seedu.manager.command.MenuCommand; +import seedu.manager.command.*; /** * Represents the command parser for EventManagerCLI @@ -20,6 +17,8 @@ public Command parseCommand(String command){ String commandWord = commandParts[0]; switch (commandWord) { + case AddCommand.COMMAND_WORD: + return new AddCommand(); case ExitCommand.COMMAND_WORD: return new ExitCommand(); case MenuCommand.COMMAND_WORD: From 5f0216a5484cdcf923265a8a27b9d9e1fae4f3d2 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Tue, 8 Oct 2024 23:12:58 +0800 Subject: [PATCH 060/619] modify the import approach to avoid error. --- src/main/java/seedu/manager/parser/Parser.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index aa8ff639c3..0754ac2e9c 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -1,6 +1,10 @@ package seedu.manager.parser; -import seedu.manager.command.*; +import seedu.manager.command.Command; +import seedu.manager.command.AddCommand; +import seedu.manager.command.ExitCommand; +import seedu.manager.command.MenuCommand; +import seedu.manager.command.EchoCommand; /** * Represents the command parser for EventManagerCLI From b8c3251d2bb29f7d753ca3e4393a2069852375ab Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Tue, 8 Oct 2024 23:17:57 +0800 Subject: [PATCH 061/619] delete the unexpected indention to aviod error --- src/main/java/seedu/manager/parser/Parser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 0754ac2e9c..0da1db621b 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -22,7 +22,7 @@ public Command parseCommand(String command){ switch (commandWord) { case AddCommand.COMMAND_WORD: - return new AddCommand(); + return new AddCommand(); case ExitCommand.COMMAND_WORD: return new ExitCommand(); case MenuCommand.COMMAND_WORD: From 57c2827c7e977bdab0ef3727abfd906b71cedba2 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Wed, 9 Oct 2024 12:37:23 +0800 Subject: [PATCH 062/619] Add support for the 'list' command to the parser --- .../java/seedu/manager/command/ListCommand.java | 15 +++++++++++++++ src/main/java/seedu/manager/parser/Parser.java | 4 ++++ 2 files changed, 19 insertions(+) create mode 100644 src/main/java/seedu/manager/command/ListCommand.java diff --git a/src/main/java/seedu/manager/command/ListCommand.java b/src/main/java/seedu/manager/command/ListCommand.java new file mode 100644 index 0000000000..003900001f --- /dev/null +++ b/src/main/java/seedu/manager/command/ListCommand.java @@ -0,0 +1,15 @@ +package seedu.manager.command; + +public class ListCommand extends Command { + public static final String COMMAND_WORD = "list"; + private static final String LIST_MESSAGE = "Here are your scheduled events:"; + + /** + * Returns a command output with a list message + * + * @return The command output with a list message + */ + public CommandOutput execute() { + return new CommandOutput(LIST_MESSAGE, false); + } +} diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 0da1db621b..2d5361c854 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -5,6 +5,8 @@ import seedu.manager.command.ExitCommand; import seedu.manager.command.MenuCommand; import seedu.manager.command.EchoCommand; +import seedu.manager.command.ListCommand; + /** * Represents the command parser for EventManagerCLI @@ -23,6 +25,8 @@ public Command parseCommand(String command){ switch (commandWord) { case AddCommand.COMMAND_WORD: return new AddCommand(); + case ListCommand.COMMAND_WORD: + return new ListCommand(); case ExitCommand.COMMAND_WORD: return new ExitCommand(); case MenuCommand.COMMAND_WORD: From 5cfc6bfcf2174f46ce32023b49700e576e6ee443 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Wed, 9 Oct 2024 21:04:23 +0800 Subject: [PATCH 063/619] Rebuild the structure based on the previous one --- src/main/java/seedu/manager/Main.java | 16 ++++++++++++- .../seedu/manager/command/AddCommand.java | 1 - .../java/seedu/manager/command/Command.java | 7 ++++++ .../seedu/manager/command/CommandOutput.java | 8 ++++--- .../seedu/manager/command/MenuCommand.java | 5 ++-- src/main/java/seedu/manager/ui/Ui.java | 24 +++++++++---------- 6 files changed, 40 insertions(+), 21 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index dbf2d6327d..0028402e19 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -1,6 +1,9 @@ package seedu.manager; +import seedu.manager.command.Command; +import seedu.manager.command.CommandOutput; import seedu.manager.event.EventList; +import seedu.manager.parser.Parser; import seedu.manager.ui.Ui; public class Main { @@ -12,6 +15,17 @@ public class Main { */ public static void main(String[] args) { ui.greetUser(); - ui.getCommands(); + Command command; + boolean isGettingCommands = true; + while(isGettingCommands){ + String userCommandText = ui.getCommands(); + command = new Parser().parseCommand(userCommandText); + command.setData(events); + CommandOutput output = command.execute(); + ui.showOutputToUser(output); + + isGettingCommands = !output.getCanExit(); + } + System.exit(0); } } diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index 7804f1eddc..f1c1cc5f56 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -15,7 +15,6 @@ public class AddCommand extends Command { */ @Override public CommandOutput execute() { - return new CommandOutput(ADD_MESSAGE, false); } } diff --git a/src/main/java/seedu/manager/command/Command.java b/src/main/java/seedu/manager/command/Command.java index 528f1564ed..ff043be18c 100644 --- a/src/main/java/seedu/manager/command/Command.java +++ b/src/main/java/seedu/manager/command/Command.java @@ -1,9 +1,16 @@ package seedu.manager.command; +import seedu.manager.event.EventList; + /** * Represents an executable command */ public abstract class Command { + protected EventList eventList; + + public void setData(EventList events) { + this.eventList = events; + } /** * Returns the output of the executable command diff --git a/src/main/java/seedu/manager/command/CommandOutput.java b/src/main/java/seedu/manager/command/CommandOutput.java index 95d7213e6b..b3db269614 100644 --- a/src/main/java/seedu/manager/command/CommandOutput.java +++ b/src/main/java/seedu/manager/command/CommandOutput.java @@ -19,10 +19,12 @@ public CommandOutput(String message, boolean canExit) { } /** - * Prints the message of the command output. + * Get the message attribute of CommandOutput + * + * @return the message of command output */ - public void printMessage() { - System.out.println(this.message); + public String getMessage() { + return message; } /** diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 3010d5851c..0bd21176f8 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -7,14 +7,13 @@ public class MenuCommand extends Command { public static final String COMMAND_WORD = "menu"; private static final String MENU_MESSAGE = """ Here are the possible commands: - + \s add -e EVENT_NAME: Add an event to the event list. list: List events. remove -e EVENT_NAME: Remove an event from the event list. add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant an event. view -e EVENT_NAME: View the list of participants of an event. - remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event. - """; + remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event.\s"""; /** * Returns a command output with the menu message diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index b50bb91ad9..84134c7b37 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -14,14 +14,12 @@ public class Ui { private static final String COMMAND_PROMPT_MESSAGE = "Enter a command: "; private final Scanner userInput; - private final Parser parser; /** * Constructs a new Ui */ public Ui() { this.userInput = new Scanner(System.in); - this.parser = new Parser(); } /** @@ -34,16 +32,16 @@ public void greetUser() { /** * Gets input from the user, and executes commands based on that input */ - public void getCommands() { - boolean isGettingCommands = true; - - while (isGettingCommands) { - System.out.print(COMMAND_PROMPT_MESSAGE); - String rawInput = this.userInput.nextLine(); - Command command = parser.parseCommand(rawInput); - CommandOutput output = command.execute(); - output.printMessage(); - isGettingCommands = !output.getCanExit(); - } + public String getCommands() { + System.out.print(COMMAND_PROMPT_MESSAGE); + return this.userInput.nextLine(); + } + + /** + * show the output of command to the users. + */ + public void showOutputToUser(CommandOutput output){ + System.out.println(output.getMessage()); + System.out.println(); } } From e999b8b0324a75f24e1a9563a8698d43e424e73f Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Wed, 9 Oct 2024 21:10:41 +0800 Subject: [PATCH 064/619] extract the method and add javaDoc --- src/main/java/seedu/manager/Main.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 0028402e19..b1f82ff65a 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -15,6 +15,15 @@ public class Main { */ public static void main(String[] args) { ui.greetUser(); + runCommandLoop(); + } + + /** + * Run command loop to get command from users + * Parse the command and execute it + * The loop ends when ExitCommand is triggered + */ + private static void runCommandLoop() { Command command; boolean isGettingCommands = true; while(isGettingCommands){ @@ -26,6 +35,5 @@ public static void main(String[] args) { isGettingCommands = !output.getCanExit(); } - System.exit(0); } } From b08c835e9efa210289c139afa5675fa16d566869 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Wed, 9 Oct 2024 21:16:32 +0800 Subject: [PATCH 065/619] remove the redundant import to avoid error. --- src/main/java/seedu/manager/ui/Ui.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index 84134c7b37..a1172912ec 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -1,8 +1,6 @@ package seedu.manager.ui; -import seedu.manager.command.Command; import seedu.manager.command.CommandOutput; -import seedu.manager.parser.Parser; import java.util.Scanner; From f44586a0e42899a973428bedc37725f723a015c4 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Wed, 9 Oct 2024 21:27:41 +0800 Subject: [PATCH 066/619] . --- src/main/java/seedu/manager/Main.java | 1 + src/main/java/seedu/manager/command/MenuCommand.java | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index b1f82ff65a..fb12d9cdea 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -16,6 +16,7 @@ public class Main { public static void main(String[] args) { ui.greetUser(); runCommandLoop(); + } /** diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 0bd21176f8..1c510f71c3 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -7,13 +7,14 @@ public class MenuCommand extends Command { public static final String COMMAND_WORD = "menu"; private static final String MENU_MESSAGE = """ Here are the possible commands: - \s + add -e EVENT_NAME: Add an event to the event list. list: List events. remove -e EVENT_NAME: Remove an event from the event list. add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant an event. view -e EVENT_NAME: View the list of participants of an event. - remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event.\s"""; + remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event. + """; /** * Returns a command output with the menu message From 3b588cb0af893b96d55ddd43ec957b90e51d7993 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Wed, 9 Oct 2024 21:44:41 +0800 Subject: [PATCH 067/619] delete the empty line --- src/main/java/seedu/manager/Main.java | 2 +- src/main/java/seedu/manager/ui/Ui.java | 1 - text-ui-test/runtest.sh | 1 + 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index fb12d9cdea..27c1ec511b 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -16,7 +16,7 @@ public class Main { public static void main(String[] args) { ui.greetUser(); runCommandLoop(); - + System.exit(0); } /** diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index a1172912ec..839b90925a 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -40,6 +40,5 @@ public String getCommands() { */ public void showOutputToUser(CommandOutput output){ System.out.println(output.getMessage()); - System.out.println(); } } diff --git a/text-ui-test/runtest.sh b/text-ui-test/runtest.sh index 1dcbd12021..f8177afc4d 100755 --- a/text-ui-test/runtest.sh +++ b/text-ui-test/runtest.sh @@ -13,6 +13,7 @@ java -jar $(find ../build/libs/ -mindepth 1 -print -quit) < input.txt > ACTUAL. cp EXPECTED.TXT EXPECTED-UNIX.TXT dos2unix EXPECTED-UNIX.TXT ACTUAL.TXT diff EXPECTED-UNIX.TXT ACTUAL.TXT + if [ $? -eq 0 ] then echo "Test passed!" From bdb2cc4a8c35095edf96ac32f0e8421c031799de Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Wed, 9 Oct 2024 22:24:28 +0800 Subject: [PATCH 068/619] add an empty line between each command input --- src/main/java/seedu/manager/command/MenuCommand.java | 3 +-- src/main/java/seedu/manager/ui/Ui.java | 1 + text-ui-test/EXPECTED.TXT | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 1c510f71c3..a7409ce763 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -13,8 +13,7 @@ public class MenuCommand extends Command { remove -e EVENT_NAME: Remove an event from the event list. add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant an event. view -e EVENT_NAME: View the list of participants of an event. - remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event. - """; + remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event."""; /** * Returns a command output with the menu message diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index 839b90925a..a1172912ec 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -40,5 +40,6 @@ public String getCommands() { */ public void showOutputToUser(CommandOutput output){ System.out.println(output.getMessage()); + System.out.println(); } } diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 5001973ebf..c02e2f7126 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -1,5 +1,6 @@ Welcome to EventManagerCLI. Enter a command: hello world + Enter a command: Here are the possible commands: add -e EVENT_NAME: Add an event to the event list. @@ -10,3 +11,4 @@ view -e EVENT_NAME: View the list of participants of an event. remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event. Enter a command: Thank you for using EventManagerCLI. Goodbye! + From 337a6ab5ccc6ed59e5456d46940fceb8d6c2e96f Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Thu, 10 Oct 2024 00:10:51 +0800 Subject: [PATCH 069/619] correct the detail errors, add a separator. --- src/main/java/seedu/manager/Main.java | 4 ++-- src/main/java/seedu/manager/ui/Ui.java | 5 +++-- text-ui-test/EXPECTED.TXT | 6 +++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 27c1ec511b..1cabfb86fe 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -27,8 +27,8 @@ public static void main(String[] args) { private static void runCommandLoop() { Command command; boolean isGettingCommands = true; - while(isGettingCommands){ - String userCommandText = ui.getCommands(); + while (isGettingCommands){ + String userCommandText = ui.getCommand(); command = new Parser().parseCommand(userCommandText); command.setData(events); CommandOutput output = command.execute(); diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index a1172912ec..eee700d76b 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -10,6 +10,7 @@ public class Ui { private static final String WELCOME_MESSAGE = "Welcome to EventManagerCLI."; private static final String COMMAND_PROMPT_MESSAGE = "Enter a command: "; + private static final String SEPARATOR = "------------------------"; private final Scanner userInput; @@ -30,7 +31,7 @@ public void greetUser() { /** * Gets input from the user, and executes commands based on that input */ - public String getCommands() { + public String getCommand() { System.out.print(COMMAND_PROMPT_MESSAGE); return this.userInput.nextLine(); } @@ -40,6 +41,6 @@ public String getCommands() { */ public void showOutputToUser(CommandOutput output){ System.out.println(output.getMessage()); - System.out.println(); + System.out.println(SEPARATOR); } } diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index c02e2f7126..eca6507a19 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -1,6 +1,6 @@ Welcome to EventManagerCLI. Enter a command: hello world - +------------------------ Enter a command: Here are the possible commands: add -e EVENT_NAME: Add an event to the event list. @@ -9,6 +9,6 @@ remove -e EVENT_NAME: Remove an event from the event list. add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant an event. view -e EVENT_NAME: View the list of participants of an event. remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event. - +------------------------ Enter a command: Thank you for using EventManagerCLI. Goodbye! - +------------------------ From 5461875955dabb4d2dd5ececd54712b03e09889a Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Thu, 10 Oct 2024 16:06:50 +0800 Subject: [PATCH 070/619] override the toString() --- src/main/java/seedu/manager/command/ListCommand.java | 1 + src/main/java/seedu/manager/event/Event.java | 10 ++++++++++ src/test/java/seedu/manager/parser/ParserTest.java | 8 ++++++++ 3 files changed, 19 insertions(+) diff --git a/src/main/java/seedu/manager/command/ListCommand.java b/src/main/java/seedu/manager/command/ListCommand.java index 003900001f..0492d10f10 100644 --- a/src/main/java/seedu/manager/command/ListCommand.java +++ b/src/main/java/seedu/manager/command/ListCommand.java @@ -10,6 +10,7 @@ public class ListCommand extends Command { * @return The command output with a list message */ public CommandOutput execute() { + return new CommandOutput(LIST_MESSAGE, false); } } diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 7d123d6fb9..d904a7f65a 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -56,4 +56,14 @@ public void setEventTime(String eventTime) { public void setEventVenue(String eventVenue) { this.eventVenue = eventVenue; } + + /** + * Returns a string representation of the event, indicating its name, time and venue. + * + * @return A string that shows the event's name, time and venue. + */ + @Override + public String toString(){ + return "Event name: " + eventName + "/ Event time: " + eventTime + "/ Event venue: " + eventVenue; + } } diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index d8a4f5a7bc..9827b63139 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -33,4 +33,12 @@ public void parseCommand_menuWord_menu() { assertInstanceOf(MenuCommand.class, command); } + + @Test + public void parseCommand_listWord_list() { + Parser parser = new Parser(); + Command command = parser.parseCommand("list"); + + assertInstanceOf(MenuCommand.class, command); + } } From 6708b215f3b08fd4810287fb5fa7df4a296a7269 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Thu, 10 Oct 2024 16:48:01 +0800 Subject: [PATCH 071/619] implement ListCommand --- src/main/java/seedu/manager/command/ListCommand.java | 8 ++++++-- src/main/java/seedu/manager/event/EventList.java | 8 ++++++++ src/test/java/seedu/manager/parser/ParserTest.java | 5 +++-- text-ui-test/EXPECTED.TXT | 3 +++ text-ui-test/input.txt | 1 + 5 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/manager/command/ListCommand.java b/src/main/java/seedu/manager/command/ListCommand.java index 0492d10f10..0f05ccf231 100644 --- a/src/main/java/seedu/manager/command/ListCommand.java +++ b/src/main/java/seedu/manager/command/ListCommand.java @@ -2,7 +2,7 @@ public class ListCommand extends Command { public static final String COMMAND_WORD = "list"; - private static final String LIST_MESSAGE = "Here are your scheduled events:"; + private static final String LIST_MESSAGE = "There are %1$d events in your list! Here are your scheduled events:"; /** * Returns a command output with a list message @@ -10,7 +10,11 @@ public class ListCommand extends Command { * @return The command output with a list message */ public CommandOutput execute() { + StringBuilder outputMessage = new StringBuilder(String.format(LIST_MESSAGE, eventList.getListSize()) + "\n"); + for (int i = 0; i < eventList.getListSize(); i++) { + outputMessage.append(i + 1).append(". ").append(eventList.getEvent(i).toString()).append("\n"); + } - return new CommandOutput(LIST_MESSAGE, false); + return new CommandOutput(outputMessage.toString(), false); } } diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 3f265abed6..3f55a97a18 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -39,4 +39,12 @@ public ArrayList getList() { public int getListSize() { return eventList.size(); } + + /** + * @param index The index of event in the list (0 based indexing) + * @return The specific event in the event list. + */ + public Event getEvent(int index) { + return eventList.get(index); + } } diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index 9827b63139..43ca7f7e57 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -1,10 +1,11 @@ package seedu.manager.parser; +import org.junit.jupiter.api.Test; import seedu.manager.command.Command; import seedu.manager.command.EchoCommand; -import org.junit.jupiter.api.Test; import seedu.manager.command.ExitCommand; import seedu.manager.command.MenuCommand; +import seedu.manager.command.ListCommand; import static org.junit.jupiter.api.Assertions.assertInstanceOf; @@ -39,6 +40,6 @@ public void parseCommand_listWord_list() { Parser parser = new Parser(); Command command = parser.parseCommand("list"); - assertInstanceOf(MenuCommand.class, command); + assertInstanceOf(ListCommand.class, command); } } diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index eca6507a19..786f0ac5f1 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -9,6 +9,9 @@ remove -e EVENT_NAME: Remove an event from the event list. add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant an event. view -e EVENT_NAME: View the list of participants of an event. remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event. +------------------------ +Enter a command: There are 0 events in your list! Here are your scheduled events: + ------------------------ Enter a command: Thank you for using EventManagerCLI. Goodbye! ------------------------ diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index f6aab5a964..2ad37a2780 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -1,3 +1,4 @@ hello world menu +list exit From dbe064864a3d0cd5edf7fda82258443ce522e57c Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Thu, 10 Oct 2024 23:29:18 +0800 Subject: [PATCH 072/619] Add AddCommand to add events to event list --- .../seedu/manager/command/AddCommand.java | 19 ++++++++++++++----- src/main/java/seedu/manager/event/Event.java | 10 +++++----- .../java/seedu/manager/event/EventList.java | 8 ++++++++ 3 files changed, 27 insertions(+), 10 deletions(-) diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index f1c1cc5f56..0dd8f01053 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -1,20 +1,29 @@ package seedu.manager.command; +import seedu.manager.event.EventList; + /** * Represents an executable add command */ public class AddCommand extends Command { public static final String COMMAND_WORD = "add"; - private static final String ADD_MESSAGE = "The following event has been added to the event list: %1$s"; + public static final String ADD_MESSAGE = "Event added successfully"; + protected String eventName; + protected EventList events; + + public AddCommand(String desc, EventList events) { + this.eventName = desc; + this.events = events; + } /** - * Implement the adding command - * Returns a command output with a successful adding message + * Returns a command output with an add message * - * @return The command output with a successful adding message + * @return The command output with an add message */ - @Override public CommandOutput execute() { + this.events.addEvent(this.eventName); + this.events.getList(); return new CommandOutput(ADD_MESSAGE, false); } } diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 7d123d6fb9..3a810b7f93 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -13,13 +13,13 @@ public class Event { * Constructs an Event with the specified name, time, and venue. * * @param eventName the name of the event - * @param eventTime the time duration of the event - * @param eventVenue the venue of the event + * param eventTime the time duration of the event + * param eventVenue the venue of the event */ - public Event(String eventName, String eventTime, String eventVenue) { + public Event(String eventName) { this.eventName = eventName; - this.eventTime = eventTime; - this.eventVenue = eventVenue; + //this.eventTime = eventTime; + //this.eventVenue = eventVenue; } /** diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 3f265abed6..367c80851f 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -30,6 +30,9 @@ public EventList(){ * @return The list of events. */ public ArrayList getList() { + for (Event event : eventList) { + System.out.println(event); + } return eventList; } @@ -39,4 +42,9 @@ public ArrayList getList() { public int getListSize() { return eventList.size(); } + + public void addEvent(String eventName) { + Event newEvent = new Event(eventName); + eventList.add(newEvent); + } } From 8074bfaef94949bf39e291cb840f5ea4e97a433c Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Thu, 10 Oct 2024 23:32:02 +0800 Subject: [PATCH 073/619] Update parseCommand to accept event list as a parameter --- src/main/java/seedu/manager/Main.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 1cabfb86fe..55a8a7eeed 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -8,7 +8,7 @@ public class Main { private static final Ui ui = new Ui(); - private static final EventList events = new EventList(); + private static EventList events = new EventList(); /** * Main entry-point for the EventManagerCLI application. @@ -29,8 +29,8 @@ private static void runCommandLoop() { boolean isGettingCommands = true; while (isGettingCommands){ String userCommandText = ui.getCommand(); - command = new Parser().parseCommand(userCommandText); - command.setData(events); + command = new Parser().parseCommand(userCommandText, events); + //command.setData(events); CommandOutput output = command.execute(); ui.showOutputToUser(output); From 410a98efc34f74386646074655b3fd9e5cc079ae Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Thu, 10 Oct 2024 23:37:11 +0800 Subject: [PATCH 074/619] Update parser to handle add command with only event name as description --- src/main/java/seedu/manager/command/ListCommand.java | 1 + src/main/java/seedu/manager/parser/Parser.java | 11 ++++++++--- src/test/java/seedu/manager/parser/ParserTest.java | 8 +++++--- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/manager/command/ListCommand.java b/src/main/java/seedu/manager/command/ListCommand.java index 003900001f..a8ac67d837 100644 --- a/src/main/java/seedu/manager/command/ListCommand.java +++ b/src/main/java/seedu/manager/command/ListCommand.java @@ -1,5 +1,6 @@ package seedu.manager.command; + public class ListCommand extends Command { public static final String COMMAND_WORD = "list"; private static final String LIST_MESSAGE = "Here are your scheduled events:"; diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 2d5361c854..78dca6ad90 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -6,6 +6,9 @@ import seedu.manager.command.MenuCommand; import seedu.manager.command.EchoCommand; import seedu.manager.command.ListCommand; +import seedu.manager.event.EventList; + +import java.util.Arrays; /** @@ -17,14 +20,16 @@ public class Parser { * Returns a command based on the given user command string * * @param command The given command string from the user + * @param events Event list of existing events */ - public Command parseCommand(String command){ - String[] commandParts = command.split(" ", 2); + public Command parseCommand(String command, EventList events){ + String[] commandParts = command.split(" "); String commandWord = commandParts[0]; + String description = String.join(" ", Arrays.copyOfRange(commandParts, 1, commandParts.length)).trim(); switch (commandWord) { case AddCommand.COMMAND_WORD: - return new AddCommand(); + return new AddCommand(description, events); case ListCommand.COMMAND_WORD: return new ListCommand(); case ExitCommand.COMMAND_WORD: diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index d8a4f5a7bc..e0d933aa1b 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -5,6 +5,8 @@ import org.junit.jupiter.api.Test; import seedu.manager.command.ExitCommand; import seedu.manager.command.MenuCommand; +import seedu.manager.event.EventList; + import static org.junit.jupiter.api.Assertions.assertInstanceOf; @@ -13,7 +15,7 @@ class ParserTest { @Test public void parseCommand_nonEmptyString_echo() { Parser parser = new Parser(); - Command command = parser.parseCommand("Hello world!"); + Command command = parser.parseCommand("Hello world!", new EventList()); assertInstanceOf(EchoCommand.class, command); } @@ -21,7 +23,7 @@ public void parseCommand_nonEmptyString_echo() { @Test public void parseCommand_exitWord_exit() { Parser parser = new Parser(); - Command command = parser.parseCommand("exit"); + Command command = parser.parseCommand("exit" , new EventList()); assertInstanceOf(ExitCommand.class, command); } @@ -29,7 +31,7 @@ public void parseCommand_exitWord_exit() { @Test public void parseCommand_menuWord_menu() { Parser parser = new Parser(); - Command command = parser.parseCommand("menu"); + Command command = parser.parseCommand("menu" , new EventList()); assertInstanceOf(MenuCommand.class, command); } From b8d19c419c54a3360caaa5f152faa105072b78d4 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Thu, 10 Oct 2024 23:56:52 +0800 Subject: [PATCH 075/619] Add RemoveCommand to remove events from event list --- .../seedu/manager/command/RemoveCommand.java | 26 +++++++++++++++++++ .../java/seedu/manager/event/EventList.java | 12 ++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 src/main/java/seedu/manager/command/RemoveCommand.java diff --git a/src/main/java/seedu/manager/command/RemoveCommand.java b/src/main/java/seedu/manager/command/RemoveCommand.java new file mode 100644 index 0000000000..8462885458 --- /dev/null +++ b/src/main/java/seedu/manager/command/RemoveCommand.java @@ -0,0 +1,26 @@ +package seedu.manager.command; + +import seedu.manager.event.EventList; + +public class RemoveCommand extends Command { + public static final String COMMAND_WORD = "remove"; + public static final String REMOVE_SUCCESS = "Event removed successfully"; + public static final String REMOVE_FAILURE = "Event not found"; + protected String eventName; + protected EventList events; + + public RemoveCommand(String desc, EventList events) { + this.eventName = desc; + this.events = events; + } + + public CommandOutput execute() { + boolean isRemoved = events.removeEvent(eventName); + this.events.getList(); + if (isRemoved) { + return new CommandOutput(REMOVE_SUCCESS, false); + } else { + return new CommandOutput(REMOVE_FAILURE, false); + } + } +} diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 367c80851f..41eb910c65 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -31,7 +31,7 @@ public EventList(){ */ public ArrayList getList() { for (Event event : eventList) { - System.out.println(event); + System.out.println(event.getEventName()); } return eventList; } @@ -47,4 +47,14 @@ public void addEvent(String eventName) { Event newEvent = new Event(eventName); eventList.add(newEvent); } + + public boolean removeEvent(String eventName) { + for (Event event : eventList) { + if (event.getEventName().equals(eventName)) { // Assuming Event has a getName() method + eventList.remove(event); + return true; // Event found and removed + } + } + return false; // Event not found + } } From 3947a3c7b3dc690c8dc2bf6e33f8870d3d04182d Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Thu, 10 Oct 2024 23:57:36 +0800 Subject: [PATCH 076/619] Update parser to handle remove command with only event name as description --- src/main/java/seedu/manager/parser/Parser.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 78dca6ad90..00e8329ea7 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -2,6 +2,7 @@ import seedu.manager.command.Command; import seedu.manager.command.AddCommand; +import seedu.manager.command.RemoveCommand; import seedu.manager.command.ExitCommand; import seedu.manager.command.MenuCommand; import seedu.manager.command.EchoCommand; @@ -30,6 +31,8 @@ public Command parseCommand(String command, EventList events){ switch (commandWord) { case AddCommand.COMMAND_WORD: return new AddCommand(description, events); + case RemoveCommand.COMMAND_WORD: + return new RemoveCommand(description, events); case ListCommand.COMMAND_WORD: return new ListCommand(); case ExitCommand.COMMAND_WORD: From 3e45f315858c2ed3b391db68225292289098bc11 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Fri, 11 Oct 2024 00:33:27 +0800 Subject: [PATCH 077/619] Add JavaDoc Comments --- .../java/seedu/manager/command/AddCommand.java | 13 ++++++++++--- .../seedu/manager/command/RemoveCommand.java | 16 ++++++++++++++++ src/main/java/seedu/manager/event/EventList.java | 13 ++++++++++++- 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index 0dd8f01053..0156411aa4 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -3,7 +3,7 @@ import seedu.manager.event.EventList; /** - * Represents an executable add command + * Represents an executable add command that adds an event to the EventList. */ public class AddCommand extends Command { public static final String COMMAND_WORD = "add"; @@ -11,15 +11,22 @@ public class AddCommand extends Command { protected String eventName; protected EventList events; + /** + * Constructs an AddCommand with the specified event name and EventList. + * + * @param desc The name of the event to be added. + * @param events The EventList to which the event will be added. + */ public AddCommand(String desc, EventList events) { this.eventName = desc; this.events = events; } /** - * Returns a command output with an add message + * Executes the add command to add the specified event to the EventList. * - * @return The command output with an add message + * @return A CommandOutput object containing the result of the add operation. + * The output includes a success message indicating the event was added. */ public CommandOutput execute() { this.events.addEvent(this.eventName); diff --git a/src/main/java/seedu/manager/command/RemoveCommand.java b/src/main/java/seedu/manager/command/RemoveCommand.java index 8462885458..831fca5fd3 100644 --- a/src/main/java/seedu/manager/command/RemoveCommand.java +++ b/src/main/java/seedu/manager/command/RemoveCommand.java @@ -2,6 +2,9 @@ import seedu.manager.event.EventList; +/** + * Represents a command to remove an event from the EventList. + */ public class RemoveCommand extends Command { public static final String COMMAND_WORD = "remove"; public static final String REMOVE_SUCCESS = "Event removed successfully"; @@ -9,11 +12,24 @@ public class RemoveCommand extends Command { protected String eventName; protected EventList events; + /** + * Constructs a RemoveCommand with the specified event name and EventList. + * + * @param desc The name of the event to be removed. + * @param events The EventList from which the event will be removed. + */ public RemoveCommand(String desc, EventList events) { this.eventName = desc; this.events = events; } + /** + * Executes the removal of the specified event from the EventList. + * + * @return A CommandOutput object containing the result of the removal operation. + * If the event is successfully removed, the output will contain a success message; + * otherwise, it will contain a failure message. + */ public CommandOutput execute() { boolean isRemoved = events.removeEvent(eventName); this.events.getList(); diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 41eb910c65..88f70b72b5 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -43,14 +43,25 @@ public int getListSize() { return eventList.size(); } + /** + * Adds a new event to the event list. + * + * @param eventName The name of the event to be added. + */ public void addEvent(String eventName) { Event newEvent = new Event(eventName); eventList.add(newEvent); } + /** + * Removes an event from the event list by its name. + * + * @param eventName The name of the event to be removed. + * @return true if the event was found and removed; false otherwise. + */ public boolean removeEvent(String eventName) { for (Event event : eventList) { - if (event.getEventName().equals(eventName)) { // Assuming Event has a getName() method + if (event.getEventName().equals(eventName)) { eventList.remove(event); return true; // Event found and removed } From ccb3decfe97a002e40d4c72483ae9d63b124b450 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Fri, 11 Oct 2024 00:42:49 +0800 Subject: [PATCH 078/619] Fix JavaDoc Comments Indentation --- src/main/java/seedu/manager/event/Event.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 3a810b7f93..49b2170352 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -10,16 +10,12 @@ public class Event { private String eventVenue; /** - * Constructs an Event with the specified name, time, and venue. + * Constructs an Event with the specified name. * - * @param eventName the name of the event - * param eventTime the time duration of the event - * param eventVenue the venue of the event + * @param eventName the name of the event */ public Event(String eventName) { this.eventName = eventName; - //this.eventTime = eventTime; - //this.eventVenue = eventVenue; } /** @@ -28,18 +24,21 @@ public Event(String eventName) { public String getEventName() { return eventName; } + /** * @return the event time */ public String getEventTime() { return eventTime; } + /** * @return the event venue */ public String getEventVenue() { return eventVenue; } + /** * Sets a new time for the event. * @@ -48,10 +47,11 @@ public String getEventVenue() { public void setEventTime(String eventTime) { this.eventTime = eventTime; } + /** * Sets a new venue for the event. * - * @param eventVenue the new event time + * @param eventVenue the new event venue */ public void setEventVenue(String eventVenue) { this.eventVenue = eventVenue; From 20c235688a0f3f8fe33851b0e5fe7125d6679c55 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Fri, 11 Oct 2024 00:47:00 +0800 Subject: [PATCH 079/619] Fixed JavaDoc Comments Indentation --- src/main/java/seedu/manager/event/Event.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 3a810b7f93..49b2170352 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -10,16 +10,12 @@ public class Event { private String eventVenue; /** - * Constructs an Event with the specified name, time, and venue. + * Constructs an Event with the specified name. * - * @param eventName the name of the event - * param eventTime the time duration of the event - * param eventVenue the venue of the event + * @param eventName the name of the event */ public Event(String eventName) { this.eventName = eventName; - //this.eventTime = eventTime; - //this.eventVenue = eventVenue; } /** @@ -28,18 +24,21 @@ public Event(String eventName) { public String getEventName() { return eventName; } + /** * @return the event time */ public String getEventTime() { return eventTime; } + /** * @return the event venue */ public String getEventVenue() { return eventVenue; } + /** * Sets a new time for the event. * @@ -48,10 +47,11 @@ public String getEventVenue() { public void setEventTime(String eventTime) { this.eventTime = eventTime; } + /** * Sets a new venue for the event. * - * @param eventVenue the new event time + * @param eventVenue the new event venue */ public void setEventVenue(String eventVenue) { this.eventVenue = eventVenue; From 5a805b6e237f88900001585353c24f77769aaf82 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Fri, 11 Oct 2024 01:22:19 +0800 Subject: [PATCH 080/619] Fixed JavaDoc Comments Indentation --- src/main/java/seedu/manager/event/Event.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 3a810b7f93..e4ef5b8a85 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -13,13 +13,9 @@ public class Event { * Constructs an Event with the specified name, time, and venue. * * @param eventName the name of the event - * param eventTime the time duration of the event - * param eventVenue the venue of the event */ public Event(String eventName) { this.eventName = eventName; - //this.eventTime = eventTime; - //this.eventVenue = eventVenue; } /** From dfba7e01fa1ee8141980184c0ee4e9000b67cfdb Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Fri, 11 Oct 2024 01:41:30 +0800 Subject: [PATCH 081/619] Modify the string format --- src/main/java/seedu/manager/command/ListCommand.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/command/ListCommand.java b/src/main/java/seedu/manager/command/ListCommand.java index 0f05ccf231..0eeecc5e61 100644 --- a/src/main/java/seedu/manager/command/ListCommand.java +++ b/src/main/java/seedu/manager/command/ListCommand.java @@ -2,7 +2,8 @@ public class ListCommand extends Command { public static final String COMMAND_WORD = "list"; - private static final String LIST_MESSAGE = "There are %1$d events in your list! Here are your scheduled events:"; + private static final String LIST_MESSAGE = "There are %1$d events in your list! " + + "Here are your scheduled events:"; /** * Returns a command output with a list message @@ -12,7 +13,7 @@ public class ListCommand extends Command { public CommandOutput execute() { StringBuilder outputMessage = new StringBuilder(String.format(LIST_MESSAGE, eventList.getListSize()) + "\n"); for (int i = 0; i < eventList.getListSize(); i++) { - outputMessage.append(i + 1).append(". ").append(eventList.getEvent(i).toString()).append("\n"); + outputMessage.append(String.format("%d. %s\n", i + 1, eventList.getEvent(i).toString())); } return new CommandOutput(outputMessage.toString(), false); From f8e3cab30a2871a5767b8370556e4a57a490934e Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Fri, 11 Oct 2024 01:56:33 +0800 Subject: [PATCH 082/619] Add JUnit code for ListCommand --- .../java/seedu/manager/event/EventList.java | 4 ++ .../manager/command/ListCommandTest.java | 37 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 src/test/java/seedu/manager/command/ListCommandTest.java diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 3f55a97a18..032c1f6811 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -47,4 +47,8 @@ public int getListSize() { public Event getEvent(int index) { return eventList.get(index); } + + public void addEvent(Event event) { + eventList.add(event); + } } diff --git a/src/test/java/seedu/manager/command/ListCommandTest.java b/src/test/java/seedu/manager/command/ListCommandTest.java new file mode 100644 index 0000000000..b24cd03d02 --- /dev/null +++ b/src/test/java/seedu/manager/command/ListCommandTest.java @@ -0,0 +1,37 @@ +package seedu.manager.command; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import seedu.manager.event.Event; +import seedu.manager.event.EventList; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; + +public class ListCommandTest { + + private ListCommand listCommand; + + @BeforeEach + public void setUp() { + EventList eventList = new EventList(); + + eventList.addEvent(new Event("Event 1", "2024-10-10 10:00", "Venue A")); + eventList.addEvent(new Event("Event 2", "2024-11-11 12:00", "Venue B")); + + listCommand = new ListCommand(); + listCommand.setData(eventList); + } + + @Test + public void testExecute() { + CommandOutput result = listCommand.execute(); + + String expectedMessage = "There are 2 events in your list! Here are your scheduled events:\n" + + "1. Event name: Event 1/ Event time: 2024-10-10 10:00/ Event venue: Venue A\n" + + "2. Event name: Event 2/ Event time: 2024-11-11 12:00/ Event venue: Venue B\n"; + + assertEquals(expectedMessage, result.getMessage()); + assertFalse(result.getCanExit()); + } +} From ed50a4b098bb6015dd9e70b3b389d44c619ecd27 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Fri, 11 Oct 2024 09:53:21 +0800 Subject: [PATCH 083/619] modify the function name --- src/test/java/seedu/manager/command/ListCommandTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/manager/command/ListCommandTest.java b/src/test/java/seedu/manager/command/ListCommandTest.java index b24cd03d02..330b83c898 100644 --- a/src/test/java/seedu/manager/command/ListCommandTest.java +++ b/src/test/java/seedu/manager/command/ListCommandTest.java @@ -24,7 +24,7 @@ public void setUp() { } @Test - public void testExecute() { + public void execute_twoEvents_success() { CommandOutput result = listCommand.execute(); String expectedMessage = "There are 2 events in your list! Here are your scheduled events:\n" From 3d56f0e218e0ef770d880cd22837c5a63c245d85 Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Fri, 11 Oct 2024 15:10:37 +0800 Subject: [PATCH 084/619] Remove getEvent method --- src/main/java/seedu/manager/event/EventList.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 85473a1747..b52b3eb674 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -46,13 +46,5 @@ public int getListSize() { public void addEvent(String eventName) { Event newEvent = new Event(eventName); eventList.add(newEvent); - - /** - * @param index The index of event in the list (0 based indexing) - * @return The specific event in the event list. - */ - public Event getEvent(int index) { - return eventList.get(index); - } } From effe9e1c98db11fad713c3a3ac5ab46f0b141443 Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Fri, 11 Oct 2024 15:15:10 +0800 Subject: [PATCH 085/619] Added missing } --- src/main/java/seedu/manager/event/EventList.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index b52b3eb674..f7569e2d49 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -46,5 +46,13 @@ public int getListSize() { public void addEvent(String eventName) { Event newEvent = new Event(eventName); eventList.add(newEvent); + } + /** + * @param index The index of event in the list (0 based indexing) + * @return The specific event in the event list. + */ + public Event getEvent(int index) { + return eventList.get(index); + } } From baba9b21628ec425cf452587843fd8081d6fe6cc Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Fri, 11 Oct 2024 15:28:37 +0800 Subject: [PATCH 086/619] Add Javadoc comments --- src/main/java/seedu/manager/event/EventList.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index f7569e2d49..56eea10a0a 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -43,10 +43,19 @@ public int getListSize() { return eventList.size(); } + /** + * Adds a new event to the event list. + * + * This method creates a new instance of the {@link Event} class with the specified + * event name and adds it to the {@code eventList}. + * + * @param eventName the name of the event to be added + */ public void addEvent(String eventName) { Event newEvent = new Event(eventName); eventList.add(newEvent); } + /** * @param index The index of event in the list (0 based indexing) * @return The specific event in the event list. From 4921b4cb4cd2fa64ff3b9865fa4bae592ebf8f6e Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Fri, 11 Oct 2024 15:33:06 +0800 Subject: [PATCH 087/619] Deconflict constructors --- src/main/java/seedu/manager/event/Event.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index cb51782e3f..b44dff3a37 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -18,6 +18,19 @@ public Event(String eventName) { this.eventName = eventName; } + /** + * Constructs an Event with the specified name, time, and venue. + * + * @param eventName the name of the event + * @param eventTime the time duration of the event + * @param eventVenue the venue of the event + */ + public Event(String eventName, String eventTime, String eventVenue) { + this.eventName = eventName; + this.eventTime = eventTime; + this.eventVenue = eventVenue; + } + /** * @return the event name */ From 5d0df0b9b99bd331f2c7cfcc6c61def4c2cb0a91 Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Fri, 11 Oct 2024 15:34:13 +0800 Subject: [PATCH 088/619] Update test for 'list' command --- src/test/java/seedu/manager/parser/ParserTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index a050e1d2cc..9a97c83949 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -39,7 +39,7 @@ public void parseCommand_menuWord_menu() { @Test public void parseCommand_listWord_list() { Parser parser = new Parser(); - Command command = parser.parseCommand("list"); + Command command = parser.parseCommand("list", new EventList()); assertInstanceOf(ListCommand.class, command); } From 1d03de467c84c56143ff845392758d7ef333a78f Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Fri, 11 Oct 2024 15:38:54 +0800 Subject: [PATCH 089/619] Method overload addEvent --- src/main/java/seedu/manager/event/EventList.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 56eea10a0a..e8d91b2279 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -55,6 +55,10 @@ public void addEvent(String eventName) { Event newEvent = new Event(eventName); eventList.add(newEvent); } + + public void addEvent(Event event) { + eventList.add(event); + } /** * @param index The index of event in the list (0 based indexing) From 3ff96d94a90de0555ba9151d9de6e617cd680807 Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Fri, 11 Oct 2024 15:43:42 +0800 Subject: [PATCH 090/619] Fix indentation --- src/main/java/seedu/manager/event/Event.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index b44dff3a37..8505fbf734 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -18,7 +18,7 @@ public Event(String eventName) { this.eventName = eventName; } - /** + /** * Constructs an Event with the specified name, time, and venue. * * @param eventName the name of the event From 8fd993ec1e318de47a43a9ccd81b3e0341a2e27b Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Fri, 11 Oct 2024 16:08:36 +0800 Subject: [PATCH 091/619] Update parseCommand --- src/main/java/seedu/manager/Main.java | 4 ++-- src/main/java/seedu/manager/command/AddCommand.java | 10 ++++------ src/main/java/seedu/manager/parser/Parser.java | 5 ++--- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 55a8a7eeed..08e432df4e 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -29,8 +29,8 @@ private static void runCommandLoop() { boolean isGettingCommands = true; while (isGettingCommands){ String userCommandText = ui.getCommand(); - command = new Parser().parseCommand(userCommandText, events); - //command.setData(events); + command = new Parser().parseCommand(userCommandText); + command.setData(events); CommandOutput output = command.execute(); ui.showOutputToUser(output); diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index 0dd8f01053..877fbb4a09 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -7,13 +7,11 @@ */ public class AddCommand extends Command { public static final String COMMAND_WORD = "add"; - public static final String ADD_MESSAGE = "Event added successfully"; + private static final String ADD_MESSAGE = "Event added successfully"; protected String eventName; - protected EventList events; - public AddCommand(String desc, EventList events) { + public AddCommand(String desc) { this.eventName = desc; - this.events = events; } /** @@ -22,8 +20,8 @@ public AddCommand(String desc, EventList events) { * @return The command output with an add message */ public CommandOutput execute() { - this.events.addEvent(this.eventName); - this.events.getList(); + this.eventList.addEvent(this.eventName); + //this.eventList.getList(); return new CommandOutput(ADD_MESSAGE, false); } } diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 78dca6ad90..1270fe63d8 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -20,16 +20,15 @@ public class Parser { * Returns a command based on the given user command string * * @param command The given command string from the user - * @param events Event list of existing events */ - public Command parseCommand(String command, EventList events){ + public Command parseCommand(String command){ String[] commandParts = command.split(" "); String commandWord = commandParts[0]; String description = String.join(" ", Arrays.copyOfRange(commandParts, 1, commandParts.length)).trim(); switch (commandWord) { case AddCommand.COMMAND_WORD: - return new AddCommand(description, events); + return new AddCommand(description); case ListCommand.COMMAND_WORD: return new ListCommand(); case ExitCommand.COMMAND_WORD: From 41a0a2dcb0c080a17027eacd4d26af92c2ef7241 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Fri, 11 Oct 2024 16:10:10 +0800 Subject: [PATCH 092/619] Add JUnit for AddCommand --- .../java/seedu/manager/parser/ParserTest.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index 9a97c83949..205e746b3d 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -15,7 +15,7 @@ class ParserTest { @Test public void parseCommand_nonEmptyString_echo() { Parser parser = new Parser(); - Command command = parser.parseCommand("Hello world!", new EventList()); + Command command = parser.parseCommand("Hello world!"); assertInstanceOf(EchoCommand.class, command); } @@ -23,7 +23,7 @@ public void parseCommand_nonEmptyString_echo() { @Test public void parseCommand_exitWord_exit() { Parser parser = new Parser(); - Command command = parser.parseCommand("exit" , new EventList()); + Command command = parser.parseCommand("exit"); assertInstanceOf(ExitCommand.class, command); } @@ -31,7 +31,7 @@ public void parseCommand_exitWord_exit() { @Test public void parseCommand_menuWord_menu() { Parser parser = new Parser(); - Command command = parser.parseCommand("menu" , new EventList()); + Command command = parser.parseCommand("menu"); assertInstanceOf(MenuCommand.class, command); } @@ -39,7 +39,15 @@ public void parseCommand_menuWord_menu() { @Test public void parseCommand_listWord_list() { Parser parser = new Parser(); - Command command = parser.parseCommand("list", new EventList()); + Command command = parser.parseCommand("list"); + + assertInstanceOf(ListCommand.class, command); + } + + @Test + public void parseCommand_addWord_add() { + Parser parser = new Parser(); + Command command = parser.parseCommand("add"); assertInstanceOf(ListCommand.class, command); } From 7b96adea73f5908f4b5073313d2a13b1601f1833 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Fri, 11 Oct 2024 16:12:46 +0800 Subject: [PATCH 093/619] Remove import statments --- src/main/java/seedu/manager/command/AddCommand.java | 2 -- src/main/java/seedu/manager/parser/Parser.java | 1 - src/test/java/seedu/manager/parser/ParserTest.java | 1 - 3 files changed, 4 deletions(-) diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index 877fbb4a09..08d1e28863 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -1,7 +1,5 @@ package seedu.manager.command; -import seedu.manager.event.EventList; - /** * Represents an executable add command */ diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 1270fe63d8..3c5eba48de 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -6,7 +6,6 @@ import seedu.manager.command.MenuCommand; import seedu.manager.command.EchoCommand; import seedu.manager.command.ListCommand; -import seedu.manager.event.EventList; import java.util.Arrays; diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index 205e746b3d..5a232db217 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -5,7 +5,6 @@ import seedu.manager.command.EchoCommand; import seedu.manager.command.ExitCommand; import seedu.manager.command.MenuCommand; -import seedu.manager.event.EventList; import seedu.manager.command.ListCommand; import static org.junit.jupiter.api.Assertions.assertInstanceOf; From 1402cdea93720c81c93e38653d453fac9d7e6e9a Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Fri, 11 Oct 2024 16:15:11 +0800 Subject: [PATCH 094/619] Modify test for AddCommand --- src/test/java/seedu/manager/parser/ParserTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index 5a232db217..eb86b1b072 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -6,6 +6,7 @@ import seedu.manager.command.ExitCommand; import seedu.manager.command.MenuCommand; import seedu.manager.command.ListCommand; +import seedu.manager.command.AddCommand; import static org.junit.jupiter.api.Assertions.assertInstanceOf; @@ -48,6 +49,6 @@ public void parseCommand_addWord_add() { Parser parser = new Parser(); Command command = parser.parseCommand("add"); - assertInstanceOf(ListCommand.class, command); + assertInstanceOf(AddCommand.class, command); } } From 28664ba062b83bf8d6c2083e6513928d09bafade Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Fri, 11 Oct 2024 17:17:34 +0800 Subject: [PATCH 095/619] Improve parsing for AddCommand --- .../seedu/manager/command/AddCommand.java | 10 +++-- .../java/seedu/manager/event/EventList.java | 4 +- .../java/seedu/manager/parser/Parser.java | 37 +++++++++++++++++-- 3 files changed, 43 insertions(+), 8 deletions(-) diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index 08d1e28863..ab87a9b364 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -7,9 +7,13 @@ public class AddCommand extends Command { public static final String COMMAND_WORD = "add"; private static final String ADD_MESSAGE = "Event added successfully"; protected String eventName; + protected String time; + protected String venue; - public AddCommand(String desc) { - this.eventName = desc; + public AddCommand(String eventName, String time, String venue) { + this.eventName = eventName; + this.time = time; + this.venue = venue; } /** @@ -18,7 +22,7 @@ public AddCommand(String desc) { * @return The command output with an add message */ public CommandOutput execute() { - this.eventList.addEvent(this.eventName); + this.eventList.addEvent(this.eventName, this.time, this.venue); //this.eventList.getList(); return new CommandOutput(ADD_MESSAGE, false); } diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 2b4a745e38..e9cfd62a44 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -41,8 +41,8 @@ public int getListSize() { * * @param eventName the name of the event to be added */ - public void addEvent(String eventName) { - Event newEvent = new Event(eventName); + public void addEvent(String eventName, String time, String venue) { + Event newEvent = new Event(eventName, time, venue); eventList.add(newEvent); } diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 3c5eba48de..8fe25df62f 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -8,7 +8,8 @@ import seedu.manager.command.ListCommand; import java.util.Arrays; - +import java.util.HashMap; +import java.util.Map; /** * Represents the command parser for EventManagerCLI @@ -23,11 +24,10 @@ public class Parser { public Command parseCommand(String command){ String[] commandParts = command.split(" "); String commandWord = commandParts[0]; - String description = String.join(" ", Arrays.copyOfRange(commandParts, 1, commandParts.length)).trim(); switch (commandWord) { case AddCommand.COMMAND_WORD: - return new AddCommand(description); + return parseAddCommand(commandParts); case ListCommand.COMMAND_WORD: return new ListCommand(); case ExitCommand.COMMAND_WORD: @@ -39,4 +39,35 @@ public Command parseCommand(String command){ return new EchoCommand(command); } } + + /** + * Parses the 'add' command and its arguments. + * + * @param commandParts The split command input from the user. + * @return The AddCommand object with parsed event details. + */ + public Command parseAddCommand(String[] commandParts) { + // Map to store the option-value pairs + Map parameters = new HashMap<>(); + String currentOption = null; + + // Parse the options and their values + for (int i = 1; i < commandParts.length; i++) { + String part = commandParts[i]; + if (part.startsWith("-")) { + currentOption = part; // Current part is an option (e.g., -e, -time, -venue) + } else if (currentOption != null) { + parameters.put(currentOption, part); // Store the value for the current option + currentOption = null; // Reset after assigning value + } + } + + // Extract event details from the parsed parameters + String eventName = parameters.get("-e"); + String time = parameters.get("-time"); + String venue = parameters.get("-venue"); + + // Create and return the AddCommand with parsed parameters + return new AddCommand(eventName, time, venue); + } } From 174975396669aa185522820c64918d56411df580 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Fri, 11 Oct 2024 17:18:56 +0800 Subject: [PATCH 096/619] Add JUnit test for RemoveCommand --- src/test/java/seedu/manager/parser/ParserTest.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index eb86b1b072..257e186e53 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -7,6 +7,7 @@ import seedu.manager.command.MenuCommand; import seedu.manager.command.ListCommand; import seedu.manager.command.AddCommand; +import seedu.manager.command.RemoveCommand; import static org.junit.jupiter.api.Assertions.assertInstanceOf; @@ -51,4 +52,12 @@ public void parseCommand_addWord_add() { assertInstanceOf(AddCommand.class, command); } + + @Test + public void parseCommand_removeWord_add() { + Parser parser = new Parser(); + Command command = parser.parseCommand("remove"); + + assertInstanceOf(RemoveCommand.class, command); + } } From d9e2f36dbaf7abf6ce2f4be6f0f15cb04b27356a Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Fri, 11 Oct 2024 17:28:24 +0800 Subject: [PATCH 097/619] Improve parsing for RemoveCommand --- .../seedu/manager/command/RemoveCommand.java | 10 +++---- .../java/seedu/manager/parser/Parser.java | 29 +++++++++++++++++++ 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/manager/command/RemoveCommand.java b/src/main/java/seedu/manager/command/RemoveCommand.java index 8462885458..d1b25de306 100644 --- a/src/main/java/seedu/manager/command/RemoveCommand.java +++ b/src/main/java/seedu/manager/command/RemoveCommand.java @@ -7,16 +7,14 @@ public class RemoveCommand extends Command { public static final String REMOVE_SUCCESS = "Event removed successfully"; public static final String REMOVE_FAILURE = "Event not found"; protected String eventName; - protected EventList events; - public RemoveCommand(String desc, EventList events) { - this.eventName = desc; - this.events = events; + + public RemoveCommand(String eventName) { + this.eventName = eventName; } public CommandOutput execute() { - boolean isRemoved = events.removeEvent(eventName); - this.events.getList(); + boolean isRemoved = this.eventList.removeEvent(eventName); if (isRemoved) { return new CommandOutput(REMOVE_SUCCESS, false); } else { diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 8fe25df62f..3b3f4d5701 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -2,6 +2,7 @@ import seedu.manager.command.Command; import seedu.manager.command.AddCommand; +import seedu.manager.command.RemoveCommand; import seedu.manager.command.ExitCommand; import seedu.manager.command.MenuCommand; import seedu.manager.command.EchoCommand; @@ -28,6 +29,8 @@ public Command parseCommand(String command){ switch (commandWord) { case AddCommand.COMMAND_WORD: return parseAddCommand(commandParts); + case RemoveCommand.COMMAND_WORD: + return parseRemoveCommand(commandParts); case ListCommand.COMMAND_WORD: return new ListCommand(); case ExitCommand.COMMAND_WORD: @@ -70,4 +73,30 @@ public Command parseAddCommand(String[] commandParts) { // Create and return the AddCommand with parsed parameters return new AddCommand(eventName, time, venue); } + + /** + * Parses the 'remove' command and its arguments. + * + * @param commandParts The split command input from the user. + * @return The RemoveCommand object with parsed event details. + */ + private Command parseRemoveCommand(String[] commandParts) { + Map parameters = new HashMap<>(); + String currentOption = null; + + for (int i = 1; i < commandParts.length; i++) { + String part = commandParts[i]; + if (part.startsWith("-")) { + currentOption = part; + } else if (currentOption != null) { + parameters.put(currentOption, part); + currentOption = null; + } + } + + // Extract event details from the parsed parameters + String eventName = parameters.get("-e"); // Must be present + + return new RemoveCommand(eventName); + } } From 0d748805393022177dc7cd344f765321219117e4 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Fri, 11 Oct 2024 17:29:18 +0800 Subject: [PATCH 098/619] Modify ListCommand JUnit test --- src/test/java/seedu/manager/command/ListCommandTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/seedu/manager/command/ListCommandTest.java b/src/test/java/seedu/manager/command/ListCommandTest.java index 330b83c898..34223d9cf6 100644 --- a/src/test/java/seedu/manager/command/ListCommandTest.java +++ b/src/test/java/seedu/manager/command/ListCommandTest.java @@ -16,8 +16,8 @@ public class ListCommandTest { public void setUp() { EventList eventList = new EventList(); - eventList.addEvent(new Event("Event 1", "2024-10-10 10:00", "Venue A")); - eventList.addEvent(new Event("Event 2", "2024-11-11 12:00", "Venue B")); + eventList.addEvent("Event 1", "2024-10-10 10:00", "Venue A"); + eventList.addEvent("Event 2", "2024-11-11 12:00", "Venue B"); listCommand = new ListCommand(); listCommand.setData(eventList); From 6b69de7182f55f8ca011cab437fea73af51909d0 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Fri, 11 Oct 2024 17:32:19 +0800 Subject: [PATCH 099/619] Remove import statements --- src/main/java/seedu/manager/command/RemoveCommand.java | 2 -- src/main/java/seedu/manager/parser/Parser.java | 1 - src/test/java/seedu/manager/command/ListCommandTest.java | 1 - 3 files changed, 4 deletions(-) diff --git a/src/main/java/seedu/manager/command/RemoveCommand.java b/src/main/java/seedu/manager/command/RemoveCommand.java index d1b25de306..66e8cf8c7f 100644 --- a/src/main/java/seedu/manager/command/RemoveCommand.java +++ b/src/main/java/seedu/manager/command/RemoveCommand.java @@ -1,7 +1,5 @@ package seedu.manager.command; -import seedu.manager.event.EventList; - public class RemoveCommand extends Command { public static final String COMMAND_WORD = "remove"; public static final String REMOVE_SUCCESS = "Event removed successfully"; diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 3b3f4d5701..3dde268d47 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -8,7 +8,6 @@ import seedu.manager.command.EchoCommand; import seedu.manager.command.ListCommand; -import java.util.Arrays; import java.util.HashMap; import java.util.Map; diff --git a/src/test/java/seedu/manager/command/ListCommandTest.java b/src/test/java/seedu/manager/command/ListCommandTest.java index 34223d9cf6..96617e25b0 100644 --- a/src/test/java/seedu/manager/command/ListCommandTest.java +++ b/src/test/java/seedu/manager/command/ListCommandTest.java @@ -2,7 +2,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import seedu.manager.event.Event; import seedu.manager.event.EventList; import static org.junit.jupiter.api.Assertions.assertEquals; From 64a54818aa7ecd8e4af73bb15e92268bf0c0e571 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Fri, 11 Oct 2024 18:13:06 +0800 Subject: [PATCH 100/619] Update gradle.yml --- .github/workflows/gradle.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 1ea972e389..ec0de2d992 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -29,7 +29,10 @@ jobs: with: java-version: '17' java-package: jdk+fx - + + - name: Install dos2unix + run: sudo apt-get install -y dos2unix + - name: Build and check with Gradle run: ./gradlew check @@ -47,4 +50,4 @@ jobs: if: always() && runner.os == 'Windows' working-directory: ${{ github.workspace }}/text-ui-test shell: cmd - run: runtest.bat \ No newline at end of file + run: runtest.bat From bcfcdcad5bdd177e885498da4fac3a2800f00e48 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Fri, 11 Oct 2024 18:17:12 +0800 Subject: [PATCH 101/619] Update gradle.yml --- .github/workflows/gradle.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index ec0de2d992..500ef051bd 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -29,9 +29,18 @@ jobs: with: java-version: '17' java-package: jdk+fx - - - name: Install dos2unix + + - name: Install dos2unix (Ubuntu) + if: runner.os == 'Linux' run: sudo apt-get install -y dos2unix + + - name: Install dos2unix (MacOS) + if: runner.os == 'macOS' + run: brew install dos2unix + + - name: Install dos2unix (Windows) + if: runner.os == 'Windows' + run: choco install dos2unix - name: Build and check with Gradle run: ./gradlew check From c337a700541d4b04f3fa0b54649502b0342a0954 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sat, 12 Oct 2024 10:59:34 +0800 Subject: [PATCH 102/619] Add JavaDoc Comments --- .../seedu/manager/command/AddCommand.java | 17 ++++++++++---- .../seedu/manager/command/RemoveCommand.java | 22 ++++++++++++++++--- .../java/seedu/manager/parser/Parser.java | 1 - 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index ab87a9b364..ce5e330a45 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -1,7 +1,8 @@ package seedu.manager.command; /** - * Represents an executable add command + * Represents a command to add an event to the event list. + * The add command will store the event's name, time, and venue. */ public class AddCommand extends Command { public static final String COMMAND_WORD = "add"; @@ -10,6 +11,13 @@ public class AddCommand extends Command { protected String time; protected String venue; + /** + * Constructs an AddCommand object with the specified event details. + * + * @param eventName The name of the event to be added. + * @param time The time of the event to be added. + * @param venue The venue of the event to be added. + */ public AddCommand(String eventName, String time, String venue) { this.eventName = eventName; this.time = time; @@ -17,13 +25,14 @@ public AddCommand(String eventName, String time, String venue) { } /** - * Returns a command output with an add message + * Executes the command to add an event to the event list. + * The event is added with the provided name, time, and venue. * - * @return The command output with an add message + * @return The command output indicating that the event was added successfully. */ + @Override public CommandOutput execute() { this.eventList.addEvent(this.eventName, this.time, this.venue); - //this.eventList.getList(); return new CommandOutput(ADD_MESSAGE, false); } } diff --git a/src/main/java/seedu/manager/command/RemoveCommand.java b/src/main/java/seedu/manager/command/RemoveCommand.java index 66e8cf8c7f..c153a85312 100644 --- a/src/main/java/seedu/manager/command/RemoveCommand.java +++ b/src/main/java/seedu/manager/command/RemoveCommand.java @@ -1,16 +1,32 @@ package seedu.manager.command; +/** + * Represents a command to remove an event from the event list. + * The remove command will search for an event by its name and remove it if found. + */ public class RemoveCommand extends Command { public static final String COMMAND_WORD = "remove"; - public static final String REMOVE_SUCCESS = "Event removed successfully"; - public static final String REMOVE_FAILURE = "Event not found"; + private static final String REMOVE_SUCCESS = "Event removed successfully"; + private static final String REMOVE_FAILURE = "Event not found"; protected String eventName; - + /** + * Constructs a RemoveCommand object with the specified event name. + * + * @param eventName The name of the event to be removed. + */ public RemoveCommand(String eventName) { this.eventName = eventName; } + /** + * Executes the command to remove the event from the event list. + * If the event is successfully removed, a success message is returned. + * Otherwise, a failure message is returned. + * + * @return The command output with a remove message. + */ + @Override public CommandOutput execute() { boolean isRemoved = this.eventList.removeEvent(eventName); if (isRemoved) { diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 3dde268d47..0ed581782c 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -69,7 +69,6 @@ public Command parseAddCommand(String[] commandParts) { String time = parameters.get("-time"); String venue = parameters.get("-venue"); - // Create and return the AddCommand with parsed parameters return new AddCommand(eventName, time, venue); } From e00a17e9a2338b98d159e071a0d95a3d11e5ed7b Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Sat, 12 Oct 2024 19:48:22 +0800 Subject: [PATCH 103/619] Added functionality to add participants to events. --- .../seedu/manager/command/AddCommand.java | 39 ++++++++++++++++--- src/main/java/seedu/manager/event/Event.java | 14 +++++++ .../java/seedu/manager/event/EventList.java | 22 +++++++++++ 3 files changed, 69 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index ce5e330a45..8e2cf0eb4d 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -6,10 +6,12 @@ */ public class AddCommand extends Command { public static final String COMMAND_WORD = "add"; - private static final String ADD_MESSAGE = "Event added successfully"; + private static final String ADD_E_MESSAGE = "Event added successfully"; + private static final String ADD_P_MESSAGE = "Participant added successfully"; protected String eventName; protected String time; protected String venue; + protected String participantName; /** * Constructs an AddCommand object with the specified event details. @@ -25,14 +27,39 @@ public AddCommand(String eventName, String time, String venue) { } /** - * Executes the command to add an event to the event list. - * The event is added with the provided name, time, and venue. + * Constructs an {@code AddCommand} with the specified participant name and event name. * - * @return The command output indicating that the event was added successfully. + * @param participantName the name of the participant to be added to the event. + * If null, a new event will be created instead. + * @param eventName the name of the event to which the participant will be added + * or the event to be created if no participant name is provided. + */ + public AddCommand(String participantName, String eventName) { + this.participantName = participantName; + this.eventName = eventName; + } + + /** + * Executes the command to add an event or a participant to an event. + *

+ * If no participant name is provided, this method will add a new event + * to the event list with the specified event name, time, and venue. + * If a participant name is provided, it will add the participant to the + * specified event in the event list. + *

+ * + * @return a {@link CommandOutput} object containing a message about + * the result of the execution. The message indicates whether an event + * or participant was successfully added. */ @Override public CommandOutput execute() { - this.eventList.addEvent(this.eventName, this.time, this.venue); - return new CommandOutput(ADD_MESSAGE, false); + if (participantName == null) { + this.eventList.addEvent(this.eventName, this.time, this.venue); + return new CommandOutput(ADD_E_MESSAGE, false); + } else { + this.eventList.addParticipantToEvent(this.participantName, this.eventName); + return new CommandOutput(ADD_P_MESSAGE, false); + } } } diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 8505fbf734..b431f96e8a 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -1,5 +1,7 @@ package seedu.manager.event; +import java.util.ArrayList; + /** * The Event class represents an event with a name, time, and venue. * It provides methods to access and modify the time and venue of the event. @@ -8,6 +10,7 @@ public class Event { private final String eventName; private String eventTime; private String eventVenue; + protected ArrayList participantList; /** * Constructs an Event with the specified name. @@ -16,6 +19,7 @@ public class Event { */ public Event(String eventName) { this.eventName = eventName; + this.participantList = new ArrayList<>(); } /** @@ -29,6 +33,16 @@ public Event(String eventName, String eventTime, String eventVenue) { this.eventName = eventName; this.eventTime = eventTime; this.eventVenue = eventVenue; + this.participantList = new ArrayList<>(); + } + + /** + * Adds a participant to the participant list for the event. + * + * @param participantName the name of the participant to be added to the list. + */ + public void addParticipant(String participantName) { + this.participantList.add(participantName); } /** diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index e9cfd62a44..c53f7372f7 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -54,6 +54,13 @@ public Event getEvent(int index) { return eventList.get(index); } + /** + * Removes an event from the event list by its name. + * + * @param eventName the name of the event to be removed. + * @return {@code true} if the event was successfully removed; + * {@code false} if no event with the specified name was found. + */ public boolean removeEvent(String eventName) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { // Assuming Event has a getName() method @@ -63,4 +70,19 @@ public boolean removeEvent(String eventName) { } return false; // Event not found } + + /** + * Adds a participant to an existing event. + * + * @param participantName the name of the participant to be added. + * @param eventName the name of the event to which the participant will be added. + */ + public void addParticipantToEvent(String participantName, String eventName) { + for (Event event : eventList) { + if (event.getEventName().equals(eventName)) { + event.addParticipant(participantName); + break; + } + } + } } From 660abab06d2c430bdd0ba6fdd80e56aa21c25a2b Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Sat, 12 Oct 2024 20:33:34 +0800 Subject: [PATCH 104/619] Add parser support and JUnit tests for adding participants --- src/main/java/seedu/manager/event/Event.java | 9 ++++ .../java/seedu/manager/event/EventList.java | 4 +- .../java/seedu/manager/parser/Parser.java | 47 ++++++++++--------- .../seedu/manager/command/AddCommandTest.java | 33 +++++++++++++ 4 files changed, 68 insertions(+), 25 deletions(-) create mode 100644 src/test/java/seedu/manager/command/AddCommandTest.java diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index b431f96e8a..b4c91fb12e 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -45,6 +45,15 @@ public void addParticipant(String participantName) { this.participantList.add(participantName); } + /** + * Retrieves the number of participants in the participant list. + * + * @return the count of participants currently in the list. + */ + public int getParticipantCount() { + return this.participantList.size(); + } + /** * @return the event name */ diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index c53f7372f7..9e3cbf3be5 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -47,11 +47,11 @@ public void addEvent(String eventName, String time, String venue) { } /** - * @param index The index of event in the list (0 based indexing) + * @param index The index of event in the list * @return The specific event in the event list. */ public Event getEvent(int index) { - return eventList.get(index); + return eventList.get(index - 1); } /** diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 0ed581782c..177885751e 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -24,10 +24,11 @@ public class Parser { public Command parseCommand(String command){ String[] commandParts = command.split(" "); String commandWord = commandParts[0]; + String commandFlag = commandParts[1]; switch (commandWord) { case AddCommand.COMMAND_WORD: - return parseAddCommand(commandParts); + return parseAddCommand(command, commandFlag); case RemoveCommand.COMMAND_WORD: return parseRemoveCommand(commandParts); case ListCommand.COMMAND_WORD: @@ -43,33 +44,33 @@ public Command parseCommand(String command){ } /** - * Parses the 'add' command and its arguments. + * Parses the input string to create an {@link Command} based on the provided command flag. * - * @param commandParts The split command input from the user. - * @return The AddCommand object with parsed event details. + *

+ * If the command flag is {@code "-e"}, it splits the input string into parts + * to create an {@link AddCommand} for adding an event. If the command flag is + * {@code "-p"}, it creates an {@link AddCommand} for adding a participant to + * an event. If neither flag is matched, it returns an {@link EchoCommand} + * with the original input. + *

+ * + * @param input the input string containing the command details. + * @param commandFlag the flag indicating the type of command to parse + * (e.g., {@code "-e"} for event, {@code "-p"} for participant). + * @return a {@link Command} object representing the parsed command. */ - public Command parseAddCommand(String[] commandParts) { - // Map to store the option-value pairs - Map parameters = new HashMap<>(); - String currentOption = null; + public Command parseAddCommand(String input, String commandFlag) { + String[] commandParts; - // Parse the options and their values - for (int i = 1; i < commandParts.length; i++) { - String part = commandParts[i]; - if (part.startsWith("-")) { - currentOption = part; // Current part is an option (e.g., -e, -time, -venue) - } else if (currentOption != null) { - parameters.put(currentOption, part); // Store the value for the current option - currentOption = null; // Reset after assigning value - } + if (commandFlag.equals("-e")) { + commandParts = input.split("(-e|-t|-v)"); + return new AddCommand(commandParts[1], commandParts[2], commandParts[3]); + } else if (commandFlag.equals("-p")) { + commandParts = input.split("(-p|-e)"); + return new AddCommand(commandParts[1], commandParts[2]); } - // Extract event details from the parsed parameters - String eventName = parameters.get("-e"); - String time = parameters.get("-time"); - String venue = parameters.get("-venue"); - - return new AddCommand(eventName, time, venue); + return new EchoCommand(input); } /** diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java new file mode 100644 index 0000000000..e345fc1513 --- /dev/null +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -0,0 +1,33 @@ +package seedu.manager.command; + +import org.junit.jupiter.api.Test; +import seedu.manager.event.EventList; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class AddCommandTest { + private Command addCommand; + + @Test + public void add_twoParticipant_success() { + EventList eventList = new EventList(); + + eventList.addEvent("Event 1", "2024-10-10 10:00", "Venue A"); + eventList.addParticipantToEvent("Tom", "Event 1"); + eventList.addParticipantToEvent("Harry", "Event 1"); + + assertEquals(2, eventList.getEvent(1).getParticipantCount()); + } + + @Test + public void add_oneParticipantWrongly_success() { + EventList eventList = new EventList(); + + eventList.addEvent("Event 1", "2024-10-10 10:00", "Venue A"); + eventList.addParticipantToEvent("Tom", "Event 1"); + eventList.addParticipantToEvent("Harry", "Event 2"); + + assertEquals(1, eventList.getEvent(1).getParticipantCount()); + } +} + From 4fa02eb99a9908b73d4e2bd1f01590af8b48f536 Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Sat, 12 Oct 2024 20:49:31 +0800 Subject: [PATCH 105/619] Revert to old indexing --- src/main/java/seedu/manager/event/EventList.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 68efd83f81..93d0493e20 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -44,11 +44,11 @@ public void addEvent(String eventName) { } /** - * @param index The index of event in the list + * @param index The index of event in the list (0 based indexing) * @return The specific event in the event list. */ public Event getEvent(int index) { - return eventList.get(index - 1); + return eventList.get(index); } /** From 13811eab2413c3006e31ac15fcd0dc31a52d2017 Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Sat, 12 Oct 2024 20:50:15 +0800 Subject: [PATCH 106/619] Update indexing --- src/test/java/seedu/manager/command/AddCommandTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index e345fc1513..7c09cd6918 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -16,7 +16,7 @@ public void add_twoParticipant_success() { eventList.addParticipantToEvent("Tom", "Event 1"); eventList.addParticipantToEvent("Harry", "Event 1"); - assertEquals(2, eventList.getEvent(1).getParticipantCount()); + assertEquals(2, eventList.getEvent(0).getParticipantCount()); } @Test @@ -27,7 +27,7 @@ public void add_oneParticipantWrongly_success() { eventList.addParticipantToEvent("Tom", "Event 1"); eventList.addParticipantToEvent("Harry", "Event 2"); - assertEquals(1, eventList.getEvent(1).getParticipantCount()); + assertEquals(1, eventList.getEvent(0).getParticipantCount()); } } From beeb3bf72fee67feaa3c46a1a7bde86ffc3cfbdc Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Sat, 12 Oct 2024 21:06:44 +0800 Subject: [PATCH 107/619] Resolve issue with AddCommand parameters --- .../java/seedu/manager/event/EventList.java | 19 +++++++++++ .../java/seedu/manager/parser/Parser.java | 34 +++++++++---------- .../java/seedu/manager/parser/ParserTest.java | 8 ----- 3 files changed, 36 insertions(+), 25 deletions(-) diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 93d0493e20..39d30a2a61 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -43,6 +43,8 @@ public void addEvent(String eventName) { eventList.add(newEvent); } + + /** * @param index The index of event in the list (0 based indexing) * @return The specific event in the event list. @@ -51,6 +53,23 @@ public Event getEvent(int index) { return eventList.get(index); } + /** + * Adds a new event to the event list. + * + *

+ * This method creates a new {@link Event} object with the specified event name, + * time, and venue, and adds it to the event list. + *

+ * + * @param eventName the name of the event to be added. + * @param time the time of the event. + * @param venue the venue where the event will take place. + */ + public void addEvent(String eventName, String time, String venue) { + Event newEvent = new Event(eventName, time, venue); + eventList.add(newEvent); + } + /** * Removes an event from the event list by its name. * diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 177885751e..b7b09f927d 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -24,11 +24,10 @@ public class Parser { public Command parseCommand(String command){ String[] commandParts = command.split(" "); String commandWord = commandParts[0]; - String commandFlag = commandParts[1]; switch (commandWord) { case AddCommand.COMMAND_WORD: - return parseAddCommand(command, commandFlag); + return parseAddCommand(command, commandParts); case RemoveCommand.COMMAND_WORD: return parseRemoveCommand(commandParts); case ListCommand.COMMAND_WORD: @@ -44,30 +43,31 @@ public Command parseCommand(String command){ } /** - * Parses the input string to create an {@link Command} based on the provided command flag. + * Parses the input string to create an {@link Command} based on the provided command parts. * *

- * If the command flag is {@code "-e"}, it splits the input string into parts - * to create an {@link AddCommand} for adding an event. If the command flag is - * {@code "-p"}, it creates an {@link AddCommand} for adding a participant to - * an event. If neither flag is matched, it returns an {@link EchoCommand} - * with the original input. + * This method checks the command flag extracted from the command parts. If the command + * flag is {@code "-e"}, it splits the input string into parts to create an + * {@link AddCommand} for adding an event. If the command flag is {@code "-p"}, + * it creates an {@link AddCommand} for adding a participant to an event. If neither + * flag is matched, it returns an {@link EchoCommand} with the original input. *

* - * @param input the input string containing the command details. - * @param commandFlag the flag indicating the type of command to parse - * (e.g., {@code "-e"} for event, {@code "-p"} for participant). + * @param input the input string containing the command details. + * @param commandParts an array of strings representing the parsed command parts, + * where the second element is the command flag. * @return a {@link Command} object representing the parsed command. */ - public Command parseAddCommand(String input, String commandFlag) { - String[] commandParts; + public Command parseAddCommand(String input, String[] commandParts) { + String commandFlag = commandParts[1]; + String[] inputParts; if (commandFlag.equals("-e")) { - commandParts = input.split("(-e|-t|-v)"); - return new AddCommand(commandParts[1], commandParts[2], commandParts[3]); + inputParts = input.split("(-e|-t|-v)"); + return new AddCommand(inputParts[1], inputParts[2], inputParts[3]); } else if (commandFlag.equals("-p")) { - commandParts = input.split("(-p|-e)"); - return new AddCommand(commandParts[1], commandParts[2]); + inputParts = input.split("(-p|-e)"); + return new AddCommand(inputParts[1], inputParts[2]); } return new EchoCommand(input); diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index 257e186e53..9f28417d91 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -45,14 +45,6 @@ public void parseCommand_listWord_list() { assertInstanceOf(ListCommand.class, command); } - @Test - public void parseCommand_addWord_add() { - Parser parser = new Parser(); - Command command = parser.parseCommand("add"); - - assertInstanceOf(AddCommand.class, command); - } - @Test public void parseCommand_removeWord_add() { Parser parser = new Parser(); From 0a67546d19ee88f0cf871c6db306ee21e49f48b2 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Sat, 12 Oct 2024 21:17:13 +0800 Subject: [PATCH 108/619] Update to meet Gradle style checks --- .../java/seedu/manager/command/AddCommand.java | 5 ++--- src/main/java/seedu/manager/event/Event.java | 2 +- .../java/seedu/manager/event/EventList.java | 18 ++++++++---------- .../java/seedu/manager/parser/ParserTest.java | 1 - 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index 8e2cf0eb4d..6b3ed78e42 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -48,9 +48,8 @@ public AddCommand(String participantName, String eventName) { * specified event in the event list. *

* - * @return a {@link CommandOutput} object containing a message about - * the result of the execution. The message indicates whether an event - * or participant was successfully added. + * @return a {@link CommandOutput} object containing a message about the result of the execution. + * The message indicates whether an event or participant was successfully added. */ @Override public CommandOutput execute() { diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index b4c91fb12e..aa06ef7fd5 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -7,10 +7,10 @@ * It provides methods to access and modify the time and venue of the event. */ public class Event { + protected ArrayList participantList; private final String eventName; private String eventTime; private String eventVenue; - protected ArrayList participantList; /** * Constructs an Event with the specified name. diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 39d30a2a61..35a0f03acb 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -43,16 +43,6 @@ public void addEvent(String eventName) { eventList.add(newEvent); } - - - /** - * @param index The index of event in the list (0 based indexing) - * @return The specific event in the event list. - */ - public Event getEvent(int index) { - return eventList.get(index); - } - /** * Adds a new event to the event list. * @@ -70,6 +60,14 @@ public void addEvent(String eventName, String time, String venue) { eventList.add(newEvent); } + /** + * @param index The index of event in the list (0 based indexing) + * @return The specific event in the event list. + */ + public Event getEvent(int index) { + return eventList.get(index); + } + /** * Removes an event from the event list by its name. * diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index 9f28417d91..aa67aead73 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -6,7 +6,6 @@ import seedu.manager.command.ExitCommand; import seedu.manager.command.MenuCommand; import seedu.manager.command.ListCommand; -import seedu.manager.command.AddCommand; import seedu.manager.command.RemoveCommand; import static org.junit.jupiter.api.Assertions.assertInstanceOf; From cba76a731734824be29755fd8a28fb465c92d579 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Sat, 12 Oct 2024 21:38:04 +0800 Subject: [PATCH 109/619] Add functionality to remove participants from events --- .../seedu/manager/command/RemoveCommand.java | 28 ++++++++++++---- src/main/java/seedu/manager/event/Event.java | 18 ++++++++++ .../java/seedu/manager/event/EventList.java | 25 ++++++++++++++ .../seedu/manager/command/AddCommandTest.java | 1 - .../manager/command/RemoveCommandTest.java | 33 +++++++++++++++++++ 5 files changed, 97 insertions(+), 8 deletions(-) create mode 100644 src/test/java/seedu/manager/command/RemoveCommandTest.java diff --git a/src/main/java/seedu/manager/command/RemoveCommand.java b/src/main/java/seedu/manager/command/RemoveCommand.java index c153a85312..112cfec05c 100644 --- a/src/main/java/seedu/manager/command/RemoveCommand.java +++ b/src/main/java/seedu/manager/command/RemoveCommand.java @@ -6,9 +6,10 @@ */ public class RemoveCommand extends Command { public static final String COMMAND_WORD = "remove"; - private static final String REMOVE_SUCCESS = "Event removed successfully"; - private static final String REMOVE_FAILURE = "Event not found"; + private static final String REMOVE_SUCCESS = "Removed successfully"; + private static final String REMOVE_FAILURE = "Not found"; protected String eventName; + protected String participantName; /** * Constructs a RemoveCommand object with the specified event name. @@ -20,15 +21,28 @@ public RemoveCommand(String eventName) { } /** - * Executes the command to remove the event from the event list. - * If the event is successfully removed, a success message is returned. - * Otherwise, a failure message is returned. + * Executes the command to remove an event or a participant from an event. * - * @return The command output with a remove message. + *

+ * If no participant name is provided, this method attempts to remove the event + * specified by the event name. If a participant name is provided, it tries to + * remove that participant from the specified event. The result of the operation + * is indicated by the return value. + *

+ * + * @return a {@link CommandOutput} object containing a message indicating + * whether the removal was successful or failed. */ @Override public CommandOutput execute() { - boolean isRemoved = this.eventList.removeEvent(eventName); + boolean isRemoved; + + if (participantName == null) { + isRemoved = this.eventList.removeEvent(this.eventName); + } else { + isRemoved = this.eventList.removeParticipantFromEvent(this.participantName, this.eventName); + } + if (isRemoved) { return new CommandOutput(REMOVE_SUCCESS, false); } else { diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index aa06ef7fd5..b6a838b5a1 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -45,6 +45,24 @@ public void addParticipant(String participantName) { this.participantList.add(participantName); } + /** + * Removes a participant from the participant list. + * + *

+ * This method attempts to remove the specified participant from the list of + * participants associated with the event. It returns {@code true} if the + * participant was successfully removed, and {@code false} if the participant + * was not found in the list. + *

+ * + * @param participantName the name of the participant to be removed from the list. + * @return {@code true} if the participant was successfully removed; + * {@code false} if the participant was not found in the list. + */ + public boolean removeParticipant(String participantName) { + return this.participantList.remove(participantName); + } + /** * Retrieves the number of participants in the participant list. * diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 35a0f03acb..c590edc0ca 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -99,4 +99,29 @@ public void addParticipantToEvent(String participantName, String eventName) { } } } + + /** + * Removes a participant from a specified event. + * + *

+ * This method searches for the event with the given name in the event list and + * attempts to remove the specified participant from that event. If the event is + * found and the participant is successfully removed, it returns {@code true}. + * If the event does not exist or the participant is not found, it returns + * {@code false}. + *

+ * + * @param participantName the name of the participant to be removed from the event. + * @param eventName the name of the event from which the participant will be removed. + * @return {@code true} if the participant was successfully removed; + * {@code false} if the event does not exist or the participant was not found. + */ + public boolean removeParticipantFromEvent(String participantName, String eventName) { + for (Event event : eventList) { + if (event.getEventName().equals(eventName)) { + return event.removeParticipant(participantName); + } + } + return false; + } } diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index 7c09cd6918..b7da30b8cd 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -6,7 +6,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals; public class AddCommandTest { - private Command addCommand; @Test public void add_twoParticipant_success() { diff --git a/src/test/java/seedu/manager/command/RemoveCommandTest.java b/src/test/java/seedu/manager/command/RemoveCommandTest.java new file mode 100644 index 0000000000..06769084df --- /dev/null +++ b/src/test/java/seedu/manager/command/RemoveCommandTest.java @@ -0,0 +1,33 @@ +package seedu.manager.command; + +import org.junit.jupiter.api.Test; +import seedu.manager.event.EventList; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class RemoveCommandTest { + + @Test + public void remove_oneParticipant_success() { + EventList eventList = new EventList(); + + eventList.addEvent("Event 1", "2024-10-10 10:00", "Venue A"); + eventList.addParticipantToEvent("Tom", "Event 1"); + eventList.addParticipantToEvent("Harry", "Event 1"); + eventList.removeParticipantFromEvent("Tom", "Event 1"); + + assertEquals(1, eventList.getEvent(0).getParticipantCount()); + } + + @Test + public void remove_oneParticipantWrongly_success() { + EventList eventList = new EventList(); + + eventList.addEvent("Event 1", "2024-10-10 10:00", "Venue A"); + eventList.addParticipantToEvent("Tom", "Event 1"); + eventList.addParticipantToEvent("Harry", "Event 1"); + eventList.removeParticipantFromEvent("Tom", "Event 2"); + + assertEquals(2, eventList.getEvent(0).getParticipantCount()); + } +} From 017c4cce9157a98f8d2298454ab8c0ac86a2344a Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Sat, 12 Oct 2024 21:45:16 +0800 Subject: [PATCH 110/619] Add parser support and JUnit tests for removing participants --- .../seedu/manager/command/RemoveCommand.java | 13 +++++- .../java/seedu/manager/parser/Parser.java | 46 ++++++++++--------- .../java/seedu/manager/parser/ParserTest.java | 9 ---- 3 files changed, 36 insertions(+), 32 deletions(-) diff --git a/src/main/java/seedu/manager/command/RemoveCommand.java b/src/main/java/seedu/manager/command/RemoveCommand.java index 112cfec05c..814244fedc 100644 --- a/src/main/java/seedu/manager/command/RemoveCommand.java +++ b/src/main/java/seedu/manager/command/RemoveCommand.java @@ -20,6 +20,17 @@ public RemoveCommand(String eventName) { this.eventName = eventName; } + /** + * Constructs a RemoveCommand object with the specified event name. + * + * @param eventName The name of the event the participant is to be removed from. + * @param participantName The name of the participant to be removed. + */ + public RemoveCommand(String eventName, String participantName) { + this.eventName = eventName; + this.participantName = participantName; + } + /** * Executes the command to remove an event or a participant from an event. * @@ -31,7 +42,7 @@ public RemoveCommand(String eventName) { *

* * @return a {@link CommandOutput} object containing a message indicating - * whether the removal was successful or failed. + * whether the removal was successful or failed. */ @Override public CommandOutput execute() { diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index b7b09f927d..4509e3be72 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -8,9 +8,6 @@ import seedu.manager.command.EchoCommand; import seedu.manager.command.ListCommand; -import java.util.HashMap; -import java.util.Map; - /** * Represents the command parser for EventManagerCLI */ @@ -29,7 +26,7 @@ public Command parseCommand(String command){ case AddCommand.COMMAND_WORD: return parseAddCommand(command, commandParts); case RemoveCommand.COMMAND_WORD: - return parseRemoveCommand(commandParts); + return parseRemoveCommand(command, commandParts); case ListCommand.COMMAND_WORD: return new ListCommand(); case ExitCommand.COMMAND_WORD: @@ -74,28 +71,33 @@ public Command parseAddCommand(String input, String[] commandParts) { } /** - * Parses the 'remove' command and its arguments. + * Parses the input string to create a {@link Command} based on the provided command parts. + * + *

+ * This method checks the command flag extracted from the command parts. If the command + * flag is {@code "-e"}, it splits the input string to create a {@link RemoveCommand} + * for removing an event. If the command flag is {@code "-p"}, it creates a + * {@link RemoveCommand} for removing a participant from an event. If neither flag + * is matched, it returns an {@link EchoCommand} with the original input. + *

* - * @param commandParts The split command input from the user. - * @return The RemoveCommand object with parsed event details. + * @param input the input string containing the command details. + * @param commandParts an array of strings representing the parsed command parts, + * where the second element is the command flag. + * @return a {@link Command} object representing the parsed command. */ - private Command parseRemoveCommand(String[] commandParts) { - Map parameters = new HashMap<>(); - String currentOption = null; + private Command parseRemoveCommand(String input, String[] commandParts) { + String commandFlag = commandParts[1]; + String[] inputParts; - for (int i = 1; i < commandParts.length; i++) { - String part = commandParts[i]; - if (part.startsWith("-")) { - currentOption = part; - } else if (currentOption != null) { - parameters.put(currentOption, part); - currentOption = null; - } + if (commandFlag.equals("-e")) { + inputParts = input.split("-e"); + return new RemoveCommand(inputParts[1]); + } else if (commandFlag.equals("-p")) { + inputParts = input.split("(-p|-e)"); + return new RemoveCommand(inputParts[1], inputParts[2]); } - // Extract event details from the parsed parameters - String eventName = parameters.get("-e"); // Must be present - - return new RemoveCommand(eventName); + return new EchoCommand(input); } } diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index aa67aead73..43ca7f7e57 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -6,7 +6,6 @@ import seedu.manager.command.ExitCommand; import seedu.manager.command.MenuCommand; import seedu.manager.command.ListCommand; -import seedu.manager.command.RemoveCommand; import static org.junit.jupiter.api.Assertions.assertInstanceOf; @@ -43,12 +42,4 @@ public void parseCommand_listWord_list() { assertInstanceOf(ListCommand.class, command); } - - @Test - public void parseCommand_removeWord_add() { - Parser parser = new Parser(); - Command command = parser.parseCommand("remove"); - - assertInstanceOf(RemoveCommand.class, command); - } } From fd62d6952d2a22f3aceb0f67cabc5f4dd4108c75 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Sat, 12 Oct 2024 22:17:55 +0800 Subject: [PATCH 111/619] Update constant names to be clearer --- src/main/java/seedu/manager/command/AddCommand.java | 8 ++++---- src/main/java/seedu/manager/event/EventList.java | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index 6b3ed78e42..95f74dd320 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -6,8 +6,8 @@ */ public class AddCommand extends Command { public static final String COMMAND_WORD = "add"; - private static final String ADD_E_MESSAGE = "Event added successfully"; - private static final String ADD_P_MESSAGE = "Participant added successfully"; + private static final String ADD_EVENT_MESSAGE = "Event added successfully"; + private static final String ADD_PARTICIPANT_MESSAGE = "Participant added successfully"; protected String eventName; protected String time; protected String venue; @@ -55,10 +55,10 @@ public AddCommand(String participantName, String eventName) { public CommandOutput execute() { if (participantName == null) { this.eventList.addEvent(this.eventName, this.time, this.venue); - return new CommandOutput(ADD_E_MESSAGE, false); + return new CommandOutput(ADD_EVENT_MESSAGE, false); } else { this.eventList.addParticipantToEvent(this.participantName, this.eventName); - return new CommandOutput(ADD_P_MESSAGE, false); + return new CommandOutput(ADD_PARTICIPANT_MESSAGE, false); } } } diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 35a0f03acb..6bf5c2f813 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -95,7 +95,7 @@ public void addParticipantToEvent(String participantName, String eventName) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { event.addParticipant(participantName); - break; + return; } } } From 96accb9a520f7a2ad43c2c2ed505af21ed271464 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 12 Oct 2024 22:31:25 +0800 Subject: [PATCH 112/619] Add an InvalidCommand class to handle invalid commands --- .../seedu/manager/command/InvalidCommand.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/main/java/seedu/manager/command/InvalidCommand.java diff --git a/src/main/java/seedu/manager/command/InvalidCommand.java b/src/main/java/seedu/manager/command/InvalidCommand.java new file mode 100644 index 0000000000..760ba9ad40 --- /dev/null +++ b/src/main/java/seedu/manager/command/InvalidCommand.java @@ -0,0 +1,27 @@ +package seedu.manager.command; + +/** + * Represents an invalid command that cannot be executed + */ +public class InvalidCommand extends Command { + private String errorMessage; + + /** + * Constructs a new invalid command with a given error message + * + * @param errorMessage The specified error message + */ + public InvalidCommand(String errorMessage) { + this.errorMessage = errorMessage; + } + + /** + * Returns a new command output with the error message + * + * @return A command output with the error message + */ + @Override + public CommandOutput execute() { + return new CommandOutput(this.errorMessage, false); + } +} From b6c5983e5aeb5ae3a5f107542d39eaee97a1df22 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 12 Oct 2024 22:52:57 +0800 Subject: [PATCH 113/619] Remove unused addEvent method --- src/main/java/seedu/manager/event/EventList.java | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 0eea984628..70ff7d91e6 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -33,16 +33,6 @@ public int getListSize() { return eventList.size(); } - /** - * Adds a new event to the event list. - * - * @param eventName The name of the event to be added. - */ - public void addEvent(String eventName) { - Event newEvent = new Event(eventName); - eventList.add(newEvent); - } - /** * Adds a new event to the event list. * From 1eae1e07ded45ef242e23bfad713d242aaccda6f Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 12 Oct 2024 22:53:32 +0800 Subject: [PATCH 114/619] Replace instances of EchoCommand with InvalidCommand --- .../seedu/manager/command/EchoCommand.java | 25 ------------------ .../seedu/manager/command/InvalidCommand.java | 2 +- .../java/seedu/manager/parser/Parser.java | 26 ++++++++++++++----- .../java/seedu/manager/parser/ParserTest.java | 6 ++--- 4 files changed, 23 insertions(+), 36 deletions(-) delete mode 100644 src/main/java/seedu/manager/command/EchoCommand.java diff --git a/src/main/java/seedu/manager/command/EchoCommand.java b/src/main/java/seedu/manager/command/EchoCommand.java deleted file mode 100644 index d2f3498544..0000000000 --- a/src/main/java/seedu/manager/command/EchoCommand.java +++ /dev/null @@ -1,25 +0,0 @@ -package seedu.manager.command; - -/** - * Represents an executable echo command - */ -public class EchoCommand extends Command { - private final String userInput; - - /** - * Constructs a new EchoCommand with the given user input - * - * @param userInput The user input - */ - public EchoCommand(String userInput) { - this.userInput = userInput; - } - - /** - * Returns the command output, with the user input as the output message - */ - @Override - public CommandOutput execute() { - return new CommandOutput(this.userInput, false); - } -} diff --git a/src/main/java/seedu/manager/command/InvalidCommand.java b/src/main/java/seedu/manager/command/InvalidCommand.java index 760ba9ad40..bbaf2abf00 100644 --- a/src/main/java/seedu/manager/command/InvalidCommand.java +++ b/src/main/java/seedu/manager/command/InvalidCommand.java @@ -4,7 +4,7 @@ * Represents an invalid command that cannot be executed */ public class InvalidCommand extends Command { - private String errorMessage; + private final String errorMessage; /** * Constructs a new invalid command with a given error message diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 4509e3be72..77ba9a4da5 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -2,16 +2,29 @@ import seedu.manager.command.Command; import seedu.manager.command.AddCommand; +import seedu.manager.command.InvalidCommand; import seedu.manager.command.RemoveCommand; import seedu.manager.command.ExitCommand; import seedu.manager.command.MenuCommand; -import seedu.manager.command.EchoCommand; import seedu.manager.command.ListCommand; /** * Represents the command parser for EventManagerCLI */ public class Parser { + private static final String INVALID_COMMAND_MESSAGE = "Invalid command!"; + private static final String INVALID_ADD_MESSAGE = """ + Invalid command! + Please enter your commands in the following format: + add -e EVENT_NAME + add -p PARTICIPANT_NAME -e EVENT_NAME + """; + private static final String INVALID_REMOVE_MESSAGE = """ + Invalid command! + Please enter your commands in the following format: + remove -e EVENT_NAME + remove -p PARTICIPANT_NAME -e EVENT_NAME + """; /** * Returns a command based on the given user command string @@ -33,9 +46,8 @@ public Command parseCommand(String command){ return new ExitCommand(); case MenuCommand.COMMAND_WORD: return new MenuCommand(); - default: - return new EchoCommand(command); + return new InvalidCommand(INVALID_COMMAND_MESSAGE); } } @@ -47,7 +59,7 @@ public Command parseCommand(String command){ * flag is {@code "-e"}, it splits the input string into parts to create an * {@link AddCommand} for adding an event. If the command flag is {@code "-p"}, * it creates an {@link AddCommand} for adding a participant to an event. If neither - * flag is matched, it returns an {@link EchoCommand} with the original input. + * flag is matched, it returns an {@link InvalidCommand} with an error message. *

* * @param input the input string containing the command details. @@ -67,7 +79,7 @@ public Command parseAddCommand(String input, String[] commandParts) { return new AddCommand(inputParts[1], inputParts[2]); } - return new EchoCommand(input); + return new InvalidCommand(INVALID_ADD_MESSAGE); } /** @@ -78,7 +90,7 @@ public Command parseAddCommand(String input, String[] commandParts) { * flag is {@code "-e"}, it splits the input string to create a {@link RemoveCommand} * for removing an event. If the command flag is {@code "-p"}, it creates a * {@link RemoveCommand} for removing a participant from an event. If neither flag - * is matched, it returns an {@link EchoCommand} with the original input. + * is matched, it returns an {@link InvalidCommand} with an error message. *

* * @param input the input string containing the command details. @@ -98,6 +110,6 @@ private Command parseRemoveCommand(String input, String[] commandParts) { return new RemoveCommand(inputParts[1], inputParts[2]); } - return new EchoCommand(input); + return new InvalidCommand(INVALID_REMOVE_MESSAGE); } } diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index 43ca7f7e57..4fe1b0437b 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -2,8 +2,8 @@ import org.junit.jupiter.api.Test; import seedu.manager.command.Command; -import seedu.manager.command.EchoCommand; import seedu.manager.command.ExitCommand; +import seedu.manager.command.InvalidCommand; import seedu.manager.command.MenuCommand; import seedu.manager.command.ListCommand; @@ -12,11 +12,11 @@ class ParserTest { @Test - public void parseCommand_nonEmptyString_echo() { + public void parseCommand_invalidString_invalid() { Parser parser = new Parser(); Command command = parser.parseCommand("Hello world!"); - assertInstanceOf(EchoCommand.class, command); + assertInstanceOf(InvalidCommand.class, command); } @Test From e998991d287ad3e5045c5d110191d77fc67f9912 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 12 Oct 2024 23:37:07 +0800 Subject: [PATCH 115/619] Add exception handling for parseAddCommand and parseRemoveCommand --- .../java/seedu/manager/parser/Parser.java | 48 +++++++++++-------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 77ba9a4da5..3fead07de5 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -68,18 +68,22 @@ public Command parseCommand(String command){ * @return a {@link Command} object representing the parsed command. */ public Command parseAddCommand(String input, String[] commandParts) { - String commandFlag = commandParts[1]; - String[] inputParts; + try { + String commandFlag = commandParts[1]; + String[] inputParts; - if (commandFlag.equals("-e")) { - inputParts = input.split("(-e|-t|-v)"); - return new AddCommand(inputParts[1], inputParts[2], inputParts[3]); - } else if (commandFlag.equals("-p")) { - inputParts = input.split("(-p|-e)"); - return new AddCommand(inputParts[1], inputParts[2]); - } + if (commandFlag.equals("-e")) { + inputParts = input.split("(-e|-t|-v)"); + return new AddCommand(inputParts[1], inputParts[2], inputParts[3]); + } else if (commandFlag.equals("-p")) { + inputParts = input.split("(-p|-e)"); + return new AddCommand(inputParts[1], inputParts[2]); + } - return new InvalidCommand(INVALID_ADD_MESSAGE); + return new InvalidCommand(INVALID_ADD_MESSAGE); + } catch (IndexOutOfBoundsException exception) { + return new InvalidCommand(INVALID_ADD_MESSAGE); + } } /** @@ -99,17 +103,21 @@ public Command parseAddCommand(String input, String[] commandParts) { * @return a {@link Command} object representing the parsed command. */ private Command parseRemoveCommand(String input, String[] commandParts) { - String commandFlag = commandParts[1]; - String[] inputParts; + try { + String commandFlag = commandParts[1]; + String[] inputParts; - if (commandFlag.equals("-e")) { - inputParts = input.split("-e"); - return new RemoveCommand(inputParts[1]); - } else if (commandFlag.equals("-p")) { - inputParts = input.split("(-p|-e)"); - return new RemoveCommand(inputParts[1], inputParts[2]); - } + if (commandFlag.equals("-e")) { + inputParts = input.split("-e"); + return new RemoveCommand(inputParts[1]); + } else if (commandFlag.equals("-p")) { + inputParts = input.split("(-p|-e)"); + return new RemoveCommand(inputParts[1], inputParts[2]); + } - return new InvalidCommand(INVALID_REMOVE_MESSAGE); + return new InvalidCommand(INVALID_REMOVE_MESSAGE); + } catch (IndexOutOfBoundsException exception) { + return new InvalidCommand(INVALID_REMOVE_MESSAGE); + } } } From 4380a812e2cda1e002449f26e83c9d6afb9747ff Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 13 Oct 2024 00:43:21 +0800 Subject: [PATCH 116/619] Remove placeholder unit test --- src/test/java/seedu/manager/DukeTest.java | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 src/test/java/seedu/manager/DukeTest.java diff --git a/src/test/java/seedu/manager/DukeTest.java b/src/test/java/seedu/manager/DukeTest.java deleted file mode 100644 index 7b9f930b03..0000000000 --- a/src/test/java/seedu/manager/DukeTest.java +++ /dev/null @@ -1,12 +0,0 @@ -package seedu.manager; - -import static org.junit.jupiter.api.Assertions.assertTrue; - -import org.junit.jupiter.api.Test; - -class DukeTest { - @Test - public void sampleTest() { - assertTrue(true); - } -} From 60cac2b537567334d56a1801d4cc8ad980e41015 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 13 Oct 2024 00:43:45 +0800 Subject: [PATCH 117/619] Update JUnit and text redirection tests --- .../java/seedu/manager/parser/ParserTest.java | 34 +++++++++++++++++++ text-ui-test/EXPECTED.TXT | 2 +- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index 4fe1b0437b..b8fc075990 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -1,11 +1,13 @@ package seedu.manager.parser; import org.junit.jupiter.api.Test; +import seedu.manager.command.AddCommand; import seedu.manager.command.Command; import seedu.manager.command.ExitCommand; import seedu.manager.command.InvalidCommand; import seedu.manager.command.MenuCommand; import seedu.manager.command.ListCommand; +import seedu.manager.command.RemoveCommand; import static org.junit.jupiter.api.Assertions.assertInstanceOf; @@ -42,4 +44,36 @@ public void parseCommand_listWord_list() { assertInstanceOf(ListCommand.class, command); } + + @Test + public void addCommand_addEvent_add() { + Parser parser = new Parser(); + Command command = parser.parseCommand("add -e event -t 2024-09-10 -v Venue A"); + + assertInstanceOf(AddCommand.class, command); + } + + @Test + public void addCommand_addNoParameter_invalid() { + Parser parser = new Parser(); + Command command = parser.parseCommand("add"); + + assertInstanceOf(InvalidCommand.class, command); + } + + @Test + public void removeCommand_removeEvent_add() { + Parser parser = new Parser(); + Command command = parser.parseCommand("remove -e event"); + + assertInstanceOf(RemoveCommand.class, command); + } + + @Test + public void removeCommand_removeNoParameter_invalid() { + Parser parser = new Parser(); + Command command = parser.parseCommand("remove"); + + assertInstanceOf(InvalidCommand.class, command); + } } diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 786f0ac5f1..857e237f10 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -1,5 +1,5 @@ Welcome to EventManagerCLI. -Enter a command: hello world +Enter a command: Invalid command! ------------------------ Enter a command: Here are the possible commands: From c5bd985362d4e963b0b7c7ef6e5ffdcae22b5d1c Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 13 Oct 2024 00:46:46 +0800 Subject: [PATCH 118/619] Update menu and error messages to follow correct format for add --- src/main/java/seedu/manager/command/MenuCommand.java | 4 ++-- src/main/java/seedu/manager/parser/Parser.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index a7409ce763..8488296abd 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -8,10 +8,10 @@ public class MenuCommand extends Command { private static final String MENU_MESSAGE = """ Here are the possible commands: - add -e EVENT_NAME: Add an event to the event list. + add -e EVENT_NAME -d DATE -v VENUE: Add an event to the event list. list: List events. remove -e EVENT_NAME: Remove an event from the event list. - add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant an event. + add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant to an event. view -e EVENT_NAME: View the list of participants of an event. remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event."""; diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 3fead07de5..eab1a9b4ff 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -16,7 +16,7 @@ public class Parser { private static final String INVALID_ADD_MESSAGE = """ Invalid command! Please enter your commands in the following format: - add -e EVENT_NAME + add -e EVENT_NAME -d DATE -v VENUE add -p PARTICIPANT_NAME -e EVENT_NAME """; private static final String INVALID_REMOVE_MESSAGE = """ From 885f01cd99574df0b232a200cc497cf626c81650 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 13 Oct 2024 01:05:46 +0800 Subject: [PATCH 119/619] Update redirection tests and add command format in messages --- .../java/seedu/manager/command/MenuCommand.java | 2 +- src/main/java/seedu/manager/parser/Parser.java | 8 +++----- text-ui-test/EXPECTED.TXT | 15 +++++++++++++-- text-ui-test/input.txt | 3 +++ 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 8488296abd..537b30cca6 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -8,7 +8,7 @@ public class MenuCommand extends Command { private static final String MENU_MESSAGE = """ Here are the possible commands: - add -e EVENT_NAME -d DATE -v VENUE: Add an event to the event list. + add -e EVENT_NAME -t TIME -v VENUE: Add an event to the event list. list: List events. remove -e EVENT_NAME: Remove an event from the event list. add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant to an event. diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index eab1a9b4ff..d749adb254 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -16,15 +16,13 @@ public class Parser { private static final String INVALID_ADD_MESSAGE = """ Invalid command! Please enter your commands in the following format: - add -e EVENT_NAME -d DATE -v VENUE - add -p PARTICIPANT_NAME -e EVENT_NAME - """; + add -e EVENT_NAME -t TIME -v VENUE + add -p PARTICIPANT_NAME -e EVENT_NAME"""; private static final String INVALID_REMOVE_MESSAGE = """ Invalid command! Please enter your commands in the following format: remove -e EVENT_NAME - remove -p PARTICIPANT_NAME -e EVENT_NAME - """; + remove -p PARTICIPANT_NAME -e EVENT_NAME"""; /** * Returns a command based on the given user command string diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 857e237f10..071047b826 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -3,15 +3,26 @@ Enter a command: Invalid command! ------------------------ Enter a command: Here are the possible commands: -add -e EVENT_NAME: Add an event to the event list. +add -e EVENT_NAME -t TIME -v VENUE: Add an event to the event list. list: List events. remove -e EVENT_NAME: Remove an event from the event list. -add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant an event. +add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant to an event. view -e EVENT_NAME: View the list of participants of an event. remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event. ------------------------ Enter a command: There are 0 events in your list! Here are your scheduled events: +------------------------ +Enter a command: Invalid command! +Please enter your commands in the following format: +add -e EVENT_NAME -t TIME -v VENUE +add -p PARTICIPANT_NAME -e EVENT_NAME +------------------------ +Enter a command: Event added successfully +------------------------ +Enter a command: There are 1 events in your list! Here are your scheduled events: +1. Event name: dinner party / Event time: 2024-10-10 / Event venue: Alice's House + ------------------------ Enter a command: Thank you for using EventManagerCLI. Goodbye! ------------------------ diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index 2ad37a2780..88bcfb3424 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -1,4 +1,7 @@ hello world menu list +add +add -e dinner party -t 2024-10-10 -v Alice's House +list exit From e680a6f1642cade907a2341a6f312cb875c8054f Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 14 Oct 2024 13:20:47 +0800 Subject: [PATCH 120/619] Add ViewCommand class to display participant list of an event --- .../seedu/manager/command/ViewCommand.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/main/java/seedu/manager/command/ViewCommand.java diff --git a/src/main/java/seedu/manager/command/ViewCommand.java b/src/main/java/seedu/manager/command/ViewCommand.java new file mode 100644 index 0000000000..895bee4d99 --- /dev/null +++ b/src/main/java/seedu/manager/command/ViewCommand.java @@ -0,0 +1,45 @@ +package seedu.manager.command; + +import seedu.manager.event.Event; + +public class ViewCommand extends Command{ + public static final String COMMAND_WORD = "view"; + private static final String VIEW_MESSAGE = "There are %d participants in %s! " + + "Here are your participants:"; + protected String eventName; + + /** + * Constructs an ViewCommand object with the for the specified event. + * + * @param eventName The name of the event to be viewed. + */ + public ViewCommand(String eventName) { + this.eventName = eventName; + } + + /** + * Returns a command output with a list message + * + * @return The command output with a list message + */ + public CommandOutput execute() { + Event event = null; + for (int i = 0; i < eventList.getListSize(); i++) { + if (eventList.getEvent(i).getEventName().equals(eventName)) { + event = eventList.getEvent(i); + } + } + + //to handle errors in the future + + StringBuilder outputMessage = new StringBuilder( + String.format(VIEW_MESSAGE, event.getParticipantCount(), eventName) + "\n"); + int count = 1; + for (String participant : event.getParticipantList()) { + outputMessage.append(String.format("%d. %s\n", count , participant)); + count++; + } + + return new CommandOutput(outputMessage.toString(), false); + } +} From f5a91c063c30252ceb3888f75d18aa53e53c5e99 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 14 Oct 2024 13:26:11 +0800 Subject: [PATCH 121/619] Add getter to get participant list of an event --- src/main/java/seedu/manager/event/Event.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index b6a838b5a1..7fe389995c 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -93,6 +93,10 @@ public String getEventVenue() { return eventVenue; } + public ArrayList getParticipantList() { + return participantList; + } + /** * Sets a new time for the event. * From 42c1719afc638de6e7fe5e7498b9d7f0280d31c4 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 14 Oct 2024 13:27:06 +0800 Subject: [PATCH 122/619] Delete unused addEvent method --- src/main/java/seedu/manager/event/EventList.java | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 0eea984628..8db75a1e46 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -33,15 +33,6 @@ public int getListSize() { return eventList.size(); } - /** - * Adds a new event to the event list. - * - * @param eventName The name of the event to be added. - */ - public void addEvent(String eventName) { - Event newEvent = new Event(eventName); - eventList.add(newEvent); - } /** * Adds a new event to the event list. From 15c3408c20f836f15c1801db80c53b4d5d91d719 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 14 Oct 2024 13:55:12 +0800 Subject: [PATCH 123/619] Swap eventName and partcipationName parameters in removeParticipantFromEvent --- src/main/java/seedu/manager/command/RemoveCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/command/RemoveCommand.java b/src/main/java/seedu/manager/command/RemoveCommand.java index 814244fedc..05dedb8bbd 100644 --- a/src/main/java/seedu/manager/command/RemoveCommand.java +++ b/src/main/java/seedu/manager/command/RemoveCommand.java @@ -26,7 +26,7 @@ public RemoveCommand(String eventName) { * @param eventName The name of the event the participant is to be removed from. * @param participantName The name of the participant to be removed. */ - public RemoveCommand(String eventName, String participantName) { + public RemoveCommand(String participantName, String eventName) { this.eventName = eventName; this.participantName = participantName; } From 8e6908fba7dac28e1f5edb134e1d089d40759c52 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 14 Oct 2024 13:55:39 +0800 Subject: [PATCH 124/619] Update Parser to handle view command --- .../java/seedu/manager/parser/Parser.java | 33 +++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 4509e3be72..45cdcd510e 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -7,6 +7,7 @@ import seedu.manager.command.MenuCommand; import seedu.manager.command.EchoCommand; import seedu.manager.command.ListCommand; +import seedu.manager.command.ViewCommand; /** * Represents the command parser for EventManagerCLI @@ -29,10 +30,12 @@ public Command parseCommand(String command){ return parseRemoveCommand(command, commandParts); case ListCommand.COMMAND_WORD: return new ListCommand(); - case ExitCommand.COMMAND_WORD: - return new ExitCommand(); + case ViewCommand.COMMAND_WORD: + return parseViewCommand(command, commandParts); case MenuCommand.COMMAND_WORD: return new MenuCommand(); + case ExitCommand.COMMAND_WORD: + return new ExitCommand(); default: return new EchoCommand(command); @@ -100,4 +103,30 @@ private Command parseRemoveCommand(String input, String[] commandParts) { return new EchoCommand(input); } + + /** + * Parses the input string to create a {@link Command} based on the provided command parts. + * + *

+ * This method checks the command flag extracted from the command parts. If the command + * flag is {@code "-e"}, it splits the input string to create a {@link ViewCommand} + * for viewing the participants in the event. + * Otherwise, it returns an {@link EchoCommand} with the original input. + *

+ * + * @param input the input string containing the command details. + * @param commandParts an array of strings representing the parsed command parts, + * where the second element is the command flag. + * @return a {@link Command} object representing the parsed command. + */ + private Command parseViewCommand(String input, String[] commandParts) { + String commandFlag = commandParts[1]; + + if (commandFlag.equals("-e")) { + String [] inputParts = input.split("-e"); + return new ViewCommand(inputParts[1].trim()); + } + + return new EchoCommand(input); + } } From 61536c43513d770148218dd0d6cbabf6a69d0bb0 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 14 Oct 2024 13:56:08 +0800 Subject: [PATCH 125/619] Add JUnit test for ViewCommand --- .../manager/command/ViewCommandTest.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/test/java/seedu/manager/command/ViewCommandTest.java diff --git a/src/test/java/seedu/manager/command/ViewCommandTest.java b/src/test/java/seedu/manager/command/ViewCommandTest.java new file mode 100644 index 0000000000..f6356f4076 --- /dev/null +++ b/src/test/java/seedu/manager/command/ViewCommandTest.java @@ -0,0 +1,21 @@ +package seedu.manager.command; + +import org.junit.jupiter.api.Test; +import seedu.manager.event.Event; +import seedu.manager.event.EventList; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class ViewCommandTest { + @Test + public void viewParticipant_success() { + EventList eventList = new EventList(); + + eventList.addEvent("Event 1", "2024-10-10 10:00", "Venue A"); + eventList.addParticipantToEvent("Tom", "Event 1"); + + Event event = eventList.getEvent(0); + assertEquals("Tom", event.getParticipantList().get(0)); + assertEquals(1, event.getParticipantCount()); + } +} From a83758a94e81e6f742ca74ae3c167b850638064b Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 14 Oct 2024 15:38:01 +0800 Subject: [PATCH 126/619] Trim input parameters for AddCommand and RemoveCommand in Parser --- src/main/java/seedu/manager/parser/Parser.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 45cdcd510e..529087ca22 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -64,10 +64,10 @@ public Command parseAddCommand(String input, String[] commandParts) { if (commandFlag.equals("-e")) { inputParts = input.split("(-e|-t|-v)"); - return new AddCommand(inputParts[1], inputParts[2], inputParts[3]); + return new AddCommand(inputParts[1].trim(), inputParts[2].trim(), inputParts[3].trim()); } else if (commandFlag.equals("-p")) { inputParts = input.split("(-p|-e)"); - return new AddCommand(inputParts[1], inputParts[2]); + return new AddCommand(inputParts[1].trim(), inputParts[2].trim()); } return new EchoCommand(input); @@ -95,10 +95,10 @@ private Command parseRemoveCommand(String input, String[] commandParts) { if (commandFlag.equals("-e")) { inputParts = input.split("-e"); - return new RemoveCommand(inputParts[1]); + return new RemoveCommand(inputParts[1].trim()); } else if (commandFlag.equals("-p")) { inputParts = input.split("(-p|-e)"); - return new RemoveCommand(inputParts[1], inputParts[2]); + return new RemoveCommand(inputParts[1].trim(), inputParts[2].trim()); } return new EchoCommand(input); @@ -124,7 +124,7 @@ private Command parseViewCommand(String input, String[] commandParts) { if (commandFlag.equals("-e")) { String [] inputParts = input.split("-e"); - return new ViewCommand(inputParts[1].trim()); + return new ViewCommand(inputParts[1].trim()); } return new EchoCommand(input); From 2b4de4eea3101b972e5c96b3aa2ea91f9ab2ff80 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 14 Oct 2024 16:07:53 +0800 Subject: [PATCH 127/619] Update JUnit test for view command --- .../manager/command/ViewCommandTest.java | 37 +++++++++++++++---- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/src/test/java/seedu/manager/command/ViewCommandTest.java b/src/test/java/seedu/manager/command/ViewCommandTest.java index f6356f4076..0083a35be7 100644 --- a/src/test/java/seedu/manager/command/ViewCommandTest.java +++ b/src/test/java/seedu/manager/command/ViewCommandTest.java @@ -1,21 +1,42 @@ package seedu.manager.command; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import seedu.manager.event.Event; import seedu.manager.event.EventList; +import seedu.manager.parser.Parser; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; public class ViewCommandTest { + + private Command viewCommand; + private static EventList eventList = new EventList(); + + @BeforeEach + public void setUp() { + Command command; + + command = new Parser().parseCommand("add -e Event 1 -t 2024-10-10 10:00 -v Venue A"); + command.setData(eventList); + command.execute(); + + command = new Parser().parseCommand("add -p Tom -e Event 1"); + command.setData(eventList); + command.execute(); + + viewCommand = new Parser().parseCommand("view -e Event 1"); + viewCommand.setData(eventList); + } + @Test - public void viewParticipant_success() { - EventList eventList = new EventList(); + public void execute_twoEvents_success() { + CommandOutput result = viewCommand.execute(); - eventList.addEvent("Event 1", "2024-10-10 10:00", "Venue A"); - eventList.addParticipantToEvent("Tom", "Event 1"); + String expectedMessage = "There are 1 participants in Event 1! Here are your participants:\n" + + "1. Tom\n"; - Event event = eventList.getEvent(0); - assertEquals("Tom", event.getParticipantList().get(0)); - assertEquals(1, event.getParticipantCount()); + assertEquals(expectedMessage, result.getMessage()); + assertFalse(result.getCanExit()); } } From ba6d2462ef98a6ba0e337f483015f9dd4d4161ce Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 14 Oct 2024 16:28:25 +0800 Subject: [PATCH 128/619] Add JavaDoc header for ViewCommand class --- src/main/java/seedu/manager/command/ViewCommand.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/seedu/manager/command/ViewCommand.java b/src/main/java/seedu/manager/command/ViewCommand.java index 895bee4d99..3a16dd1e59 100644 --- a/src/main/java/seedu/manager/command/ViewCommand.java +++ b/src/main/java/seedu/manager/command/ViewCommand.java @@ -2,6 +2,10 @@ import seedu.manager.event.Event; +/** + * Represents a command to view the list of participants in an event. + * The view command will search for an event by its name and display all its participants if found. + */ public class ViewCommand extends Command{ public static final String COMMAND_WORD = "view"; private static final String VIEW_MESSAGE = "There are %d participants in %s! " + From eb6211f45ba0bba2701c105460c61a2b7169409c Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 14 Oct 2024 17:15:44 +0800 Subject: [PATCH 129/619] Fix JavaDoc comment indentation --- src/main/java/seedu/manager/parser/Parser.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index babf300b04..3b5ec6b042 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -123,8 +123,8 @@ private Command parseRemoveCommand(String input, String[] commandParts) { } } - /** - * Parses the input string to create a {@link Command} based on the provided command parts. + /** + * Parses the input string to create a {@link Command} based on the provided command parts. * *

* This method checks the command flag extracted from the command parts. If the command From 4151a3230f950a426ffe0a9d18bcd62d81b640ea Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 14 Oct 2024 17:16:27 +0800 Subject: [PATCH 130/619] Swap order of declaration of static and non-static variable --- src/test/java/seedu/manager/command/ViewCommandTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/manager/command/ViewCommandTest.java b/src/test/java/seedu/manager/command/ViewCommandTest.java index 0083a35be7..7fef43e4af 100644 --- a/src/test/java/seedu/manager/command/ViewCommandTest.java +++ b/src/test/java/seedu/manager/command/ViewCommandTest.java @@ -10,8 +10,8 @@ public class ViewCommandTest { - private Command viewCommand; private static EventList eventList = new EventList(); + private Command viewCommand; @BeforeEach public void setUp() { From 7b3a4ec8c7150f91378df8700578b38a3c53ecee Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 14 Oct 2024 17:23:49 +0800 Subject: [PATCH 131/619] Edit Event toString message format --- src/main/java/seedu/manager/event/Event.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 7fe389995c..5e4a72cbea 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -122,6 +122,6 @@ public void setEventVenue(String eventVenue) { */ @Override public String toString(){ - return "Event name: " + eventName + "/ Event time: " + eventTime + "/ Event venue: " + eventVenue; + return "Event name: " + eventName + " / Event time: " + eventTime + " / Event venue: " + eventVenue; } } From a16f47182d1ca28c98ec6d1a7913d2f4b7dfb035 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 14 Oct 2024 17:24:33 +0800 Subject: [PATCH 132/619] Update JUnit tests for ListCommand with new toString message --- src/test/java/seedu/manager/command/ListCommandTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/seedu/manager/command/ListCommandTest.java b/src/test/java/seedu/manager/command/ListCommandTest.java index 96617e25b0..256b26eb3d 100644 --- a/src/test/java/seedu/manager/command/ListCommandTest.java +++ b/src/test/java/seedu/manager/command/ListCommandTest.java @@ -27,8 +27,8 @@ public void execute_twoEvents_success() { CommandOutput result = listCommand.execute(); String expectedMessage = "There are 2 events in your list! Here are your scheduled events:\n" - + "1. Event name: Event 1/ Event time: 2024-10-10 10:00/ Event venue: Venue A\n" - + "2. Event name: Event 2/ Event time: 2024-11-11 12:00/ Event venue: Venue B\n"; + + "1. Event name: Event 1 / Event time: 2024-10-10 10:00 / Event venue: Venue A\n" + + "2. Event name: Event 2 / Event time: 2024-11-11 12:00 / Event venue: Venue B\n"; assertEquals(expectedMessage, result.getMessage()); assertFalse(result.getCanExit()); From 6ee2135289468bc987d74542e858583f9d27af26 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 14 Oct 2024 17:25:11 +0800 Subject: [PATCH 133/619] Update expected test output for new Event toString message --- text-ui-test/EXPECTED.TXT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 071047b826..a40a397bd8 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -21,7 +21,7 @@ add -p PARTICIPANT_NAME -e EVENT_NAME Enter a command: Event added successfully ------------------------ Enter a command: There are 1 events in your list! Here are your scheduled events: -1. Event name: dinner party / Event time: 2024-10-10 / Event venue: Alice's House +1. Event name: dinner party / Event time: 2024-10-10 / Event venue: Alice's House ------------------------ Enter a command: Thank you for using EventManagerCLI. Goodbye! From 538436750653e0c9fd70769d786aae9a11083e30 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 14 Oct 2024 21:52:24 +0800 Subject: [PATCH 134/619] Change parseViewCommand to have its own error message --- src/main/java/seedu/manager/parser/Parser.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 3b5ec6b042..d39b8acb5a 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -24,6 +24,10 @@ public class Parser { Please enter your commands in the following format: remove -e EVENT_NAME remove -p PARTICIPANT_NAME -e EVENT_NAME"""; + private static final String INVALID_VIEW_MESSAGE = """ + Invalid command! + Please enter your commands in the following format: + view -e EVENT_NAME"""; /** * Returns a command based on the given user command string @@ -147,9 +151,9 @@ private Command parseViewCommand(String input, String[] commandParts) { return new ViewCommand(inputParts[1].trim()); } - return new InvalidCommand(INVALID_REMOVE_MESSAGE); + return new InvalidCommand(INVALID_VIEW_MESSAGE); } catch (IndexOutOfBoundsException exception) { - return new InvalidCommand(INVALID_REMOVE_MESSAGE); + return new InvalidCommand(INVALID_VIEW_MESSAGE); } } } From d79068ab45e6782c4cbb51b36311f7700bba53d3 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 14 Oct 2024 21:58:15 +0800 Subject: [PATCH 135/619] Add error handling for view command --- .../seedu/manager/command/ViewCommand.java | 37 ++++++++++--------- .../java/seedu/manager/event/EventList.java | 22 ++++++++++- 2 files changed, 39 insertions(+), 20 deletions(-) diff --git a/src/main/java/seedu/manager/command/ViewCommand.java b/src/main/java/seedu/manager/command/ViewCommand.java index 3a16dd1e59..4d56e1973c 100644 --- a/src/main/java/seedu/manager/command/ViewCommand.java +++ b/src/main/java/seedu/manager/command/ViewCommand.java @@ -2,14 +2,18 @@ import seedu.manager.event.Event; +import java.util.Optional; + /** * Represents a command to view the list of participants in an event. * The view command will search for an event by its name and display all its participants if found. */ -public class ViewCommand extends Command{ +public class ViewCommand extends Command { public static final String COMMAND_WORD = "view"; private static final String VIEW_MESSAGE = "There are %d participants in %s! " + "Here are your participants:"; + private static final String INVALID_EVENT_MESSAGE = "Event not found!"; + protected String eventName; /** @@ -22,28 +26,25 @@ public ViewCommand(String eventName) { } /** - * Returns a command output with a list message + * Returns a command output with a view message * - * @return The command output with a list message + * @return The command output with a view message */ public CommandOutput execute() { - Event event = null; - for (int i = 0; i < eventList.getListSize(); i++) { - if (eventList.getEvent(i).getEventName().equals(eventName)) { - event = eventList.getEvent(i); - } - } + Optional eventToView = eventList.getEventByName(this.eventName); - //to handle errors in the future + if (eventToView.isPresent()) { + StringBuilder outputMessage = new StringBuilder( + String.format(VIEW_MESSAGE, eventToView.get().getParticipantCount(), eventName) + "\n"); + int count = 1; + for (String participant : eventToView.get().getParticipantList()) { + outputMessage.append(String.format("%d. %s\n", count, participant)); + count++; + } - StringBuilder outputMessage = new StringBuilder( - String.format(VIEW_MESSAGE, event.getParticipantCount(), eventName) + "\n"); - int count = 1; - for (String participant : event.getParticipantList()) { - outputMessage.append(String.format("%d. %s\n", count , participant)); - count++; + return new CommandOutput(outputMessage.toString(), false); + } else { + return new CommandOutput(INVALID_EVENT_MESSAGE, false); } - - return new CommandOutput(outputMessage.toString(), false); } } diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 70ff7d91e6..71a02ca1e9 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -1,6 +1,7 @@ package seedu.manager.event; import java.util.ArrayList; +import java.util.Optional; /** @@ -58,6 +59,23 @@ public Event getEvent(int index) { return eventList.get(index); } + /** + * Returns an event in the event list with a specified name. + * Returns null if the event is not found. + * + * @param eventName The specified name + * @return the event with a specified name, or null if the event is not found + */ + public Optional getEventByName(String eventName) { + for (Event event : eventList) { + if (event.getEventName().equals(eventName)) { + return Optional.of(event); + } + } + + return Optional.empty(); + } + /** * Removes an event from the event list by its name. * @@ -69,10 +87,10 @@ public boolean removeEvent(String eventName) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { eventList.remove(event); - return true; // Event found and removed + return true; } } - return false; // Event not found + return false; } /** From a9d8c164c6e634341623eb14e5821c9bfcd9cf20 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 15 Oct 2024 19:11:12 +0800 Subject: [PATCH 136/619] Update user guide --- docs/UserGuide.md | 70 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 59 insertions(+), 11 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a9b21e76d6..27d01020fc 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -8,7 +8,7 @@ the participants and logistics of such events. ## Quick Start 1. Ensure that you have Java 17 or above installed. -2. Down the latest version of `EventManagerCLI` from [here](http://link.to/duke). +2. Down the latest version of `EventManagerCLI` from [here](https://github.com/AY2425S1-CS2113-W13-3/tp/releases). 3. Open a new terminal in the folder that you put the JAR file in, and run the program with the command ```java -jar EventManagerCLI.jar```. The following message would be printed: @@ -19,21 +19,69 @@ Enter a command: ## Features -{Give detailed description of each feature} +### Viewing the command list: `menu` +Shows a list of all valid user commands in the program. -### Exiting the program: `exit` -Exits the program. +``` +Here are the possible commands: -Format: `exit` +add -e EVENT_NAME -t TIME -v VENUE: Add an event to the event list. +list: List events. +remove -e EVENT_NAME: Remove an event from the event list. +add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant to an event. +view -e EVENT_NAME: View the list of participants of an event. +remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event. +``` -## FAQ +Format: `menu` -**Q**: How do I transfer my data to another computer? +### List all events: `list` +Shows a list of all events currently stored in the program. -**A**: {your answer here} +Format: `list` -## Command Summary +### Add an event or participant: `add` +Adds an event to the event list, or a participant to an event. + +Format: +* `add -e EVENT_NAME -t TIME -v VENUE` for adding an event to the events list. +* `add -p PARTICIPANT_NAME -e EVENT_NAME` for adding a participant to an event. + +Examples: +* `add -e Origami workshop -t Mon 1600-1800 -v Building A` adds an event with name `Origami workshop`, +time `Mon 1600-1800` and venue `Building A` to the events list. +* `add -p John Tan -e Origami workshop` adds a participant `John Tan` to the event `Origami workshop`. + +### Remove an event or participant: `remove` +Removes an event from the event list, or a participant from an event. + +Format: +* `remove -e EVENT_NAME` for removing an event from the event list. +* `remove -p PARTICIPANT_NAME -e EVENT_NAME` for removing a participant from an event. -{Give a 'cheat sheet' of commands here} +Examples: +* `remove -e Origami workshop` removes the event `Origami workshop` from the event list. +* `remove -p John Tan -e Origami workshop` removes the participant `John Tan` from the event `Origami workshop`. + +### View all participants for an event: `view` +Shows a list of all participants for an event. + +Format: `view -e EVENT_NAME` + +Examples: +* `view -e Origami workshop` shows a list of all participants for the event `Origami workshop`. + +### Exiting the program: `exit` +Exits the program. + +Format: `exit` + +## Command Summary -* Exit program `exit` +* View all commands: `view` +* List all events: `list` +* Add event: `add -e EVENT_NAME -t TIME -v VENUE` +* Add participant to an event: `add -p PARTICIPANT_NAME -e EVENT_NAME` +* Remove event: `remove -e EVENT_NAME` +* Remove participant from an event: `remove -p PARTICIPANT_NAME -e EVENT_NAME` +* View all participants for an event: `view -e EVENT_NAME` From c500306bfe6e694f599231d0c9752b03ecc80fa2 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 17 Oct 2024 08:01:17 +0800 Subject: [PATCH 137/619] Ignore manifest file --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 2873e189e1..621af74393 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ bin/ /text-ui-test/ACTUAL.TXT text-ui-test/EXPECTED-UNIX.TXT +src/main/java/META-INF/MANIFEST.MF From 8c7b263cd6a7ef77e32dfe75d92591746ba1ae3b Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 17 Oct 2024 08:39:22 +0800 Subject: [PATCH 138/619] Update Command to include functionality of CommandOutput --- .../java/seedu/manager/command/Command.java | 38 ++++++++++++++++++- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/command/Command.java b/src/main/java/seedu/manager/command/Command.java index ff043be18c..836d5b1c76 100644 --- a/src/main/java/seedu/manager/command/Command.java +++ b/src/main/java/seedu/manager/command/Command.java @@ -7,13 +7,47 @@ */ public abstract class Command { protected EventList eventList; + protected String message; + protected boolean canExit; + /** + * Constructs a new Command with whether the program can be exited from + * + * @param canExit whether the program can be exited from + */ + protected Command(boolean canExit) { + this.canExit = canExit; + } + + /** + * Sets the command's event list to a specified event list + * + * @param events the specified event list + */ public void setData(EventList events) { this.eventList = events; } /** - * Returns the output of the executable command + * Executes the command + */ + public abstract void execute(); + + /** + * Returns the command's message + * + * @return the command's message + */ + public String getMessage() { + return this.message; + } + + /** + * Returns true if the program can be exited from, returns false otherwise + * + * @return true if the program can be exited from, false otherwise */ - public abstract CommandOutput execute(); + public boolean getCanExit() { + return canExit; + } } From e638e7eb23183737710272b9cf0ac97d93d877ee Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 17 Oct 2024 08:39:53 +0800 Subject: [PATCH 139/619] Update child classes of Command with new functionality --- .../java/seedu/manager/command/AddCommand.java | 11 +++++------ .../java/seedu/manager/command/ExitCommand.java | 15 ++++++++++----- .../seedu/manager/command/InvalidCommand.java | 9 ++++----- .../java/seedu/manager/command/ListCommand.java | 15 ++++++++++----- .../java/seedu/manager/command/MenuCommand.java | 15 ++++++++++----- .../java/seedu/manager/command/RemoveCommand.java | 15 +++++++-------- .../java/seedu/manager/command/ViewCommand.java | 11 +++++------ 7 files changed, 51 insertions(+), 40 deletions(-) diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index 95f74dd320..ec379908d3 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -21,6 +21,7 @@ public class AddCommand extends Command { * @param venue The venue of the event to be added. */ public AddCommand(String eventName, String time, String venue) { + super(false); this.eventName = eventName; this.time = time; this.venue = venue; @@ -35,6 +36,7 @@ public AddCommand(String eventName, String time, String venue) { * or the event to be created if no participant name is provided. */ public AddCommand(String participantName, String eventName) { + super(false); this.participantName = participantName; this.eventName = eventName; } @@ -47,18 +49,15 @@ public AddCommand(String participantName, String eventName) { * If a participant name is provided, it will add the participant to the * specified event in the event list. *

- * - * @return a {@link CommandOutput} object containing a message about the result of the execution. - * The message indicates whether an event or participant was successfully added. */ @Override - public CommandOutput execute() { + public void execute() { if (participantName == null) { this.eventList.addEvent(this.eventName, this.time, this.venue); - return new CommandOutput(ADD_EVENT_MESSAGE, false); + this.message = ADD_EVENT_MESSAGE; } else { this.eventList.addParticipantToEvent(this.participantName, this.eventName); - return new CommandOutput(ADD_PARTICIPANT_MESSAGE, false); + this.message = ADD_PARTICIPANT_MESSAGE; } } } diff --git a/src/main/java/seedu/manager/command/ExitCommand.java b/src/main/java/seedu/manager/command/ExitCommand.java index 3b0c384d14..1db9224fc6 100644 --- a/src/main/java/seedu/manager/command/ExitCommand.java +++ b/src/main/java/seedu/manager/command/ExitCommand.java @@ -8,11 +8,16 @@ public class ExitCommand extends Command { private static final String EXIT_MESSAGE = "Thank you for using EventManagerCLI. Goodbye!"; /** - * Returns a command output with an exit message - * - * @return The command output with an exit message + * Constructs a new ExitCommand */ - public CommandOutput execute() { - return new CommandOutput(EXIT_MESSAGE, true); + public ExitCommand() { + super(true); + } + + /** + * Executes the exit command + */ + public void execute() { + this.message = EXIT_MESSAGE; } } diff --git a/src/main/java/seedu/manager/command/InvalidCommand.java b/src/main/java/seedu/manager/command/InvalidCommand.java index bbaf2abf00..b3a97be87f 100644 --- a/src/main/java/seedu/manager/command/InvalidCommand.java +++ b/src/main/java/seedu/manager/command/InvalidCommand.java @@ -12,16 +12,15 @@ public class InvalidCommand extends Command { * @param errorMessage The specified error message */ public InvalidCommand(String errorMessage) { + super(false); this.errorMessage = errorMessage; } /** - * Returns a new command output with the error message - * - * @return A command output with the error message + * Executes the invalid command */ @Override - public CommandOutput execute() { - return new CommandOutput(this.errorMessage, false); + public void execute() { + this.message = this.errorMessage; } } diff --git a/src/main/java/seedu/manager/command/ListCommand.java b/src/main/java/seedu/manager/command/ListCommand.java index fb1cc6c4e9..dffb4c6a7e 100644 --- a/src/main/java/seedu/manager/command/ListCommand.java +++ b/src/main/java/seedu/manager/command/ListCommand.java @@ -7,16 +7,21 @@ public class ListCommand extends Command { "Here are your scheduled events:"; /** - * Returns a command output with a list message - * - * @return The command output with a list message + * Constructs a new ListCommand */ - public CommandOutput execute() { + public ListCommand() { + super(false); + } + + /** + * Executes the ListCommand by getting a list of all events + */ + public void execute() { StringBuilder outputMessage = new StringBuilder(String.format(LIST_MESSAGE, eventList.getListSize()) + "\n"); for (int i = 0; i < eventList.getListSize(); i++) { outputMessage.append(String.format("%d. %s\n", i + 1, eventList.getEvent(i).toString())); } - return new CommandOutput(outputMessage.toString(), false); + this.message = outputMessage.toString(); } } diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 537b30cca6..969313c18c 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -16,12 +16,17 @@ public class MenuCommand extends Command { remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event."""; /** - * Returns a command output with the menu message - * - * @return The command output with the menu message + * Constructs a new MenuCommand + */ + public MenuCommand() { + super(false); + } + + /** + * Executes the menu command */ @Override - public CommandOutput execute() { - return new CommandOutput(MENU_MESSAGE, false); + public void execute() { + this.message = MENU_MESSAGE; } } diff --git a/src/main/java/seedu/manager/command/RemoveCommand.java b/src/main/java/seedu/manager/command/RemoveCommand.java index 05dedb8bbd..c66f9cc292 100644 --- a/src/main/java/seedu/manager/command/RemoveCommand.java +++ b/src/main/java/seedu/manager/command/RemoveCommand.java @@ -17,6 +17,7 @@ public class RemoveCommand extends Command { * @param eventName The name of the event to be removed. */ public RemoveCommand(String eventName) { + super(false); this.eventName = eventName; } @@ -27,6 +28,7 @@ public RemoveCommand(String eventName) { * @param participantName The name of the participant to be removed. */ public RemoveCommand(String participantName, String eventName) { + super(false); this.eventName = eventName; this.participantName = participantName; } @@ -37,15 +39,12 @@ public RemoveCommand(String participantName, String eventName) { *

* If no participant name is provided, this method attempts to remove the event * specified by the event name. If a participant name is provided, it tries to - * remove that participant from the specified event. The result of the operation - * is indicated by the return value. + * remove that participant from the specified event. The command's message is then + * set depending on whether the removal was successful or failed. *

- * - * @return a {@link CommandOutput} object containing a message indicating - * whether the removal was successful or failed. */ @Override - public CommandOutput execute() { + public void execute() { boolean isRemoved; if (participantName == null) { @@ -55,9 +54,9 @@ public CommandOutput execute() { } if (isRemoved) { - return new CommandOutput(REMOVE_SUCCESS, false); + this.message = REMOVE_SUCCESS; } else { - return new CommandOutput(REMOVE_FAILURE, false); + this.message = REMOVE_FAILURE; } } } diff --git a/src/main/java/seedu/manager/command/ViewCommand.java b/src/main/java/seedu/manager/command/ViewCommand.java index 4d56e1973c..1a264658b2 100644 --- a/src/main/java/seedu/manager/command/ViewCommand.java +++ b/src/main/java/seedu/manager/command/ViewCommand.java @@ -22,15 +22,14 @@ public class ViewCommand extends Command { * @param eventName The name of the event to be viewed. */ public ViewCommand(String eventName) { + super(false); this.eventName = eventName; } /** - * Returns a command output with a view message - * - * @return The command output with a view message + * Executes the command to view the participants for an event. */ - public CommandOutput execute() { + public void execute() { Optional eventToView = eventList.getEventByName(this.eventName); if (eventToView.isPresent()) { @@ -42,9 +41,9 @@ public CommandOutput execute() { count++; } - return new CommandOutput(outputMessage.toString(), false); + this.message = outputMessage.toString(); } else { - return new CommandOutput(INVALID_EVENT_MESSAGE, false); + this.message = INVALID_EVENT_MESSAGE; } } } From 36b22e5113dc305943062095109b08ea1dd3e0b0 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 17 Oct 2024 08:40:14 +0800 Subject: [PATCH 140/619] Update Main and Ui to have new functionality --- src/main/java/seedu/manager/Main.java | 6 +++--- src/main/java/seedu/manager/ui/Ui.java | 7 ++++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 08e432df4e..ab8d247b38 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -31,10 +31,10 @@ private static void runCommandLoop() { String userCommandText = ui.getCommand(); command = new Parser().parseCommand(userCommandText); command.setData(events); - CommandOutput output = command.execute(); - ui.showOutputToUser(output); + command.execute(); + ui.showOutputToUser(command); - isGettingCommands = !output.getCanExit(); + isGettingCommands = !command.getCanExit(); } } } diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index eee700d76b..10ecd91231 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -1,5 +1,6 @@ package seedu.manager.ui; +import seedu.manager.command.Command; import seedu.manager.command.CommandOutput; import java.util.Scanner; @@ -37,10 +38,10 @@ public String getCommand() { } /** - * show the output of command to the users. + * show the output message a of command to the users. */ - public void showOutputToUser(CommandOutput output){ - System.out.println(output.getMessage()); + public void showOutputToUser(Command command){ + System.out.println(command.getMessage()); System.out.println(SEPARATOR); } } From 4b7c8cc2582526c6b35e3a68cbf0a89b3573943d Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 17 Oct 2024 15:29:30 +0800 Subject: [PATCH 141/619] Add assert statement to parseAddCommand --- src/main/java/seedu/manager/parser/Parser.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index d39b8acb5a..a92f3eeaf5 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -74,6 +74,7 @@ public Command parseCommand(String command){ * @return a {@link Command} object representing the parsed command. */ public Command parseAddCommand(String input, String[] commandParts) { + assert commandParts[0].equalsIgnoreCase(AddCommand.COMMAND_WORD); try { String commandFlag = commandParts[1]; String[] inputParts; From bf1bf9ec40c32d6a29656f5572ed232e2f833a1d Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 17 Oct 2024 18:39:56 +0800 Subject: [PATCH 142/619] Add logging for Parser --- src/main/java/seedu/manager/Main.java | 1 - src/main/java/seedu/manager/parser/Parser.java | 13 +++++++++++++ src/main/java/seedu/manager/ui/Ui.java | 1 - 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index ab8d247b38..9c202a0e36 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -1,7 +1,6 @@ package seedu.manager; import seedu.manager.command.Command; -import seedu.manager.command.CommandOutput; import seedu.manager.event.EventList; import seedu.manager.parser.Parser; import seedu.manager.ui.Ui; diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index a92f3eeaf5..229ea4b0ce 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -1,5 +1,6 @@ package seedu.manager.parser; +import seedu.manager.Main; import seedu.manager.command.Command; import seedu.manager.command.AddCommand; import seedu.manager.command.InvalidCommand; @@ -9,10 +10,16 @@ import seedu.manager.command.ListCommand; import seedu.manager.command.ViewCommand; +import java.util.logging.Logger; + +import static java.util.logging.Level.INFO; +import static java.util.logging.Level.WARNING; + /** * Represents the command parser for EventManagerCLI */ public class Parser { + private static final Logger logger = Logger.getLogger(Parser.class.getName()); private static final String INVALID_COMMAND_MESSAGE = "Invalid command!"; private static final String INVALID_ADD_MESSAGE = """ Invalid command! @@ -87,8 +94,10 @@ public Command parseAddCommand(String input, String[] commandParts) { return new AddCommand(inputParts[1].trim(), inputParts[2].trim()); } + logger.log(WARNING,"Invalid command format"); return new InvalidCommand(INVALID_ADD_MESSAGE); } catch (IndexOutOfBoundsException exception) { + logger.log(WARNING,"Invalid command format"); return new InvalidCommand(INVALID_ADD_MESSAGE); } } @@ -122,8 +131,10 @@ private Command parseRemoveCommand(String input, String[] commandParts) { return new RemoveCommand(inputParts[1].trim(), inputParts[2].trim()); } + logger.log(WARNING,"Invalid command format"); return new InvalidCommand(INVALID_REMOVE_MESSAGE); } catch (IndexOutOfBoundsException exception) { + logger.log(WARNING,"Invalid command format"); return new InvalidCommand(INVALID_REMOVE_MESSAGE); } } @@ -152,8 +163,10 @@ private Command parseViewCommand(String input, String[] commandParts) { return new ViewCommand(inputParts[1].trim()); } + logger.log(WARNING,"Invalid command format"); return new InvalidCommand(INVALID_VIEW_MESSAGE); } catch (IndexOutOfBoundsException exception) { + logger.log(WARNING,"Invalid command format"); return new InvalidCommand(INVALID_VIEW_MESSAGE); } } diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index 10ecd91231..0251643da3 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -1,7 +1,6 @@ package seedu.manager.ui; import seedu.manager.command.Command; -import seedu.manager.command.CommandOutput; import java.util.Scanner; From ca8f7f5ce6b12fd09f0509f08f4779742ec6f17d Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 17 Oct 2024 18:40:22 +0800 Subject: [PATCH 143/619] Update unit tests to work with new functionality --- src/test/java/seedu/manager/command/ListCommandTest.java | 7 +++---- src/test/java/seedu/manager/command/ViewCommandTest.java | 7 +++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/test/java/seedu/manager/command/ListCommandTest.java b/src/test/java/seedu/manager/command/ListCommandTest.java index 256b26eb3d..30304deaab 100644 --- a/src/test/java/seedu/manager/command/ListCommandTest.java +++ b/src/test/java/seedu/manager/command/ListCommandTest.java @@ -20,17 +20,16 @@ public void setUp() { listCommand = new ListCommand(); listCommand.setData(eventList); + listCommand.execute(); } @Test public void execute_twoEvents_success() { - CommandOutput result = listCommand.execute(); - String expectedMessage = "There are 2 events in your list! Here are your scheduled events:\n" + "1. Event name: Event 1 / Event time: 2024-10-10 10:00 / Event venue: Venue A\n" + "2. Event name: Event 2 / Event time: 2024-11-11 12:00 / Event venue: Venue B\n"; - assertEquals(expectedMessage, result.getMessage()); - assertFalse(result.getCanExit()); + assertEquals(expectedMessage, listCommand.getMessage()); + assertFalse(listCommand.getCanExit()); } } diff --git a/src/test/java/seedu/manager/command/ViewCommandTest.java b/src/test/java/seedu/manager/command/ViewCommandTest.java index 7fef43e4af..f20a802437 100644 --- a/src/test/java/seedu/manager/command/ViewCommandTest.java +++ b/src/test/java/seedu/manager/command/ViewCommandTest.java @@ -27,16 +27,15 @@ public void setUp() { viewCommand = new Parser().parseCommand("view -e Event 1"); viewCommand.setData(eventList); + viewCommand.execute(); } @Test public void execute_twoEvents_success() { - CommandOutput result = viewCommand.execute(); - String expectedMessage = "There are 1 participants in Event 1! Here are your participants:\n" + "1. Tom\n"; - assertEquals(expectedMessage, result.getMessage()); - assertFalse(result.getCanExit()); + assertEquals(expectedMessage, viewCommand.getMessage()); + assertFalse(viewCommand.getCanExit()); } } From b244b84d9a2a8c45e9dae1da684fc0f11d179e44 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 17 Oct 2024 18:50:35 +0800 Subject: [PATCH 144/619] Remove unused imports from Parser and fix indentation in MenuCommand --- src/main/java/seedu/manager/command/MenuCommand.java | 2 +- src/main/java/seedu/manager/parser/Parser.java | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 969313c18c..61cbcbefa6 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -27,6 +27,6 @@ public MenuCommand() { */ @Override public void execute() { - this.message = MENU_MESSAGE; + this.message = MENU_MESSAGE; } } diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 229ea4b0ce..bd1b765b54 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -1,6 +1,5 @@ package seedu.manager.parser; -import seedu.manager.Main; import seedu.manager.command.Command; import seedu.manager.command.AddCommand; import seedu.manager.command.InvalidCommand; @@ -12,7 +11,6 @@ import java.util.logging.Logger; -import static java.util.logging.Level.INFO; import static java.util.logging.Level.WARNING; /** From 549201e1a198f59f7fc15c32a7d11750aff5aab8 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Fri, 18 Oct 2024 00:42:21 +0800 Subject: [PATCH 145/619] . --- src/main/java/seedu/manager/parser/Parser.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index d39b8acb5a..1284e2da0e 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -9,6 +9,7 @@ import seedu.manager.command.ListCommand; import seedu.manager.command.ViewCommand; + /** * Represents the command parser for EventManagerCLI */ From a6fcd4b505abd269fa7492216028a478e3cf8493 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Fri, 18 Oct 2024 01:23:17 +0800 Subject: [PATCH 146/619] Add assertions to ListCommand and Parser --- .../seedu/manager/command/CommandOutput.java | 39 ------------------- .../seedu/manager/command/ListCommand.java | 1 + .../java/seedu/manager/parser/Parser.java | 2 + 3 files changed, 3 insertions(+), 39 deletions(-) delete mode 100644 src/main/java/seedu/manager/command/CommandOutput.java diff --git a/src/main/java/seedu/manager/command/CommandOutput.java b/src/main/java/seedu/manager/command/CommandOutput.java deleted file mode 100644 index b3db269614..0000000000 --- a/src/main/java/seedu/manager/command/CommandOutput.java +++ /dev/null @@ -1,39 +0,0 @@ -package seedu.manager.command; - -/** - * Represents the output of the executed command - */ -public class CommandOutput { - private final String message; - private final boolean canExit; - - /** - * Constructs a new CommandOutput with a given message and whether the program can be exited from - * - * @param message The given message - * @param canExit Whether the program can be exited from - */ - public CommandOutput(String message, boolean canExit) { - this.message = message; - this.canExit = canExit; - } - - /** - * Get the message attribute of CommandOutput - * - * @return the message of command output - */ - public String getMessage() { - return message; - } - - /** - * Returns true if the program can be exited from, - * returns false otherwise. - * - * @return Whether the program can be exited from - */ - public boolean getCanExit() { - return canExit; - } -} diff --git a/src/main/java/seedu/manager/command/ListCommand.java b/src/main/java/seedu/manager/command/ListCommand.java index dffb4c6a7e..34e21f28d1 100644 --- a/src/main/java/seedu/manager/command/ListCommand.java +++ b/src/main/java/seedu/manager/command/ListCommand.java @@ -19,6 +19,7 @@ public ListCommand() { public void execute() { StringBuilder outputMessage = new StringBuilder(String.format(LIST_MESSAGE, eventList.getListSize()) + "\n"); for (int i = 0; i < eventList.getListSize(); i++) { + assert eventList.getEvent(i) != null : "Event at index " + i + " should not be null."; outputMessage.append(String.format("%d. %s\n", i + 1, eventList.getEvent(i).toString())); } diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index bd1b765b54..6306b7d388 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -117,6 +117,7 @@ public Command parseAddCommand(String input, String[] commandParts) { * @return a {@link Command} object representing the parsed command. */ private Command parseRemoveCommand(String input, String[] commandParts) { + assert commandParts[0].equalsIgnoreCase(RemoveCommand.COMMAND_WORD); try { String commandFlag = commandParts[1]; String[] inputParts; @@ -153,6 +154,7 @@ private Command parseRemoveCommand(String input, String[] commandParts) { * @return a {@link Command} object representing the parsed command. */ private Command parseViewCommand(String input, String[] commandParts) { + assert commandParts[0].equalsIgnoreCase(ViewCommand.COMMAND_WORD); try { String commandFlag = commandParts[1]; From 9b49228eef8b569b0a9d204d732a721054d23ec5 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Fri, 18 Oct 2024 01:55:22 +0800 Subject: [PATCH 147/619] add logging to parseAddCommand --- src/main/java/seedu/manager/parser/Parser.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 6306b7d388..b8b9e78ebb 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -86,9 +86,13 @@ public Command parseAddCommand(String input, String[] commandParts) { if (commandFlag.equals("-e")) { inputParts = input.split("(-e|-t|-v)"); + logger.info("Creating AddCommand for event with details: " + + inputParts[1].trim() + ", " + inputParts[2].trim() + ", " + inputParts[3].trim()); return new AddCommand(inputParts[1].trim(), inputParts[2].trim(), inputParts[3].trim()); } else if (commandFlag.equals("-p")) { inputParts = input.split("(-p|-e)"); + logger.info("Creating AddCommand for participant with details: " + + inputParts[1].trim() + ", " + inputParts[2].trim()); return new AddCommand(inputParts[1].trim(), inputParts[2].trim()); } From 2661d84269cc9c6096c8829c67fccf28d393bd59 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 18 Oct 2024 22:23:46 +0800 Subject: [PATCH 148/619] Add isDone member and associated methods to Event class --- src/main/java/seedu/manager/event/Event.java | 25 ++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 5e4a72cbea..dc00dbb2b7 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -11,6 +11,7 @@ public class Event { private final String eventName; private String eventTime; private String eventVenue; + private boolean isDone; /** * Constructs an Event with the specified name. @@ -34,6 +35,7 @@ public Event(String eventName, String eventTime, String eventVenue) { this.eventTime = eventTime; this.eventVenue = eventVenue; this.participantList = new ArrayList<>(); + this.isDone = false; } /** @@ -97,6 +99,13 @@ public ArrayList getParticipantList() { return participantList; } + /** + * @return true if the event is marked done, false otherwise + */ + public boolean isDone() { + return isDone; + } + /** * Sets a new time for the event. * @@ -115,6 +124,22 @@ public void setEventVenue(String eventVenue) { this.eventVenue = eventVenue; } + /** + * Sets if the event is done or not done + * + * @param isDone if the event is done + */ + public void setDone(boolean isDone) { + this.isDone = isDone; + } + + /** + * @return 'Y' if event is marked done, 'N' otherwise + */ + public char markIfDone() { + return (this.isDone) ? 'Y' : 'N'; + } + /** * Returns a string representation of the event, indicating its name, time and venue. * From 89951adcb0feea0ea1bb612f42d3eba029751556 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 18 Oct 2024 22:34:30 +0800 Subject: [PATCH 149/619] Update toString of Event to print if event has been marked done --- src/main/java/seedu/manager/event/Event.java | 3 ++- src/test/java/seedu/manager/command/ListCommandTest.java | 4 ++-- text-ui-test/EXPECTED.TXT | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index dc00dbb2b7..a7d9134eb2 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -147,6 +147,7 @@ public char markIfDone() { */ @Override public String toString(){ - return "Event name: " + eventName + " / Event time: " + eventTime + " / Event venue: " + eventVenue; + return String.format("Event name: %s / Event time: %s / Event venue: %s / Done: %c", eventName, eventTime, + eventVenue, markIfDone()); } } diff --git a/src/test/java/seedu/manager/command/ListCommandTest.java b/src/test/java/seedu/manager/command/ListCommandTest.java index 30304deaab..847fc0fa5a 100644 --- a/src/test/java/seedu/manager/command/ListCommandTest.java +++ b/src/test/java/seedu/manager/command/ListCommandTest.java @@ -26,8 +26,8 @@ public void setUp() { @Test public void execute_twoEvents_success() { String expectedMessage = "There are 2 events in your list! Here are your scheduled events:\n" - + "1. Event name: Event 1 / Event time: 2024-10-10 10:00 / Event venue: Venue A\n" - + "2. Event name: Event 2 / Event time: 2024-11-11 12:00 / Event venue: Venue B\n"; + + "1. Event name: Event 1 / Event time: 2024-10-10 10:00 / Event venue: Venue A / Done: N\n" + + "2. Event name: Event 2 / Event time: 2024-11-11 12:00 / Event venue: Venue B / Done: N\n"; assertEquals(expectedMessage, listCommand.getMessage()); assertFalse(listCommand.getCanExit()); diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index a40a397bd8..59f14548e1 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -21,7 +21,7 @@ add -p PARTICIPANT_NAME -e EVENT_NAME Enter a command: Event added successfully ------------------------ Enter a command: There are 1 events in your list! Here are your scheduled events: -1. Event name: dinner party / Event time: 2024-10-10 / Event venue: Alice's House +1. Event name: dinner party / Event time: 2024-10-10 / Event venue: Alice's House / Done: N ------------------------ Enter a command: Thank you for using EventManagerCLI. Goodbye! From 326036eb90c3abfc316ca9b3e60e56ac09e92901 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 18 Oct 2024 22:50:45 +0800 Subject: [PATCH 150/619] Add new Mark command to mark events as done --- .../seedu/manager/command/MarkCommand.java | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/main/java/seedu/manager/command/MarkCommand.java diff --git a/src/main/java/seedu/manager/command/MarkCommand.java b/src/main/java/seedu/manager/command/MarkCommand.java new file mode 100644 index 0000000000..97ac8fb217 --- /dev/null +++ b/src/main/java/seedu/manager/command/MarkCommand.java @@ -0,0 +1,42 @@ +package seedu.manager.command; + +import seedu.manager.event.Event; + +import java.util.Optional; + +/** + * Represents an executable mark command + */ +public class MarkCommand extends Command { + public static final String COMMAND_WORD = "mark"; + + private static final String EVENT_MARK_MESSAGE = "Event marked as done"; + private static final String INVALID_EVENT_MESSAGE = "Event not found!"; + + private String eventName; + + /** + * Constructs a new MarkCommand with the given event name + * + * @param eventName the given event name + */ + public MarkCommand(String eventName) { + super(false); + this.eventName = eventName; + } + + /** + * Executes a mark command by marking the specified event as done + */ + @Override + public void execute() { + Optional eventToMark = this.eventList.getEventByName(this.eventName); + + if (eventToMark.isPresent()) { + eventToMark.get().setDone(true); + this.message = EVENT_MARK_MESSAGE; + } else { + this.message = INVALID_EVENT_MESSAGE; + } + } +} From 4ef357db24fd2f142ebc13fc184ffa720b533cdd Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 18 Oct 2024 23:00:54 +0800 Subject: [PATCH 151/619] Add JUnit tests for MarkCommand --- .../manager/command/MarkCommandTest.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/test/java/seedu/manager/command/MarkCommandTest.java diff --git a/src/test/java/seedu/manager/command/MarkCommandTest.java b/src/test/java/seedu/manager/command/MarkCommandTest.java new file mode 100644 index 0000000000..c4eb97b4d0 --- /dev/null +++ b/src/test/java/seedu/manager/command/MarkCommandTest.java @@ -0,0 +1,33 @@ +package seedu.manager.command; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import seedu.manager.event.EventList; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class MarkCommandTest { + private EventList eventList; + + @BeforeEach + public void testSetUp() { + eventList = new EventList(); + eventList.addEvent("Event 1", "2024-10-10 1600", "Venue 1"); + } + + @Test + public void execute_eventPresent_success() { + MarkCommand command = new MarkCommand("Event 1"); + command.setData(eventList); + command.execute(); + assertEquals("Event marked as done", command.getMessage()); + } + + @Test + public void execute_eventAbsent_failure() { + MarkCommand command = new MarkCommand("Event 2"); + command.setData(eventList); + command.execute(); + assertEquals("Event not found!", command.getMessage()); + } +} From b7caf105f3fc3789f0c1539b3bd7e5487b0710d0 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 18 Oct 2024 23:16:13 +0800 Subject: [PATCH 152/619] Add functionality to mark events not done to MarkCommand --- .../seedu/manager/command/MarkCommand.java | 12 +++++++---- .../manager/command/MarkCommandTest.java | 21 ++++++++++++++----- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/src/main/java/seedu/manager/command/MarkCommand.java b/src/main/java/seedu/manager/command/MarkCommand.java index 97ac8fb217..58db304b6f 100644 --- a/src/main/java/seedu/manager/command/MarkCommand.java +++ b/src/main/java/seedu/manager/command/MarkCommand.java @@ -11,30 +11,34 @@ public class MarkCommand extends Command { public static final String COMMAND_WORD = "mark"; private static final String EVENT_MARK_MESSAGE = "Event marked as done"; + private static final String EVENT_UNMARK_MESSAGE = "Event marked not done"; private static final String INVALID_EVENT_MESSAGE = "Event not found!"; private String eventName; + private boolean toMark; /** * Constructs a new MarkCommand with the given event name * * @param eventName the given event name */ - public MarkCommand(String eventName) { + public MarkCommand(String eventName, boolean toMark) { super(false); this.eventName = eventName; + this.toMark = toMark; } /** - * Executes a mark command by marking the specified event as done + * Executes a mark command by marking the specified event as done or not done, + * depending on the value of toMark. */ @Override public void execute() { Optional eventToMark = this.eventList.getEventByName(this.eventName); if (eventToMark.isPresent()) { - eventToMark.get().setDone(true); - this.message = EVENT_MARK_MESSAGE; + eventToMark.get().setDone(this.toMark); + this.message = (this.toMark) ? EVENT_MARK_MESSAGE : EVENT_UNMARK_MESSAGE; } else { this.message = INVALID_EVENT_MESSAGE; } diff --git a/src/test/java/seedu/manager/command/MarkCommandTest.java b/src/test/java/seedu/manager/command/MarkCommandTest.java index c4eb97b4d0..c98c68327b 100644 --- a/src/test/java/seedu/manager/command/MarkCommandTest.java +++ b/src/test/java/seedu/manager/command/MarkCommandTest.java @@ -16,18 +16,29 @@ public void testSetUp() { } @Test - public void execute_eventPresent_success() { - MarkCommand command = new MarkCommand("Event 1"); + public void execute_eventPresentMarkDone_success() { + String expectedMessage = "Event marked as done"; + MarkCommand command = new MarkCommand("Event 1", true); command.setData(eventList); command.execute(); - assertEquals("Event marked as done", command.getMessage()); + assertEquals(expectedMessage, command.getMessage()); + } + + @Test + public void execute_eventPresentMarkNotDone_success() { + String expectedMessage = "Event marked not done"; + MarkCommand command = new MarkCommand("Event 1", false); + command.setData(eventList); + command.execute(); + assertEquals(expectedMessage, command.getMessage()); } @Test public void execute_eventAbsent_failure() { - MarkCommand command = new MarkCommand("Event 2"); + String expectedMessage = "Event not found!"; + MarkCommand command = new MarkCommand("Event 2", true); command.setData(eventList); command.execute(); - assertEquals("Event not found!", command.getMessage()); + assertEquals(expectedMessage, command.getMessage()); } } From 6c18c8647fdf78aa41cbd3f1122f87f314a3e57f Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 19 Oct 2024 10:00:16 +0800 Subject: [PATCH 153/619] Add functionality for executing the mark command to Parser --- .../seedu/manager/command/MenuCommand.java | 3 +- .../java/seedu/manager/parser/Parser.java | 66 ++++++++++++++++++- 2 files changed, 67 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 61cbcbefa6..831b56ca4a 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -13,7 +13,8 @@ public class MenuCommand extends Command { remove -e EVENT_NAME: Remove an event from the event list. add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant to an event. view -e EVENT_NAME: View the list of participants of an event. - remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event."""; + remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event. + mark -e EVENT -s STATUS: Mark an event as done or not done"""; /** * Constructs a new MenuCommand diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index b8b9e78ebb..0068b46e41 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -3,6 +3,7 @@ import seedu.manager.command.Command; import seedu.manager.command.AddCommand; import seedu.manager.command.InvalidCommand; +import seedu.manager.command.MarkCommand; import seedu.manager.command.RemoveCommand; import seedu.manager.command.ExitCommand; import seedu.manager.command.MenuCommand; @@ -33,6 +34,14 @@ public class Parser { Invalid command! Please enter your commands in the following format: view -e EVENT_NAME"""; + private static final String INVALID_MARK_MESSAGE = """ + Invalid command! + Please enter your commands in the following format: + mark -e EVENT -s STATUS"""; + private static final String INVALID_EVENT_STATUS_MESSAGE = """ + Invalid event status! + Please set the event status as either "done" or "undone" + """; /** * Returns a command based on the given user command string @@ -56,7 +65,8 @@ public Command parseCommand(String command){ return new MenuCommand(); case ExitCommand.COMMAND_WORD: return new ExitCommand(); - + case MarkCommand.COMMAND_WORD: + return parseMarkCommand(command, commandParts); default: return new InvalidCommand(INVALID_COMMAND_MESSAGE); } @@ -174,4 +184,58 @@ private Command parseViewCommand(String input, String[] commandParts) { return new InvalidCommand(INVALID_VIEW_MESSAGE); } } + + /** + * Parses the input string to create a {@link Command} based on the provided command parts. + * + *

+ * This method checks the command flag extracted from the command parts. If the command + * flag is {@code "-e"}, it splits the input string to create a {@link MarkCommand} + * to mark an event done or undone. If the command flag is {@code "-p"}, it creates a + * {@link RemoveCommand} for removing a participant from an event. Otherwise, it returns + * an {@link InvalidCommand} with an error message. + *

+ * + * @param input the input string containing the command details. + * @param commandParts an array of strings representing the parsed command parts, + * where the second element is the command flag. + * @return a {@link Command} object representing the parsed command. + */ + private Command parseMarkCommand(String input, String[] commandParts) { + assert commandParts[0].equalsIgnoreCase(MarkCommand.COMMAND_WORD); + try { + String commandFlag = commandParts[1]; + + if (commandFlag.equalsIgnoreCase("-e")) { + String[] inputParts = input.split("-e|-s"); + return getMarkEventCommand(inputParts[1].trim(), inputParts[2].trim()); + } + + logger.log(WARNING,"Invalid command format"); + return new InvalidCommand(INVALID_MARK_MESSAGE); + } catch (IndexOutOfBoundsException exception) { + logger.log(WARNING,"Invalid command format"); + return new InvalidCommand(INVALID_MARK_MESSAGE); + } + } + + /** + * Returns a {@link MarkCommand} with a given event name and status, or an + * {@link InvalidCommand} if the status is invalid + * + * @param eventName the given event name + * @param status the given event status + * @return a MarkCommand with a given event name and status, or an + * InvalidCommand if the status is invalid + */ + private Command getMarkEventCommand(String eventName, String status) { + if (status.equalsIgnoreCase("done")) { + return new MarkCommand(eventName, true); + } else if (status.equalsIgnoreCase("undone")) { + return new MarkCommand(eventName, false); + } else { + logger.log(WARNING,"Invalid status keyword"); + return new InvalidCommand(INVALID_EVENT_STATUS_MESSAGE); + } + } } From 1024f14cbef9680135c26f5d2016048a116db128 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 19 Oct 2024 10:03:43 +0800 Subject: [PATCH 154/619] Fix Javadoc for parseMarkCommand method --- src/main/java/seedu/manager/parser/Parser.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 0068b46e41..7803edb84e 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -191,9 +191,8 @@ private Command parseViewCommand(String input, String[] commandParts) { *

* This method checks the command flag extracted from the command parts. If the command * flag is {@code "-e"}, it splits the input string to create a {@link MarkCommand} - * to mark an event done or undone. If the command flag is {@code "-p"}, it creates a - * {@link RemoveCommand} for removing a participant from an event. Otherwise, it returns - * an {@link InvalidCommand} with an error message. + * to mark an event done or undone. Otherwise, it returns an {@link InvalidCommand} + * with an error message. *

* * @param input the input string containing the command details. From 2cd259a67c8a9e165de44bac605e0247de2db262 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 19 Oct 2024 10:20:47 +0800 Subject: [PATCH 155/619] Add JUnit tests for parsing of mark command --- .../java/seedu/manager/parser/ParserTest.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index b8fc075990..bbe8f8bd9a 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -5,6 +5,7 @@ import seedu.manager.command.Command; import seedu.manager.command.ExitCommand; import seedu.manager.command.InvalidCommand; +import seedu.manager.command.MarkCommand; import seedu.manager.command.MenuCommand; import seedu.manager.command.ListCommand; import seedu.manager.command.RemoveCommand; @@ -76,4 +77,28 @@ public void removeCommand_removeNoParameter_invalid() { assertInstanceOf(InvalidCommand.class, command); } + + @Test + public void parseCommand_markEvent_mark() { + Parser parser = new Parser(); + Command command = parser.parseCommand("mark -e event -s done"); + + assertInstanceOf(MarkCommand.class, command); + } + + @Test + public void parseCommand_markEventNoStatus_invalid() { + Parser parser = new Parser(); + Command command = parser.parseCommand("mark -e event"); + + assertInstanceOf(InvalidCommand.class, command); + } + + @Test + public void parseCommand_markEventInvalidStatus_invalid() { + Parser parser = new Parser(); + Command command = parser.parseCommand("mark -e event -s yes"); + + assertInstanceOf(InvalidCommand.class, command); + } } From 51ec43620639c8bb54ed98951440f805791aaccc Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 19 Oct 2024 10:36:12 +0800 Subject: [PATCH 156/619] Remove "_NAME" from placeholder terms The attribute placeholders for commands like the remove command have names like "EVENT_NAME" and "PARTICIPANT_NAME". This makes them difficult to read and unclear. Let's change these names and remove the "_NAME" suffixes. This way, the placeholders can be more easily understood. --- docs/UserGuide.md | 30 +++++++++---------- .../seedu/manager/command/MenuCommand.java | 10 +++---- .../java/seedu/manager/parser/Parser.java | 10 +++---- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 27d01020fc..42e66299bb 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -25,12 +25,12 @@ Shows a list of all valid user commands in the program. ``` Here are the possible commands: -add -e EVENT_NAME -t TIME -v VENUE: Add an event to the event list. +add -e EVENT -t TIME -v VENUE: Add an event to the event list. list: List events. -remove -e EVENT_NAME: Remove an event from the event list. -add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant to an event. -view -e EVENT_NAME: View the list of participants of an event. -remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event. +remove -e EVENT: Remove an event from the event list. +add -p PARTICIPANT -e EVENT: Add a participant to an event. +view -e EVENT: View the list of participants of an event. +remove -p PARTICIPANT -e EVENT: Remove a participant from an event. ``` Format: `menu` @@ -44,8 +44,8 @@ Format: `list` Adds an event to the event list, or a participant to an event. Format: -* `add -e EVENT_NAME -t TIME -v VENUE` for adding an event to the events list. -* `add -p PARTICIPANT_NAME -e EVENT_NAME` for adding a participant to an event. +* `add -e EVENT -t TIME -v VENUE` for adding an event to the events list. +* `add -p PARTICIPANT -e EVENT` for adding a participant to an event. Examples: * `add -e Origami workshop -t Mon 1600-1800 -v Building A` adds an event with name `Origami workshop`, @@ -56,8 +56,8 @@ time `Mon 1600-1800` and venue `Building A` to the events list. Removes an event from the event list, or a participant from an event. Format: -* `remove -e EVENT_NAME` for removing an event from the event list. -* `remove -p PARTICIPANT_NAME -e EVENT_NAME` for removing a participant from an event. +* `remove -e EVENT` for removing an event from the event list. +* `remove -p PARTICIPANT -e EVENT` for removing a participant from an event. Examples: * `remove -e Origami workshop` removes the event `Origami workshop` from the event list. @@ -66,7 +66,7 @@ Examples: ### View all participants for an event: `view` Shows a list of all participants for an event. -Format: `view -e EVENT_NAME` +Format: `view -e EVENT` Examples: * `view -e Origami workshop` shows a list of all participants for the event `Origami workshop`. @@ -80,8 +80,8 @@ Format: `exit` * View all commands: `view` * List all events: `list` -* Add event: `add -e EVENT_NAME -t TIME -v VENUE` -* Add participant to an event: `add -p PARTICIPANT_NAME -e EVENT_NAME` -* Remove event: `remove -e EVENT_NAME` -* Remove participant from an event: `remove -p PARTICIPANT_NAME -e EVENT_NAME` -* View all participants for an event: `view -e EVENT_NAME` +* Add event: `add -e EVENT -t TIME -v VENUE` +* Add participant to an event: `add -p PARTICIPANT -e EVENT` +* Remove event: `remove -e EVENT` +* Remove participant from an event: `remove -p PARTICIPANT -e EVENT` +* View all participants for an event: `view -e EVENT` diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 831b56ca4a..fd6f593f99 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -8,12 +8,12 @@ public class MenuCommand extends Command { private static final String MENU_MESSAGE = """ Here are the possible commands: - add -e EVENT_NAME -t TIME -v VENUE: Add an event to the event list. + add -e EVENT -t TIME -v VENUE: Add an event to the event list. list: List events. - remove -e EVENT_NAME: Remove an event from the event list. - add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant to an event. - view -e EVENT_NAME: View the list of participants of an event. - remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event. + remove -e EVENT: Remove an event from the event list. + add -p PARTICIPANT -e EVENT: Add a participant to an event. + view -e EVENT: View the list of participants of an event. + remove -p PARTICIPANT -e EVENT: Remove a participant from an event. mark -e EVENT -s STATUS: Mark an event as done or not done"""; /** diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 7803edb84e..04f3ec0023 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -23,17 +23,17 @@ public class Parser { private static final String INVALID_ADD_MESSAGE = """ Invalid command! Please enter your commands in the following format: - add -e EVENT_NAME -t TIME -v VENUE - add -p PARTICIPANT_NAME -e EVENT_NAME"""; + add -e EVENT -t TIME -v VENUE + add -p PARTICIPANT -e EVENT"""; private static final String INVALID_REMOVE_MESSAGE = """ Invalid command! Please enter your commands in the following format: - remove -e EVENT_NAME - remove -p PARTICIPANT_NAME -e EVENT_NAME"""; + remove -e EVENT + remove -p PARTICIPANT -e EVENT"""; private static final String INVALID_VIEW_MESSAGE = """ Invalid command! Please enter your commands in the following format: - view -e EVENT_NAME"""; + view -e EVENT"""; private static final String INVALID_MARK_MESSAGE = """ Invalid command! Please enter your commands in the following format: From fa0d5369fae7498672aa5abb8162a2130cf9b7ec Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 19 Oct 2024 10:41:28 +0800 Subject: [PATCH 157/619] Update redirection test to account for mark command --- text-ui-test/EXPECTED.TXT | 23 ++++++++++++++++------- text-ui-test/input.txt | 3 +++ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 59f14548e1..3163743eff 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -3,26 +3,35 @@ Enter a command: Invalid command! ------------------------ Enter a command: Here are the possible commands: -add -e EVENT_NAME -t TIME -v VENUE: Add an event to the event list. +add -e EVENT -t TIME -v VENUE: Add an event to the event list. list: List events. -remove -e EVENT_NAME: Remove an event from the event list. -add -p PARTICIPANT_NAME -e EVENT_NAME: Add a participant to an event. -view -e EVENT_NAME: View the list of participants of an event. -remove -p PARTICIPANT_NAME -e EVENT_NAME: Remove a participant from an event. +remove -e EVENT: Remove an event from the event list. +add -p PARTICIPANT -e EVENT: Add a participant to an event. +view -e EVENT: View the list of participants of an event. +remove -p PARTICIPANT -e EVENT: Remove a participant from an event. +mark -e EVENT -s STATUS: Mark an event as done or not done ------------------------ Enter a command: There are 0 events in your list! Here are your scheduled events: ------------------------ Enter a command: Invalid command! Please enter your commands in the following format: -add -e EVENT_NAME -t TIME -v VENUE -add -p PARTICIPANT_NAME -e EVENT_NAME +add -e EVENT -t TIME -v VENUE +add -p PARTICIPANT -e EVENT ------------------------ Enter a command: Event added successfully ------------------------ Enter a command: There are 1 events in your list! Here are your scheduled events: 1. Event name: dinner party / Event time: 2024-10-10 / Event venue: Alice's House / Done: N +------------------------ +Enter a command: Event marked as done +------------------------ +Enter a command: There are 1 events in your list! Here are your scheduled events: +1. Event name: dinner party / Event time: 2024-10-10 / Event venue: Alice's House / Done: Y + +------------------------ +Enter a command: Event not found! ------------------------ Enter a command: Thank you for using EventManagerCLI. Goodbye! ------------------------ diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index 88bcfb3424..639938715f 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -4,4 +4,7 @@ list add add -e dinner party -t 2024-10-10 -v Alice's House list +mark -e dinner party -s done +list +mark -e Saturday brunch -s done exit From 37dd8e690212de6cb721e419f61c726486f3b842 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sun, 20 Oct 2024 21:28:33 +0800 Subject: [PATCH 158/619] Add JUnit test cases --- .../seedu/manager/command/AddCommandTest.java | 8 ++++++++ .../seedu/manager/command/RemoveCommandTest.java | 9 +++++++++ .../java/seedu/manager/parser/ParserTest.java | 16 ++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index b7da30b8cd..ffecbdcf0f 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -7,6 +7,14 @@ public class AddCommandTest { + @Test + public void add_event_success() { + EventList eventList = new EventList(); + + eventList.addEvent("Event 1", "2024-20-10 21:00", "Venue A"); + assertEquals(1, eventList.getListSize()); + } + @Test public void add_twoParticipant_success() { EventList eventList = new EventList(); diff --git a/src/test/java/seedu/manager/command/RemoveCommandTest.java b/src/test/java/seedu/manager/command/RemoveCommandTest.java index 06769084df..abc343bb02 100644 --- a/src/test/java/seedu/manager/command/RemoveCommandTest.java +++ b/src/test/java/seedu/manager/command/RemoveCommandTest.java @@ -7,6 +7,15 @@ public class RemoveCommandTest { + @Test + public void remove_event_success() { + EventList eventList = new EventList(); + + eventList.addEvent("Event 1", "2024-20-10 21:00", "Venue A"); + eventList.addEvent("Event 2", "2024-20-10 21:00", "Venue B"); + eventList.removeEvent("Event 2"); + assertEquals(1, eventList.getListSize()); + } @Test public void remove_oneParticipant_success() { EventList eventList = new EventList(); diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index b8fc075990..b1d93b374f 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -45,6 +45,22 @@ public void parseCommand_listWord_list() { assertInstanceOf(ListCommand.class, command); } + @Test + public void parseCommand_addlWord_add() { + Parser parser = new Parser(); + Command command = parser.parseCommand("add"); + + assertInstanceOf(AddCommand.class, command); + } + + @Test + public void parseCommand_removeWord_remove() { + Parser parser = new Parser(); + Command command = parser.parseCommand("remove"); + + assertInstanceOf(RemoveCommand.class, command); + } + @Test public void addCommand_addEvent_add() { Parser parser = new Parser(); From c6d9cc311092a501bc8bac958582eed22ea8a705 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Sun, 20 Oct 2024 21:53:54 +0800 Subject: [PATCH 159/619] Revert "Add JUnit test for addEvent and removeEvent" --- .../seedu/manager/command/AddCommandTest.java | 8 -------- .../seedu/manager/command/RemoveCommandTest.java | 9 --------- .../java/seedu/manager/parser/ParserTest.java | 16 ---------------- 3 files changed, 33 deletions(-) diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index ffecbdcf0f..b7da30b8cd 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -7,14 +7,6 @@ public class AddCommandTest { - @Test - public void add_event_success() { - EventList eventList = new EventList(); - - eventList.addEvent("Event 1", "2024-20-10 21:00", "Venue A"); - assertEquals(1, eventList.getListSize()); - } - @Test public void add_twoParticipant_success() { EventList eventList = new EventList(); diff --git a/src/test/java/seedu/manager/command/RemoveCommandTest.java b/src/test/java/seedu/manager/command/RemoveCommandTest.java index abc343bb02..06769084df 100644 --- a/src/test/java/seedu/manager/command/RemoveCommandTest.java +++ b/src/test/java/seedu/manager/command/RemoveCommandTest.java @@ -7,15 +7,6 @@ public class RemoveCommandTest { - @Test - public void remove_event_success() { - EventList eventList = new EventList(); - - eventList.addEvent("Event 1", "2024-20-10 21:00", "Venue A"); - eventList.addEvent("Event 2", "2024-20-10 21:00", "Venue B"); - eventList.removeEvent("Event 2"); - assertEquals(1, eventList.getListSize()); - } @Test public void remove_oneParticipant_success() { EventList eventList = new EventList(); diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index b1d93b374f..b8fc075990 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -45,22 +45,6 @@ public void parseCommand_listWord_list() { assertInstanceOf(ListCommand.class, command); } - @Test - public void parseCommand_addlWord_add() { - Parser parser = new Parser(); - Command command = parser.parseCommand("add"); - - assertInstanceOf(AddCommand.class, command); - } - - @Test - public void parseCommand_removeWord_remove() { - Parser parser = new Parser(); - Command command = parser.parseCommand("remove"); - - assertInstanceOf(RemoveCommand.class, command); - } - @Test public void addCommand_addEvent_add() { Parser parser = new Parser(); From a9a8f7f9d0d993d7184672c5d945499752f16fb7 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sun, 20 Oct 2024 22:09:36 +0800 Subject: [PATCH 160/619] Add JUnit test --- .../java/seedu/manager/command/AddCommandTest.java | 8 ++++++++ .../java/seedu/manager/command/RemoveCommandTest.java | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index b7da30b8cd..ffecbdcf0f 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -7,6 +7,14 @@ public class AddCommandTest { + @Test + public void add_event_success() { + EventList eventList = new EventList(); + + eventList.addEvent("Event 1", "2024-20-10 21:00", "Venue A"); + assertEquals(1, eventList.getListSize()); + } + @Test public void add_twoParticipant_success() { EventList eventList = new EventList(); diff --git a/src/test/java/seedu/manager/command/RemoveCommandTest.java b/src/test/java/seedu/manager/command/RemoveCommandTest.java index 06769084df..61af8db791 100644 --- a/src/test/java/seedu/manager/command/RemoveCommandTest.java +++ b/src/test/java/seedu/manager/command/RemoveCommandTest.java @@ -7,6 +7,16 @@ public class RemoveCommandTest { + @Test + public void remove_event_success() { + EventList eventList = new EventList(); + + eventList.addEvent("Event 1", "2024-20-10 21:00", "Venue A"); + eventList.addEvent("Event 2", "2024-20-10 21:00", "Venue B"); + eventList.removeEvent("Event 2"); + assertEquals(1, eventList.getListSize()); + } + @Test public void remove_oneParticipant_success() { EventList eventList = new EventList(); From b3dbfb487f30704b3f348572f15d02a748892f70 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 21 Oct 2024 13:01:15 +0800 Subject: [PATCH 161/619] Add new Item and Participant classes --- build.gradle | 1 + src/main/java/seedu/manager/item/Item.java | 56 +++++++++++++++++++ .../java/seedu/manager/item/Participant.java | 18 ++++++ 3 files changed, 75 insertions(+) create mode 100644 src/main/java/seedu/manager/item/Item.java create mode 100644 src/main/java/seedu/manager/item/Participant.java diff --git a/build.gradle b/build.gradle index f0dd47388b..000d437b3e 100644 --- a/build.gradle +++ b/build.gradle @@ -43,4 +43,5 @@ checkstyle { run{ standardInput = System.in + enableAssertions = true } diff --git a/src/main/java/seedu/manager/item/Item.java b/src/main/java/seedu/manager/item/Item.java new file mode 100644 index 0000000000..f4fe4eb36c --- /dev/null +++ b/src/main/java/seedu/manager/item/Item.java @@ -0,0 +1,56 @@ +package seedu.manager.item; + +/** + * Represents an item to be stored in an item list for an event + */ +public class Item { + private final String name; + private boolean isPresent; + + /** + * Constructs a new Item with a given name + * + * @param name the given name + */ + public Item(String name) { + this.name = name; + this.isPresent = false; + } + + /** + * Returns the name of the item. + * + * @return the name of the item + */ + public String getName() { + return name; + } + + /** + * Sets the item as present or not present. + * + * @param isPresent whether the item is present or not present + */ + public void setPresent(boolean isPresent) { + this.isPresent = isPresent; + } + + /** + * Returns "present" if isPresent is true, "not present" otherwise. + * + * @return "present" if isPresent is true, "not present" otherwise. + */ + public String markIfPresent() { + return (this.isPresent) ? "present" : "not present"; + } + + /** + * Returns a formatted string of the item + * + * @return a formatted string of the item + */ + @Override + public String toString() { + return String.format("%s (status: %s)", this.name, this.markIfPresent()); + } +} diff --git a/src/main/java/seedu/manager/item/Participant.java b/src/main/java/seedu/manager/item/Participant.java new file mode 100644 index 0000000000..376fe11a5f --- /dev/null +++ b/src/main/java/seedu/manager/item/Participant.java @@ -0,0 +1,18 @@ +package seedu.manager.item; + +import seedu.manager.event.Event; + +/** + * Represents an event participant, in the participant list of an {@link Event}. + */ +public class Participant extends Item { + + /** + * Constructs a new Item with a given name + * + * @param name the given name + */ + public Participant(String name) { + super(name); + } +} From a268b262961bf784df9f9fa7a8a8f9186091b85e Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 21 Oct 2024 13:06:46 +0800 Subject: [PATCH 162/619] Update Event and ViewCommand to use Participant class --- src/main/java/seedu/manager/command/ViewCommand.java | 5 +++-- src/main/java/seedu/manager/event/Event.java | 12 ++++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/manager/command/ViewCommand.java b/src/main/java/seedu/manager/command/ViewCommand.java index 1a264658b2..5bb7dc7d12 100644 --- a/src/main/java/seedu/manager/command/ViewCommand.java +++ b/src/main/java/seedu/manager/command/ViewCommand.java @@ -1,6 +1,7 @@ package seedu.manager.command; import seedu.manager.event.Event; +import seedu.manager.item.Participant; import java.util.Optional; @@ -36,8 +37,8 @@ public void execute() { StringBuilder outputMessage = new StringBuilder( String.format(VIEW_MESSAGE, eventToView.get().getParticipantCount(), eventName) + "\n"); int count = 1; - for (String participant : eventToView.get().getParticipantList()) { - outputMessage.append(String.format("%d. %s\n", count, participant)); + for (Participant participant : eventToView.get().getParticipantList()) { + outputMessage.append(String.format("%d. %s\n", count, participant.toString())); count++; } diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index a7d9134eb2..9b937fcd37 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -1,5 +1,7 @@ package seedu.manager.event; +import seedu.manager.item.Participant; + import java.util.ArrayList; /** @@ -7,7 +9,7 @@ * It provides methods to access and modify the time and venue of the event. */ public class Event { - protected ArrayList participantList; + protected ArrayList participantList; private final String eventName; private String eventTime; private String eventVenue; @@ -44,7 +46,8 @@ public Event(String eventName, String eventTime, String eventVenue) { * @param participantName the name of the participant to be added to the list. */ public void addParticipant(String participantName) { - this.participantList.add(participantName); + Participant participant = new Participant(participantName); + this.participantList.add(participant); } /** @@ -62,7 +65,8 @@ public void addParticipant(String participantName) { * {@code false} if the participant was not found in the list. */ public boolean removeParticipant(String participantName) { - return this.participantList.remove(participantName); + Participant participant = new Participant(participantName); + return this.participantList.remove(participant); } /** @@ -95,7 +99,7 @@ public String getEventVenue() { return eventVenue; } - public ArrayList getParticipantList() { + public ArrayList getParticipantList() { return participantList; } From 6e0f5e2c3428c265beccaf27aaf21f8463b250ee Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 21 Oct 2024 13:20:17 +0800 Subject: [PATCH 163/619] Merge Participant class into its parent Item class --- src/main/java/seedu/manager/item/Item.java | 56 ------------------- .../java/seedu/manager/item/Participant.java | 46 ++++++++++++++- 2 files changed, 43 insertions(+), 59 deletions(-) delete mode 100644 src/main/java/seedu/manager/item/Item.java diff --git a/src/main/java/seedu/manager/item/Item.java b/src/main/java/seedu/manager/item/Item.java deleted file mode 100644 index f4fe4eb36c..0000000000 --- a/src/main/java/seedu/manager/item/Item.java +++ /dev/null @@ -1,56 +0,0 @@ -package seedu.manager.item; - -/** - * Represents an item to be stored in an item list for an event - */ -public class Item { - private final String name; - private boolean isPresent; - - /** - * Constructs a new Item with a given name - * - * @param name the given name - */ - public Item(String name) { - this.name = name; - this.isPresent = false; - } - - /** - * Returns the name of the item. - * - * @return the name of the item - */ - public String getName() { - return name; - } - - /** - * Sets the item as present or not present. - * - * @param isPresent whether the item is present or not present - */ - public void setPresent(boolean isPresent) { - this.isPresent = isPresent; - } - - /** - * Returns "present" if isPresent is true, "not present" otherwise. - * - * @return "present" if isPresent is true, "not present" otherwise. - */ - public String markIfPresent() { - return (this.isPresent) ? "present" : "not present"; - } - - /** - * Returns a formatted string of the item - * - * @return a formatted string of the item - */ - @Override - public String toString() { - return String.format("%s (status: %s)", this.name, this.markIfPresent()); - } -} diff --git a/src/main/java/seedu/manager/item/Participant.java b/src/main/java/seedu/manager/item/Participant.java index 376fe11a5f..9d6de3a575 100644 --- a/src/main/java/seedu/manager/item/Participant.java +++ b/src/main/java/seedu/manager/item/Participant.java @@ -5,14 +5,54 @@ /** * Represents an event participant, in the participant list of an {@link Event}. */ -public class Participant extends Item { +public class Participant { + private final String name; + private boolean isPresent; /** - * Constructs a new Item with a given name + * Constructs a new Participant with a given name * * @param name the given name */ public Participant(String name) { - super(name); + this.name = name; + this.isPresent = false; + } + + /** + * Returns the name of the participant. + * + * @return the name of the participant + */ + public String getName() { + return name; + } + + /** + * Sets the participant as present or not present. + * + * @param isPresent whether the participant is present or not present + */ + public void setPresent(boolean isPresent) { + this.isPresent = isPresent; + } + + /** + * Returns "present" if isPresent is true, "not present" otherwise. + * + * @return "present" if isPresent is true, "not present" otherwise. + */ + public String markIfPresent() { + return (this.isPresent) ? "present" : "not present"; + } + + /** + * Returns a formatted string of the item + * + * @return a formatted string of the item + */ + @Override + public String toString() { + return String.format("%s (status: %s)", this.name, this.markIfPresent()); } } From 8451134cad0f68d84515a8122931c4db77b166b6 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 21 Oct 2024 16:58:59 +0800 Subject: [PATCH 164/619] Add unit tests for Participant and update existing unit and I/O tests --- .../seedu/manager/command/MarkCommand.java | 6 ++-- src/main/java/seedu/manager/event/Event.java | 4 +-- .../manager/command/ViewCommandTest.java | 2 +- .../seedu/manager/item/ParticipantTest.java | 29 +++++++++++++++++++ text-ui-test/EXPECTED.TXT | 6 ++++ text-ui-test/input.txt | 2 ++ 6 files changed, 43 insertions(+), 6 deletions(-) create mode 100644 src/test/java/seedu/manager/item/ParticipantTest.java diff --git a/src/main/java/seedu/manager/command/MarkCommand.java b/src/main/java/seedu/manager/command/MarkCommand.java index 58db304b6f..4a18c6b782 100644 --- a/src/main/java/seedu/manager/command/MarkCommand.java +++ b/src/main/java/seedu/manager/command/MarkCommand.java @@ -12,10 +12,10 @@ public class MarkCommand extends Command { private static final String EVENT_MARK_MESSAGE = "Event marked as done"; private static final String EVENT_UNMARK_MESSAGE = "Event marked not done"; - private static final String INVALID_EVENT_MESSAGE = "Event not found!"; + protected static final String INVALID_EVENT_MESSAGE = "Event not found!"; - private String eventName; - private boolean toMark; + protected String eventName; + protected boolean toMark; /** * Constructs a new MarkCommand with the given event name diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 9b937fcd37..26f1c9dafb 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -65,8 +65,8 @@ public void addParticipant(String participantName) { * {@code false} if the participant was not found in the list. */ public boolean removeParticipant(String participantName) { - Participant participant = new Participant(participantName); - return this.participantList.remove(participant); + return this.participantList.removeIf((participant) -> + (participant.getName().equalsIgnoreCase(participantName))); } /** diff --git a/src/test/java/seedu/manager/command/ViewCommandTest.java b/src/test/java/seedu/manager/command/ViewCommandTest.java index f20a802437..221ff82ff5 100644 --- a/src/test/java/seedu/manager/command/ViewCommandTest.java +++ b/src/test/java/seedu/manager/command/ViewCommandTest.java @@ -33,7 +33,7 @@ public void setUp() { @Test public void execute_twoEvents_success() { String expectedMessage = "There are 1 participants in Event 1! Here are your participants:\n" - + "1. Tom\n"; + + "1. Tom (status: not present)\n"; assertEquals(expectedMessage, viewCommand.getMessage()); assertFalse(viewCommand.getCanExit()); diff --git a/src/test/java/seedu/manager/item/ParticipantTest.java b/src/test/java/seedu/manager/item/ParticipantTest.java new file mode 100644 index 0000000000..ab6e948752 --- /dev/null +++ b/src/test/java/seedu/manager/item/ParticipantTest.java @@ -0,0 +1,29 @@ +package seedu.manager.item; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class ParticipantTest { + + @Test + public void setPresent_setTrue_present() { + Participant participant = new Participant("Participant"); + participant.setPresent(true); + assertEquals("present", participant.markIfPresent()); + } + + @Test + public void setPresent_setFalse_notPresent() { + Participant participant = new Participant("Participant"); + participant.setPresent(false); + assertEquals("not present", participant.markIfPresent()); + } + + @Test + public void toString_setTrue_present() { + Participant participant = new Participant("Participant"); + participant.setPresent(true); + assertEquals("Participant (status: present)", participant.toString()); + } +} \ No newline at end of file diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 3163743eff..cdb5199831 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -32,6 +32,12 @@ Enter a command: There are 1 events in your list! Here are your scheduled events ------------------------ Enter a command: Event not found! +------------------------ +Enter a command: Participant added successfully +------------------------ +Enter a command: There are 1 participants in dinner party! Here are your participants: +1. Mary (status: not present) + ------------------------ Enter a command: Thank you for using EventManagerCLI. Goodbye! ------------------------ diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index 639938715f..e312c513f5 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -7,4 +7,6 @@ list mark -e dinner party -s done list mark -e Saturday brunch -s done +add -p Mary -e dinner party +view -e dinner party exit From 59215ced23d6c83f528bfdcf40a04bb270b2d1af Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 21 Oct 2024 17:07:28 +0800 Subject: [PATCH 165/619] Fix Checkstyle violations --- src/main/java/seedu/manager/command/MarkCommand.java | 2 +- src/test/java/seedu/manager/item/ParticipantTest.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/manager/command/MarkCommand.java b/src/main/java/seedu/manager/command/MarkCommand.java index 4a18c6b782..814f7e197a 100644 --- a/src/main/java/seedu/manager/command/MarkCommand.java +++ b/src/main/java/seedu/manager/command/MarkCommand.java @@ -12,7 +12,7 @@ public class MarkCommand extends Command { private static final String EVENT_MARK_MESSAGE = "Event marked as done"; private static final String EVENT_UNMARK_MESSAGE = "Event marked not done"; - protected static final String INVALID_EVENT_MESSAGE = "Event not found!"; + private static final String INVALID_EVENT_MESSAGE = "Event not found!"; protected String eventName; protected boolean toMark; diff --git a/src/test/java/seedu/manager/item/ParticipantTest.java b/src/test/java/seedu/manager/item/ParticipantTest.java index ab6e948752..b90fefbdf1 100644 --- a/src/test/java/seedu/manager/item/ParticipantTest.java +++ b/src/test/java/seedu/manager/item/ParticipantTest.java @@ -2,7 +2,7 @@ import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; class ParticipantTest { @@ -26,4 +26,4 @@ public void toString_setTrue_present() { participant.setPresent(true); assertEquals("Participant (status: present)", participant.toString()); } -} \ No newline at end of file +} From bf84fa2a045d24b8dbbdf2194e0c8f2b88481a74 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 21 Oct 2024 17:45:25 +0800 Subject: [PATCH 166/619] Replace InvalidCommand with an exception User command errors are handled by an InvalidCommand, which then passes the error message back to the user. This makes the code less readable, as it is not obvious that InvalidCommand handles errors. Let's replace InvalidCommand with an exception, that is handled by the UI. This way, the code is easier to read as it is clearer how the user command errors are handled. --- src/main/java/seedu/manager/Main.java | 17 +++-- .../seedu/manager/command/InvalidCommand.java | 26 -------- .../exception/InvalidCommandException.java | 14 +++++ .../java/seedu/manager/parser/Parser.java | 63 ++++++++++--------- src/main/java/seedu/manager/ui/Ui.java | 12 +++- .../java/seedu/manager/parser/ParserTest.java | 28 +++++---- 6 files changed, 86 insertions(+), 74 deletions(-) delete mode 100644 src/main/java/seedu/manager/command/InvalidCommand.java create mode 100644 src/main/java/seedu/manager/exception/InvalidCommandException.java diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 9c202a0e36..b385b00802 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -2,6 +2,7 @@ import seedu.manager.command.Command; import seedu.manager.event.EventList; +import seedu.manager.exception.InvalidCommandException; import seedu.manager.parser.Parser; import seedu.manager.ui.Ui; @@ -27,13 +28,17 @@ private static void runCommandLoop() { Command command; boolean isGettingCommands = true; while (isGettingCommands){ - String userCommandText = ui.getCommand(); - command = new Parser().parseCommand(userCommandText); - command.setData(events); - command.execute(); - ui.showOutputToUser(command); + try { + String userCommandText = ui.getCommand(); + command = new Parser().parseCommand(userCommandText); + command.setData(events); + command.execute(); + ui.showOutputToUser(command); - isGettingCommands = !command.getCanExit(); + isGettingCommands = !command.getCanExit(); + } catch (InvalidCommandException exception) { + ui.showErrorMessageToUser(exception); + } } } } diff --git a/src/main/java/seedu/manager/command/InvalidCommand.java b/src/main/java/seedu/manager/command/InvalidCommand.java deleted file mode 100644 index b3a97be87f..0000000000 --- a/src/main/java/seedu/manager/command/InvalidCommand.java +++ /dev/null @@ -1,26 +0,0 @@ -package seedu.manager.command; - -/** - * Represents an invalid command that cannot be executed - */ -public class InvalidCommand extends Command { - private final String errorMessage; - - /** - * Constructs a new invalid command with a given error message - * - * @param errorMessage The specified error message - */ - public InvalidCommand(String errorMessage) { - super(false); - this.errorMessage = errorMessage; - } - - /** - * Executes the invalid command - */ - @Override - public void execute() { - this.message = this.errorMessage; - } -} diff --git a/src/main/java/seedu/manager/exception/InvalidCommandException.java b/src/main/java/seedu/manager/exception/InvalidCommandException.java new file mode 100644 index 0000000000..cc2680b7e4 --- /dev/null +++ b/src/main/java/seedu/manager/exception/InvalidCommandException.java @@ -0,0 +1,14 @@ +package seedu.manager.exception; + +/** + * Signals that an entered command is invalid + */ +public class InvalidCommandException extends RuntimeException { + + /** + * @param message contains information on how the command is invalid + */ + public InvalidCommandException(String message) { + super(message); + } +} diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 04f3ec0023..b0e6dee41a 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -2,13 +2,13 @@ import seedu.manager.command.Command; import seedu.manager.command.AddCommand; -import seedu.manager.command.InvalidCommand; import seedu.manager.command.MarkCommand; import seedu.manager.command.RemoveCommand; import seedu.manager.command.ExitCommand; import seedu.manager.command.MenuCommand; import seedu.manager.command.ListCommand; import seedu.manager.command.ViewCommand; +import seedu.manager.exception.InvalidCommandException; import java.util.logging.Logger; @@ -44,11 +44,12 @@ public class Parser { """; /** - * Returns a command based on the given user command string + * Returns a command based on the given user command string. * - * @param command The given command string from the user + * @param command The given command string from the user. + * @throws InvalidCommandException if the given command string cannot be parsed to a valid command. */ - public Command parseCommand(String command){ + public Command parseCommand(String command) throws InvalidCommandException { String[] commandParts = command.split(" "); String commandWord = commandParts[0]; @@ -68,7 +69,7 @@ public Command parseCommand(String command){ case MarkCommand.COMMAND_WORD: return parseMarkCommand(command, commandParts); default: - return new InvalidCommand(INVALID_COMMAND_MESSAGE); + throw new InvalidCommandException(INVALID_COMMAND_MESSAGE); } } @@ -80,15 +81,16 @@ public Command parseCommand(String command){ * flag is {@code "-e"}, it splits the input string into parts to create an * {@link AddCommand} for adding an event. If the command flag is {@code "-p"}, * it creates an {@link AddCommand} for adding a participant to an event. If neither - * flag is matched, it returns an {@link InvalidCommand} with an error message. + * flag is matched, it throws a {@link InvalidCommandException} with an error message. *

* * @param input the input string containing the command details. * @param commandParts an array of strings representing the parsed command parts, * where the second element is the command flag. * @return a {@link Command} object representing the parsed command. + * @throws InvalidCommandException if the flags are not matched in the command parts. */ - public Command parseAddCommand(String input, String[] commandParts) { + public Command parseAddCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(AddCommand.COMMAND_WORD); try { String commandFlag = commandParts[1]; @@ -107,10 +109,10 @@ public Command parseAddCommand(String input, String[] commandParts) { } logger.log(WARNING,"Invalid command format"); - return new InvalidCommand(INVALID_ADD_MESSAGE); + throw new InvalidCommandException(INVALID_ADD_MESSAGE); } catch (IndexOutOfBoundsException exception) { logger.log(WARNING,"Invalid command format"); - return new InvalidCommand(INVALID_ADD_MESSAGE); + throw new InvalidCommandException(INVALID_ADD_MESSAGE); } } @@ -122,15 +124,16 @@ public Command parseAddCommand(String input, String[] commandParts) { * flag is {@code "-e"}, it splits the input string to create a {@link RemoveCommand} * for removing an event. If the command flag is {@code "-p"}, it creates a * {@link RemoveCommand} for removing a participant from an event. If neither flag - * is matched, it returns an {@link InvalidCommand} with an error message. + * is matched, it throws an {@link InvalidCommandException} with an error message. *

* * @param input the input string containing the command details. * @param commandParts an array of strings representing the parsed command parts, * where the second element is the command flag. * @return a {@link Command} object representing the parsed command. + * @throws InvalidCommandException if the flags are not matched in the command parts. */ - private Command parseRemoveCommand(String input, String[] commandParts) { + private Command parseRemoveCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(RemoveCommand.COMMAND_WORD); try { String commandFlag = commandParts[1]; @@ -145,10 +148,10 @@ private Command parseRemoveCommand(String input, String[] commandParts) { } logger.log(WARNING,"Invalid command format"); - return new InvalidCommand(INVALID_REMOVE_MESSAGE); + throw new InvalidCommandException(INVALID_REMOVE_MESSAGE); } catch (IndexOutOfBoundsException exception) { logger.log(WARNING,"Invalid command format"); - return new InvalidCommand(INVALID_REMOVE_MESSAGE); + throw new InvalidCommandException(INVALID_REMOVE_MESSAGE); } } @@ -159,15 +162,16 @@ private Command parseRemoveCommand(String input, String[] commandParts) { * This method checks the command flag extracted from the command parts. If the command * flag is {@code "-e"}, it splits the input string to create a {@link ViewCommand} * for viewing the participants in the event. - * Otherwise, it returns an {@link InvalidCommand} with an error message. + * Otherwise, it throws an {@link InvalidCommandException} with an error message. *

* * @param input the input string containing the command details. * @param commandParts an array of strings representing the parsed command parts, * where the second element is the command flag. * @return a {@link Command} object representing the parsed command. + * @throws InvalidCommandException if the flag is not matched. */ - private Command parseViewCommand(String input, String[] commandParts) { + private Command parseViewCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(ViewCommand.COMMAND_WORD); try { String commandFlag = commandParts[1]; @@ -178,10 +182,10 @@ private Command parseViewCommand(String input, String[] commandParts) { } logger.log(WARNING,"Invalid command format"); - return new InvalidCommand(INVALID_VIEW_MESSAGE); + throw new InvalidCommandException(INVALID_VIEW_MESSAGE); } catch (IndexOutOfBoundsException exception) { logger.log(WARNING,"Invalid command format"); - return new InvalidCommand(INVALID_VIEW_MESSAGE); + throw new InvalidCommandException(INVALID_VIEW_MESSAGE); } } @@ -191,7 +195,7 @@ private Command parseViewCommand(String input, String[] commandParts) { *

* This method checks the command flag extracted from the command parts. If the command * flag is {@code "-e"}, it splits the input string to create a {@link MarkCommand} - * to mark an event done or undone. Otherwise, it returns an {@link InvalidCommand} + * to mark an event done or undone. Otherwise, it throws an {@link InvalidCommandException} * with an error message. *

* @@ -199,8 +203,9 @@ private Command parseViewCommand(String input, String[] commandParts) { * @param commandParts an array of strings representing the parsed command parts, * where the second element is the command flag. * @return a {@link Command} object representing the parsed command. + * @throws InvalidCommandException if the flag is not matched. */ - private Command parseMarkCommand(String input, String[] commandParts) { + private Command parseMarkCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(MarkCommand.COMMAND_WORD); try { String commandFlag = commandParts[1]; @@ -211,30 +216,30 @@ private Command parseMarkCommand(String input, String[] commandParts) { } logger.log(WARNING,"Invalid command format"); - return new InvalidCommand(INVALID_MARK_MESSAGE); + throw new InvalidCommandException(INVALID_MARK_MESSAGE); } catch (IndexOutOfBoundsException exception) { logger.log(WARNING,"Invalid command format"); - return new InvalidCommand(INVALID_MARK_MESSAGE); + throw new InvalidCommandException(INVALID_MARK_MESSAGE); } } /** - * Returns a {@link MarkCommand} with a given event name and status, or an - * {@link InvalidCommand} if the status is invalid + * Returns a {@link MarkCommand} with a given event name and status. If the given status is invalid, + * throws an {@link InvalidCommandException}. * - * @param eventName the given event name - * @param status the given event status - * @return a MarkCommand with a given event name and status, or an - * InvalidCommand if the status is invalid + * @param eventName the given event name. + * @param status the given event status. + * @return a MarkCommand with a given event name and status + * @throws InvalidCommandException if the given status is invalid. */ - private Command getMarkEventCommand(String eventName, String status) { + private Command getMarkEventCommand(String eventName, String status) throws InvalidCommandException { if (status.equalsIgnoreCase("done")) { return new MarkCommand(eventName, true); } else if (status.equalsIgnoreCase("undone")) { return new MarkCommand(eventName, false); } else { logger.log(WARNING,"Invalid status keyword"); - return new InvalidCommand(INVALID_EVENT_STATUS_MESSAGE); + throw new InvalidCommandException(INVALID_EVENT_STATUS_MESSAGE); } } } diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index 0251643da3..03f091e8bd 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -37,10 +37,18 @@ public String getCommand() { } /** - * show the output message a of command to the users. + * show the output message of a command to the users. */ - public void showOutputToUser(Command command){ + public void showOutputToUser(Command command) { System.out.println(command.getMessage()); System.out.println(SEPARATOR); } + + /** + * Shows the error message of an exception to the user. + */ + public void showErrorMessageToUser(Exception exception) { + System.out.println(exception.getMessage()); + System.out.println(SEPARATOR); + } } diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index bbe8f8bd9a..bc1c5a5049 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -4,22 +4,24 @@ import seedu.manager.command.AddCommand; import seedu.manager.command.Command; import seedu.manager.command.ExitCommand; -import seedu.manager.command.InvalidCommand; import seedu.manager.command.MarkCommand; import seedu.manager.command.MenuCommand; import seedu.manager.command.ListCommand; import seedu.manager.command.RemoveCommand; +import seedu.manager.exception.InvalidCommandException; import static org.junit.jupiter.api.Assertions.assertInstanceOf; +import static org.junit.jupiter.api.Assertions.assertThrows; class ParserTest { @Test public void parseCommand_invalidString_invalid() { Parser parser = new Parser(); - Command command = parser.parseCommand("Hello world!"); + String commandString = "Hello world!"; - assertInstanceOf(InvalidCommand.class, command); + assertThrows(InvalidCommandException.class,() -> { + parser.parseCommand(commandString);}); } @Test @@ -57,9 +59,10 @@ public void addCommand_addEvent_add() { @Test public void addCommand_addNoParameter_invalid() { Parser parser = new Parser(); - Command command = parser.parseCommand("add"); + String commandString = "add"; - assertInstanceOf(InvalidCommand.class, command); + assertThrows(InvalidCommandException.class,() -> { + parser.parseCommand(commandString);}); } @Test @@ -73,9 +76,10 @@ public void removeCommand_removeEvent_add() { @Test public void removeCommand_removeNoParameter_invalid() { Parser parser = new Parser(); - Command command = parser.parseCommand("remove"); + String commandString = "remove"; - assertInstanceOf(InvalidCommand.class, command); + assertThrows(InvalidCommandException.class,() -> { + parser.parseCommand(commandString);}); } @Test @@ -89,16 +93,18 @@ public void parseCommand_markEvent_mark() { @Test public void parseCommand_markEventNoStatus_invalid() { Parser parser = new Parser(); - Command command = parser.parseCommand("mark -e event"); + String commandString = "mark -e event"; - assertInstanceOf(InvalidCommand.class, command); + assertThrows(InvalidCommandException.class,() -> { + parser.parseCommand(commandString);}); } @Test public void parseCommand_markEventInvalidStatus_invalid() { Parser parser = new Parser(); - Command command = parser.parseCommand("mark -e event -s yes"); + String commandString = "mark -e event -s yes"; - assertInstanceOf(InvalidCommand.class, command); + assertThrows(InvalidCommandException.class,() -> { + parser.parseCommand(commandString);}); } } From 161e6ce7b665b1fd03bbcdeacedc1a13e3a43251 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 21 Oct 2024 18:57:17 +0800 Subject: [PATCH 167/619] Add error handling for adding participants When participants are added to events that are not present in the event list, the program informs the user that the participant was added, although neither the participant nor the event are stored in the program. This is misleading to the user. Let's amend the add participant command to show the user a message that the adding failed for this case. This makes the add command more inituitive to the user. --- src/main/java/seedu/manager/command/AddCommand.java | 5 +++-- src/main/java/seedu/manager/event/EventList.java | 10 +++++++--- .../manager/exception/InvalidCommandException.java | 12 ++++++------ .../java/seedu/manager/command/AddCommandTest.java | 12 ++++++++++++ src/test/java/seedu/manager/parser/ParserTest.java | 2 +- 5 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index ec379908d3..7c0d523d9d 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -8,6 +8,7 @@ public class AddCommand extends Command { public static final String COMMAND_WORD = "add"; private static final String ADD_EVENT_MESSAGE = "Event added successfully"; private static final String ADD_PARTICIPANT_MESSAGE = "Participant added successfully"; + private static final String ADD_FAILURE_MESSAGE = "Event not found!"; protected String eventName; protected String time; protected String venue; @@ -56,8 +57,8 @@ public void execute() { this.eventList.addEvent(this.eventName, this.time, this.venue); this.message = ADD_EVENT_MESSAGE; } else { - this.eventList.addParticipantToEvent(this.participantName, this.eventName); - this.message = ADD_PARTICIPANT_MESSAGE; + boolean isAdded = this.eventList.addParticipantToEvent(this.participantName, this.eventName); + this.message = (isAdded) ? ADD_PARTICIPANT_MESSAGE : ADD_FAILURE_MESSAGE; } } } diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 71a02ca1e9..b7e8ddb7bf 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -94,18 +94,22 @@ public boolean removeEvent(String eventName) { } /** - * Adds a participant to an existing event. + * Returns true if a participant can be added to a specified event, + * returns false otherwise. * * @param participantName the name of the participant to be added. * @param eventName the name of the event to which the participant will be added. + * @return {@code true} if the participant can be added to the event, {@code false} otherwise. */ - public void addParticipantToEvent(String participantName, String eventName) { + public boolean addParticipantToEvent(String participantName, String eventName) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { event.addParticipant(participantName); - return; + return true; } } + + return false; } /** diff --git a/src/main/java/seedu/manager/exception/InvalidCommandException.java b/src/main/java/seedu/manager/exception/InvalidCommandException.java index cc2680b7e4..92e02e7cfe 100644 --- a/src/main/java/seedu/manager/exception/InvalidCommandException.java +++ b/src/main/java/seedu/manager/exception/InvalidCommandException.java @@ -5,10 +5,10 @@ */ public class InvalidCommandException extends RuntimeException { - /** - * @param message contains information on how the command is invalid - */ - public InvalidCommandException(String message) { - super(message); - } + /** + * @param message contains information on how the command is invalid + */ + public InvalidCommandException(String message) { + super(message); + } } diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index ffecbdcf0f..683b7d21ca 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -36,5 +36,17 @@ public void add_oneParticipantWrongly_success() { assertEquals(1, eventList.getEvent(0).getParticipantCount()); } + + @Test + public void add_oneParticipantInvalidEvent_failure() { + EventList eventList = new EventList(); + String expectedMessage = "Event not found!"; + + AddCommand addCommand = new AddCommand("Tom", "Event 1"); + addCommand.setData(eventList); + addCommand.execute(); + + assertEquals(expectedMessage, addCommand.getMessage()); + } } diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index bc1c5a5049..d0e4d98e99 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -105,6 +105,6 @@ public void parseCommand_markEventInvalidStatus_invalid() { String commandString = "mark -e event -s yes"; assertThrows(InvalidCommandException.class,() -> { - parser.parseCommand(commandString);}); + parser.parseCommand(commandString);}); } } From eec8f61c7178d06ab0a6c81a4740959460c224eb Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 22 Oct 2024 11:53:11 +0800 Subject: [PATCH 168/619] Split MarkCommand into two classes, for events and for participants --- .../seedu/manager/command/MarkCommand.java | 25 +++------- .../manager/command/MarkEventCommand.java | 39 +++++++++++++++ .../command/MarkParticipantCommand.java | 50 +++++++++++++++++++ src/main/java/seedu/manager/event/Event.java | 39 +++++++++++++++ .../java/seedu/manager/parser/Parser.java | 5 +- ...andTest.java => MarkEventCommandTest.java} | 8 +-- .../java/seedu/manager/parser/ParserTest.java | 4 +- 7 files changed, 144 insertions(+), 26 deletions(-) create mode 100644 src/main/java/seedu/manager/command/MarkEventCommand.java create mode 100644 src/main/java/seedu/manager/command/MarkParticipantCommand.java rename src/test/java/seedu/manager/command/{MarkCommandTest.java => MarkEventCommandTest.java} (83%) diff --git a/src/main/java/seedu/manager/command/MarkCommand.java b/src/main/java/seedu/manager/command/MarkCommand.java index 814f7e197a..062dfafe4e 100644 --- a/src/main/java/seedu/manager/command/MarkCommand.java +++ b/src/main/java/seedu/manager/command/MarkCommand.java @@ -7,20 +7,19 @@ /** * Represents an executable mark command */ -public class MarkCommand extends Command { +public abstract class MarkCommand extends Command { public static final String COMMAND_WORD = "mark"; - private static final String EVENT_MARK_MESSAGE = "Event marked as done"; - private static final String EVENT_UNMARK_MESSAGE = "Event marked not done"; - private static final String INVALID_EVENT_MESSAGE = "Event not found!"; + protected static final String INVALID_EVENT_MESSAGE = "Event not found!"; protected String eventName; protected boolean toMark; /** - * Constructs a new MarkCommand with the given event name + * Constructs a new MarkCommand with the given event name. * - * @param eventName the given event name + * @param eventName the given event name. + * @param toMark true if the item is to be marked, false if it is to be unmarked. */ public MarkCommand(String eventName, boolean toMark) { super(false); @@ -29,18 +28,8 @@ public MarkCommand(String eventName, boolean toMark) { } /** - * Executes a mark command by marking the specified event as done or not done, - * depending on the value of toMark. + * Executes a mark command. */ @Override - public void execute() { - Optional eventToMark = this.eventList.getEventByName(this.eventName); - - if (eventToMark.isPresent()) { - eventToMark.get().setDone(this.toMark); - this.message = (this.toMark) ? EVENT_MARK_MESSAGE : EVENT_UNMARK_MESSAGE; - } else { - this.message = INVALID_EVENT_MESSAGE; - } - } + public abstract void execute(); } diff --git a/src/main/java/seedu/manager/command/MarkEventCommand.java b/src/main/java/seedu/manager/command/MarkEventCommand.java new file mode 100644 index 0000000000..0cd3cc37ef --- /dev/null +++ b/src/main/java/seedu/manager/command/MarkEventCommand.java @@ -0,0 +1,39 @@ +package seedu.manager.command; + +import seedu.manager.event.Event; + +import java.util.Optional; + +/** + * Represents an executable mark command for marking events. + */ +public class MarkEventCommand extends MarkCommand { + private static final String EVENT_MARK_MESSAGE = "Event marked as done"; + private static final String EVENT_UNMARK_MESSAGE = "Event marked not done"; + + /** + * Constructs a new MarkEventCommand with the given event name. + * + * @param eventName the event name. + * @param toMark true if the event is to be marked done, false otherwise. + */ + public MarkEventCommand(String eventName, boolean toMark) { + super(eventName, toMark); + } + + /** + * Executes a mark command by marking the specified event as done or not done, + * depending on the value of toMark. + */ + @Override + public void execute() { + Optional eventToMark = this.eventList.getEventByName(this.eventName); + + if (eventToMark.isPresent()) { + eventToMark.get().setDone(this.toMark); + this.message = (this.toMark) ? EVENT_MARK_MESSAGE : EVENT_UNMARK_MESSAGE; + } else { + this.message = INVALID_EVENT_MESSAGE; + } + } +} diff --git a/src/main/java/seedu/manager/command/MarkParticipantCommand.java b/src/main/java/seedu/manager/command/MarkParticipantCommand.java new file mode 100644 index 0000000000..73cad3d790 --- /dev/null +++ b/src/main/java/seedu/manager/command/MarkParticipantCommand.java @@ -0,0 +1,50 @@ +package seedu.manager.command; + +import seedu.manager.event.Event; + +import java.util.Optional; + +/** + * Represents an executable mark command for marking participants. + */ +public class MarkParticipantCommand extends MarkCommand { + private static final String PARTICIPANT_MARK_MESSAGE = "Participant marked present."; + private static final String PARTICIPANT_UNMARK_MESSAGE = "Participant marked absent."; + private static final String INVALID_PARTICIPANT_MESSAGE = "Participant not found!"; + + private final String participantName; + + /** + * Constructs a new MarkParticipantCommand with a given participant name, event name and whether to mark + * or unmark the participant. + * + * @param participantName the name of the participant. + * @param eventName the name of the event. + * @param toMark true if the participant is to be marked present, false if he is to be marked absent. + */ + public MarkParticipantCommand(String participantName, String eventName, boolean toMark) { + super(eventName, toMark); + this.participantName = participantName; + } + + /** + * Executes the mark participant command, by marking the participant as present or absent + */ + @Override + public void execute() { + Optional event = eventList.getEventByName(this.eventName); + + if (event.isEmpty()) { + this.message = INVALID_EVENT_MESSAGE; + return; + } + + boolean isMarked = event.get().markParticipant(this.participantName, this.toMark); + + if (isMarked) { + this.message = (this.toMark) ? PARTICIPANT_MARK_MESSAGE : PARTICIPANT_UNMARK_MESSAGE; + } else { + this.message = INVALID_PARTICIPANT_MESSAGE; + } + } +} diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 26f1c9dafb..81866f21c4 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -3,6 +3,7 @@ import seedu.manager.item.Participant; import java.util.ArrayList; +import java.util.Optional; /** * The Event class represents an event with a name, time, and venue. @@ -78,6 +79,25 @@ public int getParticipantCount() { return this.participantList.size(); } + /** + * Returns the participant in the participant list with the given name. + * If the participant is not in the participant list, returns null. + * + * @param participantName the name of the participant. + * @return the participant in the participant list with participantName, or null if + * no such participant exists. + */ + private Optional getParticipantByName(String participantName) { + for (Participant participant : this.participantList) { + if (participant.getName().equalsIgnoreCase(participantName)) + { + return Optional.of(participant); + } + } + + return Optional.empty(); + } + /** * @return the event name */ @@ -144,6 +164,25 @@ public char markIfDone() { return (this.isDone) ? 'Y' : 'N'; } + /** + * Returns true if the participant with the given name can be marked present or absent. + * Returns false otherwise. + * + * @param participantName the name of the participant. + * @param isPresent true if the participant is to be marked present, false if he is to be marked absent. + * @return {@code true} if the participant with participantName has been marked present or absent, + * {@code false} otherwise. + */ + public boolean markParticipant(String participantName, boolean isPresent) { + Optional participant = getParticipantByName(participantName); + + if (participant.isEmpty()) { + return false; + } + + participant.get().setPresent(isPresent); + return true; + } /** * Returns a string representation of the event, indicating its name, time and venue. * diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 04f3ec0023..7007d1708e 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -4,6 +4,7 @@ import seedu.manager.command.AddCommand; import seedu.manager.command.InvalidCommand; import seedu.manager.command.MarkCommand; +import seedu.manager.command.MarkEventCommand; import seedu.manager.command.RemoveCommand; import seedu.manager.command.ExitCommand; import seedu.manager.command.MenuCommand; @@ -229,9 +230,9 @@ private Command parseMarkCommand(String input, String[] commandParts) { */ private Command getMarkEventCommand(String eventName, String status) { if (status.equalsIgnoreCase("done")) { - return new MarkCommand(eventName, true); + return new MarkEventCommand(eventName, true); } else if (status.equalsIgnoreCase("undone")) { - return new MarkCommand(eventName, false); + return new MarkEventCommand(eventName, false); } else { logger.log(WARNING,"Invalid status keyword"); return new InvalidCommand(INVALID_EVENT_STATUS_MESSAGE); diff --git a/src/test/java/seedu/manager/command/MarkCommandTest.java b/src/test/java/seedu/manager/command/MarkEventCommandTest.java similarity index 83% rename from src/test/java/seedu/manager/command/MarkCommandTest.java rename to src/test/java/seedu/manager/command/MarkEventCommandTest.java index c98c68327b..b6fe012e7c 100644 --- a/src/test/java/seedu/manager/command/MarkCommandTest.java +++ b/src/test/java/seedu/manager/command/MarkEventCommandTest.java @@ -6,7 +6,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -class MarkCommandTest { +class MarkEventCommandTest { private EventList eventList; @BeforeEach @@ -18,7 +18,7 @@ public void testSetUp() { @Test public void execute_eventPresentMarkDone_success() { String expectedMessage = "Event marked as done"; - MarkCommand command = new MarkCommand("Event 1", true); + MarkCommand command = new MarkEventCommand("Event 1", true); command.setData(eventList); command.execute(); assertEquals(expectedMessage, command.getMessage()); @@ -27,7 +27,7 @@ public void execute_eventPresentMarkDone_success() { @Test public void execute_eventPresentMarkNotDone_success() { String expectedMessage = "Event marked not done"; - MarkCommand command = new MarkCommand("Event 1", false); + MarkCommand command = new MarkEventCommand("Event 1", false); command.setData(eventList); command.execute(); assertEquals(expectedMessage, command.getMessage()); @@ -36,7 +36,7 @@ public void execute_eventPresentMarkNotDone_success() { @Test public void execute_eventAbsent_failure() { String expectedMessage = "Event not found!"; - MarkCommand command = new MarkCommand("Event 2", true); + MarkCommand command = new MarkEventCommand("Event 2", true); command.setData(eventList); command.execute(); assertEquals(expectedMessage, command.getMessage()); diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index bbe8f8bd9a..4780cdf05c 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -5,7 +5,7 @@ import seedu.manager.command.Command; import seedu.manager.command.ExitCommand; import seedu.manager.command.InvalidCommand; -import seedu.manager.command.MarkCommand; +import seedu.manager.command.MarkEventCommand; import seedu.manager.command.MenuCommand; import seedu.manager.command.ListCommand; import seedu.manager.command.RemoveCommand; @@ -83,7 +83,7 @@ public void parseCommand_markEvent_mark() { Parser parser = new Parser(); Command command = parser.parseCommand("mark -e event -s done"); - assertInstanceOf(MarkCommand.class, command); + assertInstanceOf(MarkEventCommand.class, command); } @Test From 5aecfd63d6102de29896ae66e2a6a4b04fa4c315 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 22 Oct 2024 12:47:48 +0800 Subject: [PATCH 169/619] Add JUnit tests for MarkParticipantCommand and fix Checkstyle issues --- .../seedu/manager/command/MarkCommand.java | 4 -- src/main/java/seedu/manager/event/Event.java | 7 +-- .../command/MarkParticipantCommandTest.java | 62 +++++++++++++++++++ 3 files changed, 65 insertions(+), 8 deletions(-) create mode 100644 src/test/java/seedu/manager/command/MarkParticipantCommandTest.java diff --git a/src/main/java/seedu/manager/command/MarkCommand.java b/src/main/java/seedu/manager/command/MarkCommand.java index 062dfafe4e..5119c82504 100644 --- a/src/main/java/seedu/manager/command/MarkCommand.java +++ b/src/main/java/seedu/manager/command/MarkCommand.java @@ -1,9 +1,5 @@ package seedu.manager.command; -import seedu.manager.event.Event; - -import java.util.Optional; - /** * Represents an executable mark command */ diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 81866f21c4..a28d136e23 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -85,12 +85,11 @@ public int getParticipantCount() { * * @param participantName the name of the participant. * @return the participant in the participant list with participantName, or null if - * no such participant exists. + * no such participant exists. */ private Optional getParticipantByName(String participantName) { for (Participant participant : this.participantList) { - if (participant.getName().equalsIgnoreCase(participantName)) - { + if (participant.getName().equalsIgnoreCase(participantName)) { return Optional.of(participant); } } @@ -171,7 +170,7 @@ public char markIfDone() { * @param participantName the name of the participant. * @param isPresent true if the participant is to be marked present, false if he is to be marked absent. * @return {@code true} if the participant with participantName has been marked present or absent, - * {@code false} otherwise. + * {@code false} otherwise. */ public boolean markParticipant(String participantName, boolean isPresent) { Optional participant = getParticipantByName(participantName); diff --git a/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java b/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java new file mode 100644 index 0000000000..56bec68dbf --- /dev/null +++ b/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java @@ -0,0 +1,62 @@ +package seedu.manager.command; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import seedu.manager.event.EventList; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class MarkParticipantCommandTest { + private EventList eventList; + + @BeforeEach + public void testSetUp() { + eventList = new EventList(); + eventList.addEvent("Event 1", "2024-10-10 1600", "Venue 1"); + eventList.addParticipantToEvent("John Doe", "Event 1"); + } + + @Test + public void execute_validParticipantMarkPresent_success() { + String expectedMessage = "Participant marked present."; + + MarkParticipantCommand command = new MarkParticipantCommand("John Doe", + "Event 1", true); + command.setData(eventList); + command.execute(); + assertEquals(expectedMessage, command.getMessage()); + } + + @Test + public void execute_validParticipantMarkAbsent_success() { + String expectedMessage = "Participant marked absent."; + + MarkParticipantCommand command = new MarkParticipantCommand("John Doe", + "Event 1", false); + command.setData(eventList); + command.execute(); + assertEquals(expectedMessage, command.getMessage()); + } + + @Test + public void execute_invalidParticipantMarkAbsent_failure() { + String expectedMessage = "Participant not found!"; + + MarkParticipantCommand command = new MarkParticipantCommand("Jane Doe", + "Event 1", true); + command.setData(eventList); + command.execute(); + assertEquals(expectedMessage, command.getMessage()); + } + + @Test + public void execute_invalidEventMarkAbsent_failure() { + String expectedMessage = "Event not found!"; + + MarkParticipantCommand command = new MarkParticipantCommand("Jane Doe", + "Event 2", true); + command.setData(eventList); + command.execute(); + assertEquals(expectedMessage, command.getMessage()); + } +} From 4b50a623083e7b781696729c679c1942c9d3ba38 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 22 Oct 2024 16:10:23 +0800 Subject: [PATCH 170/619] Change message syntax for participant details The participants' status is denoted using the terms "present", if they are present, and "not present", if they are not present. This makes the participant list entries long and difficult to read. Let's change the syntax such that whether a participant has been marked present or not is indicated by the presence or absence of an "X" beside the participant's name. This makes the participant list easier to read. --- src/main/java/seedu/manager/item/Participant.java | 8 ++++---- src/test/java/seedu/manager/command/ViewCommandTest.java | 2 +- src/test/java/seedu/manager/item/ParticipantTest.java | 6 +++--- text-ui-test/EXPECTED.TXT | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/seedu/manager/item/Participant.java b/src/main/java/seedu/manager/item/Participant.java index 9d6de3a575..ad193a1ec9 100644 --- a/src/main/java/seedu/manager/item/Participant.java +++ b/src/main/java/seedu/manager/item/Participant.java @@ -38,12 +38,12 @@ public void setPresent(boolean isPresent) { } /** - * Returns "present" if isPresent is true, "not present" otherwise. + * Returns "X" if isPresent is true, " " otherwise. * - * @return "present" if isPresent is true, "not present" otherwise. + * @return "X" if isPresent is true, " " otherwise. */ public String markIfPresent() { - return (this.isPresent) ? "present" : "not present"; + return (this.isPresent) ? "X" : " "; } /** @@ -53,6 +53,6 @@ public String markIfPresent() { */ @Override public String toString() { - return String.format("%s (status: %s)", this.name, this.markIfPresent()); + return String.format("%s [%s]", this.name, this.markIfPresent()); } } diff --git a/src/test/java/seedu/manager/command/ViewCommandTest.java b/src/test/java/seedu/manager/command/ViewCommandTest.java index 221ff82ff5..f1f5d16387 100644 --- a/src/test/java/seedu/manager/command/ViewCommandTest.java +++ b/src/test/java/seedu/manager/command/ViewCommandTest.java @@ -33,7 +33,7 @@ public void setUp() { @Test public void execute_twoEvents_success() { String expectedMessage = "There are 1 participants in Event 1! Here are your participants:\n" - + "1. Tom (status: not present)\n"; + + "1. Tom [ ]\n"; assertEquals(expectedMessage, viewCommand.getMessage()); assertFalse(viewCommand.getCanExit()); diff --git a/src/test/java/seedu/manager/item/ParticipantTest.java b/src/test/java/seedu/manager/item/ParticipantTest.java index b90fefbdf1..3d9317ebfd 100644 --- a/src/test/java/seedu/manager/item/ParticipantTest.java +++ b/src/test/java/seedu/manager/item/ParticipantTest.java @@ -10,20 +10,20 @@ class ParticipantTest { public void setPresent_setTrue_present() { Participant participant = new Participant("Participant"); participant.setPresent(true); - assertEquals("present", participant.markIfPresent()); + assertEquals("X", participant.markIfPresent()); } @Test public void setPresent_setFalse_notPresent() { Participant participant = new Participant("Participant"); participant.setPresent(false); - assertEquals("not present", participant.markIfPresent()); + assertEquals(" ", participant.markIfPresent()); } @Test public void toString_setTrue_present() { Participant participant = new Participant("Participant"); participant.setPresent(true); - assertEquals("Participant (status: present)", participant.toString()); + assertEquals("Participant [X]", participant.toString()); } } diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index cdb5199831..d0409addb4 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -36,7 +36,7 @@ Enter a command: Event not found! Enter a command: Participant added successfully ------------------------ Enter a command: There are 1 participants in dinner party! Here are your participants: -1. Mary (status: not present) +1. Mary [ ] ------------------------ Enter a command: Thank you for using EventManagerCLI. Goodbye! From d1bd734351ef94ef71945248201f27637d94a6ef Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Wed, 23 Oct 2024 17:05:09 +0800 Subject: [PATCH 171/619] implement the sortCommand to sort the events by name. --- src/main/java/seedu/manager/command/SortCommand.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/main/java/seedu/manager/command/SortCommand.java diff --git a/src/main/java/seedu/manager/command/SortCommand.java b/src/main/java/seedu/manager/command/SortCommand.java new file mode 100644 index 0000000000..37a7a788a3 --- /dev/null +++ b/src/main/java/seedu/manager/command/SortCommand.java @@ -0,0 +1,4 @@ +package seedu.manager.command; + +public class SortCommand { +} From 43ef9ce9dc3e33ab7df18ab305c6322f6ce66b7d Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Wed, 23 Oct 2024 17:05:16 +0800 Subject: [PATCH 172/619] implement the sortCommand to sort the events by name. --- .../seedu/manager/command/SortCommand.java | 42 ++++++++++++++++++- .../java/seedu/manager/event/EventList.java | 26 +++++++----- .../java/seedu/manager/parser/Parser.java | 35 ++++++++++++++++ 3 files changed, 92 insertions(+), 11 deletions(-) diff --git a/src/main/java/seedu/manager/command/SortCommand.java b/src/main/java/seedu/manager/command/SortCommand.java index 37a7a788a3..6524b2b745 100644 --- a/src/main/java/seedu/manager/command/SortCommand.java +++ b/src/main/java/seedu/manager/command/SortCommand.java @@ -1,4 +1,44 @@ package seedu.manager.command; -public class SortCommand { +import seedu.manager.event.Event; +import seedu.manager.event.EventList; + +import java.util.ArrayList; +import java.util.List; + +/** + * Represents a command to sort the events in different ways. + * The sort command will store the sorting keyword. + */ +public class SortCommand extends Command { + public static final String COMMAND_WORD = "sort"; + + private static final String SORT_BY_NAME_MESSAGE = "Successfully sort events by name!"; + + protected String keyword; + + public SortCommand(String keyword) { + super(false); + this.keyword = keyword; + } + + @Override + public void execute() { + StringBuilder outputMessage = new StringBuilder(); + EventList sortedEventList = new EventList(eventList); // deep copy + + switch(keyword){ + case "name": + sortedEventList.sortByName(); + outputMessage.append(SORT_BY_NAME_MESSAGE + "\n"); + case "time", "priority": + break; + } + + // print out the sorted new list. + for (int i = 0; i < sortedEventList.getListSize(); i++) { + outputMessage.append(String.format("%d. %s\n", i + 1, sortedEventList.getEvent(i).toString())); + } + this.message = outputMessage.toString(); + } } diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index b7e8ddb7bf..849a02b947 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -1,6 +1,7 @@ package seedu.manager.event; import java.util.ArrayList; +import java.util.Comparator; import java.util.Optional; @@ -12,19 +13,19 @@ public class EventList { private final ArrayList eventList; /** - * Constructor that initializes EventList with a given list of event. - * - * @param eventList The initial list of tasks. + * Default constructor that initializes an empty event list. */ - public EventList(ArrayList eventList) { - this.eventList = eventList; + public EventList(){ + eventList = new ArrayList<>(); } /** - * Default constructor that initializes an empty event list. + * Constructor that initializes EventList with a given list of event. + * + * @param otherEventList The initial list of tasks. */ - public EventList(){ - eventList = new ArrayList<>(); + public EventList(EventList otherEventList) { + this.eventList = new ArrayList<>(otherEventList.eventList); } /** @@ -72,7 +73,6 @@ public Optional getEventByName(String eventName) { return Optional.of(event); } } - return Optional.empty(); } @@ -108,7 +108,6 @@ public boolean addParticipantToEvent(String participantName, String eventName) { return true; } } - return false; } @@ -136,4 +135,11 @@ public boolean removeParticipantFromEvent(String participantName, String eventNa } return false; } + + /** + * Sort the event list by name, alphabetically. + */ + public void sortByName(){ + eventList.sort(Comparator.comparing(Event::getEventName)); + } } diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index b0e6dee41a..6175a17083 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -8,8 +8,10 @@ import seedu.manager.command.MenuCommand; import seedu.manager.command.ListCommand; import seedu.manager.command.ViewCommand; +import seedu.manager.command.SortCommand; import seedu.manager.exception.InvalidCommandException; +import java.util.Set; import java.util.logging.Logger; import static java.util.logging.Level.WARNING; @@ -42,6 +44,15 @@ public class Parser { Invalid event status! Please set the event status as either "done" or "undone" """; + private static final String INVALID_SORT_MESSAGE = """ + Invalid command! + Please enter your commands in the following format: + sort -e EVENT -by name/time/priority + """; + private static final String INVALID_SORT_KEYWORD_MESSAGE = """ + Invalid sort keyword! + Please set the sort keyword as either "name"/"time"/"priority" + """; /** * Returns a command based on the given user command string. @@ -68,6 +79,8 @@ public Command parseCommand(String command) throws InvalidCommandException { return new ExitCommand(); case MarkCommand.COMMAND_WORD: return parseMarkCommand(command, commandParts); + case SortCommand.COMMAND_WORD: + return parseSortCommand(command, commandParts); default: throw new InvalidCommandException(INVALID_COMMAND_MESSAGE); } @@ -242,4 +255,26 @@ private Command getMarkEventCommand(String eventName, String status) throws Inva throw new InvalidCommandException(INVALID_EVENT_STATUS_MESSAGE); } } + + private Command parseSortCommand(String input, String[] commandParts) throws InvalidCommandException{ + assert commandParts[0].equalsIgnoreCase(SortCommand.COMMAND_WORD); + try { + String[] inputParts = input.split("-by", 2); + if (inputParts.length < 2) { + throw new InvalidCommandException(INVALID_SORT_MESSAGE); + } + + String keyword = inputParts[1].trim(); + System.out.println(keyword); + Set validKeywords = Set.of("name", "time", "priority"); + if (validKeywords.contains(keyword.toLowerCase())) { + return new SortCommand(keyword); + } + throw new InvalidCommandException(INVALID_SORT_KEYWORD_MESSAGE); + + } catch (IndexOutOfBoundsException exception) { + logger.log(WARNING, "Invalid command format"); + throw new InvalidCommandException(INVALID_SORT_MESSAGE); + } + } } From 92b5c78e1aa6c3906973a256ff7adfecf3a9eb43 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Wed, 23 Oct 2024 17:08:17 +0800 Subject: [PATCH 173/619] edit the menu. --- src/main/java/seedu/manager/command/MenuCommand.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index fd6f593f99..28be9683a5 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -14,8 +14,8 @@ public class MenuCommand extends Command { add -p PARTICIPANT -e EVENT: Add a participant to an event. view -e EVENT: View the list of participants of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. - mark -e EVENT -s STATUS: Mark an event as done or not done"""; - + mark -e EVENT -s STATUS: Mark an event as done or not done. + sort -by name/time/priority."""; /** * Constructs a new MenuCommand */ From b0e4b6637dfa377e3487e2edf2049e3d1953dea5 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 23 Oct 2024 17:09:25 +0800 Subject: [PATCH 174/619] Add functionality for executing the mark participant command to Parser --- .../java/seedu/manager/parser/Parser.java | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 53344d52b9..abad6f8270 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -4,6 +4,7 @@ import seedu.manager.command.AddCommand; import seedu.manager.command.MarkCommand; import seedu.manager.command.MarkEventCommand; +import seedu.manager.command.MarkParticipantCommand; import seedu.manager.command.RemoveCommand; import seedu.manager.command.ExitCommand; import seedu.manager.command.MenuCommand; @@ -214,6 +215,9 @@ private Command parseMarkCommand(String input, String[] commandParts) throws Inv if (commandFlag.equalsIgnoreCase("-e")) { String[] inputParts = input.split("-e|-s"); return getMarkEventCommand(inputParts[1].trim(), inputParts[2].trim()); + } else if (commandFlag.equalsIgnoreCase("-p")) { + String[] inputParts = input.split("-p|-e|-s"); + return getMarkParticipantCommand(inputParts[1].trim(), inputParts[2].trim(), inputParts[3].trim()); } logger.log(WARNING,"Invalid command format"); @@ -225,8 +229,8 @@ private Command parseMarkCommand(String input, String[] commandParts) throws Inv } /** - * Returns a {@link MarkCommand} with a given event name and status. If the given status is invalid, - * throws an {@link InvalidCommandException}. + * Returns a {@link MarkEventCommand} with a given event name and status. If the given status is invalid, + * throws an {@link InvalidCommandException}. * * @param eventName the given event name. * @param status the given event status. @@ -243,4 +247,25 @@ private Command getMarkEventCommand(String eventName, String status) throws Inva throw new InvalidCommandException(INVALID_EVENT_STATUS_MESSAGE); } } + + /** + * Returns a {@link MarkCommand} with a given participant name, event name and status. If the given status is + * invalid, throws an {@link InvalidCommandException}. + * + * @param participantName the given participant name. + * @param eventName the given event name. + * @param status the given event status. + * @return a MarkCommand with a given event name and status + * @throws InvalidCommandException if the given status is invalid. + */ + private Command getMarkParticipantCommand(String participantName, String eventName, String status) { + if (status.equalsIgnoreCase("present")) { + return new MarkParticipantCommand(participantName, eventName, true); + } else if (status.equalsIgnoreCase("absent")) { + return new MarkParticipantCommand(participantName, eventName, false); + } else { + logger.log(WARNING,"Invalid status keyword"); + throw new InvalidCommandException(INVALID_EVENT_STATUS_MESSAGE); + } + } } From 1e67517f369e98801fc9cdc0949af84ad59e6c88 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Wed, 23 Oct 2024 17:16:24 +0800 Subject: [PATCH 175/619] add Java Doc --- .../java/seedu/manager/command/SortCommand.java | 13 +++++++++---- src/main/java/seedu/manager/parser/Parser.java | 15 +++++++++++++++ 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/manager/command/SortCommand.java b/src/main/java/seedu/manager/command/SortCommand.java index 6524b2b745..f019eba090 100644 --- a/src/main/java/seedu/manager/command/SortCommand.java +++ b/src/main/java/seedu/manager/command/SortCommand.java @@ -1,11 +1,7 @@ package seedu.manager.command; -import seedu.manager.event.Event; import seedu.manager.event.EventList; -import java.util.ArrayList; -import java.util.List; - /** * Represents a command to sort the events in different ways. * The sort command will store the sorting keyword. @@ -17,11 +13,20 @@ public class SortCommand extends Command { protected String keyword; + /** + * Constructs a new SortCommand with the given keyword + * + * @param keyword the keyword of sorting + */ public SortCommand(String keyword) { super(false); this.keyword = keyword; } + /** + * Executes a sort command by sorting events in different ways, + * depending on the keyword. + */ @Override public void execute() { StringBuilder outputMessage = new StringBuilder(); diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 6175a17083..e7a64f30fd 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -256,6 +256,21 @@ private Command getMarkEventCommand(String eventName, String status) throws Inva } } + /** + * Parses the input string to create a {@link Command} based on the provided command parts. + * + *

+ * This method checks the command flag extracted from the command parts. If the command + * flag is {@code "-by"}, it splits the input string to create a {@link SortCommand} + * Otherwise, it throws an {@link InvalidCommandException} with an error message. + *

+ * + * @param input the input string containing the command details. + * @param commandParts an array of strings representing the parsed command parts, + * where the second element is the command flag. + * @return a {@link Command} object representing the parsed command. + * @throws InvalidCommandException if the flag is not matched. + */ private Command parseSortCommand(String input, String[] commandParts) throws InvalidCommandException{ assert commandParts[0].equalsIgnoreCase(SortCommand.COMMAND_WORD); try { From 5e16859d54f6c6d75ddabe2a1e864acdc04d8214 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Wed, 23 Oct 2024 17:18:57 +0800 Subject: [PATCH 176/619] correct error --- src/main/java/seedu/manager/command/SortCommand.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/seedu/manager/command/SortCommand.java b/src/main/java/seedu/manager/command/SortCommand.java index f019eba090..1f90e070aa 100644 --- a/src/main/java/seedu/manager/command/SortCommand.java +++ b/src/main/java/seedu/manager/command/SortCommand.java @@ -36,8 +36,10 @@ public void execute() { case "name": sortedEventList.sortByName(); outputMessage.append(SORT_BY_NAME_MESSAGE + "\n"); + break; case "time", "priority": break; + default: } // print out the sorted new list. From 42c05ca0c73134d3e44b4a24c740bf22ff85b38c Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Wed, 23 Oct 2024 17:33:39 +0800 Subject: [PATCH 177/619] add test --- text-ui-test/EXPECTED.TXT | 11 ++++++++++- text-ui-test/input.txt | 2 ++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index d0409addb4..acce44ea2b 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -9,7 +9,8 @@ remove -e EVENT: Remove an event from the event list. add -p PARTICIPANT -e EVENT: Add a participant to an event. view -e EVENT: View the list of participants of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. -mark -e EVENT -s STATUS: Mark an event as done or not done +mark -e EVENT -s STATUS: Mark an event as done or not done. +sort -by name/time/priority. ------------------------ Enter a command: There are 0 events in your list! Here are your scheduled events: @@ -38,6 +39,14 @@ Enter a command: Participant added successfully Enter a command: There are 1 participants in dinner party! Here are your participants: 1. Mary [ ] +------------------------ +Enter a command: Event added successfully +------------------------ +Enter a command: name +Successfully sort events by name! +1. Event name: anniversary celebration / Event time: 2024-10-23 / Event venue: hotel / Done: N +2. Event name: dinner party / Event time: 2024-10-10 / Event venue: Alice's House / Done: Y + ------------------------ Enter a command: Thank you for using EventManagerCLI. Goodbye! ------------------------ diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index e312c513f5..dfa2f70151 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -9,4 +9,6 @@ list mark -e Saturday brunch -s done add -p Mary -e dinner party view -e dinner party +add -e anniversary celebration -t 2024-10-23 -v hotel +sort -by name exit From 923ee39ee8e9e6abb8e7e76998a866eada6b06eb Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 23 Oct 2024 18:32:03 +0800 Subject: [PATCH 178/619] Add target user and value proposition --- docs/DeveloperGuide.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 64e1f0ed2b..f34070b4a6 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -12,18 +12,23 @@ ## Product scope ### Target user profile -{Describe the target user profile} +The target user: +* has a need to organise a large number of events +* organises small-scale events, such that he is able to handle all matters on his own +* prefers typing to mouse interactions +* is comfortable using a command-line interface ### Value proposition -{Describe the value proposition: what problem does it solve?} +The user is able to organise and manage his events more quickly and efficiently than with a mouse/GUI app ## User Stories -|Version| As a ... | I want to ... | So that I can ...| -|--------|----------|---------------|------------------| -|v1.0|new user|see usage instructions|refer to them when I forget how to use the application| -|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list| +| Version | As a ... | I want to ... | So that I can ... | +|---------|----------|--------------------------|--------------------------------------------------------| +| v1.0 | new user | see usage instructions | refer to them when I forget how to use the application | +| v2.0 | user | mark events as completed | easily track all past events | +| v2.0 | user | mark participants present| know exactly who signed up but did not attend the event| ## Non-Functional Requirements From db72cdfa31f36e173b70a3e617cb2f9a49d0c1e6 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 23 Oct 2024 19:19:41 +0800 Subject: [PATCH 179/619] Add author tags to functional code --- src/main/java/seedu/manager/command/AddCommand.java | 3 +++ src/main/java/seedu/manager/command/Command.java | 3 +++ src/main/java/seedu/manager/command/ExitCommand.java | 1 + src/main/java/seedu/manager/command/ListCommand.java | 2 +- src/main/java/seedu/manager/command/MarkCommand.java | 1 + src/main/java/seedu/manager/command/MarkEventCommand.java | 1 + .../java/seedu/manager/command/MarkParticipantCommand.java | 1 + src/main/java/seedu/manager/command/MenuCommand.java | 1 + src/main/java/seedu/manager/command/RemoveCommand.java | 2 ++ src/main/java/seedu/manager/command/ViewCommand.java | 1 + src/main/java/seedu/manager/event/Event.java | 7 +++++++ src/main/java/seedu/manager/event/EventList.java | 3 +++ .../seedu/manager/exception/InvalidCommandException.java | 1 + src/main/java/seedu/manager/item/Participant.java | 1 + src/main/java/seedu/manager/parser/Parser.java | 2 ++ src/main/java/seedu/manager/ui/Ui.java | 3 +++ 16 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index 7c0d523d9d..b7311c882d 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -1,5 +1,6 @@ package seedu.manager.command; +//@@author KuanHsienn /** * Represents a command to add an event to the event list. * The add command will store the event's name, time, and venue. @@ -28,6 +29,7 @@ public AddCommand(String eventName, String time, String venue) { this.venue = venue; } + //@@author LTK-1606 /** * Constructs an {@code AddCommand} with the specified participant name and event name. * @@ -42,6 +44,7 @@ public AddCommand(String participantName, String eventName) { this.eventName = eventName; } + //@@author KuanHsienn /** * Executes the command to add an event or a participant to an event. *

diff --git a/src/main/java/seedu/manager/command/Command.java b/src/main/java/seedu/manager/command/Command.java index 836d5b1c76..f1dedd51b6 100644 --- a/src/main/java/seedu/manager/command/Command.java +++ b/src/main/java/seedu/manager/command/Command.java @@ -2,6 +2,7 @@ import seedu.manager.event.EventList; +//@@author jemehgoh /** * Represents an executable command */ @@ -19,6 +20,7 @@ protected Command(boolean canExit) { this.canExit = canExit; } + //@@author MatchaRRR /** * Sets the command's event list to a specified event list * @@ -28,6 +30,7 @@ public void setData(EventList events) { this.eventList = events; } + //@@jemehgoh /** * Executes the command */ diff --git a/src/main/java/seedu/manager/command/ExitCommand.java b/src/main/java/seedu/manager/command/ExitCommand.java index 1db9224fc6..18185fc1cc 100644 --- a/src/main/java/seedu/manager/command/ExitCommand.java +++ b/src/main/java/seedu/manager/command/ExitCommand.java @@ -1,5 +1,6 @@ package seedu.manager.command; +//@@author jemehgoh /** * Represents an executable exit command */ diff --git a/src/main/java/seedu/manager/command/ListCommand.java b/src/main/java/seedu/manager/command/ListCommand.java index 34e21f28d1..5f4b88da1b 100644 --- a/src/main/java/seedu/manager/command/ListCommand.java +++ b/src/main/java/seedu/manager/command/ListCommand.java @@ -1,6 +1,6 @@ package seedu.manager.command; - +//@@author MatchaRRR public class ListCommand extends Command { public static final String COMMAND_WORD = "list"; private static final String LIST_MESSAGE = "There are %1$d events in your list! " + diff --git a/src/main/java/seedu/manager/command/MarkCommand.java b/src/main/java/seedu/manager/command/MarkCommand.java index 5119c82504..15b873c04b 100644 --- a/src/main/java/seedu/manager/command/MarkCommand.java +++ b/src/main/java/seedu/manager/command/MarkCommand.java @@ -1,5 +1,6 @@ package seedu.manager.command; +//@@author jemehgoh /** * Represents an executable mark command */ diff --git a/src/main/java/seedu/manager/command/MarkEventCommand.java b/src/main/java/seedu/manager/command/MarkEventCommand.java index 0cd3cc37ef..629a911c47 100644 --- a/src/main/java/seedu/manager/command/MarkEventCommand.java +++ b/src/main/java/seedu/manager/command/MarkEventCommand.java @@ -4,6 +4,7 @@ import java.util.Optional; +//@@author jemehgoh /** * Represents an executable mark command for marking events. */ diff --git a/src/main/java/seedu/manager/command/MarkParticipantCommand.java b/src/main/java/seedu/manager/command/MarkParticipantCommand.java index 73cad3d790..43666d93bc 100644 --- a/src/main/java/seedu/manager/command/MarkParticipantCommand.java +++ b/src/main/java/seedu/manager/command/MarkParticipantCommand.java @@ -4,6 +4,7 @@ import java.util.Optional; +//@@author jemehgoh /** * Represents an executable mark command for marking participants. */ diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index fd6f593f99..5b240a6965 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -1,5 +1,6 @@ package seedu.manager.command; +//@@author glenn-chew /** * Represents an executable menu command */ diff --git a/src/main/java/seedu/manager/command/RemoveCommand.java b/src/main/java/seedu/manager/command/RemoveCommand.java index c66f9cc292..e15a35dd9b 100644 --- a/src/main/java/seedu/manager/command/RemoveCommand.java +++ b/src/main/java/seedu/manager/command/RemoveCommand.java @@ -1,5 +1,6 @@ package seedu.manager.command; +//@@author KuanHsienn /** * Represents a command to remove an event from the event list. * The remove command will search for an event by its name and remove it if found. @@ -21,6 +22,7 @@ public RemoveCommand(String eventName) { this.eventName = eventName; } + //@@author LTK-1606 /** * Constructs a RemoveCommand object with the specified event name. * diff --git a/src/main/java/seedu/manager/command/ViewCommand.java b/src/main/java/seedu/manager/command/ViewCommand.java index 5bb7dc7d12..7966c1d73f 100644 --- a/src/main/java/seedu/manager/command/ViewCommand.java +++ b/src/main/java/seedu/manager/command/ViewCommand.java @@ -5,6 +5,7 @@ import java.util.Optional; +//@@author glenn-chew /** * Represents a command to view the list of participants in an event. * The view command will search for an event by its name and display all its participants if found. diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index a28d136e23..4814e24664 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import java.util.Optional; +//@@author MatchaRRR /** * The Event class represents an event with a name, time, and venue. * It provides methods to access and modify the time and venue of the event. @@ -41,6 +42,7 @@ public Event(String eventName, String eventTime, String eventVenue) { this.isDone = false; } + //@@author LTK-1606 /** * Adds a participant to the participant list for the event. * @@ -79,6 +81,7 @@ public int getParticipantCount() { return this.participantList.size(); } + //@@author jemehgoh /** * Returns the participant in the participant list with the given name. * If the participant is not in the participant list, returns null. @@ -97,6 +100,7 @@ private Optional getParticipantByName(String participantName) { return Optional.empty(); } + //@@author MatchaRRR /** * @return the event name */ @@ -147,6 +151,7 @@ public void setEventVenue(String eventVenue) { this.eventVenue = eventVenue; } + //@@author jemehgoh /** * Sets if the event is done or not done * @@ -182,6 +187,8 @@ public boolean markParticipant(String participantName, boolean isPresent) { participant.get().setPresent(isPresent); return true; } + + //@@author MatchaRRR /** * Returns a string representation of the event, indicating its name, time and venue. * diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index b7e8ddb7bf..5a733503b0 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -59,6 +59,7 @@ public Event getEvent(int index) { return eventList.get(index); } + //@@author jemehgoh /** * Returns an event in the event list with a specified name. * Returns null if the event is not found. @@ -76,6 +77,7 @@ public Optional getEventByName(String eventName) { return Optional.empty(); } + //@@author KuanHsienn /** * Removes an event from the event list by its name. * @@ -93,6 +95,7 @@ public boolean removeEvent(String eventName) { return false; } + //@@author LTK-1606 /** * Returns true if a participant can be added to a specified event, * returns false otherwise. diff --git a/src/main/java/seedu/manager/exception/InvalidCommandException.java b/src/main/java/seedu/manager/exception/InvalidCommandException.java index 92e02e7cfe..5013a38b65 100644 --- a/src/main/java/seedu/manager/exception/InvalidCommandException.java +++ b/src/main/java/seedu/manager/exception/InvalidCommandException.java @@ -1,5 +1,6 @@ package seedu.manager.exception; +//@@author jemehgoh /** * Signals that an entered command is invalid */ diff --git a/src/main/java/seedu/manager/item/Participant.java b/src/main/java/seedu/manager/item/Participant.java index ad193a1ec9..4b03a3f99f 100644 --- a/src/main/java/seedu/manager/item/Participant.java +++ b/src/main/java/seedu/manager/item/Participant.java @@ -2,6 +2,7 @@ import seedu.manager.event.Event; +//@@author jemehgoh /** * Represents an event participant, in the participant list of an {@link Event}. */ diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index abad6f8270..c03da093c3 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -157,6 +157,7 @@ private Command parseRemoveCommand(String input, String[] commandParts) throws I } } + //@@author glenn-chew /** * Parses the input string to create a {@link Command} based on the provided command parts. * @@ -191,6 +192,7 @@ private Command parseViewCommand(String input, String[] commandParts) throws Inv } } + //@@author jemehgoh /** * Parses the input string to create a {@link Command} based on the provided command parts. * diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index 03f091e8bd..3d35201dc9 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -4,6 +4,7 @@ import java.util.Scanner; +//@@author jemehgoh /** * Represents the program's user interface */ @@ -36,6 +37,7 @@ public String getCommand() { return this.userInput.nextLine(); } + //@@author MatchaRRR /** * show the output message of a command to the users. */ @@ -44,6 +46,7 @@ public void showOutputToUser(Command command) { System.out.println(SEPARATOR); } + //@@author jemehgoh /** * Shows the error message of an exception to the user. */ From 879d3be2c31ed7e381089ddf4337a51fc9f04ae6 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 23 Oct 2024 20:38:10 +0800 Subject: [PATCH 180/619] Add overall architecture and sequence diagram --- docs/diagrams/ArchitectureSequence.puml | 50 +++++++++++++++++++++++++ docs/diagrams/OverallArchitecture.puml | 39 +++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 docs/diagrams/ArchitectureSequence.puml create mode 100644 docs/diagrams/OverallArchitecture.puml diff --git a/docs/diagrams/ArchitectureSequence.puml b/docs/diagrams/ArchitectureSequence.puml new file mode 100644 index 0000000000..d4db4e3db5 --- /dev/null +++ b/docs/diagrams/ArchitectureSequence.puml @@ -0,0 +1,50 @@ +@startuml +'https://plantuml.com/sequence-diagram + +Participant ":Main" as main +Participant ":Ui" as ui +Participant ":Parser" as parser +Participant ":XYZCommand" as command + +main -> ui : getCommand() +activate ui +ui --> main : UserCommandText: String +deactivate ui + +create parser +main -> parser : Parser() +activate parser +parser --> main : :Parser +deactivate parser + +main -> parser : parseCommand(UserCommandText: String) +activate parser + +create command +parser -> command : XYZCommand() +activate command +command --> parser : :XYZCommand +deactivate command + +parser --> main : command:XYZCommand +deactivate parser +destroy parser + +main -> command : execute() +activate command +command --> main +deactivate command + +main -> ui : showOutputToUser(command: Command) +activate ui + +ui -> command : getMessage() +activate command + +command --> ui : :String +deactivate command + +ui --> main +deactivate ui + +@enduml \ No newline at end of file diff --git a/docs/diagrams/OverallArchitecture.puml b/docs/diagrams/OverallArchitecture.puml new file mode 100644 index 0000000000..69217d1805 --- /dev/null +++ b/docs/diagrams/OverallArchitecture.puml @@ -0,0 +1,39 @@ +@startuml +'https://plantuml.com/class-diagram + +class Main { +} + +Main --> "1" Ui : ui +Main --> "1" EventList : events +Main ..> Parser +Main ..> Command + +class Ui { +} + +Ui ..> Command + +class Parser { +} + +Parser ..> Command + +abstract class Command { +} + +Command <|-- AddCommand +Command <|-- ExitCommand +Command <|-- ListCommand +Command <|-- XYZCommand + +Command ..> EventList + +class EventList { +} + +EventList *--> "*" Event + +Event *--> "*" Participant + +@enduml \ No newline at end of file From e7ce886c0f775fcfe2c4753ef7116e76c93f3967 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 24 Oct 2024 00:17:30 +0800 Subject: [PATCH 181/619] Modify UML diagrams and add architecture section to developer guide --- docs/DeveloperGuide.md | 19 +++++++++++++++- docs/diagrams/ArchitectureSequence.puml | 24 +++++++++++++++----- docs/diagrams/OverallArchitecture.puml | 4 ++-- docs/images/ArchitectureDiagram.png | Bin 0 -> 33634 bytes docs/images/ArchitectureSequenceDiagram.png | Bin 0 -> 49379 bytes 5 files changed, 38 insertions(+), 9 deletions(-) create mode 100644 docs/images/ArchitectureDiagram.png create mode 100644 docs/images/ArchitectureSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index f34070b4a6..11cd7da1e5 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -6,8 +6,25 @@ ## Design & implementation -{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.} + +The *Architecture Diagram* given above provides the high-level design of the application. + +### Main components + +The application comprises the following components: +* `Main`, which handles program startup and shutdown, and also interactions between other components. +* `UI`, which handles user input and showing messages to the user. +* `Parser`, which converts user input into commands. +* `Command`, which are executed to modify the data stored in the program. +* `EventList`, which stores the program's data. + +### Interactions between components + + + +The above *Sequence Diagram* shows how the different components of the system interact with one +another in the scenario when the command `add -e event -t 1200 -v venue` is executed. ## Product scope ### Target user profile diff --git a/docs/diagrams/ArchitectureSequence.puml b/docs/diagrams/ArchitectureSequence.puml index d4db4e3db5..736158c5f9 100644 --- a/docs/diagrams/ArchitectureSequence.puml +++ b/docs/diagrams/ArchitectureSequence.puml @@ -4,11 +4,12 @@ Participant ":Main" as main Participant ":Ui" as ui Participant ":Parser" as parser -Participant ":XYZCommand" as command +Participant ":AddCommand" as command +Participant ":EventList" as eventList main -> ui : getCommand() activate ui -ui --> main : UserCommandText: String +ui --> main : "add -e event -t 1200 -v venue" deactivate ui create parser @@ -17,21 +18,32 @@ activate parser parser --> main : :Parser deactivate parser -main -> parser : parseCommand(UserCommandText: String) +main -> parser : parseCommand("add -e event -t 1200 -v venue") activate parser create command -parser -> command : XYZCommand() +parser -> command : AddCommand("event", "1200", "venue") activate command -command --> parser : :XYZCommand +command --> parser : :AddCommand deactivate command -parser --> main : command:XYZCommand +parser --> main : command:AddCommand deactivate parser destroy parser +main -> command : setData(events:EventList) +activate command +command --> main +deactivate command + main -> command : execute() activate command + +command -> eventList : addEvent("event", "1200", "venue") +activate eventList +eventList --> command +deactivate eventList + command --> main deactivate command diff --git a/docs/diagrams/OverallArchitecture.puml b/docs/diagrams/OverallArchitecture.puml index 69217d1805..7fb32fa512 100644 --- a/docs/diagrams/OverallArchitecture.puml +++ b/docs/diagrams/OverallArchitecture.puml @@ -4,8 +4,8 @@ class Main { } -Main --> "1" Ui : ui -Main --> "1" EventList : events +Main --> Ui +Main --> EventList Main ..> Parser Main ..> Command diff --git a/docs/images/ArchitectureDiagram.png b/docs/images/ArchitectureDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..9a1f8cc59c35cc4d4ae2a395311544a1faf05492 GIT binary patch literal 33634 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

Lk8av$ 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 Q(Md>Tq!c8x#2>!;H-lH|umAu6 literal 0 HcmV?d00001 diff --git a/docs/images/ArchitectureSequenceDiagram.png b/docs/images/ArchitectureSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..0c9a2271b22595867e2d677fdaadbb300096a4fd GIT binary patch literal 49379 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
  • 1r>)I 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νRx(?OnCl|- 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 literal 0 HcmV?d00001 From 5e133dde6b4522f93902a0e51323acb7e024e8a9 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Thu, 24 Oct 2024 02:12:56 +0800 Subject: [PATCH 182/619] add JUnit test. --- .../manager/command/SortCommandTest.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/test/java/seedu/manager/command/SortCommandTest.java diff --git a/src/test/java/seedu/manager/command/SortCommandTest.java b/src/test/java/seedu/manager/command/SortCommandTest.java new file mode 100644 index 0000000000..be76fda2e5 --- /dev/null +++ b/src/test/java/seedu/manager/command/SortCommandTest.java @@ -0,0 +1,39 @@ +package seedu.manager.command; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import seedu.manager.event.EventList; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; + +public class SortCommandTest { + EventList eventList = new EventList(); + + @BeforeEach + public void setUp(){ + eventList.addEvent("C-Event", "2024-10-23 21:00", "Venue C"); + eventList.addEvent("B-Event", "2024-10-23 21:00", "Venue B"); + eventList.addEvent("A-Event", "2024-10-23 21:00", "Venue A"); + assertEquals(3, eventList.getListSize()); + } + + @Test + public void execute_sortByName_success() { + + SortCommand sortCommand = new SortCommand("name"); + + sortCommand.setData(eventList); + sortCommand.execute(); + + String expectedMessage = """ + Successfully sort events by name! + 1. Event name: A-Event / Event time: 2024-10-23 21:00 / Event venue: Venue A / Done: N + 2. Event name: B-Event / Event time: 2024-10-23 21:00 / Event venue: Venue B / Done: N + 3. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C / Done: N + """; + + assertEquals(expectedMessage, sortCommand.getMessage()); + assertFalse(sortCommand.getCanExit()); + } +} From e08a5553b858cd53a9c74a108bc9d370663b040a Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 24 Oct 2024 07:56:53 +0800 Subject: [PATCH 183/619] Add JUnit tests for MarkParticipantCommand and amend test case names --- .../java/seedu/manager/parser/ParserTest.java | 52 +++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index 0ba27f8d3f..f6c23c81c5 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -5,6 +5,7 @@ import seedu.manager.command.Command; import seedu.manager.command.ExitCommand; import seedu.manager.command.MarkEventCommand; +import seedu.manager.command.MarkParticipantCommand; import seedu.manager.command.MenuCommand; import seedu.manager.command.ListCommand; import seedu.manager.command.RemoveCommand; @@ -16,7 +17,7 @@ class ParserTest { @Test - public void parseCommand_invalidString_invalid() { + public void parseCommand_invalidString_throwsException() { Parser parser = new Parser(); String commandString = "Hello world!"; @@ -91,7 +92,7 @@ public void parseCommand_markEvent_mark() { } @Test - public void parseCommand_markEventNoStatus_invalid() { + public void parseCommand_markEventNoStatus_throwsException() { Parser parser = new Parser(); String commandString = "mark -e event"; @@ -100,11 +101,56 @@ public void parseCommand_markEventNoStatus_invalid() { } @Test - public void parseCommand_markEventInvalidStatus_invalid() { + public void parseCommand_markEventInvalidStatus_throwsException() { Parser parser = new Parser(); String commandString = "mark -e event -s yes"; assertThrows(InvalidCommandException.class,() -> { parser.parseCommand(commandString);}); } + + @Test + public void parseCommand_markParticipantPresent_mark() { + Parser parser = new Parser(); + String commandString = "mark -p John Doe -e event -s present"; + Command command = parser.parseCommand(commandString); + + assertInstanceOf(MarkParticipantCommand.class, command); + } + + @Test + public void parseCommand_markParticipantAbsent_mark() { + Parser parser = new Parser(); + String commandString = "mark -p John Doe -e event -s absent"; + Command command = parser.parseCommand(commandString); + + assertInstanceOf(MarkParticipantCommand.class, command); + } + + @Test + public void parseCommand_markParticipantNoStatus_throwsException() { + Parser parser = new Parser(); + String commandString = "mark -p John Doe -e event"; + + assertThrows(InvalidCommandException.class,() -> { + parser.parseCommand(commandString);}); + } + + @Test + public void parseCommand_markParticipantInvalidStatus_throwsException() { + Parser parser = new Parser(); + String commandString = "mark -p John Doe -e event -s done"; + + assertThrows(InvalidCommandException.class,() -> { + parser.parseCommand(commandString);}); + } + + @Test + public void parseCommand_markInvalidFlags_throwsException() { + Parser parser = new Parser(); + String commandString = "mark -s done"; + + assertThrows(InvalidCommandException.class,() -> { + parser.parseCommand(commandString);}); + } } From 832bff1469ace00983b572284b13ca2a323665f8 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 24 Oct 2024 08:08:48 +0800 Subject: [PATCH 184/619] Update error and menu messages to account for MarkParticipantCommand --- src/main/java/seedu/manager/command/MenuCommand.java | 3 ++- src/main/java/seedu/manager/parser/Parser.java | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 5b240a6965..a3e81310b1 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -15,7 +15,8 @@ public class MenuCommand extends Command { add -p PARTICIPANT -e EVENT: Add a participant to an event. view -e EVENT: View the list of participants of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. - mark -e EVENT -s STATUS: Mark an event as done or not done"""; + mark -e EVENT -s STATUS: Mark an event as done or not done + mark -p PARTICPANT -e EVENT -s STATUS: Mark a participant as present or absent"""; /** * Constructs a new MenuCommand diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index c03da093c3..6be62b4d77 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -39,11 +39,16 @@ public class Parser { private static final String INVALID_MARK_MESSAGE = """ Invalid command! Please enter your commands in the following format: - mark -e EVENT -s STATUS"""; + mark -e EVENT -s STATUS + mark -p PARTICIPANT -e EVENT -s STATUS"""; private static final String INVALID_EVENT_STATUS_MESSAGE = """ Invalid event status! Please set the event status as either "done" or "undone" """; + private static final String INVALID_PARTICIPANT_STATUS_MESSAGE = """ + Invalid participant status! + Please set the event status as either "present" or "absent" + """; /** * Returns a command based on the given user command string. @@ -267,7 +272,7 @@ private Command getMarkParticipantCommand(String participantName, String eventNa return new MarkParticipantCommand(participantName, eventName, false); } else { logger.log(WARNING,"Invalid status keyword"); - throw new InvalidCommandException(INVALID_EVENT_STATUS_MESSAGE); + throw new InvalidCommandException(INVALID_PARTICIPANT_STATUS_MESSAGE); } } } From 380d252d4f323e1a8354de27d4ddf34fcf63da1a Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 24 Oct 2024 08:12:28 +0800 Subject: [PATCH 185/619] Update I/O redirection test to account for changes to menu message --- src/main/java/seedu/manager/command/MenuCommand.java | 4 ++-- text-ui-test/EXPECTED.TXT | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index a3e81310b1..565041efca 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -15,8 +15,8 @@ public class MenuCommand extends Command { add -p PARTICIPANT -e EVENT: Add a participant to an event. view -e EVENT: View the list of participants of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. - mark -e EVENT -s STATUS: Mark an event as done or not done - mark -p PARTICPANT -e EVENT -s STATUS: Mark a participant as present or absent"""; + mark -e EVENT -s STATUS: Mark an event as done or not done. + mark -p PARTICPANT -e EVENT -s STATUS: Mark a participant as present or absent."""; /** * Constructs a new MenuCommand diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index d0409addb4..425a8cfb4b 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -9,7 +9,8 @@ remove -e EVENT: Remove an event from the event list. add -p PARTICIPANT -e EVENT: Add a participant to an event. view -e EVENT: View the list of participants of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. -mark -e EVENT -s STATUS: Mark an event as done or not done +mark -e EVENT -s STATUS: Mark an event as done or not done. +mark -p PARTICPANT -e EVENT -s STATUS: Mark a participant as present or absent. ------------------------ Enter a command: There are 0 events in your list! Here are your scheduled events: From f31ec6c8e466148ecdc4627e0027edb92e79548e Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 24 Oct 2024 08:20:26 +0800 Subject: [PATCH 186/619] Fix typo in menu message --- src/main/java/seedu/manager/command/MenuCommand.java | 2 +- text-ui-test/EXPECTED.TXT | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 565041efca..936deb9f5d 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -16,7 +16,7 @@ public class MenuCommand extends Command { view -e EVENT: View the list of participants of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. mark -e EVENT -s STATUS: Mark an event as done or not done. - mark -p PARTICPANT -e EVENT -s STATUS: Mark a participant as present or absent."""; + mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent."""; /** * Constructs a new MenuCommand diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 425a8cfb4b..fdaf71c197 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -10,7 +10,7 @@ add -p PARTICIPANT -e EVENT: Add a participant to an event. view -e EVENT: View the list of participants of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. mark -e EVENT -s STATUS: Mark an event as done or not done. -mark -p PARTICPANT -e EVENT -s STATUS: Mark a participant as present or absent. +mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. ------------------------ Enter a command: There are 0 events in your list! Here are your scheduled events: From fd86ab85785c72703aa039e7fc85dd0a47a43099 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Thu, 24 Oct 2024 10:56:42 +0800 Subject: [PATCH 187/619] Implement Storage class --- .../java/seedu/manager/event/EventList.java | 7 +++ .../java/seedu/manager/storage/Storage.java | 56 +++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 src/main/java/seedu/manager/storage/Storage.java diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index b7e8ddb7bf..9fca3d5e05 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -34,6 +34,13 @@ public int getListSize() { return eventList.size(); } + /** + * @return The event list + */ + public ArrayList getList() { + return this.eventList; + } + /** * Adds a new event to the event list. * diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java new file mode 100644 index 0000000000..1b6ca96c9b --- /dev/null +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -0,0 +1,56 @@ +package seedu.manager.storage; + +import seedu.manager.event.EventList; +import seedu.manager.event.Event; + +import java.io.FileWriter; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class Storage { + private final String filepath; + + /** + * Constructs a Storage object with the given file path. + * + * @param filepath The path to the storage file. + */ + public Storage(String filepath) { + this.filepath = filepath; + } + + /** + * Saves the list of events to the file. + * + * @param events The EventList to be saved. + * @throws IOException if there's an error writing to the file. + */ + public void saveEvents(EventList events) throws IOException { + try (FileWriter writer = new FileWriter(filepath)) { // Using try-with-resources + for (Event event : events.getList()) { + writer.write(event.getEventName() + "," + event.getEventTime() + "," + + event.getEventVenue() + "\n"); // Save event details + } + } + } + + /** + * Loads events from the file and returns an EventList. + * + * @throws IOException if there's an error reading from the file. + */ + public void loadEvents(EventList events) throws IOException { + for (String line : Files.readAllLines(Paths.get(filepath))) { + String[] parts = line.split(","); // Assuming CSV format + if (parts.length == 3) { + String eventName = parts[0].trim(); + String time = parts[1].trim(); + String venue = parts[2].trim(); + events.addEvent(eventName, time, venue); // Create event from loaded data + } + } + } +} + + From f9eb27f73a8e9c937a379731dfb6472ddca80cc2 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Thu, 24 Oct 2024 11:44:38 +0800 Subject: [PATCH 188/619] Implement storage class functionalities in main --- src/main/java/seedu/manager/Main.java | 31 ++++++++++++++++ .../java/seedu/manager/storage/Storage.java | 37 ++++++++++++------- src/main/java/seedu/manager/ui/Ui.java | 13 ++++++- 3 files changed, 67 insertions(+), 14 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index b385b00802..3a436df835 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -5,17 +5,24 @@ import seedu.manager.exception.InvalidCommandException; import seedu.manager.parser.Parser; import seedu.manager.ui.Ui; +import seedu.manager.storage.Storage; + +import java.io.IOException; public class Main { private static final Ui ui = new Ui(); private static EventList events = new EventList(); + private static final String filePath = "events.txt"; + private static final Storage storage = new Storage(filePath); /** * Main entry-point for the EventManagerCLI application. */ public static void main(String[] args) { ui.greetUser(); + loadData(); runCommandLoop(); + saveData(); System.exit(0); } @@ -41,4 +48,28 @@ private static void runCommandLoop() { } } } + + /** + * Loads events from file and handles exceptions. + */ + private static void loadData() { + try { + storage.loadEvents(events); // Load events using storage instance + ui.showMessage("Events loaded successfully."); + } catch (IOException e) { + ui.showErrorMessageToUser(e); // Use showErrorMessageToUser + } + } + + /** + * Saves events to file and handles exceptions. + */ + private static void saveData() { + try { + storage.saveEvents(events); // Save events using storage instance + ui.showMessage("Events saved successfully."); + } catch (IOException e) { + ui.showErrorMessageToUser(e); // Use showErrorMessageToUser + } + } } diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index 1b6ca96c9b..a429d9aa74 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -8,16 +8,21 @@ import java.nio.file.Files; import java.nio.file.Paths; +//@@author KuanHsienn +/** + * Represents the storage component for saving and loading events. + * + */ public class Storage { - private final String filepath; + private final String filePath; /** * Constructs a Storage object with the given file path. * - * @param filepath The path to the storage file. + * @param filePath The path to the storage file. */ - public Storage(String filepath) { - this.filepath = filepath; + public Storage(String filePath) { + this.filePath = filePath; } /** @@ -27,11 +32,13 @@ public Storage(String filepath) { * @throws IOException if there's an error writing to the file. */ public void saveEvents(EventList events) throws IOException { - try (FileWriter writer = new FileWriter(filepath)) { // Using try-with-resources + try (FileWriter writer = new FileWriter(filePath)) { for (Event event : events.getList()) { writer.write(event.getEventName() + "," + event.getEventTime() + "," - + event.getEventVenue() + "\n"); // Save event details + + event.getEventVenue() + "\n"); // Save event details in CSV format } + } catch (IOException e) { + throw new IOException("Error saving events to file: " + filePath + e); } } @@ -41,14 +48,18 @@ public void saveEvents(EventList events) throws IOException { * @throws IOException if there's an error reading from the file. */ public void loadEvents(EventList events) throws IOException { - for (String line : Files.readAllLines(Paths.get(filepath))) { - String[] parts = line.split(","); // Assuming CSV format - if (parts.length == 3) { - String eventName = parts[0].trim(); - String time = parts[1].trim(); - String venue = parts[2].trim(); - events.addEvent(eventName, time, venue); // Create event from loaded data + try { + for (String line : Files.readAllLines(Paths.get(filePath))) { + String[] parts = line.split(","); // CSV format + if (parts.length == 3) { + String eventName = parts[0].trim(); + String time = parts[1].trim(); + String venue = parts[2].trim(); + events.addEvent(eventName, time, venue); + } } + } catch (IOException e) { + throw new IOException("Error loading events from file: " + filePath + ". " + e.getMessage(), e); } } } diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index 03f091e8bd..e58629f115 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -37,7 +37,7 @@ public String getCommand() { } /** - * show the output message of a command to the users. + * Shows the output message of a command to the users. */ public void showOutputToUser(Command command) { System.out.println(command.getMessage()); @@ -51,4 +51,15 @@ public void showErrorMessageToUser(Exception exception) { System.out.println(exception.getMessage()); System.out.println(SEPARATOR); } + + //@@author KuanHsienn + /** + * Shows a message to the user. + * + * @param message The message to display to the user. + */ + public void showMessage(String message) { + System.out.println(message); + System.out.println(SEPARATOR); + } } From df794abc1667822934616d6eeb3d2e0c28fd1efb Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Thu, 24 Oct 2024 12:12:17 +0800 Subject: [PATCH 189/619] Update EXPECTED.txt file --- text-ui-test/EXPECTED.TXT | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index d0409addb4..04c1a92cd3 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -1,4 +1,6 @@ Welcome to EventManagerCLI. +Error loading events from file: events.txt. events.txt +------------------------ Enter a command: Invalid command! ------------------------ Enter a command: Here are the possible commands: @@ -41,3 +43,5 @@ Enter a command: There are 1 participants in dinner party! Here are your partici ------------------------ Enter a command: Thank you for using EventManagerCLI. Goodbye! ------------------------ +Events saved successfully. +------------------------ From 57ab923b14f8370914c86c65e3dba351527faaeb Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Thu, 24 Oct 2024 12:55:53 +0800 Subject: [PATCH 190/619] Add JUnit test --- .../java/seedu/manager/storage/Storage.java | 4 +- .../seedu/manager/storage/StorageTest.java | 109 ++++++++++++++++++ text-ui-test/EXPECTED.TXT | 2 +- 3 files changed, 112 insertions(+), 3 deletions(-) create mode 100644 src/test/java/seedu/manager/storage/StorageTest.java diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index a429d9aa74..7e3b0f4096 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -38,7 +38,7 @@ public void saveEvents(EventList events) throws IOException { + event.getEventVenue() + "\n"); // Save event details in CSV format } } catch (IOException e) { - throw new IOException("Error saving events to file: " + filePath + e); + throw new IOException("Error saving events to file: " + filePath); } } @@ -59,7 +59,7 @@ public void loadEvents(EventList events) throws IOException { } } } catch (IOException e) { - throw new IOException("Error loading events from file: " + filePath + ". " + e.getMessage(), e); + throw new IOException("Error loading events from file: " + filePath + "."); } } } diff --git a/src/test/java/seedu/manager/storage/StorageTest.java b/src/test/java/seedu/manager/storage/StorageTest.java new file mode 100644 index 0000000000..14f77427a3 --- /dev/null +++ b/src/test/java/seedu/manager/storage/StorageTest.java @@ -0,0 +1,109 @@ +package seedu.manager.storage; + +import seedu.manager.event.EventList; +import seedu.manager.event.Event; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.fail; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.File; +import java.io.IOException; + + +public class StorageTest { + private static final String TEST_FILE_PATH = "test_events.txt"; + private static final String NON_EXISTENT_FILE_PATH = "non_existent_file.txt"; + private Storage storage; + private EventList eventList; + + @BeforeEach + public void setUp() { + storage = new Storage(TEST_FILE_PATH); + eventList = new EventList(); + } + + @AfterEach + public void tearDown() { + File file = new File(TEST_FILE_PATH); + // Clean up the test file after each test + if (file.exists()) { + file.delete(); + } + } + + @Test + public void testLoadEvents_FileNotExists() { + Storage nonExistentFileStorage = new Storage(NON_EXISTENT_FILE_PATH); + + IOException exception = assertThrows(IOException.class, () -> { + nonExistentFileStorage.loadEvents(eventList); + }); + + assertEquals("Error loading events from file: " + NON_EXISTENT_FILE_PATH + ".", exception.getMessage()); + } + + @Test + public void testLoadEvents() { + try { + java.nio.file.Files.writeString( + java.nio.file.Paths.get(TEST_FILE_PATH), + "Meeting,2024-10-25 10:00,Conference Room\n" + + "Workshop,2024-10-26 14:00,Main Hall\n" + ); + } catch (IOException e) { + fail("Failed to set up the test data file: " + e.getMessage()); + } + + try { + storage.loadEvents(eventList); + } catch (IOException e) { + fail("Exception should not be thrown when loading events: " + e.getMessage()); + } + + assertEquals(2, eventList.getList().size()); + + Event firstEvent = eventList.getList().get(0); + assertEquals("Meeting", firstEvent.getEventName()); + assertEquals("2024-10-25 10:00", firstEvent.getEventTime()); + assertEquals("Conference Room", firstEvent.getEventVenue()); + + Event secondEvent = eventList.getList().get(1); + assertEquals("Workshop", secondEvent.getEventName()); + assertEquals("2024-10-26 14:00", secondEvent.getEventTime()); + assertEquals("Main Hall", secondEvent.getEventVenue()); + } + + @Test + public void testSaveEvents() { + eventList.addEvent("Meeting", "2024-10-25 10:00", "Conference Room"); + eventList.addEvent("Workshop", "2024-10-26 14:00", "Main Hall"); + + try { + storage.saveEvents(eventList); + } catch (IOException e) { + fail("Exception should not be thrown when saving events: " + e.getMessage()); + } + + File file = new File(TEST_FILE_PATH); + assertTrue(file.exists()); + + try { + String content = new String(java.nio.file.Files.readAllBytes(file.toPath())); + String expectedContent = "Meeting,2024-10-25 10:00,Conference Room\n" + + "Workshop,2024-10-26 14:00,Main Hall\n"; + assertEquals(expectedContent, content, "The file content does not match the expected output."); + } catch (IOException e) { + fail("Exception should not be thrown when reading the saved file: " + e.getMessage()); + } + } + + +} + + diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 04c1a92cd3..c13652a021 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -1,5 +1,5 @@ Welcome to EventManagerCLI. -Error loading events from file: events.txt. events.txt +Error loading events from file: events.txt. ------------------------ Enter a command: Invalid command! ------------------------ From b4ba811f4f5e0f4f5ea5a0124c4a0ab7ece108c0 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Thu, 24 Oct 2024 13:02:23 +0800 Subject: [PATCH 191/619] Update method name to pass CI test --- src/test/java/seedu/manager/storage/StorageTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/manager/storage/StorageTest.java b/src/test/java/seedu/manager/storage/StorageTest.java index 14f77427a3..64f5bfe238 100644 --- a/src/test/java/seedu/manager/storage/StorageTest.java +++ b/src/test/java/seedu/manager/storage/StorageTest.java @@ -38,7 +38,7 @@ public void tearDown() { } @Test - public void testLoadEvents_FileNotExists() { + public void testLoadEventsFileNotExists() { Storage nonExistentFileStorage = new Storage(NON_EXISTENT_FILE_PATH); IOException exception = assertThrows(IOException.class, () -> { From 3964d447bec66cf7dfd826bc170e391b994a5974 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Thu, 24 Oct 2024 13:32:42 +0800 Subject: [PATCH 192/619] modify the menu --- src/main/java/seedu/manager/command/MenuCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 28be9683a5..aad5192821 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -15,7 +15,7 @@ public class MenuCommand extends Command { view -e EVENT: View the list of participants of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. mark -e EVENT -s STATUS: Mark an event as done or not done. - sort -by name/time/priority."""; + sort -by KEYWORD: Sorts events by name/time/priority."""; /** * Constructs a new MenuCommand */ From ee004819aee1839adef421f3ad89f0883fcfcfc7 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Thu, 24 Oct 2024 13:35:18 +0800 Subject: [PATCH 193/619] modify the menu --- text-ui-test/EXPECTED.TXT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index acce44ea2b..cdf1249b83 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -10,7 +10,7 @@ add -p PARTICIPANT -e EVENT: Add a participant to an event. view -e EVENT: View the list of participants of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. mark -e EVENT -s STATUS: Mark an event as done or not done. -sort -by name/time/priority. +sort -by KEYWORD: Sorts events by name/time/priority. ------------------------ Enter a command: There are 0 events in your list! Here are your scheduled events: From 171aaf38ae25b5aac1321fbb1ced602961e6cade Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Thu, 24 Oct 2024 15:41:08 +0800 Subject: [PATCH 194/619] Modify JUnit Tests --- src/main/java/seedu/manager/Main.java | 12 ++++++------ src/main/java/seedu/manager/storage/Storage.java | 4 ++-- .../java/seedu/manager/storage/StorageTest.java | 16 ++++++++-------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 3a436df835..8d31127423 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -12,8 +12,8 @@ public class Main { private static final Ui ui = new Ui(); private static EventList events = new EventList(); - private static final String filePath = "events.txt"; - private static final Storage storage = new Storage(filePath); + private static final String FILE_PATH = "events.txt"; + private static final Storage storage = new Storage(FILE_PATH); /** * Main entry-point for the EventManagerCLI application. @@ -54,10 +54,10 @@ private static void runCommandLoop() { */ private static void loadData() { try { - storage.loadEvents(events); // Load events using storage instance + storage.loadEvents(events); ui.showMessage("Events loaded successfully."); } catch (IOException e) { - ui.showErrorMessageToUser(e); // Use showErrorMessageToUser + ui.showErrorMessageToUser(e); } } @@ -66,10 +66,10 @@ private static void loadData() { */ private static void saveData() { try { - storage.saveEvents(events); // Save events using storage instance + storage.saveEvents(events); ui.showMessage("Events saved successfully."); } catch (IOException e) { - ui.showErrorMessageToUser(e); // Use showErrorMessageToUser + ui.showErrorMessageToUser(e); } } } diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index 7e3b0f4096..8f247bd096 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -37,7 +37,7 @@ public void saveEvents(EventList events) throws IOException { writer.write(event.getEventName() + "," + event.getEventTime() + "," + event.getEventVenue() + "\n"); // Save event details in CSV format } - } catch (IOException e) { + } catch (IOException exception) { throw new IOException("Error saving events to file: " + filePath); } } @@ -58,7 +58,7 @@ public void loadEvents(EventList events) throws IOException { events.addEvent(eventName, time, venue); } } - } catch (IOException e) { + } catch (IOException exception) { throw new IOException("Error loading events from file: " + filePath + "."); } } diff --git a/src/test/java/seedu/manager/storage/StorageTest.java b/src/test/java/seedu/manager/storage/StorageTest.java index 64f5bfe238..43cf382b67 100644 --- a/src/test/java/seedu/manager/storage/StorageTest.java +++ b/src/test/java/seedu/manager/storage/StorageTest.java @@ -56,14 +56,14 @@ public void testLoadEvents() { "Meeting,2024-10-25 10:00,Conference Room\n" + "Workshop,2024-10-26 14:00,Main Hall\n" ); - } catch (IOException e) { - fail("Failed to set up the test data file: " + e.getMessage()); + } catch (IOException exception) { + fail("Failed to set up the test data file: " + exception.getMessage()); } try { storage.loadEvents(eventList); - } catch (IOException e) { - fail("Exception should not be thrown when loading events: " + e.getMessage()); + } catch (IOException exception) { + fail("Exception should not be thrown when loading events: " + exception.getMessage()); } assertEquals(2, eventList.getList().size()); @@ -86,8 +86,8 @@ public void testSaveEvents() { try { storage.saveEvents(eventList); - } catch (IOException e) { - fail("Exception should not be thrown when saving events: " + e.getMessage()); + } catch (IOException exception) { + fail("Exception should not be thrown when saving events: " + exception.getMessage()); } File file = new File(TEST_FILE_PATH); @@ -98,8 +98,8 @@ public void testSaveEvents() { String expectedContent = "Meeting,2024-10-25 10:00,Conference Room\n" + "Workshop,2024-10-26 14:00,Main Hall\n"; assertEquals(expectedContent, content, "The file content does not match the expected output."); - } catch (IOException e) { - fail("Exception should not be thrown when reading the saved file: " + e.getMessage()); + } catch (IOException exception) { + fail("Exception should not be thrown when reading the saved file: " + exception.getMessage()); } } From 274f1459a8964dda957762dbeb920f3ff1723cf6 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 24 Oct 2024 19:11:52 +0800 Subject: [PATCH 195/619] Change unit test names to be more inituitive --- .../java/seedu/manager/command/MarkEventCommandTest.java | 6 +++--- .../seedu/manager/command/MarkParticipantCommandTest.java | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/test/java/seedu/manager/command/MarkEventCommandTest.java b/src/test/java/seedu/manager/command/MarkEventCommandTest.java index b6fe012e7c..d978eb16d1 100644 --- a/src/test/java/seedu/manager/command/MarkEventCommandTest.java +++ b/src/test/java/seedu/manager/command/MarkEventCommandTest.java @@ -16,7 +16,7 @@ public void testSetUp() { } @Test - public void execute_eventPresentMarkDone_success() { + public void execute_validEventMarkTrue_success() { String expectedMessage = "Event marked as done"; MarkCommand command = new MarkEventCommand("Event 1", true); command.setData(eventList); @@ -25,7 +25,7 @@ public void execute_eventPresentMarkDone_success() { } @Test - public void execute_eventPresentMarkNotDone_success() { + public void execute_validEventMarkFalse_success() { String expectedMessage = "Event marked not done"; MarkCommand command = new MarkEventCommand("Event 1", false); command.setData(eventList); @@ -34,7 +34,7 @@ public void execute_eventPresentMarkNotDone_success() { } @Test - public void execute_eventAbsent_failure() { + public void execute_invalidEvent_failure() { String expectedMessage = "Event not found!"; MarkCommand command = new MarkEventCommand("Event 2", true); command.setData(eventList); diff --git a/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java b/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java index 56bec68dbf..e5cbb54bff 100644 --- a/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java +++ b/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java @@ -17,7 +17,7 @@ public void testSetUp() { } @Test - public void execute_validParticipantMarkPresent_success() { + public void execute_validParticipantMarkTrue_success() { String expectedMessage = "Participant marked present."; MarkParticipantCommand command = new MarkParticipantCommand("John Doe", @@ -28,7 +28,7 @@ public void execute_validParticipantMarkPresent_success() { } @Test - public void execute_validParticipantMarkAbsent_success() { + public void execute_validParticipantMarkFalse_success() { String expectedMessage = "Participant marked absent."; MarkParticipantCommand command = new MarkParticipantCommand("John Doe", @@ -39,7 +39,7 @@ public void execute_validParticipantMarkAbsent_success() { } @Test - public void execute_invalidParticipantMarkAbsent_failure() { + public void execute_invalidParticipant_failure() { String expectedMessage = "Participant not found!"; MarkParticipantCommand command = new MarkParticipantCommand("Jane Doe", @@ -50,7 +50,7 @@ public void execute_invalidParticipantMarkAbsent_failure() { } @Test - public void execute_invalidEventMarkAbsent_failure() { + public void execute_invalidEvent_failure() { String expectedMessage = "Event not found!"; MarkParticipantCommand command = new MarkParticipantCommand("Jane Doe", From b04421338eb976a3f4082c291c4eb08adcc57594 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Fri, 25 Oct 2024 02:50:53 +0800 Subject: [PATCH 196/619] Update eventTime to be of LocalDateTime type --- src/main/java/seedu/manager/command/AddCommand.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index 7c0d523d9d..139d852615 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -1,5 +1,7 @@ package seedu.manager.command; +import java.time.LocalDateTime; + /** * Represents a command to add an event to the event list. * The add command will store the event's name, time, and venue. @@ -10,7 +12,7 @@ public class AddCommand extends Command { private static final String ADD_PARTICIPANT_MESSAGE = "Participant added successfully"; private static final String ADD_FAILURE_MESSAGE = "Event not found!"; protected String eventName; - protected String time; + protected LocalDateTime time; protected String venue; protected String participantName; @@ -21,7 +23,7 @@ public class AddCommand extends Command { * @param time The time of the event to be added. * @param venue The venue of the event to be added. */ - public AddCommand(String eventName, String time, String venue) { + public AddCommand(String eventName, LocalDateTime time, String venue) { super(false); this.eventName = eventName; this.time = time; From 3bd36bcc668e6778967df12eb9254c192fb4ad0b Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Fri, 25 Oct 2024 02:51:59 +0800 Subject: [PATCH 197/619] Update SortCommand to handle "time" keyword --- src/main/java/seedu/manager/command/SortCommand.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/command/SortCommand.java b/src/main/java/seedu/manager/command/SortCommand.java index 1f90e070aa..b4a65720a9 100644 --- a/src/main/java/seedu/manager/command/SortCommand.java +++ b/src/main/java/seedu/manager/command/SortCommand.java @@ -10,6 +10,7 @@ public class SortCommand extends Command { public static final String COMMAND_WORD = "sort"; private static final String SORT_BY_NAME_MESSAGE = "Successfully sort events by name!"; + private static final String SORT_BY_TIME_MESSAGE = "Successfully sort events by time!"; protected String keyword; @@ -37,7 +38,10 @@ public void execute() { sortedEventList.sortByName(); outputMessage.append(SORT_BY_NAME_MESSAGE + "\n"); break; - case "time", "priority": + case "time": + sortedEventList.sortByTime(); + outputMessage.append(SORT_BY_TIME_MESSAGE + "\n"); + case "priority": break; default: } From 54a6b6662af387de023d7b5c2cf4c967e239bc02 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Fri, 25 Oct 2024 02:55:01 +0800 Subject: [PATCH 198/619] Update toString to format LocalDateTime to String --- src/main/java/seedu/manager/event/Event.java | 23 +++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 26f1c9dafb..c619e9af50 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -2,6 +2,8 @@ import seedu.manager.item.Participant; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; /** @@ -11,7 +13,7 @@ public class Event { protected ArrayList participantList; private final String eventName; - private String eventTime; + private LocalDateTime eventTime; private String eventVenue; private boolean isDone; @@ -32,7 +34,7 @@ public Event(String eventName) { * @param eventTime the time duration of the event * @param eventVenue the venue of the event */ - public Event(String eventName, String eventTime, String eventVenue) { + public Event(String eventName, LocalDateTime eventTime, String eventVenue) { this.eventName = eventName; this.eventTime = eventTime; this.eventVenue = eventVenue; @@ -88,7 +90,7 @@ public String getEventName() { /** * @return the event time */ - public String getEventTime() { + public LocalDateTime getEventTime() { return eventTime; } @@ -115,7 +117,7 @@ public boolean isDone() { * * @param eventTime the new event time */ - public void setEventTime(String eventTime) { + public void setEventTime(LocalDateTime eventTime) { this.eventTime = eventTime; } @@ -144,6 +146,16 @@ public char markIfDone() { return (this.isDone) ? 'Y' : 'N'; } + /** + * Formats eventTime to a string in "yyyy-MM-dd HH:mm" format + * + * @return eventTime as a formated {@link String} object. + */ + public String formatEventTime() { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + return formatter.format(eventTime); + } + /** * Returns a string representation of the event, indicating its name, time and venue. * @@ -151,7 +163,8 @@ public char markIfDone() { */ @Override public String toString(){ - return String.format("Event name: %s / Event time: %s / Event venue: %s / Done: %c", eventName, eventTime, + String eventTimeString = formatEventTime(); + return String.format("Event name: %s / Event time: %s / Event venue: %s / Done: %c", eventName, eventTimeString, eventVenue, markIfDone()); } } From 3fa01290ef3fdd11eb3c6be30bf71848afb3eb9c Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Fri, 25 Oct 2024 02:57:13 +0800 Subject: [PATCH 199/619] Add sortByTime function to sort events by time --- src/main/java/seedu/manager/event/EventList.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 849a02b947..473f5123b0 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -1,5 +1,6 @@ package seedu.manager.event; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Comparator; import java.util.Optional; @@ -47,7 +48,7 @@ public int getListSize() { * @param time the time of the event. * @param venue the venue where the event will take place. */ - public void addEvent(String eventName, String time, String venue) { + public void addEvent(String eventName, LocalDateTime time, String venue) { Event newEvent = new Event(eventName, time, venue); eventList.add(newEvent); } @@ -142,4 +143,11 @@ public boolean removeParticipantFromEvent(String participantName, String eventNa public void sortByName(){ eventList.sort(Comparator.comparing(Event::getEventName)); } + + /** + * Sort the event list by time in chronological order + */ + public void sortByTime() { + eventList.sort(Comparator.comparing(Event::getEventTime)); + } } From 26c2288502c76817947cf310d885fa6a82ad00f2 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Fri, 25 Oct 2024 02:58:21 +0800 Subject: [PATCH 200/619] Parse input event time to LocalDateTime --- src/main/java/seedu/manager/parser/Parser.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index e7a64f30fd..5dfa97fa5d 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -11,6 +11,9 @@ import seedu.manager.command.SortCommand; import seedu.manager.exception.InvalidCommandException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; import java.util.Set; import java.util.logging.Logger; @@ -53,6 +56,11 @@ public class Parser { Invalid sort keyword! Please set the sort keyword as either "name"/"time"/"priority" """; + private static final String INVALID_DATE_TIME_MESSAGE = """ + Invalid date-time format! + Please use the following format for event time: + YYYY-MM-DD HH:mm + """; /** * Returns a command based on the given user command string. @@ -113,7 +121,9 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval inputParts = input.split("(-e|-t|-v)"); logger.info("Creating AddCommand for event with details: " + inputParts[1].trim() + ", " + inputParts[2].trim() + ", " + inputParts[3].trim()); - return new AddCommand(inputParts[1].trim(), inputParts[2].trim(), inputParts[3].trim()); + LocalDateTime eventTime = LocalDateTime.parse(inputParts[2].trim(), + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); + return new AddCommand(inputParts[1].trim(), eventTime, inputParts[3].trim()); } else if (commandFlag.equals("-p")) { inputParts = input.split("(-p|-e)"); logger.info("Creating AddCommand for participant with details: " + @@ -126,6 +136,9 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval } catch (IndexOutOfBoundsException exception) { logger.log(WARNING,"Invalid command format"); throw new InvalidCommandException(INVALID_ADD_MESSAGE); + } catch (DateTimeParseException exception) { + logger.log(WARNING,"test"); + throw new InvalidCommandException(INVALID_DATE_TIME_MESSAGE); } } From 9cf55a7c0dd3c771a177d852ed448068a218904b Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Fri, 25 Oct 2024 02:59:57 +0800 Subject: [PATCH 201/619] Edit JUnit tests to handle updated eventTime --- .../seedu/manager/command/AddCommandTest.java | 17 ++++++++++++++--- .../seedu/manager/command/ListCommandTest.java | 10 ++++++++-- .../seedu/manager/command/MarkCommandTest.java | 7 ++++++- .../manager/command/RemoveCommandTest.java | 18 ++++++++++++++---- 4 files changed, 42 insertions(+), 10 deletions(-) diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index 683b7d21ca..895cd55506 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -3,6 +3,9 @@ import org.junit.jupiter.api.Test; import seedu.manager.event.EventList; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + import static org.junit.jupiter.api.Assertions.assertEquals; public class AddCommandTest { @@ -10,16 +13,22 @@ public class AddCommandTest { @Test public void add_event_success() { EventList eventList = new EventList(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); - eventList.addEvent("Event 1", "2024-20-10 21:00", "Venue A"); + eventList.addEvent("Event 1", + LocalDateTime.parse("2024-10-20 21:00", formatter), + "Venue A"); assertEquals(1, eventList.getListSize()); } @Test public void add_twoParticipant_success() { EventList eventList = new EventList(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); - eventList.addEvent("Event 1", "2024-10-10 10:00", "Venue A"); + eventList.addEvent("Event 1", + LocalDateTime.parse("2024-10-10 10:00", formatter), + "Venue A"); eventList.addParticipantToEvent("Tom", "Event 1"); eventList.addParticipantToEvent("Harry", "Event 1"); @@ -29,8 +38,10 @@ public void add_twoParticipant_success() { @Test public void add_oneParticipantWrongly_success() { EventList eventList = new EventList(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); - eventList.addEvent("Event 1", "2024-10-10 10:00", "Venue A"); + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), + "Venue A"); eventList.addParticipantToEvent("Tom", "Event 1"); eventList.addParticipantToEvent("Harry", "Event 2"); diff --git a/src/test/java/seedu/manager/command/ListCommandTest.java b/src/test/java/seedu/manager/command/ListCommandTest.java index 847fc0fa5a..5d77a897a6 100644 --- a/src/test/java/seedu/manager/command/ListCommandTest.java +++ b/src/test/java/seedu/manager/command/ListCommandTest.java @@ -4,6 +4,9 @@ import org.junit.jupiter.api.Test; import seedu.manager.event.EventList; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -14,9 +17,12 @@ public class ListCommandTest { @BeforeEach public void setUp() { EventList eventList = new EventList(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); - eventList.addEvent("Event 1", "2024-10-10 10:00", "Venue A"); - eventList.addEvent("Event 2", "2024-11-11 12:00", "Venue B"); + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), + "Venue A"); + eventList.addEvent("Event 2", LocalDateTime.parse("2024-11-11 12:00", formatter), + "Venue B"); listCommand = new ListCommand(); listCommand.setData(eventList); diff --git a/src/test/java/seedu/manager/command/MarkCommandTest.java b/src/test/java/seedu/manager/command/MarkCommandTest.java index c98c68327b..6a62e117fc 100644 --- a/src/test/java/seedu/manager/command/MarkCommandTest.java +++ b/src/test/java/seedu/manager/command/MarkCommandTest.java @@ -4,15 +4,20 @@ import org.junit.jupiter.api.Test; import seedu.manager.event.EventList; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + import static org.junit.jupiter.api.Assertions.assertEquals; class MarkCommandTest { private EventList eventList; + private final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); @BeforeEach public void testSetUp() { eventList = new EventList(); - eventList.addEvent("Event 1", "2024-10-10 1600", "Venue 1"); + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 16:00", formatter), + "Venue 1"); } @Test diff --git a/src/test/java/seedu/manager/command/RemoveCommandTest.java b/src/test/java/seedu/manager/command/RemoveCommandTest.java index 61af8db791..cc933b0893 100644 --- a/src/test/java/seedu/manager/command/RemoveCommandTest.java +++ b/src/test/java/seedu/manager/command/RemoveCommandTest.java @@ -3,6 +3,9 @@ import org.junit.jupiter.api.Test; import seedu.manager.event.EventList; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + import static org.junit.jupiter.api.Assertions.assertEquals; public class RemoveCommandTest { @@ -10,9 +13,12 @@ public class RemoveCommandTest { @Test public void remove_event_success() { EventList eventList = new EventList(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); - eventList.addEvent("Event 1", "2024-20-10 21:00", "Venue A"); - eventList.addEvent("Event 2", "2024-20-10 21:00", "Venue B"); + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), + "Venue A"); + eventList.addEvent("Event 2", LocalDateTime.parse("2024-10-20 21:00", formatter), + "Venue B"); eventList.removeEvent("Event 2"); assertEquals(1, eventList.getListSize()); } @@ -20,8 +26,10 @@ public void remove_event_success() { @Test public void remove_oneParticipant_success() { EventList eventList = new EventList(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); - eventList.addEvent("Event 1", "2024-10-10 10:00", "Venue A"); + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), + "Venue A"); eventList.addParticipantToEvent("Tom", "Event 1"); eventList.addParticipantToEvent("Harry", "Event 1"); eventList.removeParticipantFromEvent("Tom", "Event 1"); @@ -32,8 +40,10 @@ public void remove_oneParticipant_success() { @Test public void remove_oneParticipantWrongly_success() { EventList eventList = new EventList(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); - eventList.addEvent("Event 1", "2024-10-10 10:00", "Venue A"); + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), + "Venue A"); eventList.addParticipantToEvent("Tom", "Event 1"); eventList.addParticipantToEvent("Harry", "Event 1"); eventList.removeParticipantFromEvent("Tom", "Event 2"); From 1442027867ef8a9fe11c503dda31d1c705d7e908 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Fri, 25 Oct 2024 03:02:22 +0800 Subject: [PATCH 202/619] Add time to parseCommand input --- src/test/java/seedu/manager/parser/ParserTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index d0e4d98e99..67a1176f52 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -51,7 +51,7 @@ public void parseCommand_listWord_list() { @Test public void addCommand_addEvent_add() { Parser parser = new Parser(); - Command command = parser.parseCommand("add -e event -t 2024-09-10 -v Venue A"); + Command command = parser.parseCommand("add -e event -t 2024-09-10 12:34 -v Venue A"); assertInstanceOf(AddCommand.class, command); } From 8b679b8df488c83871908d015f7858b34b5d6764 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Fri, 25 Oct 2024 03:03:14 +0800 Subject: [PATCH 203/619] Update JUnit test for sorting event by time --- .../manager/command/SortCommandTest.java | 34 ++++++++++++++++--- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/src/test/java/seedu/manager/command/SortCommandTest.java b/src/test/java/seedu/manager/command/SortCommandTest.java index be76fda2e5..3a524c8beb 100644 --- a/src/test/java/seedu/manager/command/SortCommandTest.java +++ b/src/test/java/seedu/manager/command/SortCommandTest.java @@ -4,17 +4,24 @@ import org.junit.jupiter.api.Test; import seedu.manager.event.EventList; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; public class SortCommandTest { EventList eventList = new EventList(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); @BeforeEach public void setUp(){ - eventList.addEvent("C-Event", "2024-10-23 21:00", "Venue C"); - eventList.addEvent("B-Event", "2024-10-23 21:00", "Venue B"); - eventList.addEvent("A-Event", "2024-10-23 21:00", "Venue A"); + eventList.addEvent("C-Event", LocalDateTime.parse("2024-10-23 21:00", formatter), + "Venue C"); + eventList.addEvent("B-Event", LocalDateTime.parse("2024-10-23 21:05", formatter), + "Venue B"); + eventList.addEvent("A-Event", LocalDateTime.parse("2023-10-23 21:00", formatter), + "Venue A"); assertEquals(3, eventList.getListSize()); } @@ -28,12 +35,29 @@ public void execute_sortByName_success() { String expectedMessage = """ Successfully sort events by name! - 1. Event name: A-Event / Event time: 2024-10-23 21:00 / Event venue: Venue A / Done: N - 2. Event name: B-Event / Event time: 2024-10-23 21:00 / Event venue: Venue B / Done: N + 1. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A / Done: N + 2. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B / Done: N 3. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C / Done: N """; assertEquals(expectedMessage, sortCommand.getMessage()); assertFalse(sortCommand.getCanExit()); } + + @Test public void execute_sortByTime_success() { + SortCommand sortCommand = new SortCommand("time"); + + sortCommand.setData(eventList); + sortCommand.execute(); + + String expectedMessage = """ + Successfully sort events by time! + 1. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A / Done: N + 2. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C / Done: N + 3. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B / Done: N + """; + assertEquals(expectedMessage, sortCommand.getMessage()); + assertFalse(sortCommand.getCanExit()); + } + } From 3bcdb6c82959b6d56478c4d2b4d615be67dc1eff Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Fri, 25 Oct 2024 03:03:54 +0800 Subject: [PATCH 204/619] Update test input and expected output for sort by time --- text-ui-test/EXPECTED.TXT | 14 ++++++++++---- text-ui-test/input.txt | 5 +++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index cdf1249b83..539a926566 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -23,13 +23,13 @@ add -p PARTICIPANT -e EVENT Enter a command: Event added successfully ------------------------ Enter a command: There are 1 events in your list! Here are your scheduled events: -1. Event name: dinner party / Event time: 2024-10-10 / Event venue: Alice's House / Done: N +1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Done: N ------------------------ Enter a command: Event marked as done ------------------------ Enter a command: There are 1 events in your list! Here are your scheduled events: -1. Event name: dinner party / Event time: 2024-10-10 / Event venue: Alice's House / Done: Y +1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Done: Y ------------------------ Enter a command: Event not found! @@ -44,8 +44,14 @@ Enter a command: Event added successfully ------------------------ Enter a command: name Successfully sort events by name! -1. Event name: anniversary celebration / Event time: 2024-10-23 / Event venue: hotel / Done: N -2. Event name: dinner party / Event time: 2024-10-10 / Event venue: Alice's House / Done: Y +1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Done: N +2. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Done: Y + +------------------------ +Enter a command: time +Successfully sort events by time! +1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Done: Y +2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Done: N ------------------------ Enter a command: Thank you for using EventManagerCLI. Goodbye! diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index dfa2f70151..bb2ebf6df2 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -2,13 +2,14 @@ hello world menu list add -add -e dinner party -t 2024-10-10 -v Alice's House +add -e dinner party -t 2024-10-10 12:34 -v Alice's House list mark -e dinner party -s done list mark -e Saturday brunch -s done add -p Mary -e dinner party view -e dinner party -add -e anniversary celebration -t 2024-10-23 -v hotel +add -e anniversary celebration -t 2024-10-23 12:34 -v hotel sort -by name +sort -by time exit From 5242e078c89f5d4bc7cb1f8a25c69ed39709a721 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Fri, 25 Oct 2024 03:08:56 +0800 Subject: [PATCH 205/619] Add break at the end of case "time" --- src/main/java/seedu/manager/command/SortCommand.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/seedu/manager/command/SortCommand.java b/src/main/java/seedu/manager/command/SortCommand.java index b4a65720a9..bdffa98743 100644 --- a/src/main/java/seedu/manager/command/SortCommand.java +++ b/src/main/java/seedu/manager/command/SortCommand.java @@ -41,6 +41,7 @@ public void execute() { case "time": sortedEventList.sortByTime(); outputMessage.append(SORT_BY_TIME_MESSAGE + "\n"); + break; case "priority": break; default: From d7485de829380e69504c3e6f53042de390b2d611 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 25 Oct 2024 08:06:54 +0800 Subject: [PATCH 206/619] Update developer guide with Storage component --- docs/DeveloperGuide.md | 1 + docs/diagrams/OverallArchitecture.puml | 6 ++++++ docs/images/ArchitectureDiagram.png | Bin 33634 -> 37703 bytes src/main/java/seedu/manager/Main.java | 6 ++++-- .../java/seedu/manager/parser/Parser.java | 1 + 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 11cd7da1e5..5a994cd1a6 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -15,6 +15,7 @@ The *Architecture Diagram* given above provides the high-level design of the app The application comprises the following components: * `Main`, which handles program startup and shutdown, and also interactions between other components. * `UI`, which handles user input and showing messages to the user. +* `Storage`, which handles the loading and saving of data upon program startup and shutdown. * `Parser`, which converts user input into commands. * `Command`, which are executed to modify the data stored in the program. * `EventList`, which stores the program's data. diff --git a/docs/diagrams/OverallArchitecture.puml b/docs/diagrams/OverallArchitecture.puml index 7fb32fa512..7f13e947cc 100644 --- a/docs/diagrams/OverallArchitecture.puml +++ b/docs/diagrams/OverallArchitecture.puml @@ -5,6 +5,7 @@ class Main { } Main --> Ui +Main --> Storage Main --> EventList Main ..> Parser Main ..> Command @@ -19,6 +20,11 @@ class Parser { Parser ..> Command +class Storage { +} + +Storage ..> EventList + abstract class Command { } diff --git a/docs/images/ArchitectureDiagram.png b/docs/images/ArchitectureDiagram.png index 9a1f8cc59c35cc4d4ae2a395311544a1faf05492..b79607fbaec38bf96a28f090b02a89ec2ae9b525 100644 GIT binary patch literal 37703 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 literal 33634 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
    Lk8av$ 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 Q(Md>Tq!c8x#2>!;H-lH|umAu6 diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 8d31127423..6bfded28f9 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -26,6 +26,7 @@ public static void main(String[] args) { System.exit(0); } + //@@author MatchaRRR /** * Run command loop to get command from users * Parse the command and execute it @@ -49,6 +50,7 @@ private static void runCommandLoop() { } } + //@@author KuanHsienn /** * Loads events from file and handles exceptions. */ @@ -56,8 +58,8 @@ private static void loadData() { try { storage.loadEvents(events); ui.showMessage("Events loaded successfully."); - } catch (IOException e) { - ui.showErrorMessageToUser(e); + } catch (IOException exception) { + ui.showErrorMessageToUser(exception); } } diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index d826944d83..93ec5b8323 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -289,6 +289,7 @@ private Command getMarkParticipantCommand(String participantName, String eventNa } } + //@@author MatchaRRR /** * Parses the input string to create a {@link Command} based on the provided command parts. * From 714a10cf2a35779e5e912fc049d51e5c3479b206 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 25 Oct 2024 08:29:12 +0800 Subject: [PATCH 207/619] Update user guide with details on mark event and participant commands --- docs/UserGuide.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 42e66299bb..49e86ccf99 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -71,6 +71,28 @@ Format: `view -e EVENT` Examples: * `view -e Origami workshop` shows a list of all participants for the event `Origami workshop`. +### Mark an event as done: `mark` +Marks an event in the event list as done or not done. + +Format: `mark -e EVENT -s STATUS` +* The status parameter must be either `done` (to mark done) or `undone` (to mark not done). + +Examples: +* `mark -e Origami workshop -s done` marks the event `Origami workshop` as done. +* `mark -e Origami workshop -s undone` marks the event `Origami workshop` as not done. + +### Marks a participant as present: `mark` +Marks a participant for an event as present or absent. + +Format: `mark -p PARTICIPANT -e EVENT -s STATUS` +* The status parameter must be either `present` (to mark present) or `absent` (to mark absent). + +Examples: +* `mark -p John Tan -e Origami workshop -s done` marks the participant `John Tan` in the `Origami workshop` +event as present. +* `mark -p John Tan -e Origami workshop -s undone` marks the participant `John Tan` in the `Origami workshop` +event as absent. + ### Exiting the program: `exit` Exits the program. @@ -85,3 +107,5 @@ Format: `exit` * Remove event: `remove -e EVENT` * Remove participant from an event: `remove -p PARTICIPANT -e EVENT` * View all participants for an event: `view -e EVENT` +* Mark an event as done: `mark -e EVENT -s STATUS` +* Mark a participant as present: `mark -p PARTICIPANT -e EVENT -s STATUS` From e95c0a5a91e0069036d78e2ca1fba6a209dbeae4 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 25 Oct 2024 09:30:41 +0800 Subject: [PATCH 208/619] Add notes on commands section and update to follow Markdown standard --- docs/UserGuide.md | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 49e86ccf99..a44680595e 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -9,17 +9,23 @@ the participants and logistics of such events. 1. Ensure that you have Java 17 or above installed. 2. Down the latest version of `EventManagerCLI` from [here](https://github.com/AY2425S1-CS2113-W13-3/tp/releases). -3. Open a new terminal in the folder that you put the JAR file in, and run the program with the -command ```java -jar EventManagerCLI.jar```. +3. Open a new terminal in the folder that you put the JAR file in, and run the program with the command ```java -jar EventManagerCLI.jar```. The following message would be printed: ``` Welcome to EventManagerCLI. Enter a command: ``` -## Features +## Features + +### Notes about the command format: + +* Words in `UPPER_CASE` represent parameters that are to be supplied by the user. +* Parameters listed have to be entered in the specified order. +* Extraneous parameters for commands that do not take in parameters (e.g. `list`) will be ignored. ### Viewing the command list: `menu` + Shows a list of all valid user commands in the program. ``` @@ -36,64 +42,77 @@ remove -p PARTICIPANT -e EVENT: Remove a participant from an event. Format: `menu` ### List all events: `list` + Shows a list of all events currently stored in the program. Format: `list` ### Add an event or participant: `add` + Adds an event to the event list, or a participant to an event. Format: + * `add -e EVENT -t TIME -v VENUE` for adding an event to the events list. * `add -p PARTICIPANT -e EVENT` for adding a participant to an event. Examples: -* `add -e Origami workshop -t Mon 1600-1800 -v Building A` adds an event with name `Origami workshop`, -time `Mon 1600-1800` and venue `Building A` to the events list. + +* `add -e Origami workshop -t Mon 1600-1800 -v Building A` adds an event with name `Origami workshop`, time `Mon 1600-1800` and venue `Building A` to the events list. * `add -p John Tan -e Origami workshop` adds a participant `John Tan` to the event `Origami workshop`. ### Remove an event or participant: `remove` + Removes an event from the event list, or a participant from an event. Format: + * `remove -e EVENT` for removing an event from the event list. * `remove -p PARTICIPANT -e EVENT` for removing a participant from an event. Examples: + * `remove -e Origami workshop` removes the event `Origami workshop` from the event list. * `remove -p John Tan -e Origami workshop` removes the participant `John Tan` from the event `Origami workshop`. ### View all participants for an event: `view` + Shows a list of all participants for an event. Format: `view -e EVENT` Examples: + * `view -e Origami workshop` shows a list of all participants for the event `Origami workshop`. ### Mark an event as done: `mark` + Marks an event in the event list as done or not done. Format: `mark -e EVENT -s STATUS` + * The status parameter must be either `done` (to mark done) or `undone` (to mark not done). Examples: + * `mark -e Origami workshop -s done` marks the event `Origami workshop` as done. * `mark -e Origami workshop -s undone` marks the event `Origami workshop` as not done. ### Marks a participant as present: `mark` + Marks a participant for an event as present or absent. Format: `mark -p PARTICIPANT -e EVENT -s STATUS` + * The status parameter must be either `present` (to mark present) or `absent` (to mark absent). Examples: -* `mark -p John Tan -e Origami workshop -s done` marks the participant `John Tan` in the `Origami workshop` -event as present. -* `mark -p John Tan -e Origami workshop -s undone` marks the participant `John Tan` in the `Origami workshop` -event as absent. + +* `mark -p John Tan -e Origami workshop -s done` marks the participant `John Tan` in the `Origami workshop` event as present. +* `mark -p John Tan -e Origami workshop -s undone` marks the participant `John Tan` in the `Origami workshop` event as absent. ### Exiting the program: `exit` + Exits the program. Format: `exit` From 59abc5f9506cc372a3a5010da3ef4b1894c97c7b Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Fri, 25 Oct 2024 11:45:24 +0800 Subject: [PATCH 209/619] edit DG: list feature --- docs/DeveloperGuide.md | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 5a994cd1a6..683160e35d 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -4,7 +4,7 @@ {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} -## Design & implementation +## Design @@ -27,6 +27,40 @@ The application comprises the following components: The above *Sequence Diagram* shows how the different components of the system interact with one another in the scenario when the command `add -e event -t 1200 -v venue` is executed. + +## Implementation + +This section describes some noteworthy details on how certain features are implemented. + +### list feature[TBD] + +The `list` feature allows users to view all scheduled events in the system. +It is implemented in the `ListCommand` class, which extends the base `Command` class and formats the output to display all events. +Internally, the `list` operation does not modify any data but simply retrieves and displays the information from `EventList`. + +The `ListCommand` class performs the following key operations: + +* ListCommand#execute() — Generates a formatted message displaying all events in the list. + +These operations are accessible through the `Command` and can be invoked when the list command is entered by the user. + +Given below is an example usage scenario and the behavior of the list feature at each step: + +1. User Command Input: +The user enters the command `list` to view all scheduled events. + +2. Command Recognition: +The `COMMAND_WORD` is set to "list", enabling the system to recognize the command input and invoke `ListCommand`. + +3. Execution of ListCommand#execute(): +The `execute()` method retrieves each event from `eventList` and appends it to a formatted output message. +It uses the `String.format` method with `LIST_MESSAGE` to include the total number of events in the message header. +Events are appended to `outputMessage` with numbered formatting for readability. + +4. Output Generation: +The method stores the generated `outputMessage` in `this.message`, ready for display. + + ## Product scope ### Target user profile From 0b693a6f831e1ab4514d01ce0a395c599bb2c261 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Fri, 25 Oct 2024 14:41:25 +0800 Subject: [PATCH 210/619] . --- docs/DeveloperGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 683160e35d..78547d1392 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -32,7 +32,7 @@ another in the scenario when the command `add -e event -t 1200 -v venue` is exec This section describes some noteworthy details on how certain features are implemented. -### list feature[TBD] +### List feature[TBD] The `list` feature allows users to view all scheduled events in the system. It is implemented in the `ListCommand` class, which extends the base `Command` class and formats the output to display all events. From 1861028668e99844a5f44187ec6f3bfd695118c8 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 25 Oct 2024 22:18:45 +0800 Subject: [PATCH 211/619] Update architecture diagram and add style.puml --- docs/diagrams/ArchitectureSequence.puml | 10 ++--- docs/diagrams/OverallArchitecture.puml | 42 ++++++-------------- docs/diagrams/style.puml | 7 ++++ docs/images/ArchitectureDiagram.png | Bin 37703 -> 19109 bytes docs/images/ArchitectureSequenceDiagram.png | Bin 49379 -> 48328 bytes 5 files changed, 24 insertions(+), 35 deletions(-) create mode 100644 docs/diagrams/style.puml diff --git a/docs/diagrams/ArchitectureSequence.puml b/docs/diagrams/ArchitectureSequence.puml index 736158c5f9..1b795117bf 100644 --- a/docs/diagrams/ArchitectureSequence.puml +++ b/docs/diagrams/ArchitectureSequence.puml @@ -1,11 +1,11 @@ @startuml 'https://plantuml.com/sequence-diagram -Participant ":Main" as main -Participant ":Ui" as ui -Participant ":Parser" as parser -Participant ":AddCommand" as command -Participant ":EventList" as eventList +Participant "Main" as main +Participant "Ui" as ui +Participant "Parser" as parser +Participant "Command" as command +Participant "EventList" as eventList main -> ui : getCommand() activate ui diff --git a/docs/diagrams/OverallArchitecture.puml b/docs/diagrams/OverallArchitecture.puml index 7f13e947cc..9535967c57 100644 --- a/docs/diagrams/OverallArchitecture.puml +++ b/docs/diagrams/OverallArchitecture.puml @@ -1,45 +1,27 @@ @startuml -'https://plantuml.com/class-diagram - -class Main { +!include style.puml + +rectangle { + rectangle Main + rectangle Ui UI_COLOUR + rectangle Parser PARSER_COLOUR + rectangle Storage STORAGE_COLOUR + rectangle Command COMMAND_COLOUR + rectangle Event EVENT_COLOUR } Main --> Ui Main --> Storage -Main --> EventList +Main --> Event Main ..> Parser Main ..> Command -class Ui { -} - Ui ..> Command -class Parser { -} - Parser ..> Command -class Storage { -} - -Storage ..> EventList - -abstract class Command { -} - -Command <|-- AddCommand -Command <|-- ExitCommand -Command <|-- ListCommand -Command <|-- XYZCommand - -Command ..> EventList - -class EventList { -} - -EventList *--> "*" Event +Storage ..> Event -Event *--> "*" Participant +Command ..> Event @enduml \ No newline at end of file diff --git a/docs/diagrams/style.puml b/docs/diagrams/style.puml new file mode 100644 index 0000000000..dad8051564 --- /dev/null +++ b/docs/diagrams/style.puml @@ -0,0 +1,7 @@ +@startuml +!define UI_COLOUR #ff9999 +!define PARSER_COLOUR #ff9933 +!define COMMAND_COLOUR #66ff99 +!define STORAGE_COLOUR #6699ff +!define EVENT_COLOUR #993366 +@enduml diff --git a/docs/images/ArchitectureDiagram.png b/docs/images/ArchitectureDiagram.png index b79607fbaec38bf96a28f090b02a89ec2ae9b525..be1a9876cdf514e46a3a53994177332dfc909bc3 100644 GIT binary patch literal 19109 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 R-WPR7Rr!I^XGPP1{|h3FV8Z|a literal 37703 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 diff --git a/docs/images/ArchitectureSequenceDiagram.png b/docs/images/ArchitectureSequenceDiagram.png index 0c9a2271b22595867e2d677fdaadbb300096a4fd..099086092b8cb16ca7215e3b3405fc02c40f2e21 100644 GIT binary patch literal 48328 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 literal 49379 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
  • 1r>)I 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νRx(?OnCl|- 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 From 61bde20a5e3cd98c35d70f401a2ac941690d7482 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 25 Oct 2024 22:19:33 +0800 Subject: [PATCH 212/619] Update developer guide to follow Markdown standard --- docs/images/UiClassDiagram.png | Bin 0 -> 16821 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/UiClassDiagram.png diff --git a/docs/images/UiClassDiagram.png b/docs/images/UiClassDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..67a558859cad81f4e1e82ddbf8adb24bfa01fe0b GIT binary patch literal 16821 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 MU|p4pN6*6k4@dt{zW@LL literal 0 HcmV?d00001 From 51d033feb938194dfe0f569616e22a08ee36b4a3 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 25 Oct 2024 22:20:42 +0800 Subject: [PATCH 213/619] Add UiClassDiagram and update developer guide --- docs/DeveloperGuide.md | 2 ++ docs/diagrams/UiClassDiagram.puml | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 docs/diagrams/UiClassDiagram.puml diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 5a994cd1a6..e7c6b2cdff 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -13,6 +13,7 @@ The *Architecture Diagram* given above provides the high-level design of the app ### Main components The application comprises the following components: + * `Main`, which handles program startup and shutdown, and also interactions between other components. * `UI`, which handles user input and showing messages to the user. * `Storage`, which handles the loading and saving of data upon program startup and shutdown. @@ -31,6 +32,7 @@ another in the scenario when the command `add -e event -t 1200 -v venue` is exec ### Target user profile The target user: + * has a need to organise a large number of events * organises small-scale events, such that he is able to handle all matters on his own * prefers typing to mouse interactions diff --git a/docs/diagrams/UiClassDiagram.puml b/docs/diagrams/UiClassDiagram.puml new file mode 100644 index 0000000000..5234605c55 --- /dev/null +++ b/docs/diagrams/UiClassDiagram.puml @@ -0,0 +1,21 @@ +@startuml +!include style.puml +allowmixing + +package ui { + class "Ui" as Ui UI_COLOUR { + +greetUser() : void + +getCommand() : String + +showOutputToUser(command:Command) : void + +showErrorMessageToUser(exception:Exception) : void + } +} + +rectangle Main + +rectangle Command COMMAND_COLOUR + +Main ..> Ui +Ui .> Command + +@enduml From 89f106d29f25b6c59f8c732a56a8d5203378f444 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 25 Oct 2024 22:42:44 +0800 Subject: [PATCH 214/619] Update architecture diagram image --- docs/images/ArchitectureDiagram.png | Bin 19109 -> 15597 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/ArchitectureDiagram.png b/docs/images/ArchitectureDiagram.png index be1a9876cdf514e46a3a53994177332dfc909bc3..df5e8310cd2baa884d175b3148eae5061e2946a8 100644 GIT binary patch literal 15597 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 Yma_(LFx6hL@lAbwp=Dg}1 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 R-WPR7Rr!I^XGPP1{|h3FV8Z|a From bb060b421e567b5cd24c8212c3ccbb1e844bdf41 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 25 Oct 2024 22:42:59 +0800 Subject: [PATCH 215/619] Add UI component section to developer guide --- docs/DeveloperGuide.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 324b41284b..9484afafab 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -8,7 +8,7 @@ -The *Architecture Diagram* given above provides the high-level design of the application. +The above _Architecture Diagram_ provides the high-level design of the application. ### Main components @@ -25,9 +25,18 @@ The application comprises the following components: -The above *Sequence Diagram* shows how the different components of the system interact with one +The above _Sequence Diagram_ shows how the different components of the system interact with one another in the scenario when the command `add -e event -t 1200 -v venue` is executed. +### UI component + + + +The `UI` component comprises an Ui class, as shown in the above _Class Diagram_. + +The `UI` does the following: +* Take in command input from the user and pass the input to `Main`. +* Show output messages from `Command` to the user after command execution. ## Implementation From 8bbd037479e849dd20a0cdee3a516628f3dd38e0 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 25 Oct 2024 22:53:26 +0800 Subject: [PATCH 216/619] Add style colours to overall sequence diagram --- docs/diagrams/ArchitectureSequence.puml | 34 ++++++++++---------- docs/images/ArchitectureSequenceDiagram.png | Bin 48328 -> 47483 bytes 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/diagrams/ArchitectureSequence.puml b/docs/diagrams/ArchitectureSequence.puml index 1b795117bf..b0817a87c7 100644 --- a/docs/diagrams/ArchitectureSequence.puml +++ b/docs/diagrams/ArchitectureSequence.puml @@ -1,29 +1,29 @@ @startuml -'https://plantuml.com/sequence-diagram +!include style.puml Participant "Main" as main -Participant "Ui" as ui -Participant "Parser" as parser -Participant "Command" as command -Participant "EventList" as eventList +Participant "Ui" as ui UI_COLOUR +Participant "Parser" as parser PARSER_COLOUR +Participant "Command" as command COMMAND_COLOUR +Participant "Event" as event EVENT_COLOUR main -> ui : getCommand() -activate ui +activate ui UI_COLOUR ui --> main : "add -e event -t 1200 -v venue" deactivate ui create parser main -> parser : Parser() -activate parser +activate parser PARSER_COLOUR parser --> main : :Parser deactivate parser main -> parser : parseCommand("add -e event -t 1200 -v venue") -activate parser +activate parser PARSER_COLOUR create command parser -> command : AddCommand("event", "1200", "venue") -activate command +activate command COMMAND_COLOUR command --> parser : :AddCommand deactivate command @@ -32,26 +32,26 @@ deactivate parser destroy parser main -> command : setData(events:EventList) -activate command +activate command COMMAND_COLOUR command --> main deactivate command main -> command : execute() -activate command +activate command COMMAND_COLOUR -command -> eventList : addEvent("event", "1200", "venue") -activate eventList -eventList --> command -deactivate eventList +command -> event : addEvent("event", "1200", "venue") +activate event EVENT_COLOUR +event --> command +deactivate event command --> main deactivate command main -> ui : showOutputToUser(command: Command) -activate ui +activate ui UI_COLOUR ui -> command : getMessage() -activate command +activate command COMMAND_COLOUR command --> ui : :String deactivate command diff --git a/docs/images/ArchitectureSequenceDiagram.png b/docs/images/ArchitectureSequenceDiagram.png index 099086092b8cb16ca7215e3b3405fc02c40f2e21..ee33372c56f1314ef827f48f15b9971f4b3ed86c 100644 GIT binary patch literal 47483 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 M07*qoM6N<$f^bz3_5c6? literal 48328 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 From 0af88bde0d3649e04adaf9e4d8c9cab67bd079c2 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 27 Oct 2024 07:45:25 +0800 Subject: [PATCH 217/619] Add section on command component --- docs/DeveloperGuide.md | 18 ++++++++++ docs/diagrams/CommandClassDiagram.puml | 24 +++++++++++++ docs/diagrams/CommandSequenceDiagram.puml | 42 ++++++++++++++++++++++ docs/images/CommandClassDiagram.png | Bin 0 -> 13202 bytes docs/images/CommandSequenceDiagram.png | Bin 0 -> 27617 bytes 5 files changed, 84 insertions(+) create mode 100644 docs/diagrams/CommandClassDiagram.puml create mode 100644 docs/diagrams/CommandSequenceDiagram.puml create mode 100644 docs/images/CommandClassDiagram.png create mode 100644 docs/images/CommandSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 9484afafab..b291441720 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -35,9 +35,27 @@ another in the scenario when the command `add -e event -t 1200 -v venue` is exec The `UI` component comprises an Ui class, as shown in the above _Class Diagram_. The `UI` does the following: + * Take in command input from the user and pass the input to `Main`. * Show output messages from `Command` to the user after command execution. +### Command component + +The `Command` component and its component classes are shown in the below _Class Diagram_: + + + +These component classes comprise an abstract `Command` class and multiple `XYZCommand` classes for each command. + +The `Command` component does the following: + +* Handle the execution of the user command through interactions with `Event`. +* Provides a command output message to `Ui` after the command execution. + +The interactions between `Command` and other commands in the system is shown in the following _Sequence Diagram_: + + + ## Implementation This section describes some noteworthy details on how certain features are implemented. diff --git a/docs/diagrams/CommandClassDiagram.puml b/docs/diagrams/CommandClassDiagram.puml new file mode 100644 index 0000000000..c10d990a40 --- /dev/null +++ b/docs/diagrams/CommandClassDiagram.puml @@ -0,0 +1,24 @@ +@startuml +!include style.puml +'https://plantuml.com/class-diagram + +rectangle command { + rectangle "<>\n Command" COMMAND_COLOUR + + rectangle XYZCommand COMMAND_COLOUR +} + +rectangle Main +rectangle Parser PARSER_COLOUR +rectangle Event EVENT_COLOUR +rectangle Ui UI_COLOUR + +"<>\n Command" <|-- XYZCommand + +Main .> "<>\n Command" +Parser .> "<>\n Command" +"<>\n Command" <.. Ui +"<>\n Command" ...> Event + + +@enduml \ No newline at end of file diff --git a/docs/diagrams/CommandSequenceDiagram.puml b/docs/diagrams/CommandSequenceDiagram.puml new file mode 100644 index 0000000000..1d212afb5b --- /dev/null +++ b/docs/diagrams/CommandSequenceDiagram.puml @@ -0,0 +1,42 @@ +@startuml +!include style.puml + +participant "Main" as main +participant "Parser" as parser PARSER_COLOUR +participant "Ui" as ui UI_COLOUR +participant "XYZCommand" as xyzCommand COMMAND_COLOUR + + +main -> parser : parseCommand(userCommandText) +activate parser PARSER_COLOUR + +create xyzCommand +parser -> xyzCommand : XYZCommand(...) +activate xyzCommand COMMAND_COLOUR +xyzCommand --> parser : XYZCommand +deactivate xyzCommand + +parser --> main : command : Command +deactivate parser + +main -> xyzCommand : setdata(events) +activate xyzCommand COMMAND_COLOUR +xyzCommand --> main +deactivate xyzCommand + +main -> xyzCommand : execute() +activate xyzCommand COMMAND_COLOUR +xyzCommand --> main +deactivate xyzCommand + +main -> ui : showOutputToUser(command) +activate ui UI_COLOUR + +ui -> xyzCommand : getMessage() +activate xyzCommand COMMAND_COLOUR +xyzCommand --> ui +deactivate xyzCommand + +ui --> main +deactivate ui +@enduml \ No newline at end of file diff --git a/docs/images/CommandClassDiagram.png b/docs/images/CommandClassDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..4557d9611adfb3be65029d7e79cda17db15657d2 GIT binary patch literal 13202 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 literal 0 HcmV?d00001 diff --git a/docs/images/CommandSequenceDiagram.png b/docs/images/CommandSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..ce021001cfe5eef38d42592689a3f613f3d75701 GIT binary patch literal 27617 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 Date: Sun, 27 Oct 2024 14:36:53 +0800 Subject: [PATCH 218/619] Update sort messages --- src/main/java/seedu/manager/command/SortCommand.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/command/SortCommand.java b/src/main/java/seedu/manager/command/SortCommand.java index bdffa98743..1ac8bae504 100644 --- a/src/main/java/seedu/manager/command/SortCommand.java +++ b/src/main/java/seedu/manager/command/SortCommand.java @@ -9,8 +9,8 @@ public class SortCommand extends Command { public static final String COMMAND_WORD = "sort"; - private static final String SORT_BY_NAME_MESSAGE = "Successfully sort events by name!"; - private static final String SORT_BY_TIME_MESSAGE = "Successfully sort events by time!"; + private static final String SORT_BY_NAME_MESSAGE = "Events successfully sorted by name!"; + private static final String SORT_BY_TIME_MESSAGE = "Events successfully sorted by time!"; protected String keyword; From e98cb0704ceaca6c08e1f29c0392b68584e96cce Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Sun, 27 Oct 2024 14:38:26 +0800 Subject: [PATCH 219/619] Wrap line for String format --- src/main/java/seedu/manager/event/Event.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index c619e9af50..2e67710fb8 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -164,7 +164,7 @@ public String formatEventTime() { @Override public String toString(){ String eventTimeString = formatEventTime(); - return String.format("Event name: %s / Event time: %s / Event venue: %s / Done: %c", eventName, eventTimeString, - eventVenue, markIfDone()); + return String.format("Event name: %s / Event time: %s / Event venue: %s / Done: %c", + eventName, eventTimeString, eventVenue, markIfDone()); } } From df05498a727b7a9b4fb525d1ee13345d7e29c103 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Sun, 27 Oct 2024 14:39:49 +0800 Subject: [PATCH 220/619] Add punctuation to Javadoc header --- src/main/java/seedu/manager/event/EventList.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 473f5123b0..f024b2a0d3 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -145,7 +145,7 @@ public void sortByName(){ } /** - * Sort the event list by time in chronological order + * Sort the event list by time in chronological order. */ public void sortByTime() { eventList.sort(Comparator.comparing(Event::getEventTime)); From 3469903412b5d7eadf8b40337d2b032409b4c339 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Sun, 27 Oct 2024 14:40:49 +0800 Subject: [PATCH 221/619] Edit warning log message for invalid date-time --- src/main/java/seedu/manager/parser/Parser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 5dfa97fa5d..ecc038d355 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -137,7 +137,7 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval logger.log(WARNING,"Invalid command format"); throw new InvalidCommandException(INVALID_ADD_MESSAGE); } catch (DateTimeParseException exception) { - logger.log(WARNING,"test"); + logger.log(WARNING,"Invalid date-time format"); throw new InvalidCommandException(INVALID_DATE_TIME_MESSAGE); } } From c715955ed5a102f6ee8d4ca5ba7ded007862d46d Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Sun, 27 Oct 2024 14:41:14 +0800 Subject: [PATCH 222/619] Edit JUnit tests with updated Sort message --- src/test/java/seedu/manager/command/SortCommandTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/seedu/manager/command/SortCommandTest.java b/src/test/java/seedu/manager/command/SortCommandTest.java index 3a524c8beb..b132f107f0 100644 --- a/src/test/java/seedu/manager/command/SortCommandTest.java +++ b/src/test/java/seedu/manager/command/SortCommandTest.java @@ -34,7 +34,7 @@ public void execute_sortByName_success() { sortCommand.execute(); String expectedMessage = """ - Successfully sort events by name! + Events successfully sorted by name! 1. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A / Done: N 2. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B / Done: N 3. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C / Done: N @@ -51,7 +51,7 @@ public void execute_sortByName_success() { sortCommand.execute(); String expectedMessage = """ - Successfully sort events by time! + Events successfully sorted by time! 1. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A / Done: N 2. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C / Done: N 3. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B / Done: N From a30254bdc39c21c1852974ed1faee627ae5b6da2 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Sun, 27 Oct 2024 14:41:40 +0800 Subject: [PATCH 223/619] Update expected test output --- text-ui-test/EXPECTED.TXT | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 539a926566..dde6b729c6 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -43,13 +43,13 @@ Enter a command: There are 1 participants in dinner party! Here are your partici Enter a command: Event added successfully ------------------------ Enter a command: name -Successfully sort events by name! +Events successfully sorted by name! 1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Done: N 2. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Done: Y ------------------------ Enter a command: time -Successfully sort events by time! +Events successfully sorted by time! 1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Done: Y 2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Done: N From 53cc054ff1cc59952282e137af6b1eb7d3b5beab Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Sun, 27 Oct 2024 16:02:26 +0800 Subject: [PATCH 224/619] Update time in Storage to be a LocaDateTime --- src/main/java/seedu/manager/storage/Storage.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index 8f247bd096..4cb8bf126e 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -7,6 +7,8 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; //@@author KuanHsienn /** @@ -15,6 +17,7 @@ */ public class Storage { private final String filePath; + private final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); /** * Constructs a Storage object with the given file path. @@ -53,7 +56,7 @@ public void loadEvents(EventList events) throws IOException { String[] parts = line.split(","); // CSV format if (parts.length == 3) { String eventName = parts[0].trim(); - String time = parts[1].trim(); + LocalDateTime time = LocalDateTime.parse(parts[1].trim(), formatter); String venue = parts[2].trim(); events.addEvent(eventName, time, venue); } From 8797732dba0baaa1f5b4aa72e4e9de7c2b69bd4f Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Sun, 27 Oct 2024 16:03:14 +0800 Subject: [PATCH 225/619] Update JUnit tests with LocalDateTime --- .../manager/command/MarkParticipantCommandTest.java | 7 ++++++- src/test/java/seedu/manager/storage/StorageTest.java | 9 +++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java b/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java index e5cbb54bff..7a9836b3a9 100644 --- a/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java +++ b/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java @@ -4,15 +4,20 @@ import org.junit.jupiter.api.Test; import seedu.manager.event.EventList; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + import static org.junit.jupiter.api.Assertions.assertEquals; class MarkParticipantCommandTest { private EventList eventList; + private final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); @BeforeEach public void testSetUp() { eventList = new EventList(); - eventList.addEvent("Event 1", "2024-10-10 1600", "Venue 1"); + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 1600", formatter), + "Venue 1"); eventList.addParticipantToEvent("John Doe", "Event 1"); } diff --git a/src/test/java/seedu/manager/storage/StorageTest.java b/src/test/java/seedu/manager/storage/StorageTest.java index 43cf382b67..bc49264ba7 100644 --- a/src/test/java/seedu/manager/storage/StorageTest.java +++ b/src/test/java/seedu/manager/storage/StorageTest.java @@ -14,6 +14,8 @@ import java.io.File; import java.io.IOException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; public class StorageTest { @@ -81,8 +83,11 @@ public void testLoadEvents() { @Test public void testSaveEvents() { - eventList.addEvent("Meeting", "2024-10-25 10:00", "Conference Room"); - eventList.addEvent("Workshop", "2024-10-26 14:00", "Main Hall"); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + eventList.addEvent("Meeting", LocalDateTime.parse("2024-10-25 10:00", formatter), + "Conference Room"); + eventList.addEvent("Workshop", LocalDateTime.parse("2024-10-26 14:00", formatter), + "Main Hall"); try { storage.saveEvents(eventList); From 6e3cb5663f5664a97066569821285d647625d5a5 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Sun, 27 Oct 2024 18:46:53 +0800 Subject: [PATCH 226/619] Edit formatEventTime method name to getEventTimeString --- src/main/java/seedu/manager/event/Event.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index cfbd7063d0..e3cd8ce162 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -196,7 +196,7 @@ public boolean markParticipant(String participantName, boolean isPresent) { * * @return eventTime as a formated {@link String} object. */ - public String formatEventTime() { + public String getEventTimeString() { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); return formatter.format(eventTime); } @@ -209,7 +209,7 @@ public String formatEventTime() { */ @Override public String toString(){ - String eventTimeString = formatEventTime(); + String eventTimeString = getEventTimeString(); return String.format("Event name: %s / Event time: %s / Event venue: %s / Done: %c", eventName, eventTimeString, eventVenue, markIfDone()); } From 283cf5125967a91e8c9a918aeddbdf5563ef6961 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Sun, 27 Oct 2024 18:47:41 +0800 Subject: [PATCH 227/619] Edit saveEvents function to handle LocalDateTime --- src/main/java/seedu/manager/storage/Storage.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index 4cb8bf126e..b0e06d7151 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -36,8 +36,10 @@ public Storage(String filePath) { */ public void saveEvents(EventList events) throws IOException { try (FileWriter writer = new FileWriter(filePath)) { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); for (Event event : events.getList()) { - writer.write(event.getEventName() + "," + event.getEventTime() + "," + String eventTimeString = formatter.format(event.getEventTime()); + writer.write(event.getEventName() + "," + eventTimeString + "," + event.getEventVenue() + "\n"); // Save event details in CSV format } } catch (IOException exception) { From 5cfdb44a55e3c655db8c567530bd452dfe7b6a58 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Sun, 27 Oct 2024 18:48:46 +0800 Subject: [PATCH 228/619] Fix incorrect date-time format in test --- .../java/seedu/manager/command/MarkParticipantCommandTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java b/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java index 7a9836b3a9..ab021ea826 100644 --- a/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java +++ b/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java @@ -16,7 +16,7 @@ class MarkParticipantCommandTest { @BeforeEach public void testSetUp() { eventList = new EventList(); - eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 1600", formatter), + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 16:00", formatter), "Venue 1"); eventList.addParticipantToEvent("John Doe", "Event 1"); } From 93388fff41765c9737a070e73534b15d1305cd27 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Sun, 27 Oct 2024 18:49:51 +0800 Subject: [PATCH 229/619] Edit JUnit Storage Test to get event as String --- src/test/java/seedu/manager/storage/StorageTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/seedu/manager/storage/StorageTest.java b/src/test/java/seedu/manager/storage/StorageTest.java index bc49264ba7..2a86ccc87d 100644 --- a/src/test/java/seedu/manager/storage/StorageTest.java +++ b/src/test/java/seedu/manager/storage/StorageTest.java @@ -72,12 +72,12 @@ public void testLoadEvents() { Event firstEvent = eventList.getList().get(0); assertEquals("Meeting", firstEvent.getEventName()); - assertEquals("2024-10-25 10:00", firstEvent.getEventTime()); + assertEquals("2024-10-25 10:00", firstEvent.getEventTimeString()); assertEquals("Conference Room", firstEvent.getEventVenue()); Event secondEvent = eventList.getList().get(1); assertEquals("Workshop", secondEvent.getEventName()); - assertEquals("2024-10-26 14:00", secondEvent.getEventTime()); + assertEquals("2024-10-26 14:00", secondEvent.getEventTimeString()); assertEquals("Main Hall", secondEvent.getEventVenue()); } From 191b9e512917378d140806d4fae4267f330a7cb0 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Sun, 27 Oct 2024 19:06:42 +0800 Subject: [PATCH 230/619] Move string literal ending to new line --- src/main/java/seedu/manager/parser/Parser.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 4f870adce9..624933ce8a 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -31,21 +31,25 @@ public class Parser { Invalid command! Please enter your commands in the following format: add -e EVENT -t TIME -v VENUE - add -p PARTICIPANT -e EVENT"""; + add -p PARTICIPANT -e EVENT + """; private static final String INVALID_REMOVE_MESSAGE = """ Invalid command! Please enter your commands in the following format: remove -e EVENT - remove -p PARTICIPANT -e EVENT"""; + remove -p PARTICIPANT -e EVENT + """; private static final String INVALID_VIEW_MESSAGE = """ Invalid command! Please enter your commands in the following format: - view -e EVENT"""; + view -e EVENT + """; private static final String INVALID_MARK_MESSAGE = """ Invalid command! Please enter your commands in the following format: mark -e EVENT -s STATUS - mark -p PARTICIPANT -e EVENT -s STATUS"""; + mark -p PARTICIPANT -e EVENT -s STATUS + """; private static final String INVALID_EVENT_STATUS_MESSAGE = """ Invalid event status! Please set the event status as either "done" or "undone" From ef21acf7853c9fccbd7b2a9b9c09864a04df3bc6 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Sun, 27 Oct 2024 19:14:28 +0800 Subject: [PATCH 231/619] Add new line in expected test output --- text-ui-test/EXPECTED.TXT | 1 + 1 file changed, 1 insertion(+) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 2db67bc317..f1372a24bb 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -22,6 +22,7 @@ Enter a command: Invalid command! Please enter your commands in the following format: add -e EVENT -t TIME -v VENUE add -p PARTICIPANT -e EVENT + ------------------------ Enter a command: Event added successfully ------------------------ From 19d67303099677fa301e4d90cdff79acb22b8084 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 28 Oct 2024 11:15:55 +0800 Subject: [PATCH 232/619] Refactor markParticipant method in Event to follow SRP --- .../command/MarkParticipantCommand.java | 10 +-- src/main/java/seedu/manager/event/Event.java | 73 +++++++++++-------- 2 files changed, 47 insertions(+), 36 deletions(-) diff --git a/src/main/java/seedu/manager/command/MarkParticipantCommand.java b/src/main/java/seedu/manager/command/MarkParticipantCommand.java index 43666d93bc..8a80c88ebd 100644 --- a/src/main/java/seedu/manager/command/MarkParticipantCommand.java +++ b/src/main/java/seedu/manager/command/MarkParticipantCommand.java @@ -33,19 +33,19 @@ public MarkParticipantCommand(String participantName, String eventName, boolean */ @Override public void execute() { - Optional event = eventList.getEventByName(this.eventName); + Optional event = eventList.getEventByName(eventName); if (event.isEmpty()) { - this.message = INVALID_EVENT_MESSAGE; + message = INVALID_EVENT_MESSAGE; return; } - boolean isMarked = event.get().markParticipant(this.participantName, this.toMark); + boolean isMarked = event.get().markParticipantByName(participantName, toMark); if (isMarked) { - this.message = (this.toMark) ? PARTICIPANT_MARK_MESSAGE : PARTICIPANT_UNMARK_MESSAGE; + message = (toMark) ? PARTICIPANT_MARK_MESSAGE : PARTICIPANT_UNMARK_MESSAGE; } else { - this.message = INVALID_PARTICIPANT_MESSAGE; + message = INVALID_PARTICIPANT_MESSAGE; } } } diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 4814e24664..dce782b06b 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -81,25 +81,6 @@ public int getParticipantCount() { return this.participantList.size(); } - //@@author jemehgoh - /** - * Returns the participant in the participant list with the given name. - * If the participant is not in the participant list, returns null. - * - * @param participantName the name of the participant. - * @return the participant in the participant list with participantName, or null if - * no such participant exists. - */ - private Optional getParticipantByName(String participantName) { - for (Participant participant : this.participantList) { - if (participant.getName().equalsIgnoreCase(participantName)) { - return Optional.of(participant); - } - } - - return Optional.empty(); - } - //@@author MatchaRRR /** * @return the event name @@ -170,22 +151,16 @@ public char markIfDone() { /** * Returns true if the participant with the given name can be marked present or absent. - * Returns false otherwise. + * Returns false otherwise. * - * @param participantName the name of the participant. - * @param isPresent true if the participant is to be marked present, false if he is to be marked absent. + * @param participantName the participant name. + * @param isPresent true if participant is to be marked present, false if he is to be marked absent. * @return {@code true} if the participant with participantName has been marked present or absent, - * {@code false} otherwise. + * {@code false} otherwise. */ - public boolean markParticipant(String participantName, boolean isPresent) { + public boolean markParticipantByName(String participantName, boolean isPresent) { Optional participant = getParticipantByName(participantName); - - if (participant.isEmpty()) { - return false; - } - - participant.get().setPresent(isPresent); - return true; + return markParticipant(participant, isPresent); } //@@author MatchaRRR @@ -199,4 +174,40 @@ public String toString(){ return String.format("Event name: %s / Event time: %s / Event venue: %s / Done: %c", eventName, eventTime, eventVenue, markIfDone()); } + + /** + * Returns the participant in the participant list with the given name. + * If the participant is not in the participant list, returns null. + * + * @param participantName the name of the participant. + * @return the participant in the participant list with participantName, or null if + * no such participant exists. + */ + private Optional getParticipantByName(String participantName) { + for (Participant participant : participantList) { + if (participant.getName().equalsIgnoreCase(participantName)) { + return Optional.of(participant); + } + } + + return Optional.empty(); + } + + //@@author jemehgoh + /** + * Returns true if the given participant can be marked present or absent. Returns false otherwise. + * + * @param participant the participant. + * @param isPresent true if participant is to be marked present, false if he is to be marked absent. + * @return {@code true} if the participant with participantName has been marked present or absent, + * {@code false} otherwise. + */ + private boolean markParticipant(Optional participant, boolean isPresent) { + if (participant.isEmpty()) { + return false; + } + + participant.get().setPresent(isPresent); + return true; + } } From af99d4e6767fa096e995ff28a184889afd28b7c1 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 28 Oct 2024 11:45:09 +0800 Subject: [PATCH 233/619] Add section on the Event component to the developer guide --- docs/DeveloperGuide.md | 14 +++++++++++--- docs/diagrams/EventClassDiagram.puml | 22 ++++++++++++++++++++++ docs/images/EventClassDiagram.png | Bin 0 -> 11708 bytes 3 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 docs/diagrams/EventClassDiagram.puml create mode 100644 docs/images/EventClassDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index b291441720..d25a37f4b4 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -19,7 +19,7 @@ The application comprises the following components: * `Storage`, which handles the loading and saving of data upon program startup and shutdown. * `Parser`, which converts user input into commands. * `Command`, which are executed to modify the data stored in the program. -* `EventList`, which stores the program's data. +* `Event`, which stores the program's data. ### Interactions between components @@ -45,8 +45,6 @@ The `Command` component and its component classes are shown in the below _Class -These component classes comprise an abstract `Command` class and multiple `XYZCommand` classes for each command. - The `Command` component does the following: * Handle the execution of the user command through interactions with `Event`. @@ -56,6 +54,16 @@ The interactions between `Command` and other commands in the system is shown in +### Event component + +The `Event` component and its component classes are shown in the below _Class Diagram_: + + + +The `Event` component does the following: +* Handle the addition, removal and marking of events stored in `EventList`. +* Add, remove and mark participants for a specific `Event` in `EventList`. + ## Implementation This section describes some noteworthy details on how certain features are implemented. diff --git a/docs/diagrams/EventClassDiagram.puml b/docs/diagrams/EventClassDiagram.puml new file mode 100644 index 0000000000..7868270180 --- /dev/null +++ b/docs/diagrams/EventClassDiagram.puml @@ -0,0 +1,22 @@ +@startuml +!include style.puml + +rectangle event { + rectangle EventList EVENT_COLOUR + rectangle Event EVENT_COLOUR + rectangle Participant EVENT_COLOUR +} + +rectangle Main +rectangle Command COMMAND_COLOUR +rectangle Storage STORAGE_COLOUR + +EventList *--> Event +Event *--> Participant + +Main .> EventList +EventList <. Storage +EventList <.. Command +Command ..> Event + +@enduml \ No newline at end of file diff --git a/docs/images/EventClassDiagram.png b/docs/images/EventClassDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..ecb0522e7c15e5e883e55d5e050733aca69bb49c GIT binary patch literal 11708 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 Date: Mon, 28 Oct 2024 16:25:47 +0800 Subject: [PATCH 234/619] Add user stories, non-functional requirement and change italics to bold --- docs/DeveloperGuide.md | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d25a37f4b4..358fc0afe2 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -8,7 +8,7 @@ -The above _Architecture Diagram_ provides the high-level design of the application. +The above **Architecture Diagram** provides the high-level design of the application. ### Main components @@ -25,14 +25,14 @@ The application comprises the following components: -The above _Sequence Diagram_ shows how the different components of the system interact with one +The above **Sequence Diagram** shows how the different components of the system interact with one another in the scenario when the command `add -e event -t 1200 -v venue` is executed. ### UI component -The `UI` component comprises an Ui class, as shown in the above _Class Diagram_. +The `UI` component comprises an Ui class, as shown in the above **Class Diagram**. The `UI` does the following: @@ -41,7 +41,7 @@ The `UI` does the following: ### Command component -The `Command` component and its component classes are shown in the below _Class Diagram_: +The `Command` component and its component classes are shown in the below **Class Diagram**: @@ -56,7 +56,7 @@ The interactions between `Command` and other commands in the system is shown in ### Event component -The `Event` component and its component classes are shown in the below _Class Diagram_: +The `Event` component and its component classes are shown in the below **Class Diagram**: @@ -113,15 +113,21 @@ The user is able to organise and manage his events more quickly and efficiently ## User Stories -| Version | As a ... | I want to ... | So that I can ... | -|---------|----------|--------------------------|--------------------------------------------------------| -| v1.0 | new user | see usage instructions | refer to them when I forget how to use the application | -| v2.0 | user | mark events as completed | easily track all past events | -| v2.0 | user | mark participants present| know exactly who signed up but did not attend the event| +| Version | As a ... | I want to ... | So that I can ... | +|---------|----------|-----------------------------------------------------------------|-------------------------------------------------------------------------------------------| +| v1.0 | new user | see the list of commands | know how to format my input | +| v1.0 | user | add new events | manage future events | +| v1.0 | user | remove events from the events list | maintain the event list with events that are relevant and current | +| v1.0 | user | list all current events | know which events are currently ongoing | +| v1.0 | user | add participants to a specific event | ensure all relevant individuals are included in that event's participant list efficiently | +| v1.0 | user | remove participants who are no longer coming to specific events | efficiently keep the participant list for that event up-to-date and relevant | +| v1.0 | user | view the participant list of an event | know who is involved | +| v2.0 | user | mark events as completed | easily track all past events | +| v2.0 | user | mark participants present | know exactly who signed up but did not attend the event | ## Non-Functional Requirements -{Give non-functional requirements} +* Should work for any **mainstream OS** as long as Java 17 is installed. ## Glossary From 88ce32a2a18c29f5ee803034fd7aba8c44f3a939 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Mon, 28 Oct 2024 21:05:55 +0800 Subject: [PATCH 235/619] Add Priority status to all events, Update all existing tests and methods --- .../seedu/manager/command/AddCommand.java | 9 +++- .../seedu/manager/command/MenuCommand.java | 2 +- .../seedu/manager/enumeration/Priority.java | 5 +++ src/main/java/seedu/manager/event/Event.java | 41 ++++++++++++++++++- .../java/seedu/manager/event/EventList.java | 7 +++- .../java/seedu/manager/parser/Parser.java | 16 ++++++-- .../java/seedu/manager/storage/Storage.java | 8 ++-- .../seedu/manager/command/AddCommandTest.java | 7 ++-- .../manager/command/ListCommandTest.java | 5 ++- .../manager/command/MarkEventCommandTest.java | 3 +- .../command/MarkParticipantCommandTest.java | 3 +- .../manager/command/RemoveCommandTest.java | 9 ++-- .../manager/command/SortCommandTest.java | 7 ++-- .../manager/command/ViewCommandTest.java | 2 +- .../java/seedu/manager/parser/ParserTest.java | 2 +- .../seedu/manager/storage/StorageTest.java | 13 +++--- 16 files changed, 104 insertions(+), 35 deletions(-) create mode 100644 src/main/java/seedu/manager/enumeration/Priority.java diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index c7e1e44734..2632c269e8 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -1,5 +1,7 @@ package seedu.manager.command; +import seedu.manager.enumeration.Priority; + import java.time.LocalDateTime; //@@author KuanHsienn @@ -15,6 +17,7 @@ public class AddCommand extends Command { protected String eventName; protected LocalDateTime time; protected String venue; + protected Priority priority; protected String participantName; /** @@ -23,12 +26,14 @@ public class AddCommand extends Command { * @param eventName The name of the event to be added. * @param time The time of the event to be added. * @param venue The venue of the event to be added. + * @param priority The priority level of the event to be added */ - public AddCommand(String eventName, LocalDateTime time, String venue) { + public AddCommand(String eventName, LocalDateTime time, String venue, Priority priority) { super(false); this.eventName = eventName; this.time = time; this.venue = venue; + this.priority = priority; } //@@author LTK-1606 @@ -59,7 +64,7 @@ public AddCommand(String participantName, String eventName) { @Override public void execute() { if (participantName == null) { - this.eventList.addEvent(this.eventName, this.time, this.venue); + this.eventList.addEvent(this.eventName, this.time, this.venue, this.priority); this.message = ADD_EVENT_MESSAGE; } else { boolean isAdded = this.eventList.addParticipantToEvent(this.participantName, this.eventName); diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index a15997313d..c4235972cf 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -9,7 +9,7 @@ public class MenuCommand extends Command { private static final String MENU_MESSAGE = """ Here are the possible commands: - add -e EVENT -t TIME -v VENUE: Add an event to the event list. + add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. list: List events. remove -e EVENT: Remove an event from the event list. add -p PARTICIPANT -e EVENT: Add a participant to an event. diff --git a/src/main/java/seedu/manager/enumeration/Priority.java b/src/main/java/seedu/manager/enumeration/Priority.java new file mode 100644 index 0000000000..1ef8fe4579 --- /dev/null +++ b/src/main/java/seedu/manager/enumeration/Priority.java @@ -0,0 +1,5 @@ +package seedu.manager.enumeration; + +public enum Priority { + HIGH, MEDIUM, LOW +} diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index e3cd8ce162..c0324a2af5 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -1,5 +1,6 @@ package seedu.manager.event; +import seedu.manager.enumeration.Priority; import seedu.manager.item.Participant; import java.time.LocalDateTime; @@ -18,6 +19,7 @@ public class Event { private LocalDateTime eventTime; private String eventVenue; private boolean isDone; + private Priority eventPriority; /** * Constructs an Event with the specified name. @@ -44,6 +46,24 @@ public Event(String eventName, LocalDateTime eventTime, String eventVenue) { this.isDone = false; } + //@@author LTK-1606 + /** + * Constructs an Event with the specified name, time, venue and priority. + * + * @param eventName the name of the event + * @param eventTime the time duration of the event + * @param eventVenue the venue of the event + * @param eventPriority the priority level of the event + */ + public Event(String eventName, LocalDateTime eventTime, String eventVenue, Priority eventPriority) { + this.eventName = eventName; + this.eventTime = eventTime; + this.eventVenue = eventVenue; + this.eventPriority = eventPriority; + this.participantList = new ArrayList<>(); + this.isDone = false; + } + //@@author LTK-1606 /** * Adds a participant to the participant list for the event. @@ -124,6 +144,14 @@ public String getEventVenue() { return eventVenue; } + //@@author LTK-1606 + /** + * @return the event priority + */ + public Priority getEventPriority() { + return eventPriority; + } + public ArrayList getParticipantList() { return participantList; } @@ -153,6 +181,15 @@ public void setEventVenue(String eventVenue) { this.eventVenue = eventVenue; } + /** + * Sets a new priority level for the event. + * + * @param eventPriority the new event priority level + */ + public void setEventPriority(Priority eventPriority) { + this.eventPriority = eventPriority; + } + //@@author jemehgoh /** * Sets if the event is done or not done @@ -210,7 +247,7 @@ public String getEventTimeString() { @Override public String toString(){ String eventTimeString = getEventTimeString(); - return String.format("Event name: %s / Event time: %s / Event venue: %s / Done: %c", - eventName, eventTimeString, eventVenue, markIfDone()); + return String.format("Event name: %s / Event time: %s / Event venue: %s / Event Priority: %s / Done: %c", + eventName, eventTimeString, eventVenue, eventPriority, markIfDone()); } } diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 0030665c66..51cebb2686 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -1,5 +1,7 @@ package seedu.manager.event; +import seedu.manager.enumeration.Priority; + import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Comparator; @@ -54,9 +56,10 @@ public ArrayList getList() { * @param eventName the name of the event to be added. * @param time the time of the event. * @param venue the venue where the event will take place. + * @param priority the priority level of the event */ - public void addEvent(String eventName, LocalDateTime time, String venue) { - Event newEvent = new Event(eventName, time, venue); + public void addEvent(String eventName, LocalDateTime time, String venue, Priority priority) { + Event newEvent = new Event(eventName, time, venue, priority); eventList.add(newEvent); } diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 624933ce8a..49047663a7 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -11,6 +11,7 @@ import seedu.manager.command.ListCommand; import seedu.manager.command.ViewCommand; import seedu.manager.command.SortCommand; +import seedu.manager.enumeration.Priority; import seedu.manager.exception.InvalidCommandException; import java.time.LocalDateTime; @@ -30,7 +31,7 @@ public class Parser { private static final String INVALID_ADD_MESSAGE = """ Invalid command! Please enter your commands in the following format: - add -e EVENT -t TIME -v VENUE + add -e EVENT -t TIME -v VENUE -u PRIORITY add -p PARTICIPANT -e EVENT """; private static final String INVALID_REMOVE_MESSAGE = """ @@ -72,6 +73,11 @@ public class Parser { Please use the following format for event time: YYYY-MM-DD HH:mm """; + private static final String INVALID_PRIORITY_MESSAGE = """ + Invalid priority level status! + Please use the following format for priority level: + high/medium/low + """; /** * Returns a command based on the given user command string. @@ -129,12 +135,13 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval String[] inputParts; if (commandFlag.equals("-e")) { - inputParts = input.split("(-e|-t|-v)"); + inputParts = input.split("(-e|-t|-v|-u)"); logger.info("Creating AddCommand for event with details: " + inputParts[1].trim() + ", " + inputParts[2].trim() + ", " + inputParts[3].trim()); LocalDateTime eventTime = LocalDateTime.parse(inputParts[2].trim(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); - return new AddCommand(inputParts[1].trim(), eventTime, inputParts[3].trim()); + Priority eventPriority = Priority.valueOf(inputParts[4].trim().toUpperCase()); + return new AddCommand(inputParts[1].trim(), eventTime, inputParts[3].trim(), eventPriority); } else if (commandFlag.equals("-p")) { inputParts = input.split("(-p|-e)"); logger.info("Creating AddCommand for participant with details: " + @@ -150,6 +157,9 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval } catch (DateTimeParseException exception) { logger.log(WARNING,"Invalid date-time format"); throw new InvalidCommandException(INVALID_DATE_TIME_MESSAGE); + } catch (IllegalArgumentException exception) { + logger.log(WARNING,"Invalid priority level status"); + throw new InvalidCommandException(INVALID_PRIORITY_MESSAGE); } } diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index b0e06d7151..500630817e 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -1,5 +1,6 @@ package seedu.manager.storage; +import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; import seedu.manager.event.Event; @@ -40,7 +41,7 @@ public void saveEvents(EventList events) throws IOException { for (Event event : events.getList()) { String eventTimeString = formatter.format(event.getEventTime()); writer.write(event.getEventName() + "," + eventTimeString + "," - + event.getEventVenue() + "\n"); // Save event details in CSV format + + event.getEventVenue() + "," + event.getEventPriority() + "\n"); // Save event details in CSV format } } catch (IOException exception) { throw new IOException("Error saving events to file: " + filePath); @@ -56,11 +57,12 @@ public void loadEvents(EventList events) throws IOException { try { for (String line : Files.readAllLines(Paths.get(filePath))) { String[] parts = line.split(","); // CSV format - if (parts.length == 3) { + if (parts.length == 4) { String eventName = parts[0].trim(); LocalDateTime time = LocalDateTime.parse(parts[1].trim(), formatter); String venue = parts[2].trim(); - events.addEvent(eventName, time, venue); + Priority priority = Priority.valueOf(parts[3].trim().toUpperCase()); + events.addEvent(eventName, time, venue, priority); } } } catch (IOException exception) { diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index 895cd55506..89d15fe129 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -1,6 +1,7 @@ package seedu.manager.command; import org.junit.jupiter.api.Test; +import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; import java.time.LocalDateTime; @@ -17,7 +18,7 @@ public void add_event_success() { eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), - "Venue A"); + "Venue A", Priority.HIGH); assertEquals(1, eventList.getListSize()); } @@ -28,7 +29,7 @@ public void add_twoParticipant_success() { eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), - "Venue A"); + "Venue A", Priority.HIGH); eventList.addParticipantToEvent("Tom", "Event 1"); eventList.addParticipantToEvent("Harry", "Event 1"); @@ -41,7 +42,7 @@ public void add_oneParticipantWrongly_success() { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), - "Venue A"); + "Venue A", Priority.HIGH); eventList.addParticipantToEvent("Tom", "Event 1"); eventList.addParticipantToEvent("Harry", "Event 2"); diff --git a/src/test/java/seedu/manager/command/ListCommandTest.java b/src/test/java/seedu/manager/command/ListCommandTest.java index 5d77a897a6..96fc3248eb 100644 --- a/src/test/java/seedu/manager/command/ListCommandTest.java +++ b/src/test/java/seedu/manager/command/ListCommandTest.java @@ -2,6 +2,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; import java.time.LocalDateTime; @@ -20,9 +21,9 @@ public void setUp() { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), - "Venue A"); + "Venue A", Priority.HIGH); eventList.addEvent("Event 2", LocalDateTime.parse("2024-11-11 12:00", formatter), - "Venue B"); + "Venue B", Priority.MEDIUM); listCommand = new ListCommand(); listCommand.setData(eventList); diff --git a/src/test/java/seedu/manager/command/MarkEventCommandTest.java b/src/test/java/seedu/manager/command/MarkEventCommandTest.java index 6bbde26f26..9c227db9ce 100644 --- a/src/test/java/seedu/manager/command/MarkEventCommandTest.java +++ b/src/test/java/seedu/manager/command/MarkEventCommandTest.java @@ -2,6 +2,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; import java.time.LocalDateTime; @@ -17,7 +18,7 @@ class MarkEventCommandTest { public void testSetUp() { eventList = new EventList(); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 16:00", formatter), - "Venue 1"); + "Venue 1", Priority.HIGH); } @Test diff --git a/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java b/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java index ab021ea826..3c114e175b 100644 --- a/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java +++ b/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java @@ -2,6 +2,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; import java.time.LocalDateTime; @@ -17,7 +18,7 @@ class MarkParticipantCommandTest { public void testSetUp() { eventList = new EventList(); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 16:00", formatter), - "Venue 1"); + "Venue 1", Priority.HIGH); eventList.addParticipantToEvent("John Doe", "Event 1"); } diff --git a/src/test/java/seedu/manager/command/RemoveCommandTest.java b/src/test/java/seedu/manager/command/RemoveCommandTest.java index cc933b0893..e44af874c7 100644 --- a/src/test/java/seedu/manager/command/RemoveCommandTest.java +++ b/src/test/java/seedu/manager/command/RemoveCommandTest.java @@ -1,6 +1,7 @@ package seedu.manager.command; import org.junit.jupiter.api.Test; +import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; import java.time.LocalDateTime; @@ -16,9 +17,9 @@ public void remove_event_success() { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), - "Venue A"); + "Venue A", Priority.HIGH); eventList.addEvent("Event 2", LocalDateTime.parse("2024-10-20 21:00", formatter), - "Venue B"); + "Venue B", Priority.MEDIUM); eventList.removeEvent("Event 2"); assertEquals(1, eventList.getListSize()); } @@ -29,7 +30,7 @@ public void remove_oneParticipant_success() { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), - "Venue A"); + "Venue A", Priority.HIGH); eventList.addParticipantToEvent("Tom", "Event 1"); eventList.addParticipantToEvent("Harry", "Event 1"); eventList.removeParticipantFromEvent("Tom", "Event 1"); @@ -43,7 +44,7 @@ public void remove_oneParticipantWrongly_success() { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), - "Venue A"); + "Venue A", Priority.HIGH); eventList.addParticipantToEvent("Tom", "Event 1"); eventList.addParticipantToEvent("Harry", "Event 1"); eventList.removeParticipantFromEvent("Tom", "Event 2"); diff --git a/src/test/java/seedu/manager/command/SortCommandTest.java b/src/test/java/seedu/manager/command/SortCommandTest.java index b132f107f0..336cf264d0 100644 --- a/src/test/java/seedu/manager/command/SortCommandTest.java +++ b/src/test/java/seedu/manager/command/SortCommandTest.java @@ -2,6 +2,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; import java.time.LocalDateTime; @@ -17,11 +18,11 @@ public class SortCommandTest { @BeforeEach public void setUp(){ eventList.addEvent("C-Event", LocalDateTime.parse("2024-10-23 21:00", formatter), - "Venue C"); + "Venue C", Priority.HIGH); eventList.addEvent("B-Event", LocalDateTime.parse("2024-10-23 21:05", formatter), - "Venue B"); + "Venue B", Priority.MEDIUM); eventList.addEvent("A-Event", LocalDateTime.parse("2023-10-23 21:00", formatter), - "Venue A"); + "Venue A", Priority.LOW); assertEquals(3, eventList.getListSize()); } diff --git a/src/test/java/seedu/manager/command/ViewCommandTest.java b/src/test/java/seedu/manager/command/ViewCommandTest.java index f1f5d16387..591656ae2c 100644 --- a/src/test/java/seedu/manager/command/ViewCommandTest.java +++ b/src/test/java/seedu/manager/command/ViewCommandTest.java @@ -17,7 +17,7 @@ public class ViewCommandTest { public void setUp() { Command command; - command = new Parser().parseCommand("add -e Event 1 -t 2024-10-10 10:00 -v Venue A"); + command = new Parser().parseCommand("add -e Event 1 -t 2024-10-10 10:00 -v Venue A -u high"); command.setData(eventList); command.execute(); diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index a06094c4a1..05db195a57 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -52,7 +52,7 @@ public void parseCommand_listWord_list() { @Test public void addCommand_addEvent_add() { Parser parser = new Parser(); - Command command = parser.parseCommand("add -e event -t 2024-09-10 12:34 -v Venue A"); + Command command = parser.parseCommand("add -e event -t 2024-09-10 12:34 -v Venue A -u high"); assertInstanceOf(AddCommand.class, command); } diff --git a/src/test/java/seedu/manager/storage/StorageTest.java b/src/test/java/seedu/manager/storage/StorageTest.java index 2a86ccc87d..50069d94a9 100644 --- a/src/test/java/seedu/manager/storage/StorageTest.java +++ b/src/test/java/seedu/manager/storage/StorageTest.java @@ -1,5 +1,6 @@ package seedu.manager.storage; +import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; import seedu.manager.event.Event; @@ -55,8 +56,8 @@ public void testLoadEvents() { try { java.nio.file.Files.writeString( java.nio.file.Paths.get(TEST_FILE_PATH), - "Meeting,2024-10-25 10:00,Conference Room\n" + - "Workshop,2024-10-26 14:00,Main Hall\n" + "Meeting,2024-10-25 10:00,Conference Room,HIGH\n" + + "Workshop,2024-10-26 14:00,Main Hall,MEDIUM\n" ); } catch (IOException exception) { fail("Failed to set up the test data file: " + exception.getMessage()); @@ -85,9 +86,9 @@ public void testLoadEvents() { public void testSaveEvents() { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); eventList.addEvent("Meeting", LocalDateTime.parse("2024-10-25 10:00", formatter), - "Conference Room"); + "Conference Room", Priority.HIGH); eventList.addEvent("Workshop", LocalDateTime.parse("2024-10-26 14:00", formatter), - "Main Hall"); + "Main Hall", Priority.MEDIUM); try { storage.saveEvents(eventList); @@ -100,8 +101,8 @@ public void testSaveEvents() { try { String content = new String(java.nio.file.Files.readAllBytes(file.toPath())); - String expectedContent = "Meeting,2024-10-25 10:00,Conference Room\n" - + "Workshop,2024-10-26 14:00,Main Hall\n"; + String expectedContent = "Meeting,2024-10-25 10:00,Conference Room,HIGH\n" + + "Workshop,2024-10-26 14:00,Main Hall,MEDIUM\n"; assertEquals(expectedContent, content, "The file content does not match the expected output."); } catch (IOException exception) { fail("Exception should not be thrown when reading the saved file: " + exception.getMessage()); From e28c4458e695124617861c4a75c8ebd6734a19fb Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Mon, 28 Oct 2024 21:19:39 +0800 Subject: [PATCH 236/619] Fix style errors --- .gitignore | 1 + src/main/java/seedu/manager/storage/Storage.java | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 621af74393..e6ed0b64a4 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ bin/ /text-ui-test/ACTUAL.TXT text-ui-test/EXPECTED-UNIX.TXT src/main/java/META-INF/MANIFEST.MF +/events.txt diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index 500630817e..efd5853d8a 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -41,7 +41,8 @@ public void saveEvents(EventList events) throws IOException { for (Event event : events.getList()) { String eventTimeString = formatter.format(event.getEventTime()); writer.write(event.getEventName() + "," + eventTimeString + "," - + event.getEventVenue() + "," + event.getEventPriority() + "\n"); // Save event details in CSV format + + event.getEventVenue() + "," + + event.getEventPriority() + "\n"); // Save event details in CSV format } } catch (IOException exception) { throw new IOException("Error saving events to file: " + filePath); From 04bd22409d5208724be3ee4028f00f468360327f Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Mon, 28 Oct 2024 21:31:14 +0800 Subject: [PATCH 237/619] Add functionality for sort command to sort events by priority, Modify JUnit tests --- .../seedu/manager/command/SortCommand.java | 4 +++ .../java/seedu/manager/event/EventList.java | 7 +++++ .../manager/command/ListCommandTest.java | 4 +-- .../manager/command/SortCommandTest.java | 28 +++++++++++++++---- 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/src/main/java/seedu/manager/command/SortCommand.java b/src/main/java/seedu/manager/command/SortCommand.java index 1ac8bae504..8fbbf44215 100644 --- a/src/main/java/seedu/manager/command/SortCommand.java +++ b/src/main/java/seedu/manager/command/SortCommand.java @@ -11,6 +11,8 @@ public class SortCommand extends Command { private static final String SORT_BY_NAME_MESSAGE = "Events successfully sorted by name!"; private static final String SORT_BY_TIME_MESSAGE = "Events successfully sorted by time!"; + private static final String SORT_BY_PRIORITY_MESSAGE = "Events successfully sorted by priority level!"; + protected String keyword; @@ -43,6 +45,8 @@ public void execute() { outputMessage.append(SORT_BY_TIME_MESSAGE + "\n"); break; case "priority": + sortedEventList.sortByPriority(); + outputMessage.append(SORT_BY_PRIORITY_MESSAGE + "\n"); break; default: } diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 51cebb2686..a462db475e 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -163,4 +163,11 @@ public void sortByName(){ public void sortByTime() { eventList.sort(Comparator.comparing(Event::getEventTime)); } + + /** + * Sort the event list by priority level from most to least important. + */ + public void sortByPriority() { + eventList.sort(Comparator.comparing(Event::getEventPriority)); + } } diff --git a/src/test/java/seedu/manager/command/ListCommandTest.java b/src/test/java/seedu/manager/command/ListCommandTest.java index 96fc3248eb..4a96c4b3be 100644 --- a/src/test/java/seedu/manager/command/ListCommandTest.java +++ b/src/test/java/seedu/manager/command/ListCommandTest.java @@ -33,8 +33,8 @@ public void setUp() { @Test public void execute_twoEvents_success() { String expectedMessage = "There are 2 events in your list! Here are your scheduled events:\n" - + "1. Event name: Event 1 / Event time: 2024-10-10 10:00 / Event venue: Venue A / Done: N\n" - + "2. Event name: Event 2 / Event time: 2024-11-11 12:00 / Event venue: Venue B / Done: N\n"; + + "1. Event name: Event 1 / Event time: 2024-10-10 10:00 / Event venue: Venue A / Event Priority: HIGH / Done: N\n" + + "2. Event name: Event 2 / Event time: 2024-11-11 12:00 / Event venue: Venue B / Event Priority: MEDIUM / Done: N\n"; assertEquals(expectedMessage, listCommand.getMessage()); assertFalse(listCommand.getCanExit()); diff --git a/src/test/java/seedu/manager/command/SortCommandTest.java b/src/test/java/seedu/manager/command/SortCommandTest.java index 336cf264d0..7a6545f6f9 100644 --- a/src/test/java/seedu/manager/command/SortCommandTest.java +++ b/src/test/java/seedu/manager/command/SortCommandTest.java @@ -36,9 +36,9 @@ public void execute_sortByName_success() { String expectedMessage = """ Events successfully sorted by name! - 1. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A / Done: N - 2. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B / Done: N - 3. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C / Done: N + 1. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A / Event Priority: LOW / Done: N + 2. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B / Event Priority: MEDIUM / Done: N + 3. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C / Event Priority: HIGH / Done: N """; assertEquals(expectedMessage, sortCommand.getMessage()); @@ -53,9 +53,25 @@ public void execute_sortByName_success() { String expectedMessage = """ Events successfully sorted by time! - 1. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A / Done: N - 2. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C / Done: N - 3. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B / Done: N + 1. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A / Event Priority: LOW / Done: N + 2. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C / Event Priority: HIGH / Done: N + 3. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B / Event Priority: MEDIUM / Done: N + """; + assertEquals(expectedMessage, sortCommand.getMessage()); + assertFalse(sortCommand.getCanExit()); + } + + @Test public void execute_sortByPriority_success() { + SortCommand sortCommand = new SortCommand("priority"); + + sortCommand.setData(eventList); + sortCommand.execute(); + + String expectedMessage = """ + Events successfully sorted by priority level! + 1. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C / Event Priority: HIGH / Done: N + 2. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B / Event Priority: MEDIUM / Done: N + 3. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A / Event Priority: LOW / Done: N """; assertEquals(expectedMessage, sortCommand.getMessage()); assertFalse(sortCommand.getCanExit()); From 0e51dd5011265648ff867c6bea3f5e09a72eae82 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Mon, 28 Oct 2024 21:40:16 +0800 Subject: [PATCH 238/619] Update parser to support sort command for priority, Modify JUnit tests --- .../java/seedu/manager/parser/Parser.java | 1 - .../java/seedu/manager/parser/ParserTest.java | 21 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 49047663a7..9093ba7197 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -341,7 +341,6 @@ private Command parseSortCommand(String input, String[] commandParts) throws Inv } String keyword = inputParts[1].trim(); - System.out.println(keyword); Set validKeywords = Set.of("name", "time", "priority"); if (validKeywords.contains(keyword.toLowerCase())) { return new SortCommand(keyword); diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index 05db195a57..bdd79a9488 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -153,4 +153,25 @@ public void parseCommand_markInvalidFlags_throwsException() { assertThrows(InvalidCommandException.class,() -> { parser.parseCommand(commandString);}); } + + @Test + public void parseCommand_sortEventsInvalidFlags_throwsException() { + Parser parser = new Parser(); + String commandString = "sort by name"; + + + assertThrows(InvalidCommandException.class,() -> { + parser.parseCommand(commandString);}); + } + + @Test + public void parseCommand_sortEventsInvalidInput_throwsException() { + Parser parser = new Parser(); + String commandString = "sort -by fun"; + + + assertThrows(InvalidCommandException.class, () -> { + parser.parseCommand(commandString);}); + } + } From 6f798475be029ffcaa96763c9859b706d096adb2 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Mon, 28 Oct 2024 21:51:02 +0800 Subject: [PATCH 239/619] Fix style errors --- .../manager/command/ListCommandTest.java | 6 ++- .../manager/command/SortCommandTest.java | 39 ++++++++++--------- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/src/test/java/seedu/manager/command/ListCommandTest.java b/src/test/java/seedu/manager/command/ListCommandTest.java index 4a96c4b3be..5fb109c66f 100644 --- a/src/test/java/seedu/manager/command/ListCommandTest.java +++ b/src/test/java/seedu/manager/command/ListCommandTest.java @@ -33,8 +33,10 @@ public void setUp() { @Test public void execute_twoEvents_success() { String expectedMessage = "There are 2 events in your list! Here are your scheduled events:\n" - + "1. Event name: Event 1 / Event time: 2024-10-10 10:00 / Event venue: Venue A / Event Priority: HIGH / Done: N\n" - + "2. Event name: Event 2 / Event time: 2024-11-11 12:00 / Event venue: Venue B / Event Priority: MEDIUM / Done: N\n"; + + "1. Event name: Event 1 / Event time: 2024-10-10 10:00 / Event venue: Venue A / " + + "Event Priority: HIGH / Done: N\n" + + "2. Event name: Event 2 / Event time: 2024-11-11 12:00 / Event venue: Venue B / " + + "Event Priority: MEDIUM / Done: N\n"; assertEquals(expectedMessage, listCommand.getMessage()); assertFalse(listCommand.getCanExit()); diff --git a/src/test/java/seedu/manager/command/SortCommandTest.java b/src/test/java/seedu/manager/command/SortCommandTest.java index 7a6545f6f9..b9299aba05 100644 --- a/src/test/java/seedu/manager/command/SortCommandTest.java +++ b/src/test/java/seedu/manager/command/SortCommandTest.java @@ -34,12 +34,13 @@ public void execute_sortByName_success() { sortCommand.setData(eventList); sortCommand.execute(); - String expectedMessage = """ - Events successfully sorted by name! - 1. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A / Event Priority: LOW / Done: N - 2. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B / Event Priority: MEDIUM / Done: N - 3. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C / Event Priority: HIGH / Done: N - """; + String expectedMessage = "Events successfully sorted by name!" + + "1. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A /" + + " Event Priority: LOW / Done: N" + + "2. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B /" + + "Event Priority: MEDIUM / Done: N" + + "3. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C /" + + "Event Priority: HIGH / Done: N"; assertEquals(expectedMessage, sortCommand.getMessage()); assertFalse(sortCommand.getCanExit()); @@ -51,12 +52,13 @@ public void execute_sortByName_success() { sortCommand.setData(eventList); sortCommand.execute(); - String expectedMessage = """ - Events successfully sorted by time! - 1. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A / Event Priority: LOW / Done: N - 2. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C / Event Priority: HIGH / Done: N - 3. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B / Event Priority: MEDIUM / Done: N - """; + String expectedMessage = "Events successfully sorted by time!" + + "1. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A /" + + "Event Priority: LOW / Done: N" + + "2. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C /" + + "Event Priority: HIGH / Done: N" + + "3. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B /" + + "Event Priority: MEDIUM / Done: N"; assertEquals(expectedMessage, sortCommand.getMessage()); assertFalse(sortCommand.getCanExit()); } @@ -67,12 +69,13 @@ public void execute_sortByName_success() { sortCommand.setData(eventList); sortCommand.execute(); - String expectedMessage = """ - Events successfully sorted by priority level! - 1. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C / Event Priority: HIGH / Done: N - 2. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B / Event Priority: MEDIUM / Done: N - 3. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A / Event Priority: LOW / Done: N - """; + String expectedMessage = "Events successfully sorted by priority level!" + + "1. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C /" + + "Event Priority: HIGH / Done: N" + + "2. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B /" + + "Event Priority: MEDIUM / Done: N" + + "3. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A /" + + "Event Priority: LOW / Done: N"; assertEquals(expectedMessage, sortCommand.getMessage()); assertFalse(sortCommand.getCanExit()); } From 2ec8ab11fbe4b1524499638bb3d95c0b760cc6c1 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Mon, 28 Oct 2024 21:58:53 +0800 Subject: [PATCH 240/619] Fix style errors --- .../manager/command/SortCommandTest.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/test/java/seedu/manager/command/SortCommandTest.java b/src/test/java/seedu/manager/command/SortCommandTest.java index b9299aba05..a4bd314eac 100644 --- a/src/test/java/seedu/manager/command/SortCommandTest.java +++ b/src/test/java/seedu/manager/command/SortCommandTest.java @@ -34,13 +34,13 @@ public void execute_sortByName_success() { sortCommand.setData(eventList); sortCommand.execute(); - String expectedMessage = "Events successfully sorted by name!" + + String expectedMessage = "Events successfully sorted by name!\n" + "1. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A /" + - " Event Priority: LOW / Done: N" + + " Event Priority: LOW / Done: N\n" + "2. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B /" + - "Event Priority: MEDIUM / Done: N" + + " Event Priority: MEDIUM / Done: N\n" + "3. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C /" + - "Event Priority: HIGH / Done: N"; + " Event Priority: HIGH / Done: N\n"; assertEquals(expectedMessage, sortCommand.getMessage()); assertFalse(sortCommand.getCanExit()); @@ -52,13 +52,13 @@ public void execute_sortByName_success() { sortCommand.setData(eventList); sortCommand.execute(); - String expectedMessage = "Events successfully sorted by time!" + + String expectedMessage = "Events successfully sorted by time!\n" + "1. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A /" + - "Event Priority: LOW / Done: N" + + " Event Priority: LOW / Done: N\n" + "2. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C /" + - "Event Priority: HIGH / Done: N" + + " Event Priority: HIGH / Done: N\n" + "3. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B /" + - "Event Priority: MEDIUM / Done: N"; + " Event Priority: MEDIUM / Done: N\n"; assertEquals(expectedMessage, sortCommand.getMessage()); assertFalse(sortCommand.getCanExit()); } @@ -69,13 +69,13 @@ public void execute_sortByName_success() { sortCommand.setData(eventList); sortCommand.execute(); - String expectedMessage = "Events successfully sorted by priority level!" + + String expectedMessage = "Events successfully sorted by priority level!\n" + "1. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C /" + - "Event Priority: HIGH / Done: N" + + " Event Priority: HIGH / Done: N\n" + "2. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B /" + - "Event Priority: MEDIUM / Done: N" + + " Event Priority: MEDIUM / Done: N\n" + "3. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A /" + - "Event Priority: LOW / Done: N"; + " Event Priority: LOW / Done: N\n"; assertEquals(expectedMessage, sortCommand.getMessage()); assertFalse(sortCommand.getCanExit()); } From 375b4b71ab39abf474f051cf89ccddb78044d25a Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Mon, 28 Oct 2024 22:17:21 +0800 Subject: [PATCH 241/619] Update test-ui-text --- text-ui-test/EXPECTED.TXT | 16 ++++++++-------- text-ui-test/input.txt | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index f1372a24bb..a162e379de 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -5,7 +5,7 @@ Enter a command: Invalid command! ------------------------ Enter a command: Here are the possible commands: -add -e EVENT -t TIME -v VENUE: Add an event to the event list. +add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. list: List events. remove -e EVENT: Remove an event from the event list. add -p PARTICIPANT -e EVENT: Add a participant to an event. @@ -20,20 +20,20 @@ Enter a command: There are 0 events in your list! Here are your scheduled events ------------------------ Enter a command: Invalid command! Please enter your commands in the following format: -add -e EVENT -t TIME -v VENUE +add -e EVENT -t TIME -v VENUE -u PRIORITY add -p PARTICIPANT -e EVENT ------------------------ Enter a command: Event added successfully ------------------------ Enter a command: There are 1 events in your list! Here are your scheduled events: -1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Done: N +1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: N ------------------------ Enter a command: Event marked as done ------------------------ Enter a command: There are 1 events in your list! Here are your scheduled events: -1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Done: Y +1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y ------------------------ Enter a command: Event not found! @@ -48,14 +48,14 @@ Enter a command: Event added successfully ------------------------ Enter a command: name Events successfully sorted by name! -1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Done: N -2. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Done: Y +1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N +2. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y ------------------------ Enter a command: time Events successfully sorted by time! -1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Done: Y -2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Done: N +1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y +2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ Enter a command: Thank you for using EventManagerCLI. Goodbye! diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index bb2ebf6df2..56a1e7cc29 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -2,14 +2,14 @@ hello world menu list add -add -e dinner party -t 2024-10-10 12:34 -v Alice's House +add -e dinner party -t 2024-10-10 12:34 -v Alice's House -u high list mark -e dinner party -s done list mark -e Saturday brunch -s done add -p Mary -e dinner party view -e dinner party -add -e anniversary celebration -t 2024-10-23 12:34 -v hotel +add -e anniversary celebration -t 2024-10-23 12:34 -v hotel -u medium sort -by name sort -by time exit From 1184cce4cfa10996ce17ecdfa4debcd9a3112407 Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Mon, 28 Oct 2024 23:24:55 +0800 Subject: [PATCH 242/619] Update EXPECTED.TXT --- text-ui-test/EXPECTED.TXT | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index a162e379de..fbccdd9f96 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -46,13 +46,13 @@ Enter a command: There are 1 participants in dinner party! Here are your partici ------------------------ Enter a command: Event added successfully ------------------------ -Enter a command: name +Enter a command: Events successfully sorted by name! 1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N 2. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y ------------------------ -Enter a command: time +Enter a command: Events successfully sorted by time! 1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y 2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N From 4277d8d0efec599f0d232eef12dad1b7848ed8a6 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 28 Oct 2024 23:40:41 +0800 Subject: [PATCH 243/619] Add multiplicities and association labels to Event class diagram --- docs/diagrams/EventClassDiagram.puml | 6 +++--- docs/images/EventClassDiagram.png | Bin 11708 -> 13971 bytes 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/diagrams/EventClassDiagram.puml b/docs/diagrams/EventClassDiagram.puml index 7868270180..275f1dbda2 100644 --- a/docs/diagrams/EventClassDiagram.puml +++ b/docs/diagrams/EventClassDiagram.puml @@ -11,12 +11,12 @@ rectangle Main rectangle Command COMMAND_COLOUR rectangle Storage STORAGE_COLOUR -EventList *--> Event -Event *--> Participant +EventList *--> "*" Event : event +Event *--> "*" Participant : participant Main .> EventList EventList <. Storage EventList <.. Command -Command ..> Event +Command .> Event @enduml \ No newline at end of file diff --git a/docs/images/EventClassDiagram.png b/docs/images/EventClassDiagram.png index ecb0522e7c15e5e883e55d5e050733aca69bb49c..76ab85edb8831bcff51607fa5efdc9e5054e9d43 100644 GIT binary patch literal 13971 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 literal 11708 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 Date: Mon, 28 Oct 2024 23:54:30 +0800 Subject: [PATCH 244/619] Update EXPECTED.TXT --- text-ui-test/EXPECTED.TXT | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index fbccdd9f96..ff4a1fed90 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -46,14 +46,12 @@ Enter a command: There are 1 participants in dinner party! Here are your partici ------------------------ Enter a command: Event added successfully ------------------------ -Enter a command: -Events successfully sorted by name! +Enter a command: Events successfully sorted by name! 1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N 2. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y ------------------------ -Enter a command: -Events successfully sorted by time! +Enter a command: Events successfully sorted by time! 1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y 2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N From 972ea63d684573d6cc3f524c25f9032d2ee0ce65 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 29 Oct 2024 00:31:47 +0800 Subject: [PATCH 245/619] Add filter command, Add functionality to filter by priority, Add JUnit tests --- .../seedu/manager/command/FilterCommand.java | 43 ++++++++++++++++++ .../java/seedu/manager/event/EventList.java | 16 +++++++ .../manager/command/FilterCommandTest.java | 44 +++++++++++++++++++ 3 files changed, 103 insertions(+) create mode 100644 src/main/java/seedu/manager/command/FilterCommand.java create mode 100644 src/test/java/seedu/manager/command/FilterCommandTest.java diff --git a/src/main/java/seedu/manager/command/FilterCommand.java b/src/main/java/seedu/manager/command/FilterCommand.java new file mode 100644 index 0000000000..7c00072180 --- /dev/null +++ b/src/main/java/seedu/manager/command/FilterCommand.java @@ -0,0 +1,43 @@ +package seedu.manager.command; + +import seedu.manager.enumeration.Priority; +import seedu.manager.event.EventList; + +public class FilterCommand extends Command { + public static final String COMMAND_WORD = "find"; + + private static final String FILTER_BY_PRIORITY_MESSAGE = "Events successfully filtered by priority!"; + + protected String keyword; + protected String filterWord; + + public FilterCommand(String keyword, String filterWord) { + super(false); + this.keyword = keyword; + this.filterWord = filterWord; + } + + @Override + public void execute() { + StringBuilder outputMessage = new StringBuilder(); + EventList filteredEvents = new EventList(); + + switch (keyword) { + case "-e": + break; + case "-t": + break; + case "-u": + Priority priority = Priority.valueOf(filterWord.trim().toUpperCase()); + filteredEvents = eventList.filterByPriority(priority); + outputMessage.append(FILTER_BY_PRIORITY_MESSAGE + "\n"); + break; + default: + } + + for (int i = 0; i < filteredEvents.getListSize(); i++) { + outputMessage.append(String.format("%d. %s\n", i + 1, filteredEvents.getEvent(i).toString())); + } + this.message = outputMessage.toString(); + } +} diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index a462db475e..e78090a2b8 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -63,6 +63,10 @@ public void addEvent(String eventName, LocalDateTime time, String venue, Priorit eventList.add(newEvent); } + public void addEvent(Event event) { + eventList.add(event); + } + /** * @param index The index of event in the list (0 based indexing) * @return The specific event in the event list. @@ -170,4 +174,16 @@ public void sortByTime() { public void sortByPriority() { eventList.sort(Comparator.comparing(Event::getEventPriority)); } + + public EventList filterByPriority(Priority priority) { + EventList filteredList = new EventList(); + + for (Event event : eventList) { + if (event.getEventPriority() == priority) { + filteredList.addEvent(event); + } + } + + return filteredList; + } } diff --git a/src/test/java/seedu/manager/command/FilterCommandTest.java b/src/test/java/seedu/manager/command/FilterCommandTest.java new file mode 100644 index 0000000000..494b038ae9 --- /dev/null +++ b/src/test/java/seedu/manager/command/FilterCommandTest.java @@ -0,0 +1,44 @@ +package seedu.manager.command; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import seedu.manager.enumeration.Priority; +import seedu.manager.event.EventList; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; + +public class FilterCommandTest { + EventList eventList = new EventList(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + + @BeforeEach + public void setUp(){ + eventList.addEvent("C-Event", LocalDateTime.parse("2024-10-23 21:00", formatter), + "Venue C", Priority.HIGH); + eventList.addEvent("B-Event", LocalDateTime.parse("2024-10-23 21:05", formatter), + "Venue B", Priority.MEDIUM); + eventList.addEvent("A-Event", LocalDateTime.parse("2023-10-23 21:00", formatter), + "Venue A", Priority.LOW); + assertEquals(3, eventList.getListSize()); + } + + @Test + public void execute_filterByPriority_success(){ + FilterCommand filterCommand = new FilterCommand("-u", "high"); + + filterCommand.setData(eventList); + filterCommand.execute(); + + String expectedMessage = "Events successfully filtered by priority!\n" + + "1. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C /" + + " Event Priority: HIGH / Done: N\n"; + + assertEquals(expectedMessage, filterCommand.getMessage()); + assertFalse(filterCommand.getCanExit()); + } + +} From c55b4d6574428f5df04dea506fc30ce894eb347d Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 29 Oct 2024 00:56:22 +0800 Subject: [PATCH 246/619] Add parser support for FilterCommand, Modify JUnit tests --- .../seedu/manager/command/FilterCommand.java | 8 ++-- .../java/seedu/manager/parser/Parser.java | 44 ++++++++++++++++--- .../java/seedu/manager/parser/ParserTest.java | 9 ++++ 3 files changed, 52 insertions(+), 9 deletions(-) diff --git a/src/main/java/seedu/manager/command/FilterCommand.java b/src/main/java/seedu/manager/command/FilterCommand.java index 7c00072180..2c567ecba7 100644 --- a/src/main/java/seedu/manager/command/FilterCommand.java +++ b/src/main/java/seedu/manager/command/FilterCommand.java @@ -8,12 +8,12 @@ public class FilterCommand extends Command { private static final String FILTER_BY_PRIORITY_MESSAGE = "Events successfully filtered by priority!"; - protected String keyword; + protected String flag; protected String filterWord; - public FilterCommand(String keyword, String filterWord) { + public FilterCommand(String flag, String filterWord) { super(false); - this.keyword = keyword; + this.flag = flag; this.filterWord = filterWord; } @@ -22,7 +22,7 @@ public void execute() { StringBuilder outputMessage = new StringBuilder(); EventList filteredEvents = new EventList(); - switch (keyword) { + switch (flag) { case "-e": break; case "-t": diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 9093ba7197..f6f16bcfe3 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -1,16 +1,18 @@ package seedu.manager.parser; -import seedu.manager.command.Command; + import seedu.manager.command.AddCommand; +import seedu.manager.command.Command; +import seedu.manager.command.ExitCommand; +import seedu.manager.command.FilterCommand; +import seedu.manager.command.ListCommand; import seedu.manager.command.MarkCommand; import seedu.manager.command.MarkEventCommand; import seedu.manager.command.MarkParticipantCommand; -import seedu.manager.command.RemoveCommand; -import seedu.manager.command.ExitCommand; import seedu.manager.command.MenuCommand; -import seedu.manager.command.ListCommand; -import seedu.manager.command.ViewCommand; +import seedu.manager.command.RemoveCommand; import seedu.manager.command.SortCommand; +import seedu.manager.command.ViewCommand; import seedu.manager.enumeration.Priority; import seedu.manager.exception.InvalidCommandException; @@ -78,6 +80,15 @@ public class Parser { Please use the following format for priority level: high/medium/low """; + private static final String INVALID_FILTER_MESSAGE = """ + Invalid command! + Please enter your commands in the following format: + filter -e/-t/-u FILTER_DESCRIPTION + """; + private static final String INVALID_FILTER_FLAG_MESSAGE = """ + Invalid filter flag! + Please set the filter flag as either "-e/-t/-u" + """; /** * Returns a command based on the given user command string. @@ -106,6 +117,8 @@ public Command parseCommand(String command) throws InvalidCommandException { return parseMarkCommand(command, commandParts); case SortCommand.COMMAND_WORD: return parseSortCommand(command, commandParts); + case FilterCommand.COMMAND_WORD: + return parseFilterCommand(command, commandParts); default: throw new InvalidCommandException(INVALID_COMMAND_MESSAGE); } @@ -352,4 +365,25 @@ private Command parseSortCommand(String input, String[] commandParts) throws Inv throw new InvalidCommandException(INVALID_SORT_MESSAGE); } } + + private Command parseFilterCommand(String input, String[] commandParts) throws InvalidCommandException { + assert commandParts[0].equalsIgnoreCase(FilterCommand.COMMAND_WORD); + + try { + String[] inputParts = input.split("(-e|-t|-u)"); + if (inputParts.length < 2) { + throw new InvalidCommandException(INVALID_FILTER_MESSAGE); + } + + Set validFlags = Set.of("-e", "-t", "-u"); + if (validFlags.contains(commandParts[1].trim().toLowerCase())) { + return new FilterCommand(commandParts[1].trim().toLowerCase(), inputParts[1].trim()); + } + throw new InvalidCommandException(INVALID_FILTER_FLAG_MESSAGE); + } catch (IndexOutOfBoundsException e) { + logger.log(WARNING,"Invalid command format"); + throw new InvalidCommandException(INVALID_FILTER_MESSAGE); + } + } + } diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index bdd79a9488..e7ea211fdf 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -174,4 +174,13 @@ public void parseCommand_sortEventsInvalidInput_throwsException() { parser.parseCommand(commandString);}); } + @Test + public void parseCommand_filterEventsInvalidFlag_throwsException() { + Parser parser = new Parser(); + String commandString = "filter -s high"; + + assertThrows(InvalidCommandException.class, () -> { + parser.parseCommand(commandString);}); + } + } From 432b459095f08c4924052a5cf12ad08d29bb42bd Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 29 Oct 2024 01:15:25 +0800 Subject: [PATCH 247/619] Add Javadoc comments, Fix style errors --- .../seedu/manager/command/FilterCommand.java | 15 +++++++++++++++ .../java/seedu/manager/command/MenuCommand.java | 3 ++- .../seedu/manager/enumeration/Priority.java | 3 +++ .../java/seedu/manager/event/EventList.java | 13 ++++++++++++- src/main/java/seedu/manager/parser/Parser.java | 17 ++++++++++++++++- text-ui-test/EXPECTED.TXT | 1 + 6 files changed, 49 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/manager/command/FilterCommand.java b/src/main/java/seedu/manager/command/FilterCommand.java index 2c567ecba7..6fc55b04e9 100644 --- a/src/main/java/seedu/manager/command/FilterCommand.java +++ b/src/main/java/seedu/manager/command/FilterCommand.java @@ -3,6 +3,11 @@ import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; +//@@author LTK-1606 +/** + * Represents a command to filter out events from the event list. + * The filter command will filter out and display all events with the specified details + */ public class FilterCommand extends Command { public static final String COMMAND_WORD = "find"; @@ -11,12 +16,22 @@ public class FilterCommand extends Command { protected String flag; protected String filterWord; + /** + * Constructs a {@code FilterCommand} with the specified flag and filter word. + * + * @param flag the filter flag that determines the type of filtering to be applied. + * @param filterWord the word to filter by, based on the specified flag. + */ public FilterCommand(String flag, String filterWord) { super(false); this.flag = flag; this.filterWord = filterWord; } + /** + * Executes a filter command by filtering events in different ways, + * depending on the flag. + */ @Override public void execute() { StringBuilder outputMessage = new StringBuilder(); diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index c4235972cf..3cb07689ee 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -17,7 +17,8 @@ public class MenuCommand extends Command { remove -p PARTICIPANT -e EVENT: Remove a participant from an event. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. - sort -by KEYWORD: Sorts events by name/time/priority."""; + sort -by KEYWORD: Sorts events by name/time/priority. + filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority."""; /** * Constructs a new MenuCommand diff --git a/src/main/java/seedu/manager/enumeration/Priority.java b/src/main/java/seedu/manager/enumeration/Priority.java index 1ef8fe4579..24dabef917 100644 --- a/src/main/java/seedu/manager/enumeration/Priority.java +++ b/src/main/java/seedu/manager/enumeration/Priority.java @@ -1,5 +1,8 @@ package seedu.manager.enumeration; +/** + * Represents the priority levels that can be assigned to events or tasks. + */ public enum Priority { HIGH, MEDIUM, LOW } diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index e78090a2b8..0f2a8a250e 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -63,6 +63,11 @@ public void addEvent(String eventName, LocalDateTime time, String venue, Priorit eventList.add(newEvent); } + /** + * Adds an event to the event list. + * + * @param event the event to be added to the list + */ public void addEvent(Event event) { eventList.add(event); } @@ -169,12 +174,18 @@ public void sortByTime() { } /** - * Sort the event list by priority level from most to least important. + * Sort the event list by priority level from highest to lowest priority. */ public void sortByPriority() { eventList.sort(Comparator.comparing(Event::getEventPriority)); } + /** + * Filters events in the event list by the specified priority level. + * + * @param priority the priority level to filter events by + * @return an {@code EventList} containing only events with the specified priority + */ public EventList filterByPriority(Priority priority) { EventList filteredList = new EventList(); diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index f6f16bcfe3..627b75a256 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -1,6 +1,5 @@ package seedu.manager.parser; - import seedu.manager.command.AddCommand; import seedu.manager.command.Command; import seedu.manager.command.ExitCommand; @@ -366,6 +365,22 @@ private Command parseSortCommand(String input, String[] commandParts) throws Inv } } + /** + * Parses the input string and command parts to create a {@code FilterCommand} object. + *

    + * This method verifies that the first part of {@code commandParts} matches the expected filter command + * and then checks if a valid flag is provided. The filter flag should be one of "-e", + * "-t", or "-u", representing different filter types. + * If the flag is valid and additional input is provided, a new {@code FilterCommand} is created. + *

    + * If the input format is incorrect, or an invalid flag is provided, + * this method throws an {@code InvalidCommandException}. + * + * @param input the full user input string + * @param commandParts the split parts of the command, with the first element expected to be the filter command word + * @return a {@code FilterCommand} object initialized with the specified flag and filter criteria + * @throws InvalidCommandException if the command format is invalid or an invalid flag is provided + */ private Command parseFilterCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(FilterCommand.COMMAND_WORD); diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index ff4a1fed90..a1c2259576 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -14,6 +14,7 @@ remove -p PARTICIPANT -e EVENT: Remove a participant from an event. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. sort -by KEYWORD: Sorts events by name/time/priority. +filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. ------------------------ Enter a command: There are 0 events in your list! Here are your scheduled events: From 94d2707ec071e52f9e5e35d42d1c6233fbe96e24 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 29 Oct 2024 02:08:34 +0800 Subject: [PATCH 248/619] Add FindCommand class --- .../seedu/manager/command/FindCommand.java | 50 +++++++++++++++++++ src/main/java/seedu/manager/event/Event.java | 12 ++++- 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 src/main/java/seedu/manager/command/FindCommand.java diff --git a/src/main/java/seedu/manager/command/FindCommand.java b/src/main/java/seedu/manager/command/FindCommand.java new file mode 100644 index 0000000000..2100e561f3 --- /dev/null +++ b/src/main/java/seedu/manager/command/FindCommand.java @@ -0,0 +1,50 @@ +package seedu.manager.command; + +import seedu.manager.event.Event; +import seedu.manager.item.Participant; + +import java.util.ArrayList; +import java.util.Optional; + +public class FindCommand extends Command{ + private static final String FIND_SUCCESS_MESSAGE = "Person(s) found!"; + private static final String FIND_EVENT_FAILURE_MESSAGE = "Event not found!"; + private static final String FIND_FAILURE_MESSAGE = "Person not found!"; + + protected String personName; + protected String eventName; + protected Optional event; + + public FindCommand(String eventName, String personName) { + super(false); + this.eventName = eventName; + this.personName = personName; + } + + @Override + public void execute() { + StringBuilder outputMessage = new StringBuilder(); + ArrayList participantsFound = new ArrayList<>(); + + event = eventList.getEventByName(this.eventName); + if (event.isPresent()) { + participantsFound = event.get().findParticipants(personName); + } else { + outputMessage.append(FIND_EVENT_FAILURE_MESSAGE); + } + + if (!participantsFound.isEmpty()) { + outputMessage.append(FIND_SUCCESS_MESSAGE + "\n"); + } else { + outputMessage.append(FIND_FAILURE_MESSAGE); + } + + // print out the list of people. + for (int i = 0; i < participantsFound.size(); i++) { + outputMessage.append(String.format("%d. %s\n", i + 1, participantsFound.get(i).toString())); + } + + this.message = outputMessage.toString(); + } + +} diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index e3cd8ce162..bff518ab5d 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -94,7 +94,7 @@ public int getParticipantCount() { */ private Optional getParticipantByName(String participantName) { for (Participant participant : this.participantList) { - if (participant.getName().equalsIgnoreCase(participantName)) { + if (participant.getName().toLowerCase().contains(participantName.trim().toLowerCase())) { return Optional.of(participant); } } @@ -190,6 +190,16 @@ public boolean markParticipant(String participantName, boolean isPresent) { return true; } + public ArrayList findParticipants(String personName) { + ArrayList participants = new ArrayList<>(); + for (Participant participant : this.participantList) { + if (participant.getName().toLowerCase().contains(personName.trim().toLowerCase())) { + participants.add(participant); + } + } + return participants; + } + //@@author glenn-chew /** * Formats eventTime to a string in "yyyy-MM-dd HH:mm" format From 57114bb2a59e0edf92b8d38c2e839453e835d9e5 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 29 Oct 2024 02:25:24 +0800 Subject: [PATCH 249/619] Add JUnit tests --- .../seedu/manager/command/FindCommand.java | 26 ++++---- .../manager/command/FindCommandTest.java | 60 +++++++++++++++++++ 2 files changed, 74 insertions(+), 12 deletions(-) create mode 100644 src/test/java/seedu/manager/command/FindCommandTest.java diff --git a/src/main/java/seedu/manager/command/FindCommand.java b/src/main/java/seedu/manager/command/FindCommand.java index 2100e561f3..0ea298b0ed 100644 --- a/src/main/java/seedu/manager/command/FindCommand.java +++ b/src/main/java/seedu/manager/command/FindCommand.java @@ -24,24 +24,26 @@ public FindCommand(String eventName, String personName) { @Override public void execute() { StringBuilder outputMessage = new StringBuilder(); - ArrayList participantsFound = new ArrayList<>(); + ArrayList participantsFound; event = eventList.getEventByName(this.eventName); if (event.isPresent()) { participantsFound = event.get().findParticipants(personName); - } else { - outputMessage.append(FIND_EVENT_FAILURE_MESSAGE); - } - if (!participantsFound.isEmpty()) { - outputMessage.append(FIND_SUCCESS_MESSAGE + "\n"); - } else { - outputMessage.append(FIND_FAILURE_MESSAGE); - } + if (!participantsFound.isEmpty()) { + outputMessage.append(FIND_SUCCESS_MESSAGE + "\n"); - // print out the list of people. - for (int i = 0; i < participantsFound.size(); i++) { - outputMessage.append(String.format("%d. %s\n", i + 1, participantsFound.get(i).toString())); + // print out the list of people. + for (int i = 0; i < participantsFound.size(); i++) { + outputMessage.append(String.format("%d. %s\n", i + 1, participantsFound.get(i).toString())); + } + + } else { + outputMessage.append(FIND_FAILURE_MESSAGE); + } + + } else { + outputMessage.append(FIND_EVENT_FAILURE_MESSAGE); } this.message = outputMessage.toString(); diff --git a/src/test/java/seedu/manager/command/FindCommandTest.java b/src/test/java/seedu/manager/command/FindCommandTest.java new file mode 100644 index 0000000000..4608eaf259 --- /dev/null +++ b/src/test/java/seedu/manager/command/FindCommandTest.java @@ -0,0 +1,60 @@ +package seedu.manager.command; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import seedu.manager.event.EventList; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class FindCommandTest { + private EventList eventList; + private final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + + @BeforeEach + public void testSetUp() { + eventList = new EventList(); + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 16:00", formatter), + "Venue 1"); + eventList.addParticipantToEvent("John Doe", "Event 1"); + eventList.addParticipantToEvent("Jane Doe", "Event 1"); + eventList.addParticipantToEvent("Kuan Hsien", "Event 1"); + } + + @Test + public void execute_findCommand_success() { + FindCommand findCommand = new FindCommand("Event 1", "doe"); + + findCommand.setData(eventList); + findCommand.execute(); + + String expectedMessage = "Person(s) found!\n" + + "1. John Doe [ ]\n" + + "2. Jane Doe [ ]\n"; + assertEquals(expectedMessage, findCommand.getMessage()); + } + + @Test + public void execute_findCommand_failure() { + FindCommand findCommand = new FindCommand("Event 1", "aly"); + + findCommand.setData(eventList); + findCommand.execute(); + + String expectedMessage = "Person not found!"; + assertEquals(expectedMessage, findCommand.getMessage()); + } + + @Test + public void execute_findCommand_eventNotFound() { + FindCommand findCommand = new FindCommand("Event 2", "doe"); + + findCommand.setData(eventList); + findCommand.execute(); + + String expectedMessage = "Event not found!"; + assertEquals(expectedMessage, findCommand.getMessage()); + } +} From ee6e3e755d2010e03daa42beedefc4dbc9dcfc3c Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 29 Oct 2024 02:52:42 +0800 Subject: [PATCH 250/619] Update parser to support find command, Modify JUnit tests --- .../seedu/manager/command/FindCommand.java | 2 ++ .../java/seedu/manager/parser/Parser.java | 31 +++++++++++++++++++ .../java/seedu/manager/parser/ParserTest.java | 19 ++++++++++++ 3 files changed, 52 insertions(+) diff --git a/src/main/java/seedu/manager/command/FindCommand.java b/src/main/java/seedu/manager/command/FindCommand.java index 0ea298b0ed..040f6baf7d 100644 --- a/src/main/java/seedu/manager/command/FindCommand.java +++ b/src/main/java/seedu/manager/command/FindCommand.java @@ -7,6 +7,8 @@ import java.util.Optional; public class FindCommand extends Command{ + public static final String COMMAND_WORD = "find"; + private static final String FIND_SUCCESS_MESSAGE = "Person(s) found!"; private static final String FIND_EVENT_FAILURE_MESSAGE = "Event not found!"; private static final String FIND_FAILURE_MESSAGE = "Person not found!"; diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 624933ce8a..9c32599a70 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -11,6 +11,7 @@ import seedu.manager.command.ListCommand; import seedu.manager.command.ViewCommand; import seedu.manager.command.SortCommand; +import seedu.manager.command.FindCommand; import seedu.manager.exception.InvalidCommandException; import java.time.LocalDateTime; @@ -72,6 +73,15 @@ public class Parser { Please use the following format for event time: YYYY-MM-DD HH:mm """; + private static final String INVALID_FIND_MESSAGE = """ + Invalid command! + Please enter your commands in the following format: + find -e EVENT -p NAME + """; + private static final String INVALID_FIND_FLAG_MESSAGE = """ + Invalid find flag! + Please set the find flag using "-e" and "-p"" + """; /** * Returns a command based on the given user command string. @@ -100,6 +110,8 @@ public Command parseCommand(String command) throws InvalidCommandException { return parseMarkCommand(command, commandParts); case SortCommand.COMMAND_WORD: return parseSortCommand(command, commandParts); + case FindCommand.COMMAND_WORD: + return parseFindCommand(command, commandParts); default: throw new InvalidCommandException(INVALID_COMMAND_MESSAGE); } @@ -343,4 +355,23 @@ private Command parseSortCommand(String input, String[] commandParts) throws Inv throw new InvalidCommandException(INVALID_SORT_MESSAGE); } } + + private Command parseFindCommand(String input, String[] commandParts) throws InvalidCommandException { + assert commandParts[0].equalsIgnoreCase(FindCommand.COMMAND_WORD); + try { + if (!input.contains("-e") || !input.contains("-p")) { + throw new InvalidCommandException(INVALID_FIND_FLAG_MESSAGE); + } + + String[] inputParts = input.split("\\s*(-e|-p)\\s*"); + if (inputParts.length < 3 || inputParts[1].isBlank()) { + throw new InvalidCommandException(INVALID_FIND_MESSAGE); + } + + return new FindCommand(inputParts[1].trim(), inputParts[2].trim()); + } catch (IndexOutOfBoundsException exception) { + logger.log(WARNING,"Invalid command format"); + throw new InvalidCommandException(INVALID_FIND_MESSAGE); + } + } } diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index a06094c4a1..a26bd47ec9 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -153,4 +153,23 @@ public void parseCommand_markInvalidFlags_throwsException() { assertThrows(InvalidCommandException.class,() -> { parser.parseCommand(commandString);}); } + + @Test + public void parseCommand_findCommandFlags_throwsException() { + Parser parser = new Parser(); + String commandString = "find -s event 1 -p doe"; + + assertThrows(InvalidCommandException.class,() -> { + parser.parseCommand(commandString);}); + } + + @Test + public void parseCommand_findCommandInvalidInput_throwsException() { + Parser parser = new Parser(); + String commandString = "find -e -p doe"; + + assertThrows(InvalidCommandException.class,() -> { + parser.parseCommand(commandString);}); + } + } From a1a085464a38087639df7bd9b109be5609ddc6da Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 29 Oct 2024 03:02:31 +0800 Subject: [PATCH 251/619] Add javadoc comments, Fix style errors, Update UI messages --- .../seedu/manager/command/FindCommand.java | 24 +++++++++++++++++++ .../seedu/manager/command/MenuCommand.java | 3 ++- src/main/java/seedu/manager/event/Event.java | 14 ++++++++++- .../java/seedu/manager/parser/Parser.java | 16 +++++++++++++ 4 files changed, 55 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/command/FindCommand.java b/src/main/java/seedu/manager/command/FindCommand.java index 040f6baf7d..17163f3cca 100644 --- a/src/main/java/seedu/manager/command/FindCommand.java +++ b/src/main/java/seedu/manager/command/FindCommand.java @@ -6,6 +6,11 @@ import java.util.ArrayList; import java.util.Optional; +//@author LTK-1606 +/** + * Represents a command to sort the events in different ways. + * The sort command will store the sorting keyword. + */ public class FindCommand extends Command{ public static final String COMMAND_WORD = "find"; @@ -17,12 +22,31 @@ public class FindCommand extends Command{ protected String eventName; protected Optional event; + /** + * Creates a {@code FindCommand} to find participants by event and person name. + * + * @param eventName the name of the event to search for participants + * @param personName the name of the participant to search for within the event + */ public FindCommand(String eventName, String personName) { super(false); this.eventName = eventName; this.personName = personName; } + /** + * Executes the command to find participants in the specified event by the given person name. + *

    + * This method retrieves the event corresponding to the provided {@code eventName} and + * searches for participants with the specified {@code personName}. It builds an output message + * containing either the list of found participants or an appropriate failure message if + * the event is not found or no participants match the criteria. + *

    + * + *

    + * The output message is stored in the {@code message} field of the command for later retrieval. + *

    + */ @Override public void execute() { StringBuilder outputMessage = new StringBuilder(); diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index a15997313d..f4fd36c5d2 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -17,7 +17,8 @@ public class MenuCommand extends Command { remove -p PARTICIPANT -e EVENT: Remove a participant from an event. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. - sort -by KEYWORD: Sorts events by name/time/priority."""; + sort -by KEYWORD: Sorts events by name/time/priority. + find -e EVENT -p NAME: Finds all participants with specified name in an event."""; /** * Constructs a new MenuCommand diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index bff518ab5d..46b39a44e1 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -94,7 +94,7 @@ public int getParticipantCount() { */ private Optional getParticipantByName(String participantName) { for (Participant participant : this.participantList) { - if (participant.getName().toLowerCase().contains(participantName.trim().toLowerCase())) { + if (participant.getName().equalsIgnoreCase(participantName)) { return Optional.of(participant); } } @@ -190,6 +190,18 @@ public boolean markParticipant(String participantName, boolean isPresent) { return true; } + //@author LTK-1606 + /** + * Finds participants in the event whose names contain the specified person name. + *

    + * This method iterates through the list of participants and checks if their names + * contain the given {@code personName}, ignoring case and leading/trailing spaces. + * If a match is found, the participant is added to the result list. + *

    + * + * @param personName the name or part of the name of the participant to search for + * @return a list of {@code Participant} objects whose names contain the specified {@code personName} + */ public ArrayList findParticipants(String personName) { ArrayList participants = new ArrayList<>(); for (Participant participant : this.participantList) { diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 9c32599a70..695e4170ac 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -356,6 +356,22 @@ private Command parseSortCommand(String input, String[] commandParts) throws Inv } } + //@author LTK-1606 + /** + * Parses the input command to create a {@code FindCommand} object. + *

    + * This method checks if the input contains the required flags (-e for event and -p for person). + * It splits the input into parts based on these flags and validates the resulting segments. + * If valid, it constructs and returns a new {@code FindCommand} with the specified event name + * and participant name. If the command format is invalid or the required flags are missing, + * an {@code InvalidCommandException} is thrown. + *

    + * + * @param input the full command input string to be parsed + * @param commandParts the parts of the command, typically split by whitespace + * @return a {@code FindCommand} object with the parsed event and person names + * @throws InvalidCommandException if the command is missing required flags or has an invalid format + */ private Command parseFindCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(FindCommand.COMMAND_WORD); try { From 1cb3a2f617bdbfeb82e2d388114765989f259724 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 29 Oct 2024 03:05:31 +0800 Subject: [PATCH 252/619] Update EXPECTED.TXT --- text-ui-test/EXPECTED.TXT | 1 + 1 file changed, 1 insertion(+) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index f1372a24bb..204815169e 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -14,6 +14,7 @@ remove -p PARTICIPANT -e EVENT: Remove a participant from an event. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. sort -by KEYWORD: Sorts events by name/time/priority. +find -e EVENT -p NAME: Finds all participants with specified name in an event. ------------------------ Enter a command: There are 0 events in your list! Here are your scheduled events: From d30c323d376b1b1f2b4aa2fc8ed1c67ed673f607 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 29 Oct 2024 03:30:25 +0800 Subject: [PATCH 253/619] Add CopyCommand class, Add JUnit tests --- .../seedu/manager/command/CopyCommand.java | 48 +++++++++++++ src/main/java/seedu/manager/event/Event.java | 12 ++++ .../manager/command/CopyCommandTest.java | 68 +++++++++++++++++++ 3 files changed, 128 insertions(+) create mode 100644 src/main/java/seedu/manager/command/CopyCommand.java create mode 100644 src/test/java/seedu/manager/command/CopyCommandTest.java diff --git a/src/main/java/seedu/manager/command/CopyCommand.java b/src/main/java/seedu/manager/command/CopyCommand.java new file mode 100644 index 0000000000..f7cdab1c98 --- /dev/null +++ b/src/main/java/seedu/manager/command/CopyCommand.java @@ -0,0 +1,48 @@ +package seedu.manager.command; + +import seedu.manager.event.Event; +import seedu.manager.item.Participant; + +import java.util.ArrayList; +import java.util.Optional; + +public class CopyCommand extends Command { + public static final String COMMAND_WORD = "copy"; + + private static final String EVENT_NOT_FOUND = "Event(s) not found!"; + private static final String PARTICIPANT_NOT_FOUND = "Participant list is empty!"; + private static final String COPY_SUCCESSFUL = "Participant list copied over successfully!"; + + protected String copyTo; + protected String copyFrom; + + public CopyCommand(String copyTo, String copyFrom) { + super(false); + this.copyTo = copyTo; + this.copyFrom = copyFrom; + } + + @Override + public void execute() { + StringBuilder outputMessage = new StringBuilder(); + + ArrayList participants; + Optional eventTo = eventList.getEventByName(copyTo); + Optional eventFrom = eventList.getEventByName(copyFrom); + + if (eventTo.isPresent() && eventFrom.isPresent()) { + if (eventFrom.get().getParticipantList().isEmpty()) { + outputMessage.append(PARTICIPANT_NOT_FOUND); + } else { + participants = eventFrom.get().getParticipantList(); + eventTo.get().setParticipantList(participants); + outputMessage.append(COPY_SUCCESSFUL); + } + } else { + outputMessage.append(EVENT_NOT_FOUND); + } + + this.message = outputMessage.toString(); + } + +} diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index e3cd8ce162..b4d751795c 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -124,6 +124,9 @@ public String getEventVenue() { return eventVenue; } + /** + * @return the event's participant list + */ public ArrayList getParticipantList() { return participantList; } @@ -153,6 +156,15 @@ public void setEventVenue(String eventVenue) { this.eventVenue = eventVenue; } + /** + * Sets a participant for the event. + * + * @param participantList the new participant list + */ + public void setParticipantList(ArrayList participantList) { + this.participantList = participantList; + } + //@@author jemehgoh /** * Sets if the event is done or not done diff --git a/src/test/java/seedu/manager/command/CopyCommandTest.java b/src/test/java/seedu/manager/command/CopyCommandTest.java new file mode 100644 index 0000000000..fb5fc2fda3 --- /dev/null +++ b/src/test/java/seedu/manager/command/CopyCommandTest.java @@ -0,0 +1,68 @@ +package seedu.manager.command; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import seedu.manager.event.EventList; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; + +public class CopyCommandTest { + EventList eventList = new EventList(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + + @BeforeEach + public void setUp(){ + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-23 21:05", formatter), + "Venue B"); + eventList.addEvent("Event 2", LocalDateTime.parse("2023-10-23 21:00", formatter), + "Venue A"); + assertEquals(2, eventList.getListSize()); + eventList.addParticipantToEvent("John Doe", "Event 1"); + eventList.addParticipantToEvent("Jane Doe", "Event 1"); + eventList.addParticipantToEvent("Peter Parker", "Event 1"); + } + + @Test + public void execute_copyCommand_success(){ + CopyCommand copyCommand = new CopyCommand("Event 2", "Event 1"); + + copyCommand.setData(eventList); + copyCommand.execute(); + + String expectedMessage = "Participant list copied over successfully!"; + + assertEquals(expectedMessage, copyCommand.getMessage()); + assertFalse(copyCommand.getCanExit()); + } + + @Test + public void execute_copyCommand_eventNotFound(){ + CopyCommand copyCommand = new CopyCommand("Event 2", "Event 4"); + + copyCommand.setData(eventList); + copyCommand.execute(); + + String expectedMessage = "Event(s) not found!"; + + assertEquals(expectedMessage, copyCommand.getMessage()); + assertFalse(copyCommand.getCanExit()); + } + + @Test + public void execute_copyCommand_participantListEmpty(){ + CopyCommand copyCommand = new CopyCommand("Event 1", "Event 2"); + + copyCommand.setData(eventList); + copyCommand.execute(); + + String expectedMessage = "Participant list is empty!"; + + assertEquals(expectedMessage, copyCommand.getMessage()); + assertFalse(copyCommand.getCanExit()); + } + +} From 6c9a6113a9e8efef61a228942d7b5e83e96fcd38 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 29 Oct 2024 03:53:29 +0800 Subject: [PATCH 254/619] Update parser to support copy command, Modify JUnit tests --- .../seedu/manager/command/CopyCommand.java | 4 +- .../java/seedu/manager/parser/Parser.java | 38 ++++++++++++++++--- .../manager/command/CopyCommandTest.java | 4 +- .../java/seedu/manager/parser/ParserTest.java | 9 +++++ 4 files changed, 46 insertions(+), 9 deletions(-) diff --git a/src/main/java/seedu/manager/command/CopyCommand.java b/src/main/java/seedu/manager/command/CopyCommand.java index f7cdab1c98..c8a9353b6f 100644 --- a/src/main/java/seedu/manager/command/CopyCommand.java +++ b/src/main/java/seedu/manager/command/CopyCommand.java @@ -16,10 +16,10 @@ public class CopyCommand extends Command { protected String copyTo; protected String copyFrom; - public CopyCommand(String copyTo, String copyFrom) { + public CopyCommand(String copyFrom, String copyTo) { super(false); - this.copyTo = copyTo; this.copyFrom = copyFrom; + this.copyTo = copyTo; } @Override diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 624933ce8a..f02217e950 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -1,16 +1,17 @@ package seedu.manager.parser; -import seedu.manager.command.Command; import seedu.manager.command.AddCommand; +import seedu.manager.command.Command; +import seedu.manager.command.CopyCommand; +import seedu.manager.command.ExitCommand; +import seedu.manager.command.ListCommand; import seedu.manager.command.MarkCommand; import seedu.manager.command.MarkEventCommand; import seedu.manager.command.MarkParticipantCommand; -import seedu.manager.command.RemoveCommand; -import seedu.manager.command.ExitCommand; import seedu.manager.command.MenuCommand; -import seedu.manager.command.ListCommand; -import seedu.manager.command.ViewCommand; +import seedu.manager.command.RemoveCommand; import seedu.manager.command.SortCommand; +import seedu.manager.command.ViewCommand; import seedu.manager.exception.InvalidCommandException; import java.time.LocalDateTime; @@ -72,6 +73,11 @@ public class Parser { Please use the following format for event time: YYYY-MM-DD HH:mm """; + private static final String INVALID_COPY_MESSAGE = """ + Invalid command! + Please enter your commands in the following format: + copy FROM_EVENT > TO_EVENT + """; /** * Returns a command based on the given user command string. @@ -100,6 +106,8 @@ public Command parseCommand(String command) throws InvalidCommandException { return parseMarkCommand(command, commandParts); case SortCommand.COMMAND_WORD: return parseSortCommand(command, commandParts); + case CopyCommand.COMMAND_WORD: + return parseCopyCommand(command, commandParts); default: throw new InvalidCommandException(INVALID_COMMAND_MESSAGE); } @@ -343,4 +351,24 @@ private Command parseSortCommand(String input, String[] commandParts) throws Inv throw new InvalidCommandException(INVALID_SORT_MESSAGE); } } + + private Command parseCopyCommand(String input, String[] commandParts) throws InvalidCommandException { + assert commandParts[0].equalsIgnoreCase(CopyCommand.COMMAND_WORD); + + try { + String commandInput = input.replaceFirst("^" + commandParts[0] + "\\s*", ""); + String[] inputParts = commandInput.split(">"); + + if (inputParts.length != 2) { + throw new InvalidCommandException(INVALID_COPY_MESSAGE); + } + + return new CopyCommand(inputParts[0].trim(), inputParts[1].trim()); + + } catch (IndexOutOfBoundsException exception) { + logger.log(WARNING,"Invalid command format"); + throw new InvalidCommandException(INVALID_COPY_MESSAGE); + } + } + } diff --git a/src/test/java/seedu/manager/command/CopyCommandTest.java b/src/test/java/seedu/manager/command/CopyCommandTest.java index fb5fc2fda3..1dfd32b9c8 100644 --- a/src/test/java/seedu/manager/command/CopyCommandTest.java +++ b/src/test/java/seedu/manager/command/CopyCommandTest.java @@ -28,7 +28,7 @@ public void setUp(){ @Test public void execute_copyCommand_success(){ - CopyCommand copyCommand = new CopyCommand("Event 2", "Event 1"); + CopyCommand copyCommand = new CopyCommand("Event 1", "Event 2"); copyCommand.setData(eventList); copyCommand.execute(); @@ -54,7 +54,7 @@ public void execute_copyCommand_eventNotFound(){ @Test public void execute_copyCommand_participantListEmpty(){ - CopyCommand copyCommand = new CopyCommand("Event 1", "Event 2"); + CopyCommand copyCommand = new CopyCommand("Event 2", "Event 1"); copyCommand.setData(eventList); copyCommand.execute(); diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index a06094c4a1..eb5bd2817a 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -153,4 +153,13 @@ public void parseCommand_markInvalidFlags_throwsException() { assertThrows(InvalidCommandException.class,() -> { parser.parseCommand(commandString);}); } + + @Test + public void parseCommand_copyCommand_throwsException() { + Parser parser = new Parser(); + String commandString = "copy tutorial < lecture"; + + assertThrows(InvalidCommandException.class,() -> { + parser.parseCommand(commandString);}); + } } From 3eea879c15e4faf9a00d5b605fbca9c7b3986423 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 29 Oct 2024 03:58:30 +0800 Subject: [PATCH 255/619] Add javadoc comments, Fix style errors, Update UI messages and EXPECTED.TXT --- .../seedu/manager/command/CopyCommand.java | 19 +++++++++++++++++++ .../seedu/manager/command/MenuCommand.java | 3 ++- .../java/seedu/manager/parser/Parser.java | 14 ++++++++++++++ text-ui-test/EXPECTED.TXT | 1 + 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/command/CopyCommand.java b/src/main/java/seedu/manager/command/CopyCommand.java index c8a9353b6f..2a13c5af28 100644 --- a/src/main/java/seedu/manager/command/CopyCommand.java +++ b/src/main/java/seedu/manager/command/CopyCommand.java @@ -6,6 +6,10 @@ import java.util.ArrayList; import java.util.Optional; +//@author LTK-1606 +/** + * Represents a command to copy the participant list from one event to another. + */ public class CopyCommand extends Command { public static final String COMMAND_WORD = "copy"; @@ -16,12 +20,27 @@ public class CopyCommand extends Command { protected String copyTo; protected String copyFrom; + /** + * Creates a {@code CopyCommand} object with specified source and destination event names. + * + * @param copyFrom the name of the event from which participants will be copied + * @param copyTo the name of the event to which participants will be copied + */ public CopyCommand(String copyFrom, String copyTo) { super(false); this.copyFrom = copyFrom; this.copyTo = copyTo; } + /** + * Executes the copy command to transfer participants from one event to another. + *

    + * This method retrieves the events specified by {@code copyFrom} and {@code copyTo}. + * If both events are found, it checks if the source event has participants. If it does, + * those participants are copied to the destination event. Appropriate messages are generated + * based on the outcome of the operation. If either event is not found, an error message is returned. + *

    + */ @Override public void execute() { StringBuilder outputMessage = new StringBuilder(); diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index a15997313d..4554bed3c0 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -17,7 +17,8 @@ public class MenuCommand extends Command { remove -p PARTICIPANT -e EVENT: Remove a participant from an event. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. - sort -by KEYWORD: Sorts events by name/time/priority."""; + sort -by KEYWORD: Sorts events by name/time/priority. + copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another."""; /** * Constructs a new MenuCommand diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index f02217e950..59b8128533 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -352,6 +352,20 @@ private Command parseSortCommand(String input, String[] commandParts) throws Inv } } + /** + * Parses the input command to create a {@code CopyCommand} object. + *

    + * This method checks if the command input starts with the specified command word + * and then removes it from the input. It splits the remaining input at the '>' character + * to separate the source and destination parts. If the split does not yield exactly + * two parts, an {@code InvalidCommandException} is thrown. + *

    + * + * @param input the full command input string to be parsed + * @param commandParts the parts of the command, typically split by whitespace + * @return a {@code CopyCommand} object with the parsed source and destination + * @throws InvalidCommandException if the command is missing required parts or has an invalid format + */ private Command parseCopyCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(CopyCommand.COMMAND_WORD); diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index f1372a24bb..7cf5448a94 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -14,6 +14,7 @@ remove -p PARTICIPANT -e EVENT: Remove a participant from an event. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. sort -by KEYWORD: Sorts events by name/time/priority. +copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. ------------------------ Enter a command: There are 0 events in your list! Here are your scheduled events: From d0885429fb27b554eb33f1e42cc32cabb093165a Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 29 Oct 2024 17:05:26 +0800 Subject: [PATCH 256/619] Add section on marking events to developer guide --- docs/DeveloperGuide.md | 23 ++++++++++++++++++ docs/diagrams/MarkEventSequenceDiagram.puml | 25 ++++++++++++++++++++ docs/images/MarkEventSequenceDiagram.png | Bin 0 -> 19088 bytes 3 files changed, 48 insertions(+) create mode 100644 docs/diagrams/MarkEventSequenceDiagram.puml create mode 100644 docs/images/MarkEventSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 78547d1392..8d2bdff27f 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -60,6 +60,29 @@ Events are appended to `outputMessage` with numbered formatting for readability. 4. Output Generation: The method stores the generated `outputMessage` in `this.message`, ready for display. +### Mark/unmark feature + +The mark/unmark feature allows users to mark events as done or not done. The feature comprises `MarkEventCommand`, which +extends `Command`. This class performs one operation, which marks a specified event as done or not done. + +The above operation is implemented as `MarkEventCommand#execute()`. This then overrides the `Command#execute()` operation in `Command`, +and is invoked when the latter operation is called. + +#### Feature implementation + +Given below is an example usage scenario for the mark/unmark mechanism, and how it behaves at each step. + +1. The user adds an event `Event 1` to the event list. The mark status for `Event 1` is initially `false` or not done. + +2. The user enters the command `mark -e Event 1 -s done` to mark `Event 1` as done. The `MarkEventCommand` calls `MarkEventCommand#execute`, +in which it gets the event `Event 1` from the event list, and sets its mark status to `true` or done. + +3. The user then enters the command `mark -e Event 1 -s undone` to mark `Event 1` as not done. The `MarkEventCommand` again calls `MarkEventCommand#execute`, +in which it gets the event `Event 1` from the event list, and sets its mark status to `false` or not done. + +The interactions between components during the execution of the `mark` command are show in the **Sequence Diagram** below: + + ## Product scope ### Target user profile diff --git a/docs/diagrams/MarkEventSequenceDiagram.puml b/docs/diagrams/MarkEventSequenceDiagram.puml new file mode 100644 index 0000000000..cf00c26d73 --- /dev/null +++ b/docs/diagrams/MarkEventSequenceDiagram.puml @@ -0,0 +1,25 @@ +@startuml + +participant ":Main" as main +participant ":MarkEventCommand" as markCommand +participant ":EventList" as eventList +participant ":Event" as event + +main -> markCommand : execute() +activate markCommand + +markCommand -> eventList : getEventByName(eventName : String) +activate eventList + +eventList --> markCommand : eventToMark : Event +deactivate eventList + +markCommand -> event : setDone(toMark : boolean) +activate event + +event --> markCommand +deactivate event + +markCommand --> main +deactivate markCommand +@enduml diff --git a/docs/images/MarkEventSequenceDiagram.png b/docs/images/MarkEventSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..4baf33672aa8ce3abc1b1b3b84245f9a295f68d7 GIT binary patch literal 19088 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 literal 0 HcmV?d00001 From 83995866fddb34a9b017d568a01687546422316c Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 29 Oct 2024 17:25:18 +0800 Subject: [PATCH 257/619] Add section on status parsing and fix some syntax --- docs/DeveloperGuide.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 8d2bdff27f..c32d4be07c 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -65,7 +65,7 @@ The method stores the generated `outputMessage` in `this.message`, ready for dis The mark/unmark feature allows users to mark events as done or not done. The feature comprises `MarkEventCommand`, which extends `Command`. This class performs one operation, which marks a specified event as done or not done. -The above operation is implemented as `MarkEventCommand#execute()`. This then overrides the `Command#execute()` operation in `Command`, +The above operation is implemented as `MarkEventCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, and is invoked when the latter operation is called. #### Feature implementation @@ -74,7 +74,7 @@ Given below is an example usage scenario for the mark/unmark mechanism, and how 1. The user adds an event `Event 1` to the event list. The mark status for `Event 1` is initially `false` or not done. -2. The user enters the command `mark -e Event 1 -s done` to mark `Event 1` as done. The `MarkEventCommand` calls `MarkEventCommand#execute`, +2. The user enters the command `mark -e Event 1 -s done` to mark `Event 1` as done. `MarkEventCommand` calls `MarkEventCommand#execute`, in which it gets the event `Event 1` from the event list, and sets its mark status to `true` or done. 3. The user then enters the command `mark -e Event 1 -s undone` to mark `Event 1` as not done. The `MarkEventCommand` again calls `MarkEventCommand#execute`, @@ -84,6 +84,14 @@ The interactions between components during the execution of the `mark` command a +Upon execution of the command, the output message of `MarkEventCommand` is set to inform the user if the event has been marked done or not done, +or if the operation was unsuccessful (e.g. if the event specified is not present in the event list). + +The user determines if an event is to be marked done or not done through the status parameter (indicated by the `-s` flag) in the `mark` command. +The `Parser` then checks this parameter for two values, `done` or `undone`, and constructs the `MarkEventCommand` accordingly. +If the parameter value is `done`, the `MarkEventCommand` will set the event as done, and will do otherwise if the parameter value is `undone`. +Any other values entered for the status parameter will be treated as invalid. + ## Product scope ### Target user profile From 8e6d4fe01d2ef5830cb34c4f28700f1248006041 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 29 Oct 2024 21:25:22 +0800 Subject: [PATCH 258/619] Add contact info of participant --- .../seedu/manager/command/AddCommand.java | 27 +++++++--- src/main/java/seedu/manager/event/Event.java | 4 +- .../java/seedu/manager/item/Participant.java | 52 ++++++++++++++++++- .../seedu/manager/item/ParticipantTest.java | 6 +-- 4 files changed, 76 insertions(+), 13 deletions(-) diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index c7e1e44734..b096e26e13 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -16,6 +16,8 @@ public class AddCommand extends Command { protected LocalDateTime time; protected String venue; protected String participantName; + protected String participantNumber; + protected String participantEmail; /** * Constructs an AddCommand object with the specified event details. @@ -40,9 +42,11 @@ public AddCommand(String eventName, LocalDateTime time, String venue) { * @param eventName the name of the event to which the participant will be added * or the event to be created if no participant name is provided. */ - public AddCommand(String participantName, String eventName) { + public AddCommand(String participantName, String participantNumber, String participantEmail, String eventName) { super(false); this.participantName = participantName; + this.participantNumber = participantNumber; + this.participantEmail = participantEmail; this.eventName = eventName; } @@ -50,10 +54,16 @@ public AddCommand(String participantName, String eventName) { /** * Executes the command to add an event or a participant to an event. *

    - * If no participant name is provided, this method will add a new event - * to the event list with the specified event name, time, and venue. - * If a participant name is provided, it will add the participant to the - * specified event in the event list. + * If no participant name is provided, this method adds a new event to the + * event list with the specified event name, time, and venue. + * If a participant name is provided, it adds the participant with their + * email and contact number to the specified event in the event list. + *

    + * + *

    + * After execution, a message indicates the result of the operation: + * an event was added, a participant was added, or the addition of a + * participant failed. *

    */ @Override @@ -62,7 +72,12 @@ public void execute() { this.eventList.addEvent(this.eventName, this.time, this.venue); this.message = ADD_EVENT_MESSAGE; } else { - boolean isAdded = this.eventList.addParticipantToEvent(this.participantName, this.eventName); + boolean isAdded = this.eventList.addParticipantToEvent( + this.participantName, + this.participantEmail, + this.participantNumber, + this.eventName + ); this.message = (isAdded) ? ADD_PARTICIPANT_MESSAGE : ADD_FAILURE_MESSAGE; } } diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index e3cd8ce162..23fd759152 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -50,8 +50,8 @@ public Event(String eventName, LocalDateTime eventTime, String eventVenue) { * * @param participantName the name of the participant to be added to the list. */ - public void addParticipant(String participantName) { - Participant participant = new Participant(participantName); + public void addParticipant(String participantName, String participantNumber, String participantEmail) { + Participant participant = new Participant(participantName, participantNumber, participantEmail); this.participantList.add(participant); } diff --git a/src/main/java/seedu/manager/item/Participant.java b/src/main/java/seedu/manager/item/Participant.java index 4b03a3f99f..49b8d06874 100644 --- a/src/main/java/seedu/manager/item/Participant.java +++ b/src/main/java/seedu/manager/item/Participant.java @@ -2,12 +2,14 @@ import seedu.manager.event.Event; -//@@author jemehgoh + /** * Represents an event participant, in the participant list of an {@link Event}. */ public class Participant { private final String name; + private String number; + private String email; private boolean isPresent; /** @@ -15,11 +17,14 @@ public class Participant { * * @param name the given name */ - public Participant(String name) { + public Participant(String name, String number, String email) { this.name = name; this.isPresent = false; + this.number = number; + this.email = email; } + //@@author jemehgoh /** * Returns the name of the participant. * @@ -29,6 +34,47 @@ public String getName() { return name; } + //@@author KuanHsienn + /** + * Returns the contact number of the participant + * + * @return the contact number of the participant + */ + public String getNumber() { + return this.number; + } + + //@@author KuanHsienn + /** + * Returns the contact email of the participant + * + * @return the contact email of the participant + */ + public String getEmail() { + return this.email; + } + + //@@author KuanHsienn + /** + * Sets the contact number of the participant + * + * @param newNumber the new contact number of the participant + */ + public void setNumber(String newNumber) { + this.number = newNumber; + } + + //@@author KuanHsienn + /** + * Sets the contact email of the participant + * + * @param newEmail the new contact email of the participant + */ + public void setEmail(String newEmail) { + this.email = newEmail; + } + + //@@author jemehgoh /** * Sets the participant as present or not present. * @@ -38,6 +84,7 @@ public void setPresent(boolean isPresent) { this.isPresent = isPresent; } + //@@author jemehgoh /** * Returns "X" if isPresent is true, " " otherwise. * @@ -47,6 +94,7 @@ public String markIfPresent() { return (this.isPresent) ? "X" : " "; } + //@@author jemehgoh /** * Returns a formatted string of the item * diff --git a/src/test/java/seedu/manager/item/ParticipantTest.java b/src/test/java/seedu/manager/item/ParticipantTest.java index 3d9317ebfd..699d1260a5 100644 --- a/src/test/java/seedu/manager/item/ParticipantTest.java +++ b/src/test/java/seedu/manager/item/ParticipantTest.java @@ -8,21 +8,21 @@ class ParticipantTest { @Test public void setPresent_setTrue_present() { - Participant participant = new Participant("Participant"); + Participant participant = new Participant("Participant", "89521252", "example@gmail.com"); participant.setPresent(true); assertEquals("X", participant.markIfPresent()); } @Test public void setPresent_setFalse_notPresent() { - Participant participant = new Participant("Participant"); + Participant participant = new Participant("Participant", "89521252", "example@gmail.com"); participant.setPresent(false); assertEquals(" ", participant.markIfPresent()); } @Test public void toString_setTrue_present() { - Participant participant = new Participant("Participant"); + Participant participant = new Participant("Participant", "89521252", "example@gmail.com"); participant.setPresent(true); assertEquals("Participant [X]", participant.toString()); } From 9867845c93032bce8ed55faf3439c9947d4e299f Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 29 Oct 2024 21:44:46 +0800 Subject: [PATCH 259/619] Modify parser class to incorporate participant number and email --- src/main/java/seedu/manager/Main.java | 1 + .../java/seedu/manager/event/EventList.java | 6 ++-- .../java/seedu/manager/parser/Parser.java | 31 ++++++++++--------- .../seedu/manager/command/AddCommandTest.java | 30 +++++++++++++++--- .../manager/command/RemoveCommandTest.java | 28 ++++++++++++++--- text-ui-test/input.txt | 2 +- 6 files changed, 71 insertions(+), 27 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 6bfded28f9..07ef45bdae 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -63,6 +63,7 @@ private static void loadData() { } } + //@@author KuanHsienn /** * Saves events to file and handles exceptions. */ diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 0030665c66..8068a4b26b 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -109,13 +109,15 @@ public boolean removeEvent(String eventName) { * returns false otherwise. * * @param participantName the name of the participant to be added. + * @param participantNumber the contact number of the participant + * @param participantEmail the email address of the participant * @param eventName the name of the event to which the participant will be added. * @return {@code true} if the participant can be added to the event, {@code false} otherwise. */ - public boolean addParticipantToEvent(String participantName, String eventName) { + public boolean addParticipantToEvent(String participantName, String participantNumber, String participantEmail, String eventName) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { - event.addParticipant(participantName); + event.addParticipant(participantName, participantNumber, participantEmail); return true; } } diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 624933ce8a..7aa9f0db5e 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -106,21 +106,22 @@ public Command parseCommand(String command) throws InvalidCommandException { } /** - * Parses the input string to create an {@link Command} based on the provided command parts. - * + * Parses the input string to create an {@link Command} object based on the provided command parts. *

    - * This method checks the command flag extracted from the command parts. If the command - * flag is {@code "-e"}, it splits the input string into parts to create an - * {@link AddCommand} for adding an event. If the command flag is {@code "-p"}, - * it creates an {@link AddCommand} for adding a participant to an event. If neither - * flag is matched, it throws a {@link InvalidCommandException} with an error message. + * This method examines the command flag extracted from the command parts. If the command + * flag is {@code "-e"}, it splits the input string to create an {@link AddCommand} for adding an event + * with the specified details (event name, time, and venue). If the command flag is {@code "-p"}, + * it creates an {@link AddCommand} for adding a participant to an event, including the participant's + * name, contact number, email, and the event name. If the command flag does not match either, + * an {@link InvalidCommandException} is thrown with an error message. *

    * - * @param input the input string containing the command details. - * @param commandParts an array of strings representing the parsed command parts, - * where the second element is the command flag. - * @return a {@link Command} object representing the parsed command. - * @throws InvalidCommandException if the flags are not matched in the command parts. + * @param input the input string containing the command details + * @param commandParts an array of strings representing the parsed command parts, where the second element + * is the command flag, indicating the type of command + * @return a {@link Command} object representing the parsed command + * @throws InvalidCommandException if the command flag is invalid, or if there are missing or improperly + * formatted input details */ public Command parseAddCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(AddCommand.COMMAND_WORD); @@ -136,10 +137,10 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); return new AddCommand(inputParts[1].trim(), eventTime, inputParts[3].trim()); } else if (commandFlag.equals("-p")) { - inputParts = input.split("(-p|-e)"); + inputParts = input.split("(-p|-n|-email|-e)"); logger.info("Creating AddCommand for participant with details: " + inputParts[1].trim() + ", " + inputParts[2].trim()); - return new AddCommand(inputParts[1].trim(), inputParts[2].trim()); + return new AddCommand(inputParts[1].trim(), inputParts[2].trim(), inputParts[3].trim(), inputParts[4].trim()); } logger.log(WARNING,"Invalid command format"); @@ -194,7 +195,7 @@ private Command parseRemoveCommand(String input, String[] commandParts) throws I //@@author glenn-chew /** - * Parses the input string to create a {@link Command} based on the provided command parts. + * Parses the input string to create a {@link Command} based on the providedcomma nd parts. * *

    * This method checks the command flag extracted from the command parts. If the command diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index 895cd55506..6edcdb56bf 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -29,8 +29,18 @@ public void add_twoParticipant_success() { eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), "Venue A"); - eventList.addParticipantToEvent("Tom", "Event 1"); - eventList.addParticipantToEvent("Harry", "Event 1"); + eventList.addParticipantToEvent( + "Tom", + "89521252", + "example@gmail.com", + "Event 1" + ); + eventList.addParticipantToEvent( + "Harry", + "89521252", + "example@gmail.com", + "Event 1" + ); assertEquals(2, eventList.getEvent(0).getParticipantCount()); } @@ -42,8 +52,18 @@ public void add_oneParticipantWrongly_success() { eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), "Venue A"); - eventList.addParticipantToEvent("Tom", "Event 1"); - eventList.addParticipantToEvent("Harry", "Event 2"); + eventList.addParticipantToEvent( + "Tom", + "89521252", + "example@gmail.com", + "Event 1" + ); + eventList.addParticipantToEvent( + "Harry", + "89521252", + "example@gmail.com", + "Event 2" + ); assertEquals(1, eventList.getEvent(0).getParticipantCount()); } @@ -53,7 +73,7 @@ public void add_oneParticipantInvalidEvent_failure() { EventList eventList = new EventList(); String expectedMessage = "Event not found!"; - AddCommand addCommand = new AddCommand("Tom", "Event 1"); + AddCommand addCommand = new AddCommand("Tom","89521252", "example@gmail.com", "Event 1"); addCommand.setData(eventList); addCommand.execute(); diff --git a/src/test/java/seedu/manager/command/RemoveCommandTest.java b/src/test/java/seedu/manager/command/RemoveCommandTest.java index cc933b0893..d54bda4188 100644 --- a/src/test/java/seedu/manager/command/RemoveCommandTest.java +++ b/src/test/java/seedu/manager/command/RemoveCommandTest.java @@ -30,8 +30,18 @@ public void remove_oneParticipant_success() { eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), "Venue A"); - eventList.addParticipantToEvent("Tom", "Event 1"); - eventList.addParticipantToEvent("Harry", "Event 1"); + eventList.addParticipantToEvent( + "Tom", + "89521252", + "example@gmail.com", + "Event 1" + ); + eventList.addParticipantToEvent( + "Harry", + "89521252", + "example@gmail.com", + "Event 1" + ); eventList.removeParticipantFromEvent("Tom", "Event 1"); assertEquals(1, eventList.getEvent(0).getParticipantCount()); @@ -44,8 +54,18 @@ public void remove_oneParticipantWrongly_success() { eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), "Venue A"); - eventList.addParticipantToEvent("Tom", "Event 1"); - eventList.addParticipantToEvent("Harry", "Event 1"); + eventList.addParticipantToEvent( + "Tom", + "89521252", + "example@gmail.com", + "Event 1" + ); + eventList.addParticipantToEvent( + "Harry", + "89521252", + "example@gmail.com", + "Event 1" + ); eventList.removeParticipantFromEvent("Tom", "Event 2"); assertEquals(2, eventList.getEvent(0).getParticipantCount()); diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index bb2ebf6df2..f6fa91b682 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -7,7 +7,7 @@ list mark -e dinner party -s done list mark -e Saturday brunch -s done -add -p Mary -e dinner party +add -p Mary -n 84215652 -email example@gmail.com -e dinner party view -e dinner party add -e anniversary celebration -t 2024-10-23 12:34 -v hotel sort -by name From 93d0db058ac7d2c684f5594bdca78f36dabb4e0e Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 29 Oct 2024 21:55:45 +0800 Subject: [PATCH 260/619] Fix CI errors --- src/main/java/seedu/manager/event/EventList.java | 10 +++++----- src/main/java/seedu/manager/parser/Parser.java | 10 ++++++++-- .../manager/command/MarkParticipantCommandTest.java | 13 ++++++++++--- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 8068a4b26b..0bd6533e20 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -108,16 +108,16 @@ public boolean removeEvent(String eventName) { * Returns true if a participant can be added to a specified event, * returns false otherwise. * - * @param participantName the name of the participant to be added. - * @param participantNumber the contact number of the participant - * @param participantEmail the email address of the participant + * @param name the name of the participant to be added. + * @param number the contact number of the participant + * @param email the email address of the participant * @param eventName the name of the event to which the participant will be added. * @return {@code true} if the participant can be added to the event, {@code false} otherwise. */ - public boolean addParticipantToEvent(String participantName, String participantNumber, String participantEmail, String eventName) { + public boolean addParticipantToEvent(String name, String number, String email, String eventName) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { - event.addParticipant(participantName, participantNumber, participantEmail); + event.addParticipant(name, number, email); return true; } } diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 7aa9f0db5e..d38688c283 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -133,14 +133,20 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval inputParts = input.split("(-e|-t|-v)"); logger.info("Creating AddCommand for event with details: " + inputParts[1].trim() + ", " + inputParts[2].trim() + ", " + inputParts[3].trim()); + String eventName = inputParts[1].trim(); + String venue = inputParts[3].trim(); LocalDateTime eventTime = LocalDateTime.parse(inputParts[2].trim(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); - return new AddCommand(inputParts[1].trim(), eventTime, inputParts[3].trim()); + return new AddCommand(eventName, eventTime, venue); } else if (commandFlag.equals("-p")) { inputParts = input.split("(-p|-n|-email|-e)"); logger.info("Creating AddCommand for participant with details: " + inputParts[1].trim() + ", " + inputParts[2].trim()); - return new AddCommand(inputParts[1].trim(), inputParts[2].trim(), inputParts[3].trim(), inputParts[4].trim()); + String participantName = inputParts[1].trim(); + String participantNumber = inputParts[2].trim(); + String participantEmail = inputParts[3].trim(); + String eventName = inputParts[4].trim(); + return new AddCommand(participantName, participantNumber, participantEmail, eventName); } logger.log(WARNING,"Invalid command format"); diff --git a/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java b/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java index ab021ea826..9740cc0f2a 100644 --- a/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java +++ b/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java @@ -18,15 +18,22 @@ public void testSetUp() { eventList = new EventList(); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 16:00", formatter), "Venue 1"); - eventList.addParticipantToEvent("John Doe", "Event 1"); + eventList.addParticipantToEvent( + "Participant", + "89521252", + "example@gmail.com", + "Event 1" + ); } @Test public void execute_validParticipantMarkTrue_success() { String expectedMessage = "Participant marked present."; - MarkParticipantCommand command = new MarkParticipantCommand("John Doe", - "Event 1", true); + MarkParticipantCommand command = new MarkParticipantCommand( + "John Doe", + "Event 1", + true); command.setData(eventList); command.execute(); assertEquals(expectedMessage, command.getMessage()); From 26515b27646d7234e488706429e331eaca023852 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 29 Oct 2024 22:02:47 +0800 Subject: [PATCH 261/619] Fix CI errors --- src/test/java/seedu/manager/command/ViewCommandTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/manager/command/ViewCommandTest.java b/src/test/java/seedu/manager/command/ViewCommandTest.java index f1f5d16387..89a42e1bf0 100644 --- a/src/test/java/seedu/manager/command/ViewCommandTest.java +++ b/src/test/java/seedu/manager/command/ViewCommandTest.java @@ -21,7 +21,7 @@ public void setUp() { command.setData(eventList); command.execute(); - command = new Parser().parseCommand("add -p Tom -e Event 1"); + command = new Parser().parseCommand("add -p Tom -n 95015025 -email example@gmail.com -e Event 1"); command.setData(eventList); command.execute(); From 57369a3b48049f27b41d038dd440322a95aac784 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 29 Oct 2024 22:06:44 +0800 Subject: [PATCH 262/619] Fix CI errors --- .../java/seedu/manager/command/MarkParticipantCommandTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java b/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java index 9740cc0f2a..4efbe4e983 100644 --- a/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java +++ b/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java @@ -19,7 +19,7 @@ public void testSetUp() { eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 16:00", formatter), "Venue 1"); eventList.addParticipantToEvent( - "Participant", + "John Doe", "89521252", "example@gmail.com", "Event 1" From 13bafd72da2bfc5d414fdb526fff5f59832f0a4b Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 29 Oct 2024 22:34:26 +0800 Subject: [PATCH 263/619] Add error handling for duplicate entries --- src/main/java/seedu/manager/Main.java | 3 ++- .../java/seedu/manager/command/AddCommand.java | 4 +++- src/main/java/seedu/manager/event/Event.java | 8 +++++++- src/main/java/seedu/manager/event/EventList.java | 10 +++++++++- .../manager/exception/DuplicateDataException.java | 15 +++++++++++++++ 5 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 src/main/java/seedu/manager/exception/DuplicateDataException.java diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 6bfded28f9..56a182df8f 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -2,6 +2,7 @@ import seedu.manager.command.Command; import seedu.manager.event.EventList; +import seedu.manager.exception.DuplicateDataException; import seedu.manager.exception.InvalidCommandException; import seedu.manager.parser.Parser; import seedu.manager.ui.Ui; @@ -44,7 +45,7 @@ private static void runCommandLoop() { ui.showOutputToUser(command); isGettingCommands = !command.getCanExit(); - } catch (InvalidCommandException exception) { + } catch (InvalidCommandException | DuplicateDataException exception) { ui.showErrorMessageToUser(exception); } } diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index c7e1e44734..80ed4007c8 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -1,5 +1,7 @@ package seedu.manager.command; +import seedu.manager.exception.DuplicateDataException; + import java.time.LocalDateTime; //@@author KuanHsienn @@ -57,7 +59,7 @@ public AddCommand(String participantName, String eventName) { *

    */ @Override - public void execute() { + public void execute() throws DuplicateDataException { if (participantName == null) { this.eventList.addEvent(this.eventName, this.time, this.venue); this.message = ADD_EVENT_MESSAGE; diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index e3cd8ce162..3fba4e3b40 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -1,5 +1,6 @@ package seedu.manager.event; +import seedu.manager.exception.DuplicateDataException; import seedu.manager.item.Participant; import java.time.LocalDateTime; @@ -49,8 +50,13 @@ public Event(String eventName, LocalDateTime eventTime, String eventVenue) { * Adds a participant to the participant list for the event. * * @param participantName the name of the participant to be added to the list. + * @throws DuplicateDataException if a participant with the same name exists in the list. */ - public void addParticipant(String participantName) { + public void addParticipant(String participantName) throws DuplicateDataException { + if (getParticipantByName(participantName).isPresent()) { + throw new DuplicateDataException("Duplicate participant!"); + } + Participant participant = new Participant(participantName); this.participantList.add(participant); } diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 0030665c66..939808b3b1 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -1,5 +1,7 @@ package seedu.manager.event; +import seedu.manager.exception.DuplicateDataException; + import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Comparator; @@ -11,6 +13,8 @@ * It provides methods to manage an event list. */ public class EventList { + private static final String DUPLICATE_EVENT_MESSAGE = "Duplicate event!"; + private final ArrayList eventList; /** @@ -54,8 +58,12 @@ public ArrayList getList() { * @param eventName the name of the event to be added. * @param time the time of the event. * @param venue the venue where the event will take place. + * @throws DuplicateDataException if an event with eventName is present in the event list. */ - public void addEvent(String eventName, LocalDateTime time, String venue) { + public void addEvent(String eventName, LocalDateTime time, String venue) throws DuplicateDataException { + if (getEventByName(eventName).isPresent()) { + throw new DuplicateDataException(DUPLICATE_EVENT_MESSAGE); + } Event newEvent = new Event(eventName, time, venue); eventList.add(newEvent); } diff --git a/src/main/java/seedu/manager/exception/DuplicateDataException.java b/src/main/java/seedu/manager/exception/DuplicateDataException.java new file mode 100644 index 0000000000..62040d79e7 --- /dev/null +++ b/src/main/java/seedu/manager/exception/DuplicateDataException.java @@ -0,0 +1,15 @@ +package seedu.manager.exception; + +//@@author jemehgoh +/** + * Signals that an item being added to a list is a duplicate. + */ +public class DuplicateDataException extends RuntimeException { + + /** + * @param message contains information on the type of duplicate item. + */ + public DuplicateDataException(String message) { + super(message); + } +} From 403c3af063c6d31524d9b71d77d4329d4fbecf46 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 29 Oct 2024 22:41:20 +0800 Subject: [PATCH 264/619] Add assertions for Storage class --- src/main/java/seedu/manager/storage/Storage.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index b0e06d7151..116878be05 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -25,6 +25,7 @@ public class Storage { * @param filePath The path to the storage file. */ public Storage(String filePath) { + assert isValidFilePath(filePath) : "Invalid file path: " + filePath; this.filePath = filePath; } @@ -67,6 +68,17 @@ public void loadEvents(EventList events) throws IOException { throw new IOException("Error loading events from file: " + filePath + "."); } } + + /** + * Checks if the given file path is valid and matches the expected path. + * + * @param filePath The path to check. + * @return True if valid and matches, false otherwise. + */ + private boolean isValidFilePath(String filePath) { + String expectedPath = "events.txt"; // You can change this if needed + return filePath.equals(expectedPath); + } } From 9149864b906d234ba3d5356479812bcb5424ad7d Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 29 Oct 2024 22:47:02 +0800 Subject: [PATCH 265/619] Update User Doc for save comamnd --- docs/UserGuide.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a44680595e..50f7854fdc 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -37,6 +37,8 @@ remove -e EVENT: Remove an event from the event list. add -p PARTICIPANT -e EVENT: Add a participant to an event. view -e EVENT: View the list of participants of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. +save: Save latest changes to file +exit: Exit program ``` Format: `menu` @@ -54,12 +56,12 @@ Adds an event to the event list, or a participant to an event. Format: * `add -e EVENT -t TIME -v VENUE` for adding an event to the events list. -* `add -p PARTICIPANT -e EVENT` for adding a participant to an event. +* `add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT` for adding a participant to an event. Examples: * `add -e Origami workshop -t Mon 1600-1800 -v Building A` adds an event with name `Origami workshop`, time `Mon 1600-1800` and venue `Building A` to the events list. -* `add -p John Tan -e Origami workshop` adds a participant `John Tan` to the event `Origami workshop`. +* `add -p John Tan -n 91583215 -email john@gmail.com -e Origami workshop` adds a participant `John Tan` to the event `Origami workshop`. ### Remove an event or participant: `remove` @@ -111,6 +113,12 @@ Examples: * `mark -p John Tan -e Origami workshop -s done` marks the participant `John Tan` in the `Origami workshop` event as present. * `mark -p John Tan -e Origami workshop -s undone` marks the participant `John Tan` in the `Origami workshop` event as absent. +### Saving the program: `save` + +Save the program + +Format: `save` + ### Exiting the program: `exit` Exits the program. @@ -128,3 +136,5 @@ Format: `exit` * View all participants for an event: `view -e EVENT` * Mark an event as done: `mark -e EVENT -s STATUS` * Mark a participant as present: `mark -p PARTICIPANT -e EVENT -s STATUS` +* Save program: `save` +* Exit program: `exit` From 0069c597e190a8ce8f2a5643ff19a308dedb79fe Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 29 Oct 2024 22:48:45 +0800 Subject: [PATCH 266/619] Update JUnit to account for duplicate entry error handling --- .../seedu/manager/command/AddCommandTest.java | 52 +++++++++++++++---- 1 file changed, 42 insertions(+), 10 deletions(-) diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index 895cd55506..bc245ee57f 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -1,20 +1,30 @@ package seedu.manager.command; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import seedu.manager.event.EventList; +import seedu.manager.exception.DuplicateDataException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; public class AddCommandTest { + //@@author jemehgoh + private EventList eventList; + private DateTimeFormatter formatter; + + @BeforeEach + public void testSetUp() { + eventList = new EventList(); + formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + } + //@@author @Test public void add_event_success() { - EventList eventList = new EventList(); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); - eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), "Venue A"); @@ -23,9 +33,6 @@ public void add_event_success() { @Test public void add_twoParticipant_success() { - EventList eventList = new EventList(); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); - eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), "Venue A"); @@ -37,9 +44,6 @@ public void add_twoParticipant_success() { @Test public void add_oneParticipantWrongly_success() { - EventList eventList = new EventList(); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); - eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), "Venue A"); eventList.addParticipantToEvent("Tom", "Event 1"); @@ -50,7 +54,6 @@ public void add_oneParticipantWrongly_success() { @Test public void add_oneParticipantInvalidEvent_failure() { - EventList eventList = new EventList(); String expectedMessage = "Event not found!"; AddCommand addCommand = new AddCommand("Tom", "Event 1"); @@ -59,5 +62,34 @@ public void add_oneParticipantInvalidEvent_failure() { assertEquals(expectedMessage, addCommand.getMessage()); } + + //@@author jemehgoh + @Test + public void add_duplicateEvent_throwsException() { + EventList eventList = new EventList(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), + "Venue A"); + + AddCommand addCommand = new AddCommand("Event 1", LocalDateTime.parse("2024-10-10 10:00", + formatter), "Venue A"); + addCommand.setData(eventList); + + assertThrows(DuplicateDataException.class, addCommand::execute); + } + + @Test + public void add_duplicateParticipant_throwsException() { + EventList eventList = new EventList(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), + "Venue A"); + eventList.addParticipantToEvent("John", "Event 1"); + + AddCommand addCommand = new AddCommand("John", "Event 1"); + addCommand.setData(eventList); + + assertThrows(DuplicateDataException.class, addCommand::execute); + } } From a3581f9e7ad5f4f8e22ea8b74909047462e1ad90 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 29 Oct 2024 22:54:21 +0800 Subject: [PATCH 267/619] Add test enviroment for StorageTest --- src/main/java/seedu/manager/storage/Storage.java | 13 ++++++++++++- .../java/seedu/manager/storage/StorageTest.java | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index 116878be05..15286a4adf 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -25,7 +25,9 @@ public class Storage { * @param filePath The path to the storage file. */ public Storage(String filePath) { - assert isValidFilePath(filePath) : "Invalid file path: " + filePath; + if (!isTestEnvironment()) { + assert isValidFilePath(filePath) : "Invalid file path: " + filePath; + } this.filePath = filePath; } @@ -79,6 +81,15 @@ private boolean isValidFilePath(String filePath) { String expectedPath = "events.txt"; // You can change this if needed return filePath.equals(expectedPath); } + + /** + * Checks if the code is running in a test environment. + * + * @return True if in test environment, false otherwise. + */ + private boolean isTestEnvironment() { + return "true".equals(System.getProperty("test.environment")); + } } diff --git a/src/test/java/seedu/manager/storage/StorageTest.java b/src/test/java/seedu/manager/storage/StorageTest.java index 2a86ccc87d..f6973f4c63 100644 --- a/src/test/java/seedu/manager/storage/StorageTest.java +++ b/src/test/java/seedu/manager/storage/StorageTest.java @@ -26,6 +26,7 @@ public class StorageTest { @BeforeEach public void setUp() { + System.setProperty("test.environment", "true"); // Set the system property for testing storage = new Storage(TEST_FILE_PATH); eventList = new EventList(); } From 3ff478663fe2fdcc73e2f71e7c798ba513c59fbb Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 29 Oct 2024 23:45:36 +0800 Subject: [PATCH 268/619] Add Item class and make Participant a child class of Item --- src/main/java/seedu/manager/item/Item.java | 59 +++++++++++++++++++ .../java/seedu/manager/item/Participant.java | 44 +------------- 2 files changed, 61 insertions(+), 42 deletions(-) create mode 100644 src/main/java/seedu/manager/item/Item.java diff --git a/src/main/java/seedu/manager/item/Item.java b/src/main/java/seedu/manager/item/Item.java new file mode 100644 index 0000000000..ee6a27a93a --- /dev/null +++ b/src/main/java/seedu/manager/item/Item.java @@ -0,0 +1,59 @@ +package seedu.manager.item; + +import seedu.manager.event.Event; + +/** + * Represents an item, in an item list of an {@link Event}. + */ +public class Item { + protected final String name; + protected boolean isPresent; + + /** + * Constructs a new Item with a given name. + * + * @param name the given name. + */ + public Item(String name) { + this.name = name; + this.isPresent = false; + } + + /** + * Returns the name of the item. + * + * @return the name of the item. + */ + public String getName() { + return name; + } + + /** + * Sets the item as present or not present. + * + * @param isPresent whether the item is present or not present. + */ + public void setPresent(boolean isPresent) { + this.isPresent = isPresent; + } + + /** + * Returns "X" if isPresent is true, " " otherwise. + * + * @return "X" if isPresent is true, " " otherwise. + */ + public String markIfPresent() { + return (this.isPresent) ? "X" : " "; + } + + /** + * Returns a formatted string of the item + * + * @return a formatted string of the item + */ + @Override + public String toString() { + return String.format("%s [%s]", this.name, this.markIfPresent()); + } +} + diff --git a/src/main/java/seedu/manager/item/Participant.java b/src/main/java/seedu/manager/item/Participant.java index 4b03a3f99f..588b67d159 100644 --- a/src/main/java/seedu/manager/item/Participant.java +++ b/src/main/java/seedu/manager/item/Participant.java @@ -6,9 +6,7 @@ /** * Represents an event participant, in the participant list of an {@link Event}. */ -public class Participant { - private final String name; - private boolean isPresent; +public class Participant extends Item { /** * Constructs a new Participant with a given name @@ -16,44 +14,6 @@ public class Participant { * @param name the given name */ public Participant(String name) { - this.name = name; - this.isPresent = false; - } - - /** - * Returns the name of the participant. - * - * @return the name of the participant - */ - public String getName() { - return name; - } - - /** - * Sets the participant as present or not present. - * - * @param isPresent whether the participant is present or not present - */ - public void setPresent(boolean isPresent) { - this.isPresent = isPresent; - } - - /** - * Returns "X" if isPresent is true, " " otherwise. - * - * @return "X" if isPresent is true, " " otherwise. - */ - public String markIfPresent() { - return (this.isPresent) ? "X" : " "; - } - - /** - * Returns a formatted string of the item - * - * @return a formatted string of the item - */ - @Override - public String toString() { - return String.format("%s [%s]", this.name, this.markIfPresent()); + super(name); } } From a4c3e2913c2c5a14f0f3a8e7052d5e2d4235a31c Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 29 Oct 2024 23:49:48 +0800 Subject: [PATCH 269/619] Update user guide --- docs/UserGuide.md | 54 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a44680595e..8ef8128238 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -37,6 +37,10 @@ remove -e EVENT: Remove an event from the event list. add -p PARTICIPANT -e EVENT: Add a participant to an event. view -e EVENT: View the list of participants of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. +copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. +find -e EVENT -p NAME: Finds all participants with specified name in an event. +filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. +sort -by KEYWORD: Sorts events by name/time/priority. ``` Format: `menu` @@ -111,6 +115,56 @@ Examples: * `mark -p John Tan -e Origami workshop -s done` marks the participant `John Tan` in the `Origami workshop` event as present. * `mark -p John Tan -e Origami workshop -s undone` marks the participant `John Tan` in the `Origami workshop` event as absent. +### Copies participant list: `copy` + +Copies the participant list from one event to another event. + +Format: `copy FROM_EVENT > TO_EVENT` + +* Both events must already exist + +Examples: + +* `copy Origami workshop > Coding workshop` copies the participant list from the `Origami workshop` event to the `Coding workshop` event. + +### Find participant: `find` + +Finds all participants with a specified name in a specified event. + +Format: `find -e EVENT -p NAME` + +* The `NAME` keywords are case-insensitive. + +Examples: +* `find -e Origami workshop -p john` will output all participants with `john` in their name in the event `Origami workshop`. + +### Filters event list: `filter` + +Filters out events from the event list based on name, date-time or priority level. + +Format: `filter -e/-t/-u DESCRIPTION` + +* `-e/-t/-u` are the flags for name, date-time and priority level respectively. +* `DESCRIPTION` is only case-insensitive when filtering using the priority level flag. + +Examples: +* `filter -e workshop` will output all events with `workshop` in their event name. +* `filter -t 2024` will output all events that are occurring in `2024`. +* `filter -u high` with output all events with priority level `HIGH`. + +### Sorts event list: `sort` + +Sorts events according to event name, event date-time or event priority level. + +Format: `sort -by KEYWORD` + +* `KEYWORD` is case-insensitive, but must be one of these inputs: `name/time/priority` + +Examples: +* `sort -by name` will output a list of all the user's events alphabetically (from A to Z). +* `sort -by time` will output a list of all the user's events chronologically (earliest to latest). +* `sort -by priority` will output a list of all the user's events in terms of urgency (most to least important). + ### Exiting the program: `exit` Exits the program. From 1b017afb0baa1d7a99a98d2effa25740725cdd6a Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 29 Oct 2024 23:57:07 +0800 Subject: [PATCH 270/619] Fix punctuation, Delete blank line --- src/main/java/seedu/manager/command/SortCommand.java | 1 - src/main/java/seedu/manager/event/Event.java | 8 ++++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/seedu/manager/command/SortCommand.java b/src/main/java/seedu/manager/command/SortCommand.java index 8fbbf44215..b4cb4a8f59 100644 --- a/src/main/java/seedu/manager/command/SortCommand.java +++ b/src/main/java/seedu/manager/command/SortCommand.java @@ -13,7 +13,6 @@ public class SortCommand extends Command { private static final String SORT_BY_TIME_MESSAGE = "Events successfully sorted by time!"; private static final String SORT_BY_PRIORITY_MESSAGE = "Events successfully sorted by priority level!"; - protected String keyword; /** diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index c0324a2af5..44921cb495 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -50,10 +50,10 @@ public Event(String eventName, LocalDateTime eventTime, String eventVenue) { /** * Constructs an Event with the specified name, time, venue and priority. * - * @param eventName the name of the event - * @param eventTime the time duration of the event - * @param eventVenue the venue of the event - * @param eventPriority the priority level of the event + * @param eventName The name of the event. + * @param eventTime The time duration of the event. + * @param eventVenue The venue of the event. + * @param eventPriority The priority level of the event. */ public Event(String eventName, LocalDateTime eventTime, String eventVenue, Priority eventPriority) { this.eventName = eventName; From 9c8abf1a69ae8b159cfbae5e5eea7d2d8d941aac Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 29 Oct 2024 23:57:33 +0800 Subject: [PATCH 271/619] Modify Developer Guide --- docs/DeveloperGuide.md | 10 +++++++ docs/diagrams/ArchitectureSequence.puml | 39 ++++++++++++++++++++----- docs/diagrams/style.puml | 1 + 3 files changed, 43 insertions(+), 7 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index dd8e1af41d..e8c77730aa 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -39,6 +39,15 @@ The `UI` does the following: * Take in command input from the user and pass the input to `Main`. * Show output messages from `Command` to the user after command execution. +### Storage component + +The `Storage` component comprises a Storage class, as shown in above **Class Diagram**. + +The `Storage` does the following: + +* Load events and participants information from a text file and save it to `EventList` list. +* Save events from `EventList` list to a text file + ### Command component The `Command` component and its component classes are shown in the below **Class Diagram**: @@ -155,6 +164,7 @@ The user is able to organise and manage his events more quickly and efficiently | v1.0 | user | view the participant list of an event | know who is involved | | v2.0 | user | mark events as completed | easily track all past events | | v2.0 | user | mark participants present | know exactly who signed up but did not attend the event | +| v2.0 | user | save events info | can still access the information if the program terminates | ## Non-Functional Requirements diff --git a/docs/diagrams/ArchitectureSequence.puml b/docs/diagrams/ArchitectureSequence.puml index b0817a87c7..aacfc3a5c1 100644 --- a/docs/diagrams/ArchitectureSequence.puml +++ b/docs/diagrams/ArchitectureSequence.puml @@ -3,21 +3,37 @@ Participant "Main" as main Participant "Ui" as ui UI_COLOUR +Participant "Storage" as storage STORAGE_COLOUR Participant "Parser" as parser PARSER_COLOUR Participant "Command" as command COMMAND_COLOUR -Participant "Event" as event EVENT_COLOUR +Participant "EventList" as event EVENT_COLOUR -main -> ui : getCommand() -activate ui UI_COLOUR -ui --> main : "add -e event -t 1200 -v venue" -deactivate ui -create parser +main -> storage : loadEvents(events) +activate storage STORAGE_COLOUR +storage --> parser : parseFile(events, FILE_PATH) +activate parser PARSER_COLOUR +parser -> event : addEvent(eventName, time, venue) +activate event EVENT_COLOUR +event --> parser +deactivate event +parser --> storage +deactivate parser +storage -> main +deactivate storage + main -> parser : Parser() activate parser PARSER_COLOUR parser --> main : :Parser deactivate parser +main -> ui : getCommand() +activate ui UI_COLOUR +ui --> main : "add -e event -t 1200 -v venue" +deactivate ui + + + main -> parser : parseCommand("add -e event -t 1200 -v venue") activate parser PARSER_COLOUR @@ -56,7 +72,16 @@ activate command COMMAND_COLOUR command --> ui : :String deactivate command -ui --> main +ui --> main : deactivate ui +main -> storage : saveEvents(events) +activate storage STORAGE_COLOUR +storage -> event : getList() +activate event EVENT_COLOUR +event --> storage +deactivate event +storage --> main +deactivate storage + @enduml \ No newline at end of file diff --git a/docs/diagrams/style.puml b/docs/diagrams/style.puml index dad8051564..e00dc042bb 100644 --- a/docs/diagrams/style.puml +++ b/docs/diagrams/style.puml @@ -1,6 +1,7 @@ @startuml !define UI_COLOUR #ff9999 !define PARSER_COLOUR #ff9933 +!define STORAGE_COLOUR #ffff00 !define COMMAND_COLOUR #66ff99 !define STORAGE_COLOUR #6699ff !define EVENT_COLOUR #993366 From dc4bf6fe8e2bdb28c93ce580184d4b58348d19cb Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Wed, 30 Oct 2024 00:01:02 +0800 Subject: [PATCH 272/619] Added break statement, Made exception variable name more descriptive --- src/main/java/seedu/manager/command/FilterCommand.java | 1 + src/main/java/seedu/manager/parser/Parser.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/command/FilterCommand.java b/src/main/java/seedu/manager/command/FilterCommand.java index 6fc55b04e9..17bc8f7c9a 100644 --- a/src/main/java/seedu/manager/command/FilterCommand.java +++ b/src/main/java/seedu/manager/command/FilterCommand.java @@ -48,6 +48,7 @@ public void execute() { outputMessage.append(FILTER_BY_PRIORITY_MESSAGE + "\n"); break; default: + break; } for (int i = 0; i < filteredEvents.getListSize(); i++) { diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 627b75a256..9888429550 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -395,7 +395,7 @@ private Command parseFilterCommand(String input, String[] commandParts) throws I return new FilterCommand(commandParts[1].trim().toLowerCase(), inputParts[1].trim()); } throw new InvalidCommandException(INVALID_FILTER_FLAG_MESSAGE); - } catch (IndexOutOfBoundsException e) { + } catch (IndexOutOfBoundsException exception) { logger.log(WARNING,"Invalid command format"); throw new InvalidCommandException(INVALID_FILTER_MESSAGE); } From c9b5b7749f935d49ed88bae7a24542f745aa024a Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Wed, 30 Oct 2024 00:17:12 +0800 Subject: [PATCH 273/619] Extracted regex as a constant, Updated javadoc --- src/main/java/seedu/manager/command/FindCommand.java | 3 +-- src/main/java/seedu/manager/parser/Parser.java | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/manager/command/FindCommand.java b/src/main/java/seedu/manager/command/FindCommand.java index 17163f3cca..4316f31ea0 100644 --- a/src/main/java/seedu/manager/command/FindCommand.java +++ b/src/main/java/seedu/manager/command/FindCommand.java @@ -8,8 +8,7 @@ //@author LTK-1606 /** - * Represents a command to sort the events in different ways. - * The sort command will store the sorting keyword. + * Represents a command to find all participants in an event with a certain name. */ public class FindCommand extends Command{ public static final String COMMAND_WORD = "find"; diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 695e4170ac..b6622841c4 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -82,6 +82,7 @@ public class Parser { Invalid find flag! Please set the find flag using "-e" and "-p"" """; + private static final String FIND_REGEX = "\\s*(-e|-p)\\s*"; /** * Returns a command based on the given user command string. @@ -379,7 +380,7 @@ private Command parseFindCommand(String input, String[] commandParts) throws Inv throw new InvalidCommandException(INVALID_FIND_FLAG_MESSAGE); } - String[] inputParts = input.split("\\s*(-e|-p)\\s*"); + String[] inputParts = input.split(FIND_REGEX); if (inputParts.length < 3 || inputParts[1].isBlank()) { throw new InvalidCommandException(INVALID_FIND_MESSAGE); } From 218105ff42051efac65458c08d191c0f331e273c Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Wed, 30 Oct 2024 00:19:41 +0800 Subject: [PATCH 274/619] Add Storage Class Diagram --- docs/DeveloperGuide.md | 2 ++ docs/diagrams/StorageClassDiagram.puml | 25 +++++++++++++++++++++++++ docs/images/StorageClassDiagram.png | Bin 0 -> 60549 bytes 3 files changed, 27 insertions(+) create mode 100644 docs/diagrams/StorageClassDiagram.puml create mode 100644 docs/images/StorageClassDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index e8c77730aa..8ffdd12d0e 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -41,6 +41,8 @@ The `UI` does the following: ### Storage component + + The `Storage` component comprises a Storage class, as shown in above **Class Diagram**. The `Storage` does the following: diff --git a/docs/diagrams/StorageClassDiagram.puml b/docs/diagrams/StorageClassDiagram.puml new file mode 100644 index 0000000000..f6f5bda78e --- /dev/null +++ b/docs/diagrams/StorageClassDiagram.puml @@ -0,0 +1,25 @@ +@startuml +!include style.puml +allowmixing + +package storage { + class Storage { + - String filePath + + Storage(String filePath) + + void saveEvents(EventList events) throws IOException + + void loadEvents(EventList events) throws IOException + - boolean isValidFilePath(String filePath) + - boolean isTestEnvironment() + } +} + +rectangle Main +rectangle EventList EVENT_COLOUR +rectangle Parser PARSER_COLOUR + +Storage ..> EventList : saves/loads +Parser <.. Storage : adopts +EventList *--> "*" Event : contains +Main .> Storage : invokes + +@enduml diff --git a/docs/images/StorageClassDiagram.png b/docs/images/StorageClassDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..486abd1ff1107f1061617eee6f9c05b9155108cf GIT binary patch literal 60549 zcmdSAWmH^Q7cJV|@q`452u_8=$Gzi@JKp>Aek22^I_K=O_TFpFIoI6&uVuvU-zB{J#~**(mk<}0|KpFp zLcqWJ+c&{q=p0g{|M=tW9}>bZ6#se~?~~M%*J;`|g^msM5 z$MgSQsC~Ie>u$Bd<({Wqb-RQ@WM#DDv1RjjwQ`f*v{?n35A8Yz#2;~By<;`T74)u^ zv7TJH79S)cX(b}M9xrv4>id_)NtX9XqX6J4(*S?kgNYH@kDh$T$ zTp8NnrF&WIm6ueFWoZ=ekQKoJfX_^XlNb3nBV7+Av$G2JjR7{{PpHMT-Zc3nFR9 z{DfYOmsH^Sf3L0ynAn(2Uk{~u3>)df`qz+b5lGw1N;{5pL;jkr$w+d=wOWO>0m1S0 zX`V&Yw45PqMB3qBL*|l4AMKA7bCl{@bvchnj5KT>=rP#wCxZ0>&64pHr-!`gNf`C5z;V_9r?yZVy`YwO@*mT)rBR zeb|LsOzRxu#EvNu$jnIWz0iLpa!O|UqFwfswc~B^I%8W@8IWQi^qyUdEK5xjs{ar9qZ>0Ih&R1 z7r0KN!1FdKbI4ScEZFXy&T1B|meeW7iuvXv| z9o~#CB~?C8c|)Jr%+Q-MmH#|>(3idT+d-(#RhYTvF&&Yo5NVG3i9?R&ibKM1{@=pKgAxB4Zki!6=ZyMfd@XI@d?}-7Y|&w4 z5R@w1G>vev=$PbgHQPa}#LZ&eDprfO9}!MA9^6DTbOlK<>(`B+Cs4$T2F<(=xv`#X zeqm17#@3;~JAvmwRqRo(uwGxiSd%r+iSC?0#2hD*t-oF;HonR1HyXv&lipKtpKdud zNwVfq`JfDUBfVc^ExOa*(si^6GA}Fnubps_Z`*CZATh$)(b8k0{>{`4b;iNcfsflk z8?|cS{`sZVsioZw_c~c-bG24iE!kFp>(jh615*fe*Kkg(8N zmZG)W=wR46G8lzPEEJYXN_$6_@~ymKkW#Dv#!anSVBS|ke;$BJI6POr$Me{M#$0|H z(Zn1QrzvH86qg$Puc-wq@!lfOIC3U#RBPQ)t{8q1PH05Xz?%_V9VC38kv6gU`Og=_ zU!U|^y}4`Tj0|@uI)^2GQ7PET<8=f7UyyUT@DG)L2ke~mRWzICwacU%OpT*zk6EaG$ z_#+bi5BSE*3hPErVMOCcf6)@Mgv52mZq_e_S?Z7q5XyHtGVp(K)l#;GG>=!F5gdp{ z$ax|hz3`TaC$`=TN#){+#CZGKieUs(azMNC>z&$p9Bb^l%2qSmB)<2(5x8WiC? zk&T|4gh~?x(&d+@QEzS6K&ln4CBMqIqI5xM?}(Um+q*Oi1eUusO5bM$G_&#c1So&UaLu6Q98+vJs@ z4#As8uycw=+@?ZCdObBH{wPlTD_6rm+ENUN1;lSSF!>L03Oo1-CAG0gpzsw1oWCN& zLuxb2IyTj`V|yZdzCP}lU3sbWiY0ic0C7Q)Z80$G_$p~be#T)@$lPqCD$j^vbYP<5 zYYeCh%)iP6$k*iA3x~I2ONaRas>3y!cAHc0k(@Xox{`~ecPe>;&!ksZ@Z6u2Rh-7! z$O*#y*@DPkEsq*T;SHdKpD>4|Syg@$VaO&Yuz1_df8ptUC$`$F(3CXcJ8w!}En09? zf~#LN=8HQtXe0AoNb?}=zp9y-8L|Jg+|1S}MaiP{_-xBg>DvQO=3>$eoM!kLOSWaC ztHY|$lz4gb%&g%U>C`z+I>q~r^7p&r3>mRx_nTKm|EHUk6#r|j{r{kl1~E3AH6^=R zAnF_&g7n!=?9D__EV;ftu6tkp4GA#Fs9blQm1DR3`N8Orcp3%CS3Z4)a!TydQfZf`m zJ;A!3JL6;}r(n&WI=PU=uu~;dCdp!^-V@T*qIPpx(whc~~M zBW5vx&-bOwtPExAgBNpifshG5`5Oa$T6D(?b$#CCsSVpL_FA?E;#Iu#xmg9z!hxAz zK~9*o_#N3quKt~c9`nT{=VVQr#v3D*w)&`gPj?qNGGQt)%w2>()$Wg|D-~$*;aRqD zC3{~SE9Gl&yDyRLCp;5Y61w`z*Y8IL)3vVoR^%D|w6e*(BVXUpo`MN!&bdv-!i)h= zWb%e>AtWRDnl(R7$S-kig=4kcvU^el1Zo3tU=OcS1x&>2d|%mpB|9_Mq(8OySqz=( zz$Z3Sy)v_5JMYD=*gnUe-6`jpkIIh)4dgLzhXF5?N~y} z=cbatVL7=+$Zj^)8BN=q17?ioY80@~3hQO&qiV|o>3Q<$uQ)6x*wh=m>ZV*5lQ?vn zu8;D`u8!p8=`_9{sdIN8m8-&m?fx3ud&c^sCSPpm1}r!Z>2nKvqT%w~+L##XxhEHk zMDpUg=4#fITTYbH)ZPJs6TXVd^@g*ZK+CD>;TT5k4Jq>L!Q?um%U_Mhiw*M&#K?pf zeuekCSK=Df`;6IDZH()$uJ4ASqTvvj`4w1&J(mZghUZ?<0eBWB6=7iNKeXU#0c3qn zv+hQ3Ow}}(e85q?j#-vCaxbsN&3IotbvuHBNR#g4OUSneszB>{pNj z4yWDwP7c=1ON{#-{P%gnBBDWW&cQX6S%#scd=`tnNweeLfq+SM)t{`;p8oK`ZUS>b z@J}e(Z=;XUp#s(WIm!iA*7e6mE(bGn>lHKQFE%QhsbmuIF;9H@E3zV@_-$a5H)cr1 z>tXhX<#a7K@2Pc>*SQ~eX3@Z)b%H1b*w0D%3)BtR}nYwTE=*zHj&w@@Ww(s`R>Ev|O5-3F}y`&7LvhCYeeV)$z`$Y%oMTzZ7s9@`>0Z*pQZ zou?eF2&5JaV>K5J_ERp;+Tvvo;yJCgY7QpM^PD%Qt!BWkc0#4ekR!wG9x-T)nT_Nw zW6=e>o*Zs&4$MU@Uz~0_Lpnr*2@PF7X~1*e|Jppa3EL{B-MS{qEmyI|@w7c=Q-d4^ zo7uVv`kS0*JV!sVn=eSAsZ%`Wq<%;;*8N;?N5f~y^<4Ldm237vz|2qAO8PW-h!l80 z9ytY%ux$EpC+3B-6%m_B7z)}&uUgz9g69XaMrs6Gb>rJ<_su$|AK(6TUoRWY)ou3e zeO+u_YB&F?W--}4QT4GP0{UzJLfAq;rHS-BSSE+G=@V#GY?>UnV zs=~U0&;5WaO>{~m)qlP-x?~_-QXM4aT&Z{#h83}?CJ>;3^E!|Xep;S^sVoQS(*RxR zwr`fBR`xZRh?Aj^x`gC~6DB9G`4U;#^a}-%`#KzMOm%eO#8bG5cM`JVbA;flmCqm~ z9x5Lef$N=)=VMV>a%qW0|BcE^3LLbbNn_BRwECyvq66Ip^(S8)*C*J=xgvNNwCiil zm*$Sa#@Dz{|l39dgsP&Xz9Z~f|Ys~I~ocD&3ycFOB?-RXRP zw8pRr31JGwm+Iv7JaMR~i=dROu8#Uo2sCjlJ=TiaG@`)FD0qBe{1 z;wq)#HTTwl$NBC_pcGPYI(+FOB^=jLN^x7E!F!y3K|UD6pt*8ERjisVpKf4J^FbVX zwQ&dTLqtyWDIRNnRiw#LugGWB$LCFT6(;gu>Ng`S5#>YPef*rOL@a0VU>#L+5+RJ| zFDR45Gfcp{B8h8?K@02ivD!{~>2pPNZO54JV(;g-i?gxt+#WS zC<z(ni-M1_u`SPmz8v^x!U8G1aecTxob1<^y|%@P8*20vPaX004UZZ|fuMdHvDcJ$I01EWr|; zRTYHO{gW77HtP;^L0$#LB=`68h#!OUz<4_A2VF~Yo-X2?b|IGx$m%Y)M6Hc#d*4qX zCBwxHenbBOlyrhlkfcmO0V!6ut{V=(W3)QnU96~e-8E8u{9Lg;zy8Ebz1F3Obx@Fk z1rs3xvG6ZzsER&<^g)>yJp`Gn`8B;@#YRyM7wQUudi2S#FL{cgc1zHGtMOKIrX>8s zKVfDG0??^HLng_L+kT;RwV+|T+UjK?f)rT)JXLpXreS8H%-k5P%yBEf9cQ)|sWfTJfwi2QlM&G>8KICrjuMWmbo zK0X4Ig)h%%E~`YD=NfcKkAKL|6e(uQGu)*WhQYwRW8NO=eX$G0l%^!xpV!DQZk^9S zg844bb}bv<-41Jc*cVvrj@Re5`&k%5^1|2nUO3M8){$FKj~^?Wzg88j z8OV?%1H+s3r}=?gF|^9P^~VbdTQI>EzR5Q4vu(dsCjbiA0k>W`~=DLV3o9hB_wwkK`XiUk5I4rlCTB)Y3KAH>E^kl}Ys&LF3iUOnp#?vbrLcF~4mzLM@{OtIh zK7bl>!G!?s@~hXmIl7c%lI4UtudbB0OE~l3=95dS=T4Gq!w85Jc6G5c1Y7_n<`iQWH7a*Pq|6;+z(DF_cI|QgIKq zwzF1DIVB`{oh&;|+P00;WG3o?HCYH^R%Lm%)5TbB)I(S^>r0etGuxz8sPmE*l$QO~ z(M=rvO7}x6P7Vi90xdhEXc*`}2@ax9I%n$))h7g9t{uAuxBi#g4LCVd(_cfoNAR=Y#7J|1ERiSAI zq26cYs=^BZ<;-^z(1!zTXAa1Qee+>I&oKZ^nMtk-@gtvK`uxoL;Rp3v8lg1nV4+U5 zd7tDsqKctEpjIY4rd8^e;oDb?WkALy+xK!i?Q~GTNRzmZThhh>cPVC!p;s@@W&IEp zZK;p5+_wQx`!e*El+)a1cKvm3PItPbbI2L6Q`?0$KEm@*Tv@cgGL1bLp!82qs5;YmtlHidNPt3gtg(*YZAhH1ALS z$Zj^&9xpC6IoBFEwG$`R`Eqs9{~UH$^}P2Se4*2%#V}cmq>QRJkLv1jOzD zz%*{i4a3W*cx+1?`JdRlTW?uQ>bnIg{(9lGRtPw>=^i;*F=$1=n#H@gfCk-gvCp{r{fm!eaEkM^>%owMY*i_zQ5Xx(<8&FS*8;Wxiu>VKmPQ>IiJ-y zjt%A)mp55uUn5T9h(|_=hL1PX>5Zu*SNoB66W@$-MFdKGaYc(i+6fmUmCzbt6tJ4) z!sBk)k|Q1HdWnXIr}vUC8^Iz;JBt882Oth2kF^ex#islMNbk<6iCzhDgG@t*6zp0E zafthBUPV*MN4Vs#GI$lMlaU^T?eWt0?;omt@foBj?u%r##YNZ}ob1eZCFwT9^RyfI zU271Y{(HIuCf@|v`iR;zs_e!=;fRQBRqTypZcc~OkOvzw<-+%u|ALE?nL4bf>D>lJ zD!!JV#$sUYC0cwXq@8SeC&8+^W1aCC?5i+k^XtVDupsk;@Kwoh|HRbzptN=-dDakw z9&^y)lyl1JP=ZXM#I1*UHGuIYLCDj)*k(wuvlm}QKd;(nPRb4CPLsn*%Mbf1D%JLO z0Dgn@?lf1j`$knhxh?j5^Q5k#1VrHwhgH(tET)Z%|9o%I>f}eGPf|R^^JBmdsy*eX zaeau`LJ;Y+O1Vqj7;wm3E^A+5)NjWjNb#3_Zcr zn`{CxseZt>HEHz+2IDwM%)Ay0dl^C%tfXGBtyRe@P$`@8R;=?cwY|J&l&~4!{;TD>PT_*@<$WZTgr`4A^J}YYD!J{I~;= zuy7=j??`(CdiANm2%=*rnAH9eOn-=9&q~R5D4Rk_S&m#QGze_H24g}eIl=7dWGjt<3~hliWL^) z1H;1z^W>nnw<*tgluUV}aK_L;L2Rl(T3JbR3w5I_x!h&T@?1{%A{2j5>@{A|weRGw*N;B9n65y-y zQV!Fui&bPcVnO(`)&7$AFz@C9dL%3)JPw7^b?%bOIL$O1pr!cKjIn~sO}Km(8nkYpZl z2RO?DXa=fhZL2Iu5F&HZ$1k|A!BI0KPT>7<^k-ECxrAf)o_R z1nJof*=LpN>^V4n9bimC=Jey*}G)IdH_J{_4c!c z4CSTjUA)+=)dv|f3``+{E_*mf83j-1a`SzovlX=IH!9>Ow;q55WwFNTOmVIR7EQSkxK)X=J$54R|DaJ zu?GNt=6PRUY;ZqU$Ouwsef4;KPVza1)8`6)ysK29rAfr&kW~l3ElYSrR4Z^l-~zrY z@v6baiYaIvRZ$U0t7+kwFjRuNIjKv&7+NNloM6Q|(p?m9zBo37xWrE4ZsIwt8_qXZ zL4DOwYptG~XdNlgh89VKc=>`?5d_mJvHWn#B#4x6;<<9RMX=h8PV-_=`8eZc*Tp_k zPyKAcPW@ygvV3nnGcktZ+`B)<@StE657mvgIB|{DSAEK8e|=|V*b;!8{Evn%ryvwo zzeABa3MghS;B-!^!C#&FmiRfG&;L^2TPQY2bK#<&*!du>&4+S((17|noNIKrSKY>c z{4)}ME*=r(`ukM_WH2h0R-N1U<55l1W~1QJHcp0MCf|Pev!7@81J^ESeAYWBl*gwI zC)c$uX3r%eqPTxw%Tw#LK4GYj3@I`zW2hiw6|3B{AH&H|zQ@5(^k-ybH+ook0w`5$ z-`-t=oJLd7>`EZzDA-s+BBIJoZkz)Epcbsgp4YbJZZR7}4U_s2ZZ>UxFK-dZq`D`1*NSbB1X0N}XMA5|X89TiY(6(9~tFUjWHW>&I%TqmFaI$W2C-1c3BH?xU z9;`G7_~=O-%r2xe+^G8z+{$6m`;1nhDmN*9mCk(dJOjQDaU{`P{NcD-t$U|=UL1(M z`9LP_R0SP0O@r{;6oV2a4M12^0vtOBw4FQ;#*M8`Ku*eaSRUv#@U8eC#$l-YE!lN} zAV+>z-reQ+=j{?de0txLKb60?8bO(GNiXqNenq8C$>tDBe!cG$8L+trzwH?2aNZ zPSgd>g`z;cY1=juK!yvr$yEVE!c=m;lch8(E|DN=M>=Yt=6CuNw7BR=p-N5Bgxixq zpjOIyO=iqS5bigRKd}Ao7O4#iU5Syq08=S=ldIDIiNkVbU~AU?sf0hp?+ns8H~vG! zLpAR!l50>m%`c-M+3-G!y?iZmzHk-A5fqm~8m!LS_^H%vB}luH&eY$F3IoEs@fRTa z&KJjvD9Tt3y*l^9a%C;o`7lE~1`QKR$ry)leq<*Su6vu=2VWfaLEGy%J&>Z@q`yhz zeC%eIE)PH(OR2sN0Wv2EZl6I>aqfQw3$Ta`9S77q&*OM!q|98o!diYsm@qrk-`@cG z!g-^#(dQOw+&E=j>RH$J%T@~9`}=XXIrGkz&&;LOg^(ZEWJKtZdNSr zE;Sw0xE^77;;5P&YLfmcI?>iZGc{=~@)_0C9oPQ4*I=yzlwbs*asBsDN58(w$vt^9 zY}qo&3=zfdPpuwaw_H!5J|AQ#(40z7Z|)M#(Jc{EopN)u1j`;W4_AuQ?8c*dP{OW{ z#EN}izgFCp_|hQ0&=wIw0pTA&&aOk)fBFcoj1h^gFyB1&YdH)5i@MrBn_^w+d17@4 zrgb041X{qOWpfMw007*(7v^bGTkFFV5~p2_%>z0LniYbe$7EH!q_qSDqhcUpR?asW zMk9p7|C6pT&A*Y-`CzBh9~+oq+g0}o9ga(6Ca&?EZwNTPZecN5nBX2coIPD@q{J5M z777v{^jy*edeXJnjr+0W?7BGAGKotoe?_o7=xzS4I|k>F4-Kn+FNIAcCf_c6R_(Bi zTjV(~QU3yJO9=U6yGIO;#6@1Luj@jRcj@yQl>NN_*HE$I`(E2S(K z-BpewnNbs8S4_1g3k|mEZy)UAnaVeLO{?d**WO7m@>P;(wZFtKkkGd){8Lsa7m&g5 zrqUpiF8s)F-{*1FKv%9bo#r~3&+ck}@izahM=T%w$#|Tk{B&-@CtHfLkSc`jy;X&_ z@F8ycD(1KNVp4RX5sHqN7w3_qhE*U>R6iNP7fTsHF6j}+Z?>L(FpX->oT8+G{I_uN zLIF;$)KuGLA*!+Q_%JIJIHO_JycklB`}ozwHg%#-<^tDnFV`v73))fD{K3sc(0$qH2F<^7ji@Na4WM~zB5=@R_e=;= z3m-t~Ga$MY)&5zba98pPv9AeeDrsr`DBzu_avWp{L1bok!A%iT!erUT@$~8(=Aav^ zZUuUY8<&V2SAjz9gO_L`!o4FTGh%4`)?oJYZ)^vBMY_DhwpCF}z*=?(Pzj23`VI5} z2?`ZVl7O1a>mm<=!VJ&9?{qi`wGpkKomEYVGcQ%5LrM}e7fZYHv(3(_rZ!<=vyP@Z zgVpNl=7Z(Ifjb`$y}7or29?Q;XvIQ^^9|YiSevosIm5(Z3j<;-rexB5A}4kTs0b`% zNUlY^n76+JNNcLeysncq@AjBhGmMA{s%{R#kJBErqo`6{hu)M#$dukz9Tjw690Ho-_InO}~+xPrz&)`4{ zQq#LJN=U@;F@Ct##$aY>Faay_TsoGck>?$qB;U&w-ri(B)P4dyTfb^C#d|uv+<&D% zfFN>Vl#)JV86iU`100?wPxGt+K%~G>i8yq$W10Xp1-I+2FFX~ zSyAkY_PBpH8?Ns>*;_~R|1o=>A%_1vhyZmA+RsxB+3YZ~_i!>%ep~_#=*ODc?OnOC z+HKA*eTH+dc;9RTp36)KR-jrxPQi|O1dNZW9`x(p^ zbo7^4_vj^}!g<2j+{oyYl1F|!{ITvhG*D{<~s)A}eoj4b!zKvzKxm9#H%Tb@1!jG4bBRqc0T= zCQ^;3xHg_8t-s2epTc)?reAKeJ77>!X)`FFus1~RG}^AER4~4;R4?yZQ*<0$e%3*) z$=8yLV;V)V{Q7s%8(_qO_C1&y;H}@Xt=TWnS2`~4R6>k>RLWJfrS+C@&3Rpw`k3A; zTvKrlmZMhpb-y+z(_A8G8H6U4-EXG_nWU^nC%(` zpp>7|Oo^B2;&qWOe`BaDO^!M66_guv;2vHE0XtetVwxp!3IL*`H~cZ58#-=lMuB|M z1L(ebxrKz4?sM>0302L#($9)z;wF{hp)t0KBx0C9@+khZe!zu@vET6qzx*GDgkibh z@_?k@92NXh1gz&*03Ccnlcd${jsRj~gF6e7JZMWj7gJz3m zdl*@{=jj1_e!1#0EtEeXj&umqH~<<&As|Sj{6{~0;KyQ;n6_s)xtLloA^T*J6tFRE zG+cTm2zb{g^lk5fCVjHUP6ym^Z~$CmjIpZ$hzLzZS=ID_6>r2?wyN~Wl3t!Jz+ip`O?St$PBDYe zo9TCf0I2pw@T0}j_b-su%yiKIs#&*_xr@h;nETg_yJHy8cG3FTcT`dmi@HPQ=Y2x9 zLQLk8Mw6ON*H&q|&PPMKBtf)6NE;;_&~S(akmy-oVys2LOELzev~|#&ECTXh6OjIm zm9;&~SmWp}K}%2_)cr)7d)BniQsaavfe7M=CwH$;fDooOT4Am2Ob6Vc#hw7A%HS(Q zxm*9x0-i+RW`n$G{PU!nF9X zaFO<)x7J$;F+~9Zxd&wXxV|8rKo8ZfSOmmj`0a%3}{7kO^L&}NooCSH%BCXePHNXg^77i0hl(^HIc0qE}%sJv^tD@C-ajV@z zw`m*HyEX}|X(iwmG0rmTj+>P))2wzV8k7~7I!{sD^1X6%v0OHYk?2uytbeJKB=G`iM~zmgH-eZ6t- zi9_2f1KevJ-02TY%Pqz=TqS(;-Rf+ARsz*vW#na*-MrnPzN$75jA=+Q$n2B88L@yA zO9{9-!deJ`K#6d?5kNCzBEl_U27|D#%DpSdMgsX z43L_v|AyS?!$`4~Fw7!}Gf$0=Q|!IR$ky9&w2jvM`Ose6@eeHMLd5R7V?(|WjC0e9 zFEt|9&(>lnD?G_*!gQqAP*T~eQ@oiH7C9XUWKhF5m`uN*Le%D6v1w70(GwKs`~&!s z2Sp^Y&50q{50-UScyLKT>q~=)8=oQ7*h>}Wj?Ze{0vFdK?&IB+!ua1_KoP0_Oc@5m z2()?VT;#?z<2V6#2CKxFp2cfU?i8B{J6LgW9;QOGp10?H(ZokvN44lZ0x^7jj|s3Lv8Dd3z_`XYEk*%wdCr7=lz*2n|U`DVyHoCn^M-vvMC2Yc6rNI~yZ^-O6i5F)K zOBouZaFkt%ci@;J(Y>v}8iG*_76v%QciQAY)&_lRkrrE!Jq;-_(?As-On&p0y-)mI zQ6!TMqA=SW{;p*$?7fke84@D&IQL=PCtE}-D~(wLF*01-7^rxfrC@6sZfFd|>K5ik zeSBmsN+>qa1{`<}zBmtEfO(T5(CcY<0nxJh8|Rgwj`VLnO@GKcX+OY%LgYuNal0;< zJco3Da$y@2E113Mu`T4ol+og9Oc9N22R1|TK+V**r6>3M+EnyPnFJi{n@hngni>pD zc}O__ReUk%Y_x3@=!T?V9%r8$jDBG`QN!SRK&S2n=hrN4al&$WDvgHA zVLX(HWU%>_o)|nNNIJ~D?fu~#gG?d3I@5m}B5Z$JW2MUedHU?xVjLS6eL3p@mtG=s zw?>Uznkc2UAAqtUN@y=Pw;=Miu4+W0C&j?1!cULa%HjHRXSk}Zl{>fw+?dx!l>R3h z9JgFd73Ek~6_?k!N}q?VjK`>zt*;ZQi{;`yx*2-noSA4BK*YBI9F-1v@uusN;S(;7MMfXIObyX5by$`+ z_7ZOxfTn7Pn2;eOMh5Vy<;!x#y!{*NZ;x|e(=UFH^>cK68}GZ^Jf^#+5^Lq!)b>L} znIBQftWwX6y%@$5I5Z3*jc-W8X_a`I5XJ1tS8hJqTXvMe&Yck*#UeUZQHnepc{`c;zh zkJ}U?8?oq1M2)A~r%V062@HKrqux0_dnng|Ib@M~*64ZSdBjp;eX%hA<1$04J|{(o zfGI)v%tW=f-iLhoX#dRV0d?;U!%SN8^5s6t({$bojUwxV`O_Axl+Yg+@lQzmMKKWf zcQWyvKYf5D8~TyUPk8$MvMtubwC^|&1ha%oQjnr3loQppWQj?uSKS>dR>C%Ynwf#P zn8~3x6w=b2u{U{u_vB5BG`M3RIFN~H9uUx`+Vg8lCw&95jylj1ro>pIwgBf( z@>d_)8W2mPvv@)<-*m{Dd;aDecmv1Z{&{V(Gl;(HCTq#k>*KOfE&C)o){R1p*%R}{ zM=x5VZ8g9-3{1Q3qhRxmo?O_(5wPKmdmc{V@sq&rf-VPUKu!TfXz@~8u-iA#PzD1d zJo@MjP=2>)AacNqiFuhK1q}kRR4ey`HUDSe^Myqd!nPT&(;lT<6${*Uhs-s*nS2K2)F=c zm2bQyotXvH!Pff{*k?98K#O#@+;LUuutM8wbGi;Pb)7k>Se|-t7o2p!^c>7F4FJ%M zc;QME7Gb-0iV&%4vvyveD9azTghlHzHQ-laO47RDIk0d3507Kki+=v57}Gpy7TJTO zvAb;Pya1;4smnetG?wuS>^?=@^Z%jBTW* z0LO+>iIFr$vYXn`MIQm3yV4Ozz9wCWPj#PsAJ@0`(1ZLgJtK^o_6$y4Kpn^@LGt(vd5~R-?=;I>}|uU#ZOO4PIT^ zX&OM*+`AY}?sR`t+p;&2+o_j(ks`Cg|Hw8?hmAn)qa`>}gzAi;UrmiZlSU_CS~2Od zT4tcTJ4l9v_#Az^hCOxzPebP(9)kl)UjPVM_P+KQtNSrva@;}*;0%E~@PH@zr&}2T z^V&LK4o;`zrKXV}ZkJF|w6MKWG`NGp31i(x<@ z+o|bfD7aNQreEP610@2HvGJ_&9ToF?ftM(>5ey*m^ z_YCpTM{8vgF?5!K6aaTrcqlOKGMyot;spmKO&6T#usgIcJCtJES&Z=JR*u>P5%yQ< z4GgDf=lC8xF`Ms0ArUXc5@P#VUzZrX)@(N!gzqyJ2K``;muTLT?-0I8kV8;^dEt&Z zqA{E$*Gy0k;6}AL8oHYy6nc;~>MqYrtuLscP+pPX| zx$|uRKk+g!P@v#75PeMLl$V$l-n=% z{+wTaMyenY#Zj9l{19oj&>imt&P`AY9Hw~e_@92U8BsM>1rtgST#pQdJ?CzKW!HSk zf4{14Q7O=bdT`gixlSurg;~AY!Ssr%`Vte3GAZY4Y~WW})eaxk8>Iw|DGbjt-hsc~vBl=B zoYn93vm45ivr4$?^_(lnaJTLN4`U+oW~v1sZH|Kg;wI#p=T{-q(~igFwK^pTPxl68 zD=L?(Zgf9BWO~Ek@gZbYI?!_?a_hhc_Lmr2 zV!KA}iT^zRqAHB#0@zw>7T=rmfMY7o0`@aNaTq=4Y98_(m6gU9gB49)n}iZ^SlH+# z2E_0 zhlbxFH(Qz&dKoZIBt}@Y)rck+76`(p=_baDN3x#@3drP|L6TKV6hk@5aE}3$+y!^&JcV*Dqb9gp+zT%nsH7f2Wb%c9b)&iak0h{Nz^xX z&e;9xubV`&a|DAYhC?HIcurr^wE$xh?1!v@3mogG{8Gg;>Ew>(!ha zID^zn0_}Itu;s1C@?#BI^IL8A@)-oDH2&)2>nyM3dhpeDt2>%edm1=ahJ{89XA<=v zO+yzG+{4<*y#0WQb>Ylr=ELZGWjmVtdcH4WCU-@FLSQ%M77i`E$Sqev%z07Ls6seTcmn=qr)vo-c`M*#P~h19`3Fdzu(F zroZV32nM|niSof_ntr0}Kyx?ROV`u7^e8rq1ofjVmSGEr)LK?VQL&P=V4f=!-=O|0mc}%k&diqvPcx@H3YPeyc1q& zZCcyP4fE{A_Q5zqXbWoRQq$I0DFJOGcf;p(UW?V=USKsLHtzZKxX3z)C)+(=psllN z-lf`UeTC)b#fiLeToiZT(~NMtW7kAHuTouNZf^`Rec?RxE<=O2fUWS}Mr`!}rWrc= z0sCd827qs*9bCwFbHiK%-#&)klOtV;m+PMqQVS2ohCV9C_V~c`#AAqw2eg}%hU4Nu zyH6?+OhSvUy!`Q}yX&G7 z?U4>`jot$N$mYj)PM2RBN8IOu58DZkmZv_c?&#%&V-M3`h+`T4V*_XY)BV*&{-Z>J zg;R0dwjf)#qglVHTf{!-`;?b@cbVSD;gFhj-yg*yM>;X712*m88@Wd#`rZ})K1@GX zmV}qkM#ltBs%r)g>duWUPU#Hnf+1evUWOfLL__qcx!xCvEB2qUPHE8YbX6Xa?TeADC8|SC9^oeP^0x?^!k_3;_}kc7d60oTHCPuQ zjru&Je!F6dp;_1qfy;4Ofc}ifKNxA`vLj)FYe0Knz|voR2#jgq5AJM;BVHkt4-L7M zu>0=a=evLIp7S$hY253Sa0pSFt*@c%Y&w8D?O5n*WgYy8MO)`vZg~_kj>WUx!cfJ{5lq^DuiuGr%vkURfiLALZ|HDroz{h?ib(Otx;|5 zs1VJ?doubilxN{jbhB789BM>3DBKc_HW;@d5$lHK%_e{|sO9L2jvbG7)fgnThP%|0 zn=RJ&wi_24_ZRMvcS!ze|CT$IZpau>{TH@Vp;zLJA18>{(>MNP6o0iBJxzrVxu(-; z=$F52iG-5V3`e(=ZjpZ5E95oug+9PHgXz_`+Ej*+w>4cH&Aux-KsE0n42b~p=i zQ!RjuYb(dvDdH@C)_#XmSno2f11LRnymnJZ;b?^lQv$K%J6?3Q^voF-lMrbn)5CY^ zjq#izZ6wZ#=esGF4pifTP#59*=XMu~HfL+0?m^})%nuuXChqhaRt>Fi6=RKlgW`>T zv=l6b?7ldZ&{=(>7za zj5RT{V(CEZ(9u%n%q@XGYHeFuaLcIb{5$RilrlMzyCP}sWjl3?sqN2t>^(#`W8Vmg zXMxNcc$p!?AMq`8T2r&5#s44D-YcxBF6`R10!jy^h8j93O?ndvgpLSG2WbM*j06n* zl^O&>uhM%*kS0}Wp(rI(sV0CBkQS+-{mbwF_OE#awI7wdNep826Jbo&KU& z{BFeEm4U1Bb!c+RWWXoOKWV8u%q}4D!O2tI?FHKiE&9^Qip;Yx|J--{Dhna8Rp)V# zphtT#Zvy31vd)}iz-!>4Kh5Y%@kAy_jNM+k+;P#*ws*ViFl9i{SNz}O)T< z(x^u{TyHg$ntruHsH2FsvSp*|K(ck?Tmm8>PEo`tc#|aRg7&mm*A9c=(@Luk#FTw| z(a3af=wJSIQw;VebX`_Nmvn|4{Gq%XNn$h#Vx?6t$i{l9nq?TMfiSbWIzMDFA5@%= z0HGIDYV*(;6!jqygO;V+Cr=Ic8VLe~y0>l+aq+m$@OLK*348|C&%MRwK==C7|LVTZ z=u{b0d@7n=#y68K-zbun3Zw8rC#3>nUq$bUUn4MY^m*H1tKnMOQPhHh#giIoztlBl z*hSRBFZRwGR<}e9IgrWE5SPm-F)Io5)v$9Q&btVeTnK!s{YI}q97UScu>Co%YOX<{ zdhg`-v>%LmYhPEzHRZr_eE-2VPSDEASfV|Lu|M9Q(O&bGFw+k;<@+(Ge`y;&!FUce zl@vFdY(>sn)4{1+5^EORz=m#Ius{ov=NyCGk|kc=>#*e|YIR8I-g}UCL1fb1{NcBP z{8mJJJ3?gky3~A6n60w7LAv_pul<6rVW(?|rn2=9FrD%)_3xAsH=UuZT{N zD|5?Tl9&AxO0S-|?i`~C81z>mt{`z0NCh&})*~c4Hxio(u?LO64<-GRZSc;#jkoYm z6*g96{-*c#LV})UVS4cHso0=p3Fr=?JMX1fOS6~{6YI0ibcSc&16l$%lh*|4fyxY7 zq53Tvug6=jTAQ$^Sk>N`F`5Yd4Dq{w&ADWvBDFQSs8t-gRQB@aEZ;adNVd*qbJTW0 z>|W7}Q!aI|Ft9rL8dCY5MdkM>*6GDCkieF9MlB%fGdk3a%d*{4o4Pr zk2K9Xmr{R1;2W#5n#Wh^=Rc(QwRLYL;+5qGe19WaR9cS3j`89sONAgy8rUi*e3%=s z=NguXp#r{M?#BhU$QuiKCw!AA+7gQe@^()MwSS!ZA}31UJ*)VB^^W)dUej_$Efv2< z1DtoEH>ti;YM`m#Z2*@RD7PG=P0qS}s;ioJmJ$wjm5-0Hx`j3~GDCadKYKSLTiuxi zFrSj=OS#P$BsFbNip~M6Uu3l8h_-j-lvOObG-3~*NuZD%#_3Owq7zoyX`~AJ9vbRy z_Sb>)p)RpGf5anuvUwG`kpX$WHR+VuJ zwBq{Zp|F3uDv4NFQ3@Ac*}4HcPN{jFj`x>(ZYFG1U0*1PnwrDDi8X5!9VzhN71>FR zt|_&lOboSa16U{Q_yLe40WRM4P)*WtCK`%s5s`k@>0I1a3;bWDwBleCLXEAjT%x>N zJX>;4O#hC*%CawTUhw?ppWyhVtGsI<@}p*)O|B*{UzoS}N8P_``wvP&vn|fHZB50b z(ix881|8Z&Mx}pt?V6LWe3jNzPs;2cu$?<+!njc<4N8kCKq$pyiW)=95fsb`HZdeK zVy5gz>b=qSMY>FeIXW=~GO<9(Y%q)8+95gmtx?l2g|8fiakDT`GO5x10PCO9=w5N7 z7r`QmTTH@!q`z8bIlLd>NdyrOL+zAwl^qGd2HTJ%MtK4;v)>%NetKcsz3~v8tB`uU zj;i-^`*w&)w8`1h+48HoGr!($_~ShXgUHHok3#&}2j48=Bl@b#l~J~FkL4MG0<|~9 zh+YSdK}k-nXE=cgCMX3LhZ48=H@K9jxHSr*b&?km3l?=~{f|rgTkYFaaI0$g+wXbH zr2J6=*A5XUA2n|W8)35qV&h_H1hqUXH2U`kfXjQ!ll@C4;I2Hj<&Nr&k0`e0jKBfJ z!)4mzie0Bs*2X;v>(1JaJ)%qX@cE?j<`T%S=bmK_>BnULby6d2sr@CgV*jhXM)w&3 zP4|%BPF@hkZK7y|Jr$Vq`qrL2#AeB-_~87V_C&dXHZgUhQpRM#vy-~F=ee(z3kTK( zdm3bJzW%U1);W3lkW%zri(~ghi;7rrLmB@X+fp+indxK<$zmSd_Ab|4yS;8?LSg^4 z_9_qNz}~eX9t}}RAFXx4c%(lmxEmzLEi~zhEBv+$FVIU)y2l_WQIO1}fl)0=2(hvQ z=|hx|5fUP1uW?}Yn{ktQ{wxKLu!kXp!o;H6i;FKm^=y%--z;nxdh$*l;?cczyAMc$ z2tL>tPH26D^$sn#{Scg4^a>r?(UC-daLV#jGQ)Z~M^wT$;T@I6*; zN2=uWd#$Rrk0*r4U&TJMLUiPbaeRZ-7~NPwwA4SX6?(9uxtv(E7_v1+69#M6G6P;JUS}Xg$jDR)IRILyxohn9(Qv<|`X|V8Is@;BgIk)NhToCC++$D(sr7H3+z9omIEnnDZT_vvHWc@WVh8P6^b$Rzp8+ zlIBecmIvc+vq%)nzX2=*pah&)r0J-=GSC3}=$}BDp%+3bzO)9)>u|WjTQ2vJRNg&e%*I;7t=`55L!{s=c+ea#?f* z+4;NIj$jyNz7TpFYm~&X&)4q3JrKvFrsTS0)UMluX1u2o64$?13Ka^z8W&W2P}TFd z17Th6KjJKl^~GF4rdaC1ij`R3apd}cuHSsR|I!&MQn$~C6f)iJ`>S?eN+TVopwH+g z*hpBvR9Ns2yZF?#*Sar+N^*+x=dE@U1*Ztc*lQpeZOl0q3I&R%rsQiFenG={k`oyQ3EtnPAz;3qXTi);bv4ErHoUry5~QHiw(vks*@6z%FYrB zHaMgng!W#bIVl0t4l+G0^IUcoxG2%-X=FgKGeL6lV4pQ7EmKS(rb^ue7HJU|HbI|t5oY)&!7F^iX7XVjkq+DnkxEp@xhMX;~Vty z4g>K>r@OYT%<2yNPH8bNI0t;m7u|dMO=VmI+lF8Ss=k7tXpNX0kG&$P!8ynqofoyKa-k(mLVJ6*@22eW3@iu3~h%TxhTT6tnl zpNPZ{R;V&^vXP3zX%EpeA00j`YRJyrK2d7$ZlXX61rl}XdwIX0C#sB(mRI>9);EfC z#S`Jr` zsjUFu6knqNZvk=Ho2C^JVY%h@7wl0Q5F6i78pnePfzKS@9{zvEB{$s<3r@6MI2n|# zRA|lx(k)->slP0ZfR<)!vZv6}yL0Sy0Z-w|qml2)%-_hP!!lkz;%ZH_V=?Tlvq!h0 zwtboDtbX<3XY%#wso6L@F-YAN^(Pa>6X6ojaB_RJ>-;XC`(URQIgDab?yg5JF{KEr0VIDfe;1=+|Drk`Hjr)2 zHY0<<+Lc&)puA+YDQfvUPt*0UqA&P&Ut75Ija_Etp>OstXSGp)_FuE31`-kGuu&!! zMaX)Jpyi6cfrejZBAM)pn4*yO{faQQ)2HGf8=$mU1=t2XW(^|D4(8V_VLxO&u6F+R zC+KgYW0>h-0je<2LgfM!D<8MeRdj@Wx+ily0N5n0w6h5DL-t`0Y($f{zDli}(==jj zhQ3F>JK4k5SaZ9G{}$hFn9%o{`LMNt4pqs5tXN`=Z z!%(;{n7|nGyVj;_$$je|p)y}BveoNJYy8DoYk#`+P&Z=TEz&95{mtS}_T7gC36@Df zNS-}0_4j4(`5Q`SIJ5E#$RSxh1%<=c3v}SX7ht@bHzCsktOa#tGWma^-;vFvu4!T4 z)&f|B>6GlPCuu&GD*)}I&3{maSaiudlVIE;BfJpppd=gjtv|nAMwWj;1~5>P&LsQC zucQ3aT05}zOGeLlEwjS=7U$?RmSfbTe+psf2!B9Ec!>>lkb%_5ob~B*{xkEOI)*D|K;oi;Rwu_<#+tO_|p&q=+L z^1lx+G)9*F{3x%Z&8hTx*4xUItg(KNz>2s-8>xX-#h>#-y02Z=_e&E! z=U5#5>C?llJ&e{5S;8~yT8~cVVTLJpOfb`U&Co;;Shu#LbotzL??A$zS zm`jqoPG1r^ZUtls(sSIi837K2%DqK6&0*Lm5#J6y&HonZ4TRSRRTRZuf+T06$?nfk zfBwZvNf75zzr6ahcxT~wDqUrd_WlD*MWE=mzo2&VGr{B|OazmA=Dmal&3i%*J`CnP zOYIH*^8~M=o0w0*?OGpgdl|#Ke$_tu-FpPj4@B1fBCScQcJq3-@KV%(y#Z*du;Xa1 zvR`G~pJ12gK4in1PLI=s&NZGxY>E|+09M9agk50m`%u}9$ebx9-+OVY(Z>|CwBW$^ ze!f74erB0i!0E3zvGdVoteLwl$7px*0e;FxKxO-Sesjs(FI8fEkLj_1-jFs&an`~3 z9MhNInXa3Xn@Xgf+yzlm>a z_j46LXPy0=Nu3!<^iuKnkXy5N`pz8(O`*R!tvB2a-*_6YputOFMk5nz!aped(s+Y8 zyY5_Kk3#B3&&kGD8tCd%ezzZ>`f{U}6tSrtg)0s;fj+Mlab>iu?>E!otxNQ!RPnU0 zPT*w&A%_u~(N0L(sz+Q%_%C6LuCI^ zguvFHtnGx1IP5y;tvK~+?#z^Bbs~N;>0MCT4{B<#BksfyycZOW6@_t!OA5=UBNgP3 z(0zvu=If6Ai1BhNlP^NlId^>@bBAv$Ws4UKXmZ|=x4}E?6;g!A%C|punp;oWn+-!J z(W+}Cq>$Yde}0LKkx;i|mL?YEHYp2`_YO)ev9jJ;?F*clgz_YDJ<}kdPs$26->Y`# z8BLK;5=5(qezqFp?ZgUd#-repAH-8?cev`XSbUHA60-p@wMoFho8rq9RI~5|9~U_q zxI08|x511>8dxi>G_S`$KGZPpF+w@a#lJr&+XC)x(s~y*pIfU zvgP7dw9MBzjJ1w`m?PmHGZWpcZQcNes3XXX8^~9m%1?p=?_r8TVdWkbY6IdDn03)2 zeiT_^1E)N_J3C!mYnX%3Iwy)`lrYmQZ1;E9ewn| z)p;!n>IBTiP*o2mw(Jim&32r+lcH|}3z8*stLgxW1`;!Vuj!p) zWb(d56F!*~?3i8a(!q(s6stL$`?0=%l1)6XL?a?P=h%84z~Hr`{I*Eu@Ui(far7kpbLGc0_^e!r?YS#FUeb%ySw{G=dB%e6JmVR#>z1DddZoSVu0+k4+C2#~Ip} zn|iGMZ~_-NT-2e*Re&bK4Uf(fLly?n@Bf* zvM-qoOYLtNn$u#M+t zdm8A)i#E7guKTZ0p5|6J-l&xuoLZoDz#0YWl8lyBKAV#qs=0#y5x^mSi{MWFxW)<3 zcOJGF?l#gzkPLq2<1HzU9SV)Xf2Ya1v|^+8Oc;060r>*wYKnUAN81V-1IRH%Z-Q8j zymO9LZqu0U<^t2u#)9|D5_$M5%#dc^x=7Kt4$VS+(U=F+!uG=x_q#aukc6vd|lJdM8#r6$6GnKVaj;+?$XM2@^?uYo)p*%*4O=W>8PjuAId$U|L?LO8-F zq3pg67mM^z?jK0UFk#)C2O1_UMZ?AoR7U)u-P^E7;k|8B>yiW(N31CLAqc`VK%4m8 zlyH=pS>oi-@S~DY?4-jHB8$;c*p3zBgp!feOLZX&mxr{hK3hLCUp2F`eO#bO%7s#_ z*z8BFxwIN)7ryI7a;5P*=3Q{9`G|vGD=Na*I;>5)XO^8k=Wb>I3~SC5 z%|*iEUc2Eyd~5g#6Vv`n7mH1q8_Y`&-8DZV8(iNFr70hZk~nKJihAm#`r)Gr4>Bw6 zrv@C1MwTfM`InRfZD^pOu5pF3XYP(5&33>Z;Et_UmdXV(8nfu@0%uEs{18QI96h3ewT9=&33 zO>celI!-X<(yEBUR`Oz!4!UXtbx@)&ob4?93kl=nMq!F1aUF?NU>~BC)yUYGTmc>U z4T&1GNOC;F0w-Wa=$qwa!wd*;v5=7^etR=?Q*9!ewnN!ge_EE##o-e^G65W8jCju^ zW-XBI!@;lWj2A-MUuCd4N-N+rIj;=jrp{3ZO>G@bJPD-6t982M=hs`<`<)Hr_v1d+8(sO{3$M27 zBRV^>e0&_QwmZ&sQ9)kPl(3MV!ldJebG9m0&G37_cRU)&X}DRgtW8{Zh_xq^@Qme3 zWE_^qvEz^j29SCh=wTFTbFB_!K04OIo)(?%A>+97e}3R+h00TQ?#Fw8=&_S&yj00{bd7bc8ssdyn)JqA7ms=mPN^eEOb(X$IFXp%&_Fh@uF^J z;M~O?Aj`y_$(tQ-pgqH$p3v4_C0MVC=6dOX@F-RLmJO(Hl!Br?MWF6;F#LhxM^>Ds zP5W^73y$uVHpXF&5JzNZ(!FCHrZ76dZg3!<0-u4)isl(Yj#ibFGn80?orVp#mG#u=1@(eh^AW~tnFS0 zDt3%`;>s3Xwy@c8TbKcTvjSSz$dqj9S7Y3i$Tx`l_?f&31*|PpI*cPnDHv}YI3;@E zOAajD){w9JxHg9E*8A>hGC%wcbJvq)D^xV=4l)>I{&IKKeOGN$&9d(?Y%kq4Y}WO! zw7|Ul0=3B9Fp?XKQr2U~v)yq!++hxkrSw_)$Ohx7<7?4NY8UWa6RqJvsXhGPhq~)e zrM*f5w#`$R)rxptfAYmYEk$&;OT>HW^AKNJXWqg=f5AAItwhfsH!$pQ7kNEq6zgm;&uI56a z=n}0_q2di#w#)~vvG>tlPjMS&CG?DKu^2aO-J#{en{;nYrGv4+iNzKhPL5+(DN3!h^OTSfhOl`0CDyyn-a1XsaaJ<^^owWP> z{(3Inc3V+-mp;dr=sLs75^wr8fAKJv=57LXts;lSFr5*{#QKD$>m)fz8u{n$M4mV% zHeiEXMC#Z53F|N&XvwSa_YM9pR9wwqL+2O^(6g zT9nzavl#1E5^(=9N$Yazaw|<0Ea;VKm&?AwAuWuSe{fjZ^=QoWH`!{=Uj^^ zbz3zIlz4g9PAI_IBG9uc)T1M7sF)u`2uCtk^_G4>)=$>rJr7N^K#`XJvoFk)rCWY` z{%v$ul;eWPICS6UM`( z#^nB~F*NfBF9}+ z7JXg}`<9O9sV=7X*kT*o=ejFz?P7l|iZHpaLCVq#%MWK@k$VBO0_qk}=q|Z=>%F0U ziv^A|m%@Na2~X(ay-DEe*#FK6+(}yQD|xpt%}yG!Q(P=IP!(etE#=sakNb}T=bX*9 zGQTbvCXQW>Co4S0o!rSlmx76k)Sisfxt7G6Klp^TYjO^r0r zd?h&}s3NmetkVnmNjUVRL09)j1$t=dKj_8lnb3#je^6RCDqClrf%#{ z(f*_6lb$@2XG0wOtBZ`UC{jsyQ6!{h6&>q}ju)hJ==|svI?6Y(&0*WpvJfcwA7>nI03>~*+=KWiS2f_E`^+_IRoZCm8 z#F+cCcQEdoMKbh9zn_GO!3RDhNYRBga9eFd8}8h+H~(xE#zBX_m)oK%D&DDhkJe^& zxnUF$0^0lCVEZ>_?-%FF136>>xBB$048A04l2B5a10m~d2Lz=WyrG+NH}lgfo9$$r zR%JtFQhPfAlBO6?quz<&^CnV2+Ni!iE*P~D9dO)w4mqch^(Mo*Pv}h2`r4l$+9r8@ z)1Y|9+T+RmqrhFRG8{R$>YSF_;b*Iii_^*3qX^9;M@mApVuRn`8mD-$U;V?hbs2b( zNIVdk>u=>9t|rqt!Qj2bh9(-6-m!8wH%IWKOhS&{?~Np~`8 zubSnA2~v{0nJf2O2v*G5(c1?14M8q{1Z*&x-w^hIY1)VwaCMi8dKU#+vur?v3#wh; z%{{P+g~r^m8aB{*0}k@0H7u}kh6n~aiu2uI0|); znAi0RVphqoBO4!`c5NFK8>sLG&mqEgmAnhsI1lOpapS3GU0D!cl(sETO1hVbW-rWI zJ#>fCGFV0V=lDD1O2;nq432Fy>;M~gyad@lJYMNgKHsl7J_ajZ#of={q8~KHjy~)P zUHu%qEO~J_ptkX)L)yCYd~{=fN6b9X^mCGO^}cm*M~7&jyC3n)zC&f&+xOlJ%Ur8d z#4GL&J!6uDow}VviMCHf1b^$*8+=6v1OCqz6W!PRui&3Mer!72BVHRrcWG{+|PcN+Wq-qbzW?uX7`u}rkg=!$1(_C?w06OjyzVjo?8EPH4T=mf+>tdNLFuL@ol;j87VvBr5rYlUSpAbKclQvaZT_LQFXc0 z!;6yfvNX+-dO(fRgnR5G>KA?H_3-bg*}Q)<)yd*u`VhH+T=3cX<-)qMiNc6-T(zuZ zK!q}mM`Z2j?LJx`D%Uq*8D1qTy1(ms>)cU_f8CcZmmoN26*R@sOr$y}aF+d8MgeyI z(Vh^{T&HC1p$JPZvFBQ0jYEkZP<}0UqyB5;0TA!~Ui>v(=iORoyN$P8=S?*&$ocul z(jV#~U-3CG6$QA(iwxb%@2`(3;A-QXROyxvf!;Q(V?+K0O~-Gv>CnAT!BH#0nU`_^t`t$ZY~6CL^IMkUX$p&pIQvpp|L>oP+XO zyc!iVuV#r?+}S5SwRnMbF9p0UcY$)M*wM(o`pA^oOxEIeGLQN}zCr?Xx0wDEI*%>- zq@h%)I;U;B`Td9YeE><>hFWqXm)bCm=08Acb)D?k@BP~6+w+fhSLWZtsp^+ywzSM@ zK;z{^#}TmiEhYZ=*g||m7QlB6d*z-jBovZm_jUe|o}ZM=J6n%5q)Do7nyZ)&J!tf=C+sLm^f-u?e>QZadp@*wRIJ$!0_4r%ve7YG8D z(xEA(XY&AfJ{x%b-m%2EZv}O!=CY18A@TLXZ(v6ys`hn5-Ao+0DMnac7k3a+q4=&T z5DheA=(?oBwJiB<={dKr8q5XGwsgtl$SS%0V->x5^O=(z*Uh@Kng+}cyFDkd5C?-t zCo6*x#6RiUMGpidD~8`r8bV_&jYKI#07m`_A@1rVuCX@yb8$l4yY>|}Z_d!Ce$xs_ zu*8VQKWPydZ%Hc$Gvt7hB!kSuGFq~%RA^BPM6VVLykaj;(o}?N&lbELCx)#}*^gTT zhhLbqw`2wWZ5tZpNS`&$^l1mW0BFSec;6*kYFob8*|d72$B#8_{X3#i+rIg{RtQLN z`hEdGe9)zQ(o$L%M77C>_cQqtb|#iE_0#ip6%~_S!%W>2S$3myMl1MuI&u8Y0QJp{ zK=uj%Y~elWh2agx@QSuSTA_uqmt9`GU|IkGi=BRbb6fEKH)C2GA99%P`#~0%^29nJ zM3u9jqtmGIgZwjsKfX8(g&-|l@Bw1u^?-~%jaRjPKQQCJe72M+nnMG-Izg+j-?8~A zKt16$BwRxZ3pgFNQ5FiWMqD+`dsIU5^dN?lMWP2Es zwAaGf@Xyh@O3M3D232b;ejGXlOW=lXj7R9eM}j)T($(d0oO}W_0JAq}5cGC6v!xbT z1Li*6h3M3(%A^vKMry}As__(8@s9IY&w#@AKaQfpuC*OL)x+@OAWZS~_;we@%ZkVg zP6N}q_r&S-6ajlD6Hh>!O)=fquUJt9`N}o!YqHX@Uc7HdOiRhrqb-&Qsq)TV%Y>Vb z#Z+Z&a8GST-1CU`0s=0x3kcKtyOR?uHNjRB?vtKfQ?!1ukA8RzsvCeB*MMGCMMpXq zX$D)2&!J3vwCY@_EJ1U`10U)KcE_+ECJ4Oq)?{r|!{5MU>!qS@V16FD^Ib zo)|Q{FIQ21(J+`RE(Q#2lcma15@VPvf5!4B$RD55n^Hxun%&hhC!K7|NH^cQf|F|> zZ7m-7L1IPJcPW!;}oJyeIv-2449ov>A< zY>+{wph64eZwUmJ{aJ%b}B&wd~UBG*za zYD%D|!_>8}nE0|)2*R<#RiB;&1_P+KYNPi+1GT|iW5d~7ymVJd+ZB9gYjl^5+j)7 z-!ffaN>mqvSHT=+6Yn1j8MwwM8Q73WZ&KFV{c_sNvpT8PEflF9v~+Kr(oh`l{qHIJ zGI6^3#gn2MVSDeVtObm|V<_Tz_(89smt)m_5q&Pn76r4D3J+7RaW zn+`zdUj3x1FIV<|alycVs}bqt*MpaK9eGg96`di$s4{#$)Z3(Oyjkh6+@Lz}X>HOz zPn5k~nRrU?zEjtwqwjpzKUWu7T)!(C>w}J5DwhBN>OsVZlL;X1loc=LQZ} z)?{>f*e$sEN+tbRi`3iEJu-X|{Do$g;#MB~k-YEd)-SlU{0*?#5#dRu(E*%(}iS(eGN__=5LV zLJg4HEoPa|k=;CJ5@8RsM(DuhHIMrkZ7gG7wRLK($6n*a;-&@h$rnfLO58#~qS}62 zmKF}2kzZ^gy_euSRuR_BVh8fU#3@xB;ll4~U>k}r0pn3`y<)4oY z{pVW8Fkvi{JvIe|ieE%Q;vL;X-#wGt>+GGZ^#OeCfhh!!y?J*OsEk$X8{w`+3fH!)kY;h>nvoUv=AFE zO&ZG`N+_m&3Z+GbGg`N7Lfc*}ui3Coyc?)oFHir*oP`1Odvl8_;b4$KU>u7@%3RRhih> zzUTECMphURJ{rb4g@qe$yoo6YedBy0AA-=&^uCLHf91Uz^YOeX`<}twI8y`A)z0o^ zjYz}TlPLuZc}HJEQMp~e=K5yyNRn-VOi|47{s1@*nCVl6RBTZN^br!s!iI(jizOyC z9s$fu4a}ID@&=8SAGv4>;lQm*Ns73hKW+w{g|KiOmO)dXia6Rrf>!(uhvCm;v;_}5 zh;ThKv4^%_X_XvTvR{nme2z{Q-?w0UHY3s=x6bq~NAQrpJuoH=6{tTWd(=x?uG%>n zl};6NU44?(agbheoCUhA(Xnz7T|P|~{VnAv{lgYBtJkiTu6A~QC(A{ z);gty^+P2tpnhNqi?EhR**ad4K6UU;$4E0yhHoEY@a<%*r$xkKY#W5EmoLr z@gtl3INb>vjH;kUM{7LNBopC-Z_7SKW>E2H%s(}mWGm_kTtl7E1b$M6ejIOhc2%XD zQaj|E3+tNuWy(GkpCiki-;O(w9VZ&FU)ZDMN~lPDvqNQHo2(py6+^|rkNL^cnu>w) z1Z#FTLoes!Z09>w(lyJ|`Umrhek6Ez_MVl}g)ng3X4pZ~uvw9XZ&=|q{O*iwQ?H>? z3j5Nw&)|QpE}0g}6t6;MG4^d$(B(qQL#I%WPM!aGsRNaqBZDB*BgBl0+{cg56L@$d;cXg1Rd(wO8Y z87;fLtN<*TFIxsT!*ahMNuvY~36eCWXzU-|`U;L%*w;kZm?Ft>zk*m(sp1Sbq6$YK ze#u^3LP?~rv7y6t-yMgOgTrU)(Fbj7j$}dgr@AW2Noo8tLIDV4dn52i!Fu|7| z+@g8!z!`sSB49^HbaAX2)&3(`_qlM7a&E$msV8)F;Lajv-sT;++a^8sLgltwEp*Ofuo7!y_EaPJ)oXPD*v^GEiA_=N( zUZ_i>D8EhFxHn0OJ@n>r0BYwChwRU)9z~5VbD{_+vVKVtX2l|6zH&`vZD(tzCnuM6 z?@iTleMED^9pd9;8ml6mFJWoZeoAYFdQ9g`pG?#67s@p+{BUKF)>IAHo<#yYu+*GbS4b8`3+&ai8ozfp&XeezlRG=x?lSQs(-cN0B9Ne#xL*b>1&x9NvS6cyf;H0aoxk=`!;g0^vb7i`PnN~GFzNH*5kRh3EBa(a1{pK6Kg%CY^LuOZG&50WN zNUDtCQrVn`^d^+$5*%5~naGNK3fPWZFDCDMziRgcn!$k3bI+9+V2~i+pcQ5ZgFueT zoxzXz=Z-6ZHz{rnObQt=D^;oy`A?t6#e;4QpB)sAjyDS$g)*$^k*@d}YZ-v>WOdm5 zkAQjIr>G0!aVXR!=Br9dZk18tn& z^!es3A6)%Gf^oH;pB)MfqOTX%KX(e1GVjPAZobpI)ABT|G+; zz6f$$J_e~gVHs^b&3Zd;}7 zTmNOEVCxF(4F|2!L&XI5IiMzTSHXvaJQ^)P!is|`Cv(-Bucl~*Dw1H+-Ehc&vFrmK zYSAVs)PegoyKCZPuzNMF1?>rk(s3AuA~D?Rz8WN+m0eszwjF};{K4{Ua!cF1@jCYV z1DG*7?EL^Tu2ehFt_;7_01GRnA}~}QiytlypYx&W@*y3bgYobR3k)4=-DG6?wDh&- zo(&3H*$J#hbr^Qi9Rt+oz`1W{MtjOn0nuSA2bAGWMT)E}Ilr5-+1E^-T=GF-cp272}a z(Q|$6yFrK7f}x8rOC?n%>5cLU!#;nCDnaAZXmvaU>iBxl*gSwx$cq}d9%tNE5?6y@ zM3?|&40(l|>r2Bv+Ul9!@zO_PEo3Y!YId!?Har*>{(jOgJTWMEcxm|i#7F>TdG8MTH@cQsls4q}d(uH*Bs_QH-h zOmdBInurQY0VE#nvzT~=N5SF@kOI^S5`7%5x}>})0#7?9pO+fQKJ>pg7NS%b6zAS5 z=Tf`)TtmY#Hhiqv#mvQ1CH;pOtEPA=g|8*`N<~1j*%=mbOrx~TtI546HVYs25C27> z4ce|^u%_|Fg8N9Gs=lJVvzntn&$c{Q7r^y!W&7>(QX0lXA&i1(ui<=(bWW=&sWt_H zf`rl!Hz7YnLTh9~c`(Vp4VlLTM+r-ZxbzI5+9OF5%RUZ;96y+DJi^dJ>9)ud^dXx5 zAN&oS7L8`?dd9Qp(0lqip9wQ20^m?cD2Vv`XW`b1$m!sZ-A!%-SDGENEB=X)`O?qn zLaET4Cl}f@Mu$(jUO#3UjtPr=nfU>AS;dRmRK%^lv#3o_TeWP%1SQGx(Ord>^PyJL zsLxviE){GZlm`8&c>9%dJ=rASe0$C7c)={_@BDb1Dw;0)JyrB^{2r>|n8_$iWcn+! z`X&W!wQ1QhJ=8(B)T7lnvil_`uf~cpxwruA;N$g|WmTu+36huc%r1`Yc6DtdQGoh z`^;kI#1n7FCX!954f54rrM?4|T}@Lh3hqzZcUp*d@TCNEQf}Xo~WHG8asE zc0~;;IJJ(kJj061!wdp{1=gYB6HvRP5+MUm-QXLDVa$BqJFd;EbwM*yc2i2&SjWokz&+R8lxWGHzy2+IiGI~R0 z&0F3VyNf3QQSWK&MiJoE{lQArs6t-WIS^gXmcRvk_pkH;_b8#pUEt&FFUX|iny!uN zU4QXkcFx5!R4?(Fj6h9az-hFcb;u;J*uwWyr#P9;pUfr~J&RaXLAEkiGEp3;wJyiF zL$ye6utIV!!B2L{Sn+>~b{F}qxqP2Vrhe)D1Vd}IKDV;rDRE`7IumAA;+!`c`S44lLq~O_!1+?n@Ip#i5~(gDCow zUE>wlHGQXL1}c^FROBMkEG*{=lnvQ5NE#`z+D3F}2rl>&Ck>P^e|6%{`+@p9UGT+D zZiXh4U%z(Y4rPRX1lHb^nKhe2Oi&-onEOvFQU2RoRgq3k_s!(%vG9Rhf_+23jwrWlV2ZSh702QoXy96h1Z8QCz)cOKS=EEp zXhTd5B~||rYXa$#ge_RD8z*RId?who*Yuj)o(*5h4z}5Jiw_QCu%)sxlc}=4rAmSQ zVMrY!7Bw$9WW-jg7AjXnY54eB{4)qc9cnM?dRUWE!nz!ZCV`u3JEwGv^NE#fZVF$h za_UytGa+S?%*9R?;(vGnlPWoPm*JgK(5cCB%U`nK;30(B1>Pesn^`;cJY1E z_N9pNkj~}L%+>gP>W{<%kBylINqMzD8(*eMrC-hYwfku!{!TLA((ag~ZVnWy%~!1p z3N00T^^78(R*EQb&Haw+q^-M-&Etde{W}t)W7WjXR>CwtS17X0XCk6_VRa@Cs`4RT zc-M3nZ{~v2d5kscGd+%=&x(a&LfxZ4C%XQH*9&!lqI_t1A^H;%F2)KPNjaLmGT_i(m!>f$H9 zI?$);|4{edQB7{qzNiW!DoRy)2aztl1rR~1fCwTTrHUXBdZ;2u5eP+!^sRL1ARt{a z(n3*6LPwf(0-?8XSJ1uBK4;u}$31tv_r`eq7xHC&tIRdmT)#QzZ|=3#q2CI_`tuQ~Bn=-dL{ijyedu~1V1Zm=g*+o*%;@Fuk+VONB=-ts|_`zj{qo_2YO zX)@`|ZB{%66^jtEHu&adrKOe|Y~}YBCR{X^{^u2O_&;IT-*5cC{z&67y>L@v9w|Lp z-Ms4@zG;)5Gmrw}Q}N zKngbd$|`;Yv(aJdIsQ-{vdl1!o6ze-H|r|jZ~VN<<;Pv>!AbL@X=)_!SQs+lLs_|ze3kcP z9V0jNaXo@NPn_p1WG;PIL0V<|i$l|`2{1>( zdD?Cwa}td{EV*fQ#^q;q3J^uPEvH#;`@P>1S|c*=F~b4uS8B<>vkL@)guiQbV}VD) zgH{iHNRwDVo$gPT!@$|0Jf5mPb$;WlRV#3vC9eB!pxEp!Vcal%uQh#8tO;9(ZgdU$V3+PJkzzi6zLE@ zU?|r+BxELw6Hh`Jc`k-Yl8F%#6&Qh1)kwhgFS|6pfjERb#rtDmqoWi0rQ-mrpL=Tw zFUa;|t55(14shz(YjZ&^jRra;Y@>+JvU^_ zzQE{q{}fMes}Asl#L8vdS2`ZY_b@<{lNC@PQ zbZY0f9wpUZm2_~BT3^R@ztN)IHse*m6P0(V)8Spq>MX6PD2ul=*Ep;jC@;{2ftskL zA=ch~Tedy{km>fDLTe2QTB0-<25WSzOz-*OaG%K30{#A&7RyLE!0&+;?d_SdUD7lf z-MT~yiz8(l`^1$QNlVZvxjU7dBL1rVzVOdgAJutVxlQoVmas-CiwnM%EG@b{6rxSq zsV%t%VpC~P4&gHfOa_=@P^4iyd8ZDmSRHRm#)Qsd z0;_ACkcQ{J7t7>_ZW((o#@g!8jh4MC%)nE+v!ml_OQ%8o0r@3@b~oqgaIQqWv-nr6 zPPy-suU90BR4Tc3y&w5cC(3yzde&tzqjSDGWh2Ef`2>_z^w16hr@UJq6#@q5al`rZ z4P~nQ(>GU3el)th2J^Atw{4RA)ZPzv9y;rXK_=6Xv2Lm`KoN>1{h^+~F&K>!r<;}O zj6-`gZlem__52b69@AIkAP+o)1K#6FISMZVQ*fa2tY}Ub!#@zncH<ibVYpQW1-|dndD2>#P{yXF6l&nNUwLd+F zyzpKYwO3WX)EDkdOEB_COnscQ>l{ka3dZ(n z2o|GHv0vPr)NIZjhQUYKGe4sJ-5P6#EFuOsYl^q2nxuId5FbqGRRp(c!M2XV3iR_U zQn)A7=#H@YBd^9ZKWdo1R^`uTy{1tqmeue9Mc2pOn^yNO?J6i%VwCslot#<#nG^wo zRY%{8??DHJOl)nao$WfM_XFMf5`C^yuc%Q~X{&nfz$+@|eru^pvT7OBv+%MyBO){1 z?o3bCkvZ8?-IVCr$dBZ&9(sR@>^Cl{rxh+-itQCb8*2!n62WK6#)xu$RMjxNva0&CdJsng`T zFmf{}X5$yJgg8ZUMJEsY@_6Yn`pX$ND3WT(s>i}7I8}Q zwtRZ5f1euHAXe$u0(vV;()}mIurKhhjoasIx6;n4dF7A^auBG^i0MYhO6~7HN?Qs# ztKoHHw4(eXk(AJ9oy=KI`|s%O() zT?K=rH~66T3aE9oN(`yF`7)&IbhT$;4U0e5DN>tAqqE!!=){lZ7WxBg=v#_a#>={kdKv_BSGQ5}C2i`T45L>p=h%7`B^?k{|I}}Ny ztwPqt0&lS-WQQmxZ2a1wbLy<)gqO=fa}xAF)JM(GDsO>^n*gxo-dbm##ef=G2hVYZ`Z2)47McEO>zCL1&4pY@;fcdr*4qWOBF7k2oK>QG!MzquP{^Dml`#iq35J+|O^kag@#_oed}wgZJ5c z%S_z;>;Y;?)0xjQ@5ko)s~aT`>1dTg65OoHSecOGBi3h+=~V3E9nGZeD8zLFyr;uN zldmVu6Kgj;H@fp|@LOR?-3L1UfEil%Zv#hO2q7h=0eS-RX7btau&lsD>5f!%Vh*<- zhmNeM7l_OK3ze9|xIn}XlrHK_w1E72AgNxX-DUDzajxi2Lhd~Fzl9QRx);l3go;@B}A5yaV}mwhw+igM&D>+N11!S~l`AUl`M!D3dC?H#Z2q{V7yJbcPLf zzSoGEX)ngXS>VJL=7}x25e5`wcaoMO&ZbpdvgErrWk)@7V1OXEdyb4V8-(eeJZH!d z@)9*z+)fa7{cRUBf@rGwk>%XfdjxC|*l&{GMw<0$ZU8bq6BS3Jl9P|5y&>a;sySXp z)9tz;FV=TdRcP|{X+)o_pA({MutsU~*RNEtXVw9ysVFNfmWb$@&|LtAJKP2m^piDO zD5{6|6;=3~jp$vPdlM8^g99lA$|2V-+BMo`DBhs4vKI(nlvGlz1IQtXYcS)aJ;}ys zE*vBQ_I;nPN&xfjBW-seUObwl8BeM>sr699)@%CCffxC04LYxegl6$zE3W{u=^@OA zTw_8)!%h0Y*Z}Cqjn>>Z{seDD*=~d-xrF!90sCb!Z+uY>q}|A4veyiP!X(+uBNKPN zJMG;{(5BveBT47L+B%bvgB7`Xd7373BiYpO85asmXT`0tdUx`j7U><3MwgfqrM3j| ztKL{3Ah}+pFgKd_FG+3NfWS%O3V3z3+G#BZntLU^C*iuS1pA6>BeoW{JiW7^#(+%c zO#9528JkT_r@!vR$Oe-MRiPqdJ!He!rk@6V0XzR)2IVvj8xI!4aQ-LN4Btp7Z+&4sT9!=RMC*OEaiQ(%^ zn5tnfDoI0w%vxTDI0{Z)bY_Fc#^7u?7K{gfWSPxDFZBV$c<--T zw{3GF)nuvDoBrEp(|c9Nr2Hp!KN4p;A9*m#HjcfPyqBC(S3w>!Ws~psEU4T{iAEyJ z$4o&fcxrHp{U#)`!JaspXkn8}PR!Dh_>PhndvGr=cTc&;LlJ}A3|Lig_h%s`$OG~C zTV|0}aVYwC*c2SRNSSOcX5^TJ>ZoED4m!R>?SC>TF%L6yR?x zDemr5Sln9?7Gtzidr|P%UTn^lZF)fht8R`hBBAliEY^{O^7o0zhh_N=xfhYFzQ}#F z{pIn?n&bzuX;~)5G{i zbR0l|t)G>exy}jv6qL}rLqs5Jk%(M8Fh6rMLh^u-Uap99K%c}QhMhn;fK+sHwTK;Eg+JJW^ukFTd^0JCH|goQ64Tjm{?_pc(~sO=3Zs0uXL+AC@?;m z^S7bL0e={iG^}=_#XkM`raK}RfY;`}9$Xo3v~?33EHc6|KVYTXBkLBon27KBBBK;$ zUqzUv$wE0uGFp)atv>DMUVbs6A<04!d$P#US4G0gs`E!|@K|cym3B=8?Ie_8dCU&V z!b6zk?aCmb{4mQid>@ay-qQb$t57~f!y3`^*sNo zl!^8yf?EW5TiF!E3yEF9x$s_-<>yG0w2d0Uxv(mP8-R&7`{0fvy26!10xp^d8PCuE@(|=Tdetn6ynDuu5q80B)4J!HT_0slkMP+ zUud1sMABvAbmV4QwRzp{_POBd$@EO&%HL;PdYGkpryHfxcTqVf1D}eW_vOe2jf4nFz@{o^F=qnlXq;_)cKhRsn;|Q^ExsHCv8%8mRII_uyTl~7ZySZ~P zy3u}Xo4WO#15`HmQMirL1Dg;KQ%@omCz+egHw5hJ6xoaq!^P-Sp7NuXT$*LQ;^j*5 zGSe)X{%?9sy940re#))s zqfA`8y-PfqCmM(u_q?iHUmg00C@>@~97gnrI+ZR{Pwe-2qAEYkNGjNx@MfLgAWV&q zfASloil$m2*IXJW6Fh{8+`OcwgP@kO%+{UyR_CH^cyG7y2o4Ma*s~q<0h=O@QIm~-nRCg92 zr97Z$yqy#%lf&%7SS}9=Z7$n!K{btCZNxWpuyREpFXGETp@tHb?d_zc^-aE*IAm)A zGp@g0xe=|d!Jt_q^wg@TK%!4hWWn`VZ^8=!b!=f;t_>5kYM5`0lPmV~wHzna!5yyF zm=6PB>IUSUmB(V{xCr2N#qG`TLY3IYFHe60_v{2vmnT5a%d&$-noh8JbsLu~H-?+= z+NZ-DmuJ{#(k|DQmuzEtquqShgP4mDGaLssroP&A^gj*tCTNvt27U2|>SW zlTP72J&HE-$-{AM)$vsx^I?ln7c`|O6Q}v`lG+?^y{zkiPjQ&#uysfkYzrl~;nki{Gx zJxK5I+pV9JwJ>O7gSW%kzu|E?x@ytzWl*<_0rm@&n7`>c233&)1rw0!yv2Igjh?`P6}HeQ1QHy~?< z-Oj{1;o&JWQnUL!@f#65Rx~F&$w8SxgT%ok12u z0;u;?*raixZw}VqymX=QvSM9)<9rcy0|uOu%a9ikt+6XwB$* z=qJ`gDn_0aCOoem&W*dK+~*oO3u?5QVN$R9{fIEr>mZ5?qGAPwxk05D^JU$euOKv-{rf>3V9tEKBXRcHm(B51sLGdbA?284XUAW_Lu+Sq)6|2>wsI6wO5_}ktm(Y3He6NL$Ntosdi%G1Cw;VpF1y{Wl`iXQ>UXVx^0<=G&d)xfofX z;y4y-6-M^~Rk;{XJ8Z_MLoqnYC8Y$-gaQR)rA>W6-Q1*rlih&QAW9BRE`HLmJohAs zYp20+tbo;3a+#km2%goQGB3r%2-vBdi+$MpLoCi4p#OS(k$k5a42URrtXvQY!uTLY z*;Zd8^kV^LDaR#ojU^fYc!Qow+J-duZ(gWNBC>YJ131-e#l+RvjYnQiFr;y75j&Qh zWV@<46Zn;Uew*kQrrY0yFnp7S!0ud)k>!Z3S$J6L{g6}ABfPb~Boo?7yDe?GU+m;p z=zSs%Qd^|c>3VD75bS;I+igT_`PFklZ$E`B7;uH$ew%oOl!h%Rvf9pT)!y9rA~ETG zG8Mv`?dPUweRe7{P4lj`89NPuRZiH_m4i=Qk9;ZM~d06!5F!)-KsV-s|iP@Y&=rx%pEs8fGozEhDDMW&LWH&Lfb zoxVw@9%_nFU?8uSXk64}hl1lqY!2^H;oNO;8K={mJK6}v9{pN^5bF0p=qQPKbb(&&~cmK%N8<`^A2fws_`x65t;Z;(~W;7B? z#2ar^nA$y}l1^w{Cg{zWtq1}Yl}E}%@99QEyTn%CEp*-GcE!d{fQet=&G&BMoM;e3J`~wFv6>0m6Wulqx zD8mF|RueaeGhbZkCqyPR2}L`-_@)<{J}P}8raor1IUbRljmt|lz>+P#e$$1OdO3%J^uVLw`vzO&Pt-EGT{tq^ z2C6b7l}D;U**l|vkp>FsDvqGoXBTdBb8`o2{EhVVJCRuUFdAB^f|70XDS{zooCK`I zmkI1;X(%4^)5Lw3`}$a9sh#Z3cM265s0lQt9)RvTTL;vco}TLcc~p88e|{&lo#jJ|c*9>L3`e znU&<^w08b`+umG7#Z{qcZ?~rHB2Q2OtDufd*2KJ!Vy-Ae*~lQ5anzQ^Bm^Zpk(el% zA})R{Qc|dMt;*sxm6{@hrl(Qf(?>j{Z=;A*skFzxDlk}j8_{k8pJkmbd$@4);`bP! zEM-|avwPXgiN1^4AR=yG(w?|iZd~7H9PZVvJspNXY?p^w7F|>tS(r4^nXHXm#Fd9- z9ipx)f6ASKDdaStEXXvrGdHU4f*bDJt6Y`ra3R(3?PNb%z`~@l3&=VKA7(r!C{7#* zAs(#}&0&Rn24diP;~x+n0A87}r~5x%AjrAx&~?ez@5UElEZ1X8*rOp8boCyOT*&V9 zccD^*8c^?8$y>taV{V2p)mrWuPe0{^2|9TH)ey6C$a1gJ<@4@aMywC+dtH>n0}D(MRl~kSK`rv;(?r7=qBf zp&e$X!4NCl`!UrL!kk@`6b1+?RI^DJEA3SFidA4_(_v+-pQo4QZaLE40XUH=*jVOQf+7BLW*by8S6y z*X|PI;Bz{{jq`Pj`W!Luc1aXF+KqhLDueHX5O6v#QO(fSR`L+~4T_Mm>0m0Wjswx< zHAqkli<}!qS`pF=R(m1sUMYLg^c@F_E6k)0hqP?MAoy?#Q^UBpM8j^ym{U<+ zQZsn=ht`0i*{1mFf9MC`H+8b59mzadPU_Tl#I1b7R*v3~Thd}6W_@qLB^;eG3GwP9 z>t(fy%rCImrS+*dr*)l_j-01?!qKMnyuVkDH^})d7VaLnWi=w>Q71eBNh6Nmbtrp+ zSUtGQ7o*+Fa)tPv7fhU-o8#*Mi^a3~a<`OLkH&GyC&y`3;ly77-c9U!ufr#Fw^!mE zxg6{rJ3>8A40YJV98S1{h-JCmU<7G!Q$=ILybvi0px8WR=KR9&Nm#jdi`R|zi>AOc zr_i$UwC08jB-Vp5TiX74*3r=5Sgs(kk&l_gOFlW>EiBr5X@EJi=?Bq~K71+8#eNg+ zwqKGfnULA+_W7_ai|-ynr*5`(T#~|DMD^lyzRAi&HIYb$3jodUuJ&PUl4_t=&A3_IG#xQ|XyhZGosC=f*@8gEz`G+08DE{E~UE$h+Tjy1#H zZF|a5H#OaQdj0)68}^_@)rlS!>P9c-*x0oV)xfO{ht8mNuM)BW9Icr_FN=$6{G^{r z!%JeuQcf3JO~%q`FN>vk+c+jz+d_VnamqLLV@T0+UpF<+RZ*FDJ_q4d5fh5J135cV zFBwug6KsRXva3uFel~5jYi9~<>(*r}?*Djq6d|9XD=_g~Lg4Pf!FEW)M~~S;`=x@i z5osR2{VGw`lDo&QvQ1xZc4x#U<$_Z9L;5{6?rP~mn>=o#F6{+ZZGhZA3jOr< zPpfgy&KP5#70vC)%;XUwl8ol|p z`z$^3Tfs}EoL(#WL}0Q;dXYxJ8wMl&3Q4NZVm#Z z-nv0d5JIu4d^GEt$^@UnBh}erX|zt?1&kw#e)C1U*LnB7bE@z zQ7Kt?vxi%<3HgCQDWOHsuIfD}@GM8JAZXl`JIx`56aA zIKr6?=;}WFi&VkKDW$((j{o>I{O`_#HaS8lK_}n9!M~KiM-r~neuvF4`K;)KXOW)g zq6lAn)qK3_H238Kb5Q^#7)gtEz(GHDn!5RuL)jOiIp8kDI7PF7_ccvPH1BJ|rY@Ts zB!WN->^oAwn^78ULfwEUnKWL|ck1$7>g174055ot(2)Jr%;Vk3W(N@TGe?=Zr*zUz z4Bq{V9tX0p6M=s-mk*!hTEAM&3jz!tA(?UOps4=Rtf+MNKk`LZpjSD@p>m| zz}{CEaC>>w);kr-Y}T}yj@i25PY6b~d94|@U5Zq=z^HfK%xkLR`<=_D$y-2c_bXio z*P{x2W-suu`3^LK=BKXh9Oy)Q>kWG^7b7(##s^Y&LQjV_v)g>)2lz@gI{PzrKGx~8 z0U`Bn2TwiHH}~7dXOqM0fM5zYSR}3^D7E?UmYdHTxl4En0Bc3&%RdD~lE=wsbo9U& zELR9<6+it%cR)NW+nzXumgL&54sDoc87KR%wWL$6U3gmWwJo0g{q|-!gAm z{~3nuLm)(dKX}^M-+e#*=YMY=K7k-3qz1q!usb!)jm-(F95#5d!S4VT-+7ry?$Utc zW#k39^}zqsi+>FSKRJIUn!|<=cYtnA1a~{q?V{C_gVGZo{EZ)ppHy7={?(0ewBckp zq71)p!S8GcLkxN_vk} zvY`1ba}=&5giCm>jGR0?A>F8*N5 zE-zg_&w)J8*s(U}l;pwua0IQ~;(q)q)ky$v=;TX`A6q$fzfA&RO zyNcX{tCBxosNVsscJzy;cJ9JG4=X3 zW{ywNhT%3d%`ak{0uD#i``)$H?!wme9eUgm$O0` z6i;$tKbWq{7xVYleX+vo((pQL2rQym3Fu=iV`rGQ*H5p@cwK}|K{w=5XuiDPG(s7`45jax}E%8_lJA^^&8*fBQk3N69{i0J0z|> zt1JK@z43TN8&4K9IBJ`+2Y{9*oB{1T>ku;lRn7sVtT3Z5LlT#HvKi2M-Pl1#&4O$w z^Jtc9?pmqW-EBU9kipG!vg353-_OGU>QsEvmfN4L0JH)FkP~F{k;XCeyT}5UiEp6v zx^J+gKbVn@Dju=}?qv@w9sq;>uj2`)R&!GL95`&NwqUfrKmb*`5 z)n?sx$308?xA6P~OPku>eQ%VBd09fSR0#4|z{Se`!IP5w_?aa_0h zt>+Q9pN3l&=_oZZ0V0zm&LooxEydIdaq9?Tza`zw56gRr=KlK?fDYzi=>#}%5#-av z9+H=55=woouS`;v7npEdlJWsh8cm9Ak0C+jR`bSi6c<|no^?gDO&H0iy92OsEI=MB zLR>-UaUwouEKcibc$Rwv-bP9HpboeUuH+4o(=b4(@+d$f8WN$M@ltXE#6er9KCk9x zKKgkfuZd-(HC%xB^gNMSF!&3z+80!>>M|^hd3l|G6 zmgu=^RiF4(!37`7kFMc*OteTdP}y&C-XPSVoC`aHI@Be`?_2kI|Qs z*tLx&R?7xhJNrJK-9**};?>}e5BEw}hF66{o;8FwxJ(cbUg37VVy7gE0p0*_(jO6w z9l0g!OxXjuZ-z{dNl(^E=Ya806nqa7#@Czo(RVA0xmb6g;Z2}_)C?YhtQgcc9&`tp zsFH~1mzeew^sSuVXo?qb=rLp{5Wae%`K$Tluo>-^EI>_du}BN^2N<{L9fnt&t9Vtw z3!_ThPR09Rq?YotTx{Jf0zn$UZ|lJ0LyBk5h>}ut=sJ+x!u~Gc1A9|Q-A$)DA)z}M zMtd%_2p`lpI1|Q4RCFi7;Jmgik9r6`WF`7ybn($a{UF|&H9WuW4@+Mned)n4Pcj0TQP32C^ zCElX@d9|9gsXf&hI+7C-?))apg2nwxWaM4*vKW}yamF>c+u^FNd^qCeAG?)?7=(pQ zi0F0zyV1t9)ONQFL;kYB5^=S_2rz!|2u<%R*1i0B-s||DJ9}bopz-=ht&QSEm#6CJ zwS}+?_aru7vSp(#AAmEfsoGnByceJ2PEr4Y+a_~;iZ+4t=aa1h=H=^t7Hzg6F;DuZ z9vcli1?w?D!g9x-JC;XCL-OVJx@E#|8*eW5-)<-opI?V#%lg<$vkzOAX4L=l1_h>3 z^56RPamt`dnI<(bkCOi}kUW%)^KA26{`J`Z!ge_|dH$~~Jd$9%O}u^c3or(>kBfo) zD*ie538pf9*0^oc-SvTbo9LfZ=b#Y5ThXVcBDQD=bmjMz;(ueQo(}GBje6R@zZ*FH z=ii24*h~jkrU^cKfo&U>%!dYsfDJ^YedbXUHbI>M z??WQ*`-FFNSw_oN18X*5AqaG*pX|@n-@xC9;;9>cp0~!wdCqPCE953uhL;7NyUkE7 zYZ-sebRL2O95)Dtqxol*EnDio;a%y2g<%|y)x$P(Kq}0J0iDq@22YO0;4$=M4sRNr zJp0$kpis1_X9Av-C{D==il<5n=s+1enU;K-evL~2tw;T7eP;U9K*HNJc%NCt^lM%? z@wt7#hgahZoL|f4YG4F3e@4LCw3Q>60AlnD;_hb0)<8ipJ|Eu5J$VXV{p-)9Ufejf zCc#oNZ%DJn07>%P2MaYOpQ6fYv??`4H;F0rGOD}q~na?V=BB_zDw@8b_hUN4L z1l1R)Upx9%JGk*3yNuZ74KkvDd&Yi$mP=l0Df#@v1*uroF6Q4mPmPdmGZWkl_vd;8 zbeaxVeUK7sxP$xc=w|OnwM(ySfURg!$WS)vifkT-&ga`+*V~`)T;nG_!lEm;aG7ds zl;N=7M(A4(mZ(WwYfWcuUc(25^3BT5a+$S9aGy?`BD;!1^P^$wtmnwe>LJ)b<9S2) zxZR}7fWTqmx{XeL>l*wDLiPxevwBjMB9Zh4V?5 z#pN3sU=i#p2E1@H=vK$~^4Z&^?L>9G5!vV#$7;<(=ixOATVEfzP=mon-J!=Y`l5F0oN783lr@3 zq4$;$(1?2jcZF(~%&(^kGj|(PGd)5E>kwW^p7SQ_G9OY zjT@Z@>fdlqCu*ITOKAvr)qeBS{BR!X=g`@FA4)ZPbQ*|0{#Q>o z?=WajKAx;Nus|lwT{oc_ z+a_4s#I_DzH?D>pZ=}MxFO=?NFHJ2^rjx`rZ6}!&tkib`8aSt!sX~ls#CL&*a6{K5 zo!-y}$Ll}F?Q@Dd*Pw3e!$<*}!w1T%v5gQxP{wBlLucB1O?Y~iN z%o)ozH&`RHR5XnbqrPttRih#HABN(g^2H1o7L%4^jNM$;QWb9v4zoTfy*vS3mdlD8 z@zWovoA5ziS0M%dMON7fyV8Arrp0HQ(->ZHFRfv#g27IdMyV<0in=5S5c=1Qz5%Y+ z<|NrCnb@(1nFc*0d!IwcM56rKm$U^0O?=R?w!K5^wSyXav(}mSGpdhT=iXL%a665y zz}U0b$270_kb#A(U>pCyWwkKkd6)iU+q`8)K=bA#^36W|z{;C_E;cjJO1X>G_uuME zaQ=1(ac?W$j5M^ePgXyODVsr$XB8d1wMOz(mVg=(UeN(t53CQZ(Y#JWD`f{09n12S zMUuP|V%LqED5|;>jT(#U5wEQ~RAh6tu9-u4*B(9pG|AWU$;EIbHUd?aAr&!{UcaFL zl2Wo=N3BuZsq&6dF5iko(?ymWSCdSe`Dzy8DqGA;A$Iz8*|2WIjm)yOjBT8*O)R>t zo2>xJSD`fQ{z?;Rr@e=9PYC)iq7EWmIT4QahDwD=>4~Gxh&N%8tbwW-+?Hs8p_TQD z`Pat!eQlKcDN$GRt)72vD>3SLYwN}GDllKxXYTn23390KN=r2NvS9fGDOZ$Ch7Z^v z3FA!7hUqDCutr;yeTK1R`P?tBC{Sf4R?*7iKfPIyk~e#%R?vRlLocW--Rg3mmNXH!oyBjlET`PYlrjl0ukWP+caXYQ9w(kzaTmZwQNPyYCu2 zdzB@pQklr<*uL7N@$)UKDU!yEbc#5bdW!gr9ZSyC!aQBu=kMi`uoGy+V5dn}H%E1^ zDZfy=qnpair*)+1w~`~|HAj!~`xb6Q%D4cVs#Ho#?Nn_y*>`ueL|#NyCdeKRr(D## z#lt{QnO1NOo5x&U@jk$sOI^aQ=x5XTp|9XTlevF^N<8xBCPZ(!z!E ze)iEu1lki`vo*zzFWX$d=B*aJ`r}5bT#bY?G`HGp-Ul_DKxFO>xE*eoU=lb}a$W(qMLu2NyN{}<*1NiAn`kWi~F=)g6fNRdk+Kwxx zS#P%@mCvKn!xeJvX`Q;=-fXKMMV`o_2fA-h;Cda_dX0!sRl&9|*NJL|e_6DYhhA<= zDse3*D6t_JqAWvH*^%J)W+zdBH|gE zVu7Aq@|PG7`QfuO`-*6aIGf>gF*&F5*=c=Os37}NbOwZ^ zteqOV`Oja-&~IX+#7rd9RE^RmxWYTlO(T!D>=!RvVM z4WA&B_EMI|bRd_0Orz&LHt3QY(?*9xvQn{?-11$5 z|5}sGpa>T-+^b8|7ZajzKLh)DRmeNtze!Go-u9eK+c8NCxvEqP`I)}k>MgOc(*LaV zZOM=TGWhLIa`>4TBI34n(!ZZOGev{@XCN#LU*(BaSmuaT&ZrUuTkc)>du3iYlboX&Bb>hUDO zXD)o#KZEpW8=soBk6NB$moCvMk3|09v~YO3s#R_Eg$;AUbVd$83gxS-@{h-tK7Rbc zY5DSf2>FQ6JF5%yMimKH?9s@pjF5$6^FQsiQ)dP^UbgM2RC)HXEY^B-G+%fXr)O!k zNJFplp;$I)&m7~Lbm&!Q61iP?%~FI*vuZNnWc;w1=!G_Zi0_=5aIL5!ljn`n9+jb^ zZU_C5YsE4~sUbh~3%17fOVu@(Q9R-cVo9q{M?097f3)d0erholKJ&8=bn}J$7N}-B zy0zHP@3}U1ossc5msZ+(6X9*5+mh$b2&l@mNH|S6JS^0&Vvuq%h-JI$u>SMQ&P=qt zxA`TObTHj#=5v`58!=N;!yag)Mk;o{V`aq&#?1}`L1)F zbMJ+2RoHZQ#)-w8#lPH&)AW5$hOEzhNutD}fW4^;7~`|qx?oT&sxBG>6XXUJW>wFw zX`pTs0TDR!(igM0zwv!O zZ(BxQz5K_QsRg$D317H{ITM~C+y?+4A1mt@?0hdXRfL*KPns0}jT^06nR2Vg#Ag=C zz$RBkb-dv!4miQho0gzLl8vgK4cECZH#nV-(K_w1T~HUO8j3Hfs-S_Yt1brxF~xoN zoW)zu&=P~6OA7KE3L2ELJnb;j7+4*tvJ9vDJp_k`YbU&Ffs!4?}(Kj&<4m)Vt;kp^BY%xjFvlSKcqNAdj>STezy`H8yhR`ws0S# zdq$WT{QM{KOVEX4Pz+WaI<552KOa~f4kS?ZRQ-!F+tUrVqvkEMDSF+fFBAJ5C5Km$mR_!{Sd69K9*l|NZ& z3N_0@pW9=`4pF7N3+F+5Vo#{co3!vvwU2R$G^OvuG^glkR9afPo>HVIW#Ai4y z=QGg&tF~;riVsa1v*kV5ssvEtm0eGMQ_Ofh+HbPhxMrj)S!CR2i}pZPDRvKdt%nY_ zm!G4G48=XyOh&7pr}_xK5ILPowXZtmRW5Vtg+^5$uJP!#^MEY|g1AHRMYeZVhG(XA z0#W%o?DfERQ|!Bs)o<{E)&sBI^MkEL$K3m|sOErxUEhf7{9}g^RNNLY>?~BH>-A?) z(b%ZTcYg)M8CR!Cxf)?68dpJ1riad>IybxBKE$s^XleCUgOp8a+&X0Z9;!|SU6@6yn>9ohjYD|la2bN{qt9uAbSob z=V%%6yNT0I^4X12wKq3VWlt0(jPr-3y9c@#@dEC(V`V(TZK-gUZ-I=g6=y=SrWmmn83Ih<^=}V5ovAqj{cn z9R5&YuF@|ys!i?&vQ|%fS2oE+a;bJ6@Jg)o{@6}pl<{yANidQQz%=fTIpigF0_|=O zC)*}+ET>q z>p16M$X`<7f1`5uZmm80XpNIomU2|Z-k#U)xBwMAB}#9L=qAIqEEW8c;`subTUGJ0 z4nw!7Kh<4*p!2~{?+nn5pYyUc1_hgsDvY)Cm536d?tbsZ^R|`-k@`gjPe5gD7nyfr zsa)RaOlYEHP@&q)O>zk%Eyo4UmrGPPAJ4Q!d-g6LD4FUO*k8K_cLL-ecSEy0>@cH% zrYL3!s-w!IT6I#9;^2V%u8)qsus$yt|V$shw1K}47~=WB9} zlpleR{@PE4W{q_|(UZ=4+0Q~NOCkn{=oy!@7zajHi<*~>?lN{{wTa5)&#gyXQAr>D z;aBJrOKGFvOd{dI1O({lL3daZuJxAn|({~wHYRMFD94+8Kt z-^T&Pjef0*b)kN7%4LJbkV=NY- zkDqrChlAG+Ky#!On>D656ADX$cazP60HYeb@)^jFl|5SjDsF)wmT~?GI%VYy`oYr9 zmFa7-j4t&o_geVQYTV>oyE@sN`RCU^FV}xKdpdu=d;OXE_i)x%Wcq^*4n2l6OHwAoe4;3kCmsu)+pWuwzVRD$cA{k@+zaWK_Z`_ z38eMgH^cd!^kS#UCIPzbJrK8IeevSOiJEi2J5$kgg7b-pj;;YM*Q@gB<;RFU8)*Na zS1^ssU{|?{-#@EBzhj%O-Il%!I@GiLIgkML32KQ<5i5+idn~a&Pr<1^w6`(S=yWy) zj$gOU1CVO-ye0TzqKK^)GEJ)TvT~HeaD}0jRkm>tQ4AE!=!?rERrX2stvX+5!c_Q; z?a^W{BEg)WF^MU8!XWPO*19)i{8d)shh9wF9J`Rb_{NtU7%MTO8(&h>=J znV7{KikwRGh#aPJm{4rY%xR6%V=9L!%wY#1=ff(8$xPqR^yT;a{`dW3|J?WP*L~gh z=lWdN`~AMI&*v6f%8~u^VwLmlKp*EbXYLUksmxVCnidaA;|(I06Qu|#N|XEOd=&6H zvVQP)o4~+w+K=JP(&MQl0S72xWMPb+1j!w)4FIWh2D2bDjc2Y zG*(-J^X1DadfV9o_Rt~YgdP2@Pdg}Sz0xwf=fFGIip1?&T z0sQt2f7h&>uH=R^89!8#+kPs+6oON9tn_&byH?8;>v3ZldW*PE%SW2PsV)<6%At03&S!kGs2B zLv^Qta2A2i8U?=CoqP5Hn~nvpb&JOkO&m0fk{5a}bgHrL++DX4e?S#-eOP#i;;MZa zS$<2Pi`47=CslbxsB7oAb>(l)%H$t<3gQg|Kj=>g-B5yw^g#Kj(&Gr7&)E-&i#%L@4QYDuRD|1ZgBwlTlSGW0F!)@25 z)r+K}@%27nx-zrVet~0GsyOqQV;JM$R0_Sf!P~Sucvf++V#cAKygIu_@33# zepqpPyeU z`v%7}EoJjtdj9Zr+-Tq>t)x@xNDUGfPfvXhV$&2k_Wqwou~0pE=5rsRo;wmg=Da!> zwzv8VrL_?G7fBe8%YjWFxT8`D!7PPdSwxJ@^BU{PUI>v=w=|>~)X+!t8%&+dm})IM zOE~qBMHtbhMRALAGMbHBlvrQ;-$vzn@uxY==cWn(m&^q>etr|>s2|doDR0y$>z=`( zc3jl`J;w+LOzEl$*jO288CY$1BWY^dbUwjY8fLNu_cd?mKzi45&`_VletC7LcNe&b z4?b#-`j&aa5XW;)=)pO8q2+^YzUOGo`}st=-2|NA7^fBkSy8a9)G%<$XFMIU}iGz4Mx3>#mj6`J~ZrKWM4vL#U;<`?ceE3oq}UV zb7CWNVPMm2Qfd+EY2NZ=*u^~sNwZqCd5{~?+C|*wNTDNRqHfWFW;|lEPq_I6zg|ky zX6(~*0-DDiS@K$S9rbEI2Qu=ZHPN$lzzsAP8z&BWl5?c4p)*43<*gCRy1&hyOMo_$A| z%OMTd2xgCOz2}}aCdV`OC6r;;DVO`J?GrztyhG&=WBc}DE0Ho2kgK^BOCphi#yehQ z=O`LQXVc5w+lwu83`KoVPiHXdPOrMb23I={y>5{tUaR8*q&|GI(uQ;+2&}BKd2#7E zoAT(s8O;~G%xO}{+_-JSeK~?(e|@UvwUb8|`8*y{SuQDL3Fk@lHysmcBquQQAgaZ! zqRX=XbS{7SMASyp`B)2Yi`?+A+R%H-PyhoOPsEh-?V~gBNOa>uILWGOL`lfgH%P)3Xm{>k$5LfBS6=6qT{H%rV|^C z%rH`Yor&bO)hG;TnHi_dwTYcD*sbvAhUjPX4ivfgeC&SeuyU8p6cQEntS&uAvGHB1 z6+B?LIoq%Kk?I2u=nT7(ed=zu7180CX!$9}lk%##=k;ON4^>01C-R5Jz>R7YjT`d9 z3nIm(Y81_APE?Z45$el~2Kqw?Rrr33f#X^<3xg7%PmP57 zu6l1X1gnJ0X@ApKv)l#=QEEThOhRsmxP*NlDm#TSK4tN^e@AGT2k;(GS zeOB73xVx8iJrwQtC@pB<;xBg}++Sdp0pzN`z;7kIWWs&RHkd8= zvg<^M&GQS7y@1BxL$@?#WgK?BWmR~477KL9nh20qexC&i9ee`~kVo?gf!QGWgrtO7hhrQ?&7_`Ck3{z6arIm~F>PDhpv-dLK?ea&$M z3hE%d>Ys*&rvYAx;nTHY0yeL>Ya90U5D*DhY@j&XW?CQYdg+01db(|Us1mvIA68T% zngsE!{YY#Lq{wMF{)0pLxRZo>HI~I6^YVpiP3A!@28V44qsLEgjGy53?r6`m&Xb0~ z)%UNL!%EWN-n~`4bT%kcosUA8P6ELfWy(hpL})41qUwap{KooaIA}IRRNVR8NguvN_EgZn6ljf1!0n7cTJ3^rqKEe zwZaB>PPFlVYYM~cLbvg)BkDdtC5Wn%WW2D{s0sx6oxCJ(Vc+A?7JR52(w5^19Y}1F?m6yIi6!aEa z;n^fT+_BAGA>Sa_-g|g+of_<=MzOKQbHKS_A}|0#b4Qy$9Bj;)U`;@@&^0WUm5d*X zQ?Hed$e-|qQ7eP^#TxdMCmg8Nn{kTAO`6GkrETVjIL&0wqS?|p&#j!c4JY9HN2g&* z_e00$+LTYK~C*bUYuTxN!J;VLDSE= zQ1P5rS0LyN^zaYtoC_$QvCArH4BSx_gil2`yA5gFh0=PGZfC`+Q1sTs#br*7L7!;YU{F6NN{@WC`5VTD{ z4Fe@RLlETe9HIiLo%n-VIZb2cFxJ5X5FZAtAl~`Jr>>&acsx;&jk1*IDC{sp;Yf^*$Q!WB+0+=pG|l2-V05@eEJ zHxuCfIxO`)0^%YyUvk3Wq0gI6zB z5f~Kt$MTJPXA|GPeTko23v3}_$aQ7{zo0adsfJhL)A&1jufcZ7#%(IbRrVv$EH&|op98GPCC~4s+c97csA-D*Mc2W;(5s^V2k0jF znQ=gwb@Qj!c#TA32XuAB{>y49_OW45nhE;)`Lwa*Ml|-f zUk(8dBLM}4dvxso|Az-#wSXM~n}4w##V&A*&r1IR`v3dQ2iq+SQ2jfUm3hK~4SyT1 z5GT-wJyib|1O_9}!zA$cTxFL=v%I zRT(j{P?7euQkoG1Y80SJVqy#5e@ZGGKyKa;_2&Aa9h>RO4}Wg?`6T;axk*We;I!EJ Mvlq`04X;Q38}Xzl(*OVf literal 0 HcmV?d00001 From cbb7a6b8ee1ac9d6936f0a27d6cf80852e0f890f Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Wed, 30 Oct 2024 00:56:04 +0800 Subject: [PATCH 275/619] Modify Storage parsing implementation --- src/main/java/seedu/manager/Main.java | 5 +-- .../seedu/manager/command/MenuCommand.java | 5 ++- .../java/seedu/manager/parser/Parser.java | 40 +++++++++++++++++++ .../java/seedu/manager/storage/Storage.java | 20 ++-------- 4 files changed, 49 insertions(+), 21 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 56a182df8f..367e954502 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -13,7 +13,7 @@ public class Main { private static final Ui ui = new Ui(); private static EventList events = new EventList(); - private static final String FILE_PATH = "events.txt"; + private static final String FILE_PATH = "events.csv"; private static final Storage storage = new Storage(FILE_PATH); /** @@ -23,7 +23,6 @@ public static void main(String[] args) { ui.greetUser(); loadData(); runCommandLoop(); - saveData(); System.exit(0); } @@ -43,7 +42,7 @@ private static void runCommandLoop() { command.setData(events); command.execute(); ui.showOutputToUser(command); - + saveData(); isGettingCommands = !command.getCanExit(); } catch (InvalidCommandException | DuplicateDataException exception) { ui.showErrorMessageToUser(exception); diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index a15997313d..2d6bab8c50 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -12,12 +12,13 @@ public class MenuCommand extends Command { add -e EVENT -t TIME -v VENUE: Add an event to the event list. list: List events. remove -e EVENT: Remove an event from the event list. - add -p PARTICIPANT -e EVENT: Add a participant to an event. + add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. view -e EVENT: View the list of participants of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. - sort -by KEYWORD: Sorts events by name/time/priority."""; + sort -by KEYWORD: Sorts events by name/time/priority. + exit: Exit program"""; /** * Constructs a new MenuCommand diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 624933ce8a..0320712797 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -12,12 +12,16 @@ import seedu.manager.command.ViewCommand; import seedu.manager.command.SortCommand; import seedu.manager.exception.InvalidCommandException; +import seedu.manager.event.EventList; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.util.Set; import java.util.logging.Logger; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.io.IOException; import static java.util.logging.Level.WARNING; @@ -343,4 +347,40 @@ private Command parseSortCommand(String input, String[] commandParts) throws Inv throw new InvalidCommandException(INVALID_SORT_MESSAGE); } } + + //@@author KuanHsienn + /** + * Parses a CSV file containing event details and loads the events into the specified EventList. + * + * This method reads each line from the specified file, expecting the format to be: + *
    +     * eventName, eventTime, eventVenue
    +     * 
    + * where: + * - eventName is a String representing the name of the event. + * - eventTime is a String formatted as "yyyy-MM-dd HH:mm" that will be parsed into a LocalDateTime object. + * - eventVenue is a String representing the venue of the event. + * + * If a line does not contain exactly three parts, it is skipped. + * + * @param events The EventList where the parsed events will be added. + * @param filePath The path to the file containing the event details. + * @throws IOException If there is an error reading from the file or if the file cannot be found. + */ + public void parseFile(EventList events, String filePath) throws IOException { + try { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + for (String line : Files.readAllLines(Paths.get(filePath))) { + String[] parts = line.split(","); // CSV format + if (parts.length == 3) { + String eventName = parts[0].trim(); + LocalDateTime time = LocalDateTime.parse(parts[1].trim(), formatter); + String venue = parts[2].trim(); + events.addEvent(eventName, time, venue); + } + } + } catch (IOException exception) { + throw new IOException("Error loading events from file: " + filePath + "."); + } + } } diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index 15286a4adf..e00c04f3a7 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -2,12 +2,10 @@ import seedu.manager.event.EventList; import seedu.manager.event.Event; +import seedu.manager.parser.Parser; import java.io.FileWriter; import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; //@@author KuanHsienn @@ -56,19 +54,9 @@ public void saveEvents(EventList events) throws IOException { * @throws IOException if there's an error reading from the file. */ public void loadEvents(EventList events) throws IOException { - try { - for (String line : Files.readAllLines(Paths.get(filePath))) { - String[] parts = line.split(","); // CSV format - if (parts.length == 3) { - String eventName = parts[0].trim(); - LocalDateTime time = LocalDateTime.parse(parts[1].trim(), formatter); - String venue = parts[2].trim(); - events.addEvent(eventName, time, venue); - } - } - } catch (IOException exception) { - throw new IOException("Error loading events from file: " + filePath + "."); - } + Parser parser = new Parser(); + parser.parseFile(events, filePath); + } /** From 06b3205e61e05599e90a3cf89d89e0b70d83d775 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Wed, 30 Oct 2024 01:09:21 +0800 Subject: [PATCH 276/619] Update expected text file --- text-ui-test/EXPECTED.TXT | 34 +++++++++++++++++++++++++++++----- text-ui-test/input.txt | 2 +- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index f1372a24bb..8c963c0c94 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -1,5 +1,5 @@ Welcome to EventManagerCLI. -Error loading events from file: events.txt. +Error loading events from file: events.csv. ------------------------ Enter a command: Invalid command! ------------------------ @@ -8,15 +8,20 @@ Enter a command: Here are the possible commands: add -e EVENT -t TIME -v VENUE: Add an event to the event list. list: List events. remove -e EVENT: Remove an event from the event list. -add -p PARTICIPANT -e EVENT: Add a participant to an event. +add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. view -e EVENT: View the list of participants of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. sort -by KEYWORD: Sorts events by name/time/priority. +exit: Exit program +------------------------ +Events saved successfully. ------------------------ Enter a command: There are 0 events in your list! Here are your scheduled events: +------------------------ +Events saved successfully. ------------------------ Enter a command: Invalid command! Please enter your commands in the following format: @@ -26,37 +31,56 @@ add -p PARTICIPANT -e EVENT ------------------------ Enter a command: Event added successfully ------------------------ +Events saved successfully. +------------------------ Enter a command: There are 1 events in your list! Here are your scheduled events: 1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Done: N +------------------------ +Events saved successfully. ------------------------ Enter a command: Event marked as done ------------------------ +Events saved successfully. +------------------------ Enter a command: There are 1 events in your list! Here are your scheduled events: 1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Done: Y +------------------------ +Events saved successfully. ------------------------ Enter a command: Event not found! ------------------------ -Enter a command: Participant added successfully +Events saved successfully. ------------------------ -Enter a command: There are 1 participants in dinner party! Here are your participants: -1. Mary [ ] +Enter a command: Event not found! +------------------------ +Events saved successfully. +------------------------ +Enter a command: There are 0 participants in dinner party! Here are your participants: +------------------------ +Events saved successfully. ------------------------ Enter a command: Event added successfully ------------------------ +Events saved successfully. +------------------------ Enter a command: name Events successfully sorted by name! 1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Done: N 2. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Done: Y +------------------------ +Events saved successfully. ------------------------ Enter a command: time Events successfully sorted by time! 1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Done: Y 2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Done: N +------------------------ +Events saved successfully. ------------------------ Enter a command: Thank you for using EventManagerCLI. Goodbye! ------------------------ diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index bb2ebf6df2..291a0baee8 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -7,7 +7,7 @@ list mark -e dinner party -s done list mark -e Saturday brunch -s done -add -p Mary -e dinner party +add -p Mary -n 98512525 -email example@gmail.com -e dinner party view -e dinner party add -e anniversary celebration -t 2024-10-23 12:34 -v hotel sort -by name From 2ce689b45bcc0f4d9c4879493abdf132a1fd5bb1 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:15:52 +0800 Subject: [PATCH 277/619] Update AddCommandTest.java --- src/test/java/seedu/manager/command/AddCommandTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index 21c69a052c..ea373cd59b 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -70,10 +70,10 @@ public void add_duplicateEvent_throwsException() { EventList eventList = new EventList(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), - "Venue A"); + "Venue A", PRIORITY.HIGH); AddCommand addCommand = new AddCommand("Event 1", LocalDateTime.parse("2024-10-10 10:00", - formatter), "Venue A"); + formatter), "Venue A", PRIORITY.HIGH); addCommand.setData(eventList); assertThrows(DuplicateDataException.class, addCommand::execute); @@ -84,7 +84,7 @@ public void add_duplicateParticipant_throwsException() { EventList eventList = new EventList(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), - "Venue A"); + "Venue A", PRIORITY.HIGH); eventList.addParticipantToEvent("John", "Event 1"); AddCommand addCommand = new AddCommand("John", "Event 1"); From b3a5199d0ac29cdad7fbaba6fb9fdeffa5521206 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:20:43 +0800 Subject: [PATCH 278/619] Update EventList.java --- src/main/java/seedu/manager/event/EventList.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 2dec42ed6e..12e0ae41fb 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -62,7 +62,7 @@ public ArrayList getList() { * @param priority the priority level of the event * @throws DuplicateDataException if an event with eventName is present in the event list. */ - public void addEvent(String eventName, LocalDateTime time, String venue, Priority priority) { + public void addEvent(String eventName, LocalDateTime time, String venue, Priority priority) throws DuplicateDataException{ if (getEventByName(eventName).isPresent()) { throw new DuplicateDataException(DUPLICATE_EVENT_MESSAGE); } From 2b402f62a333129be9ec91e314ab7e7ffddce436 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:21:18 +0800 Subject: [PATCH 279/619] Update AddCommandTest.java --- src/test/java/seedu/manager/command/AddCommandTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index ea373cd59b..6663f46f96 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -70,10 +70,10 @@ public void add_duplicateEvent_throwsException() { EventList eventList = new EventList(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), - "Venue A", PRIORITY.HIGH); + "Venue A", Priority.HIGH); AddCommand addCommand = new AddCommand("Event 1", LocalDateTime.parse("2024-10-10 10:00", - formatter), "Venue A", PRIORITY.HIGH); + formatter), "Venue A", Priority.HIGH); addCommand.setData(eventList); assertThrows(DuplicateDataException.class, addCommand::execute); @@ -84,7 +84,7 @@ public void add_duplicateParticipant_throwsException() { EventList eventList = new EventList(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), - "Venue A", PRIORITY.HIGH); + "Venue A", Priority.HIGH); eventList.addParticipantToEvent("John", "Event 1"); AddCommand addCommand = new AddCommand("John", "Event 1"); From 571984ddd5d87db7f1e428041462bff09dea1c35 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:22:36 +0800 Subject: [PATCH 280/619] Update AddCommandTest.java --- src/test/java/seedu/manager/command/AddCommandTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index 21c69a052c..6663f46f96 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -70,10 +70,10 @@ public void add_duplicateEvent_throwsException() { EventList eventList = new EventList(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), - "Venue A"); + "Venue A", Priority.HIGH); AddCommand addCommand = new AddCommand("Event 1", LocalDateTime.parse("2024-10-10 10:00", - formatter), "Venue A"); + formatter), "Venue A", Priority.HIGH); addCommand.setData(eventList); assertThrows(DuplicateDataException.class, addCommand::execute); @@ -84,7 +84,7 @@ public void add_duplicateParticipant_throwsException() { EventList eventList = new EventList(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), - "Venue A"); + "Venue A", Priority.HIGH); eventList.addParticipantToEvent("John", "Event 1"); AddCommand addCommand = new AddCommand("John", "Event 1"); From cfb8ae6847abbc72cf4d9e9ba2647aa688560b7e Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:30:56 +0800 Subject: [PATCH 281/619] Update EventList.java --- src/main/java/seedu/manager/event/EventList.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 12e0ae41fb..2a62ca464a 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -62,7 +62,8 @@ public ArrayList getList() { * @param priority the priority level of the event * @throws DuplicateDataException if an event with eventName is present in the event list. */ - public void addEvent(String eventName, LocalDateTime time, String venue, Priority priority) throws DuplicateDataException{ + public void addEvent(String eventName, LocalDateTime time, + String venue, Priority priority) throws DuplicateDataException{ if (getEventByName(eventName).isPresent()) { throw new DuplicateDataException(DUPLICATE_EVENT_MESSAGE); } From 14c0721ffbfc0c4ee505e37c388505ea5ff376d8 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:33:25 +0800 Subject: [PATCH 282/619] Update MenuCommand.java --- src/main/java/seedu/manager/command/MenuCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index c64509ac49..c33a439ed1 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -18,7 +18,7 @@ public class MenuCommand extends Command { mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. sort -by KEYWORD: Sorts events by name/time/priority. - filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority."""; + filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. find -e EVENT -p NAME: Finds all participants with specified name in an event."""; /** From e3cdbe7f937b23de593570015b2f13a05db17216 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:35:46 +0800 Subject: [PATCH 283/619] Update ParserTest.java --- src/test/java/seedu/manager/parser/ParserTest.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index 56fb214962..9c40e89877 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -158,7 +158,8 @@ public void parseCommand_markInvalidFlags_throwsException() { public void parseCommand_sortEventsInvalidFlags_throwsException() { Parser parser = new Parser(); String commandString = "sort by name"; - + } + @Test public void parseCommand_findCommandFlags_throwsException() { Parser parser = new Parser(); @@ -171,9 +172,10 @@ public void parseCommand_findCommandFlags_throwsException() { public void parseCommand_sortEventsInvalidInput_throwsException() { Parser parser = new Parser(); String commandString = "sort -by fun"; - - assertThrows(InvalidCommandException.class, () -> { + parser.parseCommand(commandString);}); + } + @Test public void parseCommand_findCommandInvalidInput_throwsException() { From 6ccc408276effcfe9269aabbc0ab54c0aac5e7f3 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:37:24 +0800 Subject: [PATCH 284/619] Update Parser.java --- src/main/java/seedu/manager/parser/Parser.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 259d5ba705..64a754b7e3 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -129,8 +129,6 @@ public Command parseCommand(String command) throws InvalidCommandException { return parseSortCommand(command, commandParts); case FilterCommand.COMMAND_WORD: return parseFilterCommand(command, commandParts); - case FindCommand.COMMAND_WORD: - return parseFindCommand(command, commandParts); default: throw new InvalidCommandException(INVALID_COMMAND_MESSAGE); } From f8a59de82f8cfb9ce8aeb988fa59bc3621d97ede Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:38:51 +0800 Subject: [PATCH 285/619] Update FindCommandTest.java --- src/test/java/seedu/manager/command/FindCommandTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/manager/command/FindCommandTest.java b/src/test/java/seedu/manager/command/FindCommandTest.java index 4608eaf259..4e6e1c93b5 100644 --- a/src/test/java/seedu/manager/command/FindCommandTest.java +++ b/src/test/java/seedu/manager/command/FindCommandTest.java @@ -17,7 +17,7 @@ public class FindCommandTest { public void testSetUp() { eventList = new EventList(); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 16:00", formatter), - "Venue 1"); + "Venue 1", Priority.HIGH); eventList.addParticipantToEvent("John Doe", "Event 1"); eventList.addParticipantToEvent("Jane Doe", "Event 1"); eventList.addParticipantToEvent("Kuan Hsien", "Event 1"); From 11e56c0970c000856499d00420545d2626836427 Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:40:03 +0800 Subject: [PATCH 286/619] Update MenuCommand.java --- src/main/java/seedu/manager/command/MenuCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index dc50f4e59e..f97f524965 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -18,7 +18,7 @@ public class MenuCommand extends Command { mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. sort -by KEYWORD: Sorts events by name/time/priority. - copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another."""; + copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. find -e EVENT -p NAME: Finds all participants with specified name in an event."""; /** From ad9db75b6b298b96a0ee5f15348c4bbce71af355 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:40:56 +0800 Subject: [PATCH 287/619] Update ParserTest.java --- src/test/java/seedu/manager/parser/ParserTest.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index 5d1284727a..80b23f1f36 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -158,6 +158,7 @@ public void parseCommand_markInvalidFlags_throwsException() { public void parseCommand_sortEventsInvalidFlags_throwsException() { Parser parser = new Parser(); String commandString = "sort by name"; + } @Test public void parseCommand_findCommandFlags_throwsException() { @@ -171,8 +172,6 @@ public void parseCommand_findCommandFlags_throwsException() { public void parseCommand_sortEventsInvalidInput_throwsException() { Parser parser = new Parser(); String commandString = "sort -by fun"; - - assertThrows(InvalidCommandException.class, () -> { parser.parseCommand(commandString);}); } @@ -181,8 +180,10 @@ public void parseCommand_sortEventsInvalidInput_throwsException() { public void parseCommand_filterEventsInvalidFlag_throwsException() { Parser parser = new Parser(); String commandString = "filter -s high"; - - assertThrows(InvalidCommandException.class, () -> { + assertThrows(InvalidCommandException.class,() -> { + parser.parseCommand(commandString);}); + } + @Test public void parseCommand_findCommandInvalidInput_throwsException() { Parser parser = new Parser(); From 6d58b7dda644f06cc7d45eb99a446ef98529ac3f Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:42:17 +0800 Subject: [PATCH 288/619] Update CopyCommandTest.java --- src/test/java/seedu/manager/command/CopyCommandTest.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/test/java/seedu/manager/command/CopyCommandTest.java b/src/test/java/seedu/manager/command/CopyCommandTest.java index 1dfd32b9c8..b3da0352a0 100644 --- a/src/test/java/seedu/manager/command/CopyCommandTest.java +++ b/src/test/java/seedu/manager/command/CopyCommandTest.java @@ -2,6 +2,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; import java.time.LocalDateTime; @@ -17,9 +18,9 @@ public class CopyCommandTest { @BeforeEach public void setUp(){ eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-23 21:05", formatter), - "Venue B"); + "Venue B", Priority.HIGH); eventList.addEvent("Event 2", LocalDateTime.parse("2023-10-23 21:00", formatter), - "Venue A"); + "Venue A", Priority.HIGH); assertEquals(2, eventList.getListSize()); eventList.addParticipantToEvent("John Doe", "Event 1"); eventList.addParticipantToEvent("Jane Doe", "Event 1"); From 460e6a7396d442f964dfe84385625c071cb7d0d0 Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:43:33 +0800 Subject: [PATCH 289/619] Update FindCommandTest.java --- src/test/java/seedu/manager/command/FindCommandTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/seedu/manager/command/FindCommandTest.java b/src/test/java/seedu/manager/command/FindCommandTest.java index 4e6e1c93b5..2fcf5f11e2 100644 --- a/src/test/java/seedu/manager/command/FindCommandTest.java +++ b/src/test/java/seedu/manager/command/FindCommandTest.java @@ -2,6 +2,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; import java.time.LocalDateTime; From 511c8bfddc8d34aeb0ab3265726875cd0b44352d Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:43:57 +0800 Subject: [PATCH 290/619] Update FindCommandTest.java --- src/test/java/seedu/manager/command/FindCommandTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/seedu/manager/command/FindCommandTest.java b/src/test/java/seedu/manager/command/FindCommandTest.java index 4608eaf259..2fcf5f11e2 100644 --- a/src/test/java/seedu/manager/command/FindCommandTest.java +++ b/src/test/java/seedu/manager/command/FindCommandTest.java @@ -2,6 +2,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; import java.time.LocalDateTime; @@ -17,7 +18,7 @@ public class FindCommandTest { public void testSetUp() { eventList = new EventList(); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 16:00", formatter), - "Venue 1"); + "Venue 1", Priority.HIGH); eventList.addParticipantToEvent("John Doe", "Event 1"); eventList.addParticipantToEvent("Jane Doe", "Event 1"); eventList.addParticipantToEvent("Kuan Hsien", "Event 1"); From 9bd975074ea41ba34190ed42f3a1af3586d7484c Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:46:00 +0800 Subject: [PATCH 291/619] Update EventList.java --- src/main/java/seedu/manager/event/EventList.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 0922a3525c..b2e2d44b80 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -61,7 +61,8 @@ public ArrayList getList() { * @param venue the venue where the event will take place. * @param priority the priority level of the event */ - public void addEvent(String eventName, LocalDateTime time, String venue, Priority priority) throws DuplicateDataException { + public void addEvent(String eventName, LocalDateTime time, + String venue, Priority priority) throws DuplicateDataException { if (getEventByName(eventName).isPresent()) { throw new DuplicateDataException(DUPLICATE_EVENT_MESSAGE); } From 416cdf584df133039ef949f568cf7becca636826 Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:49:02 +0800 Subject: [PATCH 292/619] Update Parser.java --- src/main/java/seedu/manager/parser/Parser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 6cfc1b0c5d..82c159b059 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -380,7 +380,7 @@ private Command parseSortCommand(String input, String[] commandParts) throws Inv * @return a {@code CopyCommand} object with the parsed source and destination * @throws InvalidCommandException if the command is missing required parts or has an invalid format */ - private Command parseCopyCommand(String input, String[] commandParts) throws InvalidCommandException { + private Command parseCopyCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(CopyCommand.COMMAND_WORD); try { From 2dcc61a844b3c0277a9f511a880924f1b2ccb996 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Wed, 30 Oct 2024 02:03:21 +0800 Subject: [PATCH 293/619] Update FilterCommand, Parser and ParserTest --- src/main/java/seedu/manager/command/FilterCommand.java | 2 +- src/main/java/seedu/manager/parser/Parser.java | 2 ++ src/test/java/seedu/manager/parser/ParserTest.java | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/command/FilterCommand.java b/src/main/java/seedu/manager/command/FilterCommand.java index 17bc8f7c9a..70412a58fb 100644 --- a/src/main/java/seedu/manager/command/FilterCommand.java +++ b/src/main/java/seedu/manager/command/FilterCommand.java @@ -9,7 +9,7 @@ * The filter command will filter out and display all events with the specified details */ public class FilterCommand extends Command { - public static final String COMMAND_WORD = "find"; + public static final String COMMAND_WORD = "filter"; private static final String FILTER_BY_PRIORITY_MESSAGE = "Events successfully filtered by priority!"; diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 64a754b7e3..e2016a8aa1 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -125,6 +125,8 @@ public Command parseCommand(String command) throws InvalidCommandException { return new ExitCommand(); case MarkCommand.COMMAND_WORD: return parseMarkCommand(command, commandParts); + case FindCommand.COMMAND_WORD: + return parseFindCommand(command, commandParts); case SortCommand.COMMAND_WORD: return parseSortCommand(command, commandParts); case FilterCommand.COMMAND_WORD: diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index 80b23f1f36..5113605c55 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -188,6 +188,7 @@ public void parseCommand_filterEventsInvalidFlag_throwsException() { public void parseCommand_findCommandInvalidInput_throwsException() { Parser parser = new Parser(); String commandString = "find -e -p doe"; + assertThrows(InvalidCommandException.class,() -> { parser.parseCommand(commandString);}); } From f0e43ece5942fa799c8733db1c72cf5c794244b7 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Wed, 30 Oct 2024 02:23:05 +0800 Subject: [PATCH 294/619] Add missing ; --- src/main/java/seedu/manager/parser/Parser.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index cbf32f40f8..85acb98aca 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -80,6 +80,7 @@ public class Parser { Invalid command! Please enter your commands in the following format: copy FROM_EVENT > TO_EVENT + """; private static final String INVALID_PRIORITY_MESSAGE = """ Invalid priority level status! Please use the following format for priority level: From 348b359b58ae34f53e3aa5991459d21a2997bb46 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Wed, 30 Oct 2024 02:46:32 +0800 Subject: [PATCH 295/619] Update JUnit tests --- src/test/java/seedu/manager/command/AddCommandTest.java | 5 +++-- src/test/java/seedu/manager/command/CopyCommandTest.java | 6 +++--- src/test/java/seedu/manager/command/FindCommandTest.java | 6 +++--- .../seedu/manager/command/MarkParticipantCommandTest.java | 2 -- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index 14c70ec04e..986d3d3e97 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -106,9 +106,10 @@ public void add_duplicateParticipant_throwsException() { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), "Venue A", Priority.HIGH); - eventList.addParticipantToEvent("John", "Event 1"); + eventList.addParticipantToEvent("John", "9123 8321", "example1@gmail.com", "Event 1"); - AddCommand addCommand = new AddCommand("John", "Event 1"); + AddCommand addCommand = new AddCommand("Event 1", LocalDateTime.parse("2024-10-10 10:00", + formatter), "Venue A", Priority.HIGH); addCommand.setData(eventList); assertThrows(DuplicateDataException.class, addCommand::execute); diff --git a/src/test/java/seedu/manager/command/CopyCommandTest.java b/src/test/java/seedu/manager/command/CopyCommandTest.java index b3da0352a0..132846f070 100644 --- a/src/test/java/seedu/manager/command/CopyCommandTest.java +++ b/src/test/java/seedu/manager/command/CopyCommandTest.java @@ -22,9 +22,9 @@ public void setUp(){ eventList.addEvent("Event 2", LocalDateTime.parse("2023-10-23 21:00", formatter), "Venue A", Priority.HIGH); assertEquals(2, eventList.getListSize()); - eventList.addParticipantToEvent("John Doe", "Event 1"); - eventList.addParticipantToEvent("Jane Doe", "Event 1"); - eventList.addParticipantToEvent("Peter Parker", "Event 1"); + eventList.addParticipantToEvent("John Doe", "9123 8321", "example1@gmail.com", "Event 1"); + eventList.addParticipantToEvent("Jane Doe", "8123 9321", "example2@gmail.com","Event 1"); + eventList.addParticipantToEvent("Peter Parker", "9321 8123", "example3@gmail.com","Event 1"); } @Test diff --git a/src/test/java/seedu/manager/command/FindCommandTest.java b/src/test/java/seedu/manager/command/FindCommandTest.java index 2fcf5f11e2..ae5d56c2a9 100644 --- a/src/test/java/seedu/manager/command/FindCommandTest.java +++ b/src/test/java/seedu/manager/command/FindCommandTest.java @@ -19,9 +19,9 @@ public void testSetUp() { eventList = new EventList(); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 16:00", formatter), "Venue 1", Priority.HIGH); - eventList.addParticipantToEvent("John Doe", "Event 1"); - eventList.addParticipantToEvent("Jane Doe", "Event 1"); - eventList.addParticipantToEvent("Kuan Hsien", "Event 1"); + eventList.addParticipantToEvent("John Doe", "9123 8321", "example1@gmail.com", "Event 1"); + eventList.addParticipantToEvent("Jane Doe", "8123 9321", "example2@gmail.com","Event 1"); + eventList.addParticipantToEvent("Kuan Hsien", "9321 8123", "example3@gmail.com","Event 1"); } @Test diff --git a/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java b/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java index a40bb4ef3f..e0fc8f6b66 100644 --- a/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java +++ b/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java @@ -25,8 +25,6 @@ public void testSetUp() { "example@gmail.com", "Event 1" ); - - eventList.addParticipantToEvent("John Doe", "Event 1"); } @Test From 78cdd56dcbe94fb99c4d63c9587ea61a5e09df8a Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Wed, 30 Oct 2024 02:49:28 +0800 Subject: [PATCH 296/619] Update Event.java --- src/main/java/seedu/manager/event/Event.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 0133251127..f0b0ab5565 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -72,7 +72,8 @@ public Event(String eventName, LocalDateTime eventTime, String eventVenue, Prior * @param participantName the name of the participant to be added to the list. * @throws DuplicateDataException if a participant with the same name exists in the list. */ - public void addParticipant(String participantName, String participantNumber, String participantEmail) throws DuplicateDataException { + public void addParticipant(String participantName, String participantNumber, String participantEmail) + throws DuplicateDataException { if (getParticipantByName(participantName).isPresent()) { throw new DuplicateDataException("Duplicate participant!"); } From 21bfb044b6c561ee32fc3dd0409eb18b0f261b55 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Wed, 30 Oct 2024 03:08:03 +0800 Subject: [PATCH 297/619] Update Parser and Storage --- src/main/java/seedu/manager/parser/Parser.java | 8 +++++--- src/main/java/seedu/manager/storage/Storage.java | 1 - 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index f3ce337771..506f77ba75 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -403,12 +403,13 @@ private Command parseSortCommand(String input, String[] commandParts) throws Inv * * This method reads each line from the specified file, expecting the format to be: *
    -     * eventName, eventTime, eventVenue
    +     * eventName, eventTime, eventVenue, eventPriority
          * 
    * where: * - eventName is a String representing the name of the event. * - eventTime is a String formatted as "yyyy-MM-dd HH:mm" that will be parsed into a LocalDateTime object. * - eventVenue is a String representing the venue of the event. + * - eventPriority is a String representing the priority level of the event. * * If a line does not contain exactly three parts, it is skipped. * @@ -421,11 +422,12 @@ public void parseFile(EventList events, String filePath) throws IOException { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); for (String line : Files.readAllLines(Paths.get(filePath))) { String[] parts = line.split(","); // CSV format - if (parts.length == 3) { + if (parts.length == 4) { String eventName = parts[0].trim(); LocalDateTime time = LocalDateTime.parse(parts[1].trim(), formatter); String venue = parts[2].trim(); - events.addEvent(eventName, time, venue); + Priority priority = Priority.valueOf(parts[3].trim().toUpperCase()); + events.addEvent(eventName, time, venue, priority); } } } catch (IOException exception) { diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index ba936ff305..d8089fd996 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -1,6 +1,5 @@ package seedu.manager.storage; -import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; import seedu.manager.event.Event; import seedu.manager.parser.Parser; From 547d7bf17c7f292cf3dc2765213832a8dfa5693b Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Wed, 30 Oct 2024 03:25:21 +0800 Subject: [PATCH 298/619] Update EXPECTED.TXT --- text-ui-test/EXPECTED.TXT | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index e9e2155b9d..82bd101f5a 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -56,11 +56,12 @@ Enter a command: Event not found! ------------------------ Events saved successfully. ------------------------ -Enter a command: Event not found! +Enter a command: Participant added successfully ------------------------ Events saved successfully. ------------------------ -Enter a command: There are 0 participants in dinner party! Here are your participants: +Enter a command: There are 1 participants in dinner party! Here are your participants: +1. Mary [ ] ------------------------ Events saved successfully. @@ -69,23 +70,17 @@ Enter a command: Event added successfully ------------------------ Events saved successfully. ------------------------ -Enter a command: name -Events successfully sorted by name! +Enter a command: Events successfully sorted by name! 1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Done: N 2. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Done: Y ------------------------ Events saved successfully. ------------------------ -Enter a command: time -Events successfully sorted by time! +Enter a command: Events successfully sorted by time! 1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Done: Y 2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Done: N -Enter a command: Events successfully sorted by name! -1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N -2. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y - ------------------------ Enter a command: Events successfully sorted by time! 1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y From 2fa93647f1f97ec2b4d886ee0347a10d77a863a7 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Wed, 30 Oct 2024 03:29:05 +0800 Subject: [PATCH 299/619] Update EXPECTED.TXT --- text-ui-test/EXPECTED.TXT | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 82bd101f5a..b8a99a0896 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -71,16 +71,11 @@ Enter a command: Event added successfully Events saved successfully. ------------------------ Enter a command: Events successfully sorted by name! -1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Done: N -2. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Done: Y +1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N +2. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y ------------------------ Events saved successfully. ------------------------- -Enter a command: Events successfully sorted by time! -1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Done: Y -2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Done: N - ------------------------ Enter a command: Events successfully sorted by time! 1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y From 1cf82cacac98a5e6d1d96d73fbf8533a9fb7b261 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 30 Oct 2024 06:50:27 +0800 Subject: [PATCH 300/619] Update AddCommand to support adding items --- .../seedu/manager/command/AddCommand.java | 38 +++++++++++---- src/main/java/seedu/manager/event/Event.java | 46 ++++++++++++++++++- .../java/seedu/manager/event/EventList.java | 19 +++++++- 3 files changed, 90 insertions(+), 13 deletions(-) diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index 776c3b2d79..b79ffa2862 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -15,7 +15,9 @@ public class AddCommand extends Command { public static final String COMMAND_WORD = "add"; private static final String ADD_EVENT_MESSAGE = "Event added successfully"; private static final String ADD_PARTICIPANT_MESSAGE = "Participant added successfully"; + private static final String ADD_ITEM_MESSAGE = "Item added successfully!"; private static final String ADD_FAILURE_MESSAGE = "Event not found!"; + protected String eventName; protected LocalDateTime time; protected String venue; @@ -23,6 +25,7 @@ public class AddCommand extends Command { protected String participantName; protected String participantNumber; protected String participantEmail; + protected String itemName; /** * Constructs an AddCommand object with the specified event details. @@ -57,6 +60,18 @@ public AddCommand(String participantName, String participantNumber, String parti this.eventName = eventName; } + /** + * Constructs an {@link AddCommand} with the specified item and event name. + * + * @param itemName the name of the item to be added to the event. + * @param eventName the name of the event the item is to be added to. + */ + public AddCommand(String itemName, String eventName) { + super(false); + this.itemName = itemName; + this.eventName = eventName; + } + //@@author KuanHsienn /** * Executes the command to add an event or a participant to an event. @@ -75,17 +90,20 @@ public AddCommand(String participantName, String participantNumber, String parti */ @Override public void execute() throws DuplicateDataException { - if (participantName == null) { - this.eventList.addEvent(this.eventName, this.time, this.venue, this.priority); - this.message = ADD_EVENT_MESSAGE; - } else { - boolean isAdded = this.eventList.addParticipantToEvent( - this.participantName, - this.participantEmail, - this.participantNumber, - this.eventName + if (participantName != null) { + boolean isAdded = eventList.addParticipantToEvent( + participantName, + participantEmail, + participantNumber, + eventName ); - this.message = (isAdded) ? ADD_PARTICIPANT_MESSAGE : ADD_FAILURE_MESSAGE; + message = (isAdded) ? ADD_PARTICIPANT_MESSAGE : ADD_FAILURE_MESSAGE; + } else if (itemName != null) { + boolean isAdded = eventList.addItemToEvent(itemName, participantName); + message = (isAdded) ? ADD_ITEM_MESSAGE : ADD_FAILURE_MESSAGE; + } else { + eventList.addEvent(eventName, time, venue, priority); + message = ADD_EVENT_MESSAGE; } } } diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index f0b0ab5565..ac65948630 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -2,6 +2,7 @@ import seedu.manager.enumeration.Priority; import seedu.manager.exception.DuplicateDataException; +import seedu.manager.item.Item; import seedu.manager.item.Participant; import java.time.LocalDateTime; @@ -15,7 +16,11 @@ * It provides methods to access and modify the time and venue of the event. */ public class Event { + private static final String DUPLICATE_PARTICIPANT_MESSAGE = "Duplicate participant!"; + private static final String DUPLICATE_ITEM_MESSAGE = "Duplicate item!"; + protected ArrayList participantList; + private ArrayList itemList; private final String eventName; private LocalDateTime eventTime; private String eventVenue; @@ -44,6 +49,7 @@ public Event(String eventName, LocalDateTime eventTime, String eventVenue) { this.eventTime = eventTime; this.eventVenue = eventVenue; this.participantList = new ArrayList<>(); + this.itemList = new ArrayList<>(); this.isDone = false; } @@ -62,6 +68,7 @@ public Event(String eventName, LocalDateTime eventTime, String eventVenue, Prior this.eventVenue = eventVenue; this.eventPriority = eventPriority; this.participantList = new ArrayList<>(); + this.itemList = new ArrayList<>(); this.isDone = false; } @@ -75,7 +82,7 @@ public Event(String eventName, LocalDateTime eventTime, String eventVenue, Prior public void addParticipant(String participantName, String participantNumber, String participantEmail) throws DuplicateDataException { if (getParticipantByName(participantName).isPresent()) { - throw new DuplicateDataException("Duplicate participant!"); + throw new DuplicateDataException(DUPLICATE_PARTICIPANT_MESSAGE); } Participant participant = new Participant(participantName, participantNumber, participantEmail); @@ -110,6 +117,33 @@ public int getParticipantCount() { return this.participantList.size(); } + //@@author jemehgoh + /** + * Adds an item with a given name to the event's item list. + * + * @param itemName the name of the item to be added. + * @throws DuplicateDataException if an item with the same name is already in the list. + */ + public void addItem(String itemName) throws DuplicateDataException { + if (getItemByName(itemName).isPresent()) { + throw new DuplicateDataException(DUPLICATE_ITEM_MESSAGE); + } + + Item item = new Item(itemName); + itemList.add(item); + } + + /** + * Returns true if an item with the given name is successfully removed from the item list, returns false + * otherwise. + * + * @param itemName the name of the item to be removed. + * @return {@code true} if an item with itemName is successfully removed, {@code false} otherwise. + */ + public boolean removeItem(String itemName) { + return itemList.removeIf((item) -> (item.getName().equalsIgnoreCase(itemName))); + } + //@@author MatchaRRR /** * @return the event name @@ -302,4 +336,14 @@ private boolean markParticipant(Optional participant, boolean isPre participant.get().setPresent(isPresent); return true; } + + private Optional getItemByName(String itemName) { + for (Item item : itemList) { + if (item.getName().equalsIgnoreCase(itemName)) { + return Optional.of(item); + } + } + + return Optional.empty(); + } } diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 13ffb4955a..e663f7642d 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -8,7 +8,6 @@ import java.util.Comparator; import java.util.Optional; - /** * The EventList class manages a list of Event objects. * It provides methods to manage an event list. @@ -63,7 +62,7 @@ public ArrayList getList() { * @throws DuplicateDataException if an event with eventName is present in the event list. */ public void addEvent(String eventName, LocalDateTime time, - String venue, Priority priority) throws DuplicateDataException{ + String venue, Priority priority) throws DuplicateDataException { if (getEventByName(eventName).isPresent()) { throw new DuplicateDataException(DUPLICATE_EVENT_MESSAGE); } @@ -169,6 +168,22 @@ public boolean removeParticipantFromEvent(String participantName, String eventNa return false; } + /** + * Returns true if an item with a given name is successfully added to a given event, returns false otherwise. + * + * @param itemName the name of the item to be added. + * @param eventName the name of the event the item is to be added to. + * @return {@code true} if the item is successfully added to the event, {@code false} otherwise. + */ + public boolean addItemToEvent(String itemName, String eventName) { + Optional event = getEventByName(eventName); + if (event.isPresent()) { + event.get().addItem(itemName); + } + return event.isPresent(); + } + + //@@author LTK-1606 /** * Sort the event list by name, alphabetically. */ From 7c6b8455fe3c318d52526ca708be085258e1a515 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Wed, 30 Oct 2024 08:36:17 +0800 Subject: [PATCH 301/619] Add AddCommand feature to Developer Guide --- docs/DeveloperGuide.md | 33 +++++++++++++++++++++ docs/diagrams/AddEventSequenceDiagram.puml | 20 +++++++++++++ docs/images/AddEventSequenceDiagram.png | Bin 0 -> 33570 bytes 3 files changed, 53 insertions(+) create mode 100644 docs/diagrams/AddEventSequenceDiagram.puml create mode 100644 docs/images/AddEventSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 8ffdd12d0e..f3931aab6d 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -91,6 +91,8 @@ The `ListCommand` class performs the following key operations: These operations are accessible through the `Command` and can be invoked when the list command is entered by the user. +#### Feature Implementation + Given below is an example usage scenario and the behavior of the list feature at each step: 1. User Command Input: @@ -107,6 +109,35 @@ Events are appended to `outputMessage` with numbered formatting for readability. 4. Output Generation: The method stores the generated `outputMessage` in `this.message`, ready for display. +### Add feature + +The `add` feature allow users to add events/participants based on relevant flags. +It is implemented in the `AddCommand` class which extends the base `Command` class and parse through the command to retrieve information based off flags. + +The above operation is implemented as `AdCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, +and is invoked when the latter operation is called. + +The `AddCommand` handles two primary functions: + +1. **Add an Event:** When provided with event details, including name, time, venue and priority, it creates and stores a new event in the event list. +2. **Add a Participant:** When provided with participant information, including name, contact number, and email, it attempts to add the participant to an existing event. + +#### Feature Implementation + +Given below is an example usage scenario for the add mechanism, and how it behaves at each step. + +1. The user enters the command `add` followed by `-e` or `-p` to indicate adding an event or participant. +2. This step is determined by our `Parser` which parses through the user input to determine if it is adding a participant or event +3. Based on the parsed input, `AddCommand` executes one of the following actions: + + **Add Event:** Creates a new event in `EventList` with the provided event details + + **Add Participant:** Locates the event in `EventList` and adds the participant to it +4. If a duplicate event is found, `DuplicateDataException` is thrown. + +The interactions between components during the execution of the `add` command are show in the **Sequence Diagram** below: + + + + ### Mark/unmark feature The mark/unmark feature allows users to mark events as done or not done. The feature comprises `MarkEventCommand`, which @@ -167,6 +198,8 @@ The user is able to organise and manage his events more quickly and efficiently | v2.0 | user | mark events as completed | easily track all past events | | v2.0 | user | mark participants present | know exactly who signed up but did not attend the event | | v2.0 | user | save events info | can still access the information if the program terminates | +| v2.0 | user | filter events by keywords | can find relevant information efficiently | +| v2.0 | user | edit event details | can update latest changes to events | ## Non-Functional Requirements diff --git a/docs/diagrams/AddEventSequenceDiagram.puml b/docs/diagrams/AddEventSequenceDiagram.puml new file mode 100644 index 0000000000..2cc903f8c6 --- /dev/null +++ b/docs/diagrams/AddEventSequenceDiagram.puml @@ -0,0 +1,20 @@ +@startuml + +Main -> Parser: add n/Meeting t/2023-11-10T14:00 v/Room 101 p/HIGH +activate Parser +Parser -> AddCommand: new AddCommand("Meeting", time, "Room 101", Priority.HIGH) +activate AddCommand +AddCommand -> EventList: addEvent("Meeting", time, "Room 101", Priority.HIGH) +activate EventList +EventList -> Event: new Event("Meeting", time, "Room 101", Priority.HIGH) +activate Event +Event --> EventList +deactivate Event +EventList --> AddCommand +deactivate EventList +AddCommand --> Parser +deactivate AddCommand +Parser --> Main +deactivate Parser + +@enduml \ No newline at end of file diff --git a/docs/images/AddEventSequenceDiagram.png b/docs/images/AddEventSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..dba59a125e05d4b0d4aaafd22d09ff869f1e9c59 GIT binary patch literal 33570 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 literal 0 HcmV?d00001 From 5ecfb21e432687c662a98fc773be4b428c74b8d3 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 30 Oct 2024 08:40:58 +0800 Subject: [PATCH 302/619] Update parser to support adding of items --- .gitignore | 2 +- .../seedu/manager/command/AddCommand.java | 2 +- .../java/seedu/manager/parser/Parser.java | 62 +++++++++++++------ .../java/seedu/manager/storage/Storage.java | 2 +- 4 files changed, 47 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index e6ed0b64a4..d6c1ec6470 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,4 @@ bin/ /text-ui-test/ACTUAL.TXT text-ui-test/EXPECTED-UNIX.TXT src/main/java/META-INF/MANIFEST.MF -/events.txt +/events.csv diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index b79ffa2862..7f82cdd231 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -99,7 +99,7 @@ public void execute() throws DuplicateDataException { ); message = (isAdded) ? ADD_PARTICIPANT_MESSAGE : ADD_FAILURE_MESSAGE; } else if (itemName != null) { - boolean isAdded = eventList.addItemToEvent(itemName, participantName); + boolean isAdded = eventList.addItemToEvent(itemName, eventName); message = (isAdded) ? ADD_ITEM_MESSAGE : ADD_FAILURE_MESSAGE; } else { eventList.addEvent(eventName, time, venue, priority); diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 506f77ba75..28d6449f93 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -108,6 +108,9 @@ public class Parser { Invalid find flag! Please set the find flag using "-e" and "-p"" """; + private static final String ADD_EVENT_REGEX = "(-e|-t|-v|-u)"; + private static final String ADD_PARTICIPANT_REGEX = "(-p|-n|-email|-e)"; + private static final String ADD_ITEM_REGEX = "(-m|-e)"; private static final String FIND_REGEX = "\\s*(-e|-p)\\s*"; /** @@ -170,27 +173,13 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval assert commandParts[0].equalsIgnoreCase(AddCommand.COMMAND_WORD); try { String commandFlag = commandParts[1]; - String[] inputParts; if (commandFlag.equals("-e")) { - inputParts = input.split("(-e|-t|-v|-u)"); - logger.info("Creating AddCommand for event with details: " + - inputParts[1].trim() + ", " + inputParts[2].trim() + ", " + inputParts[3].trim()); - String eventName = inputParts[1].trim(); - LocalDateTime eventTime = LocalDateTime.parse(inputParts[2].trim(), - DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); - String venue = inputParts[3].trim(); - Priority eventPriority = Priority.valueOf(inputParts[4].trim().toUpperCase()); - return new AddCommand(eventName, eventTime, venue, eventPriority); + return getAddEventCommand(input); } else if (commandFlag.equals("-p")) { - inputParts = input.split("(-p|-n|-email|-e)"); - logger.info("Creating AddCommand for participant with details: " + - inputParts[1].trim() + ", " + inputParts[2].trim()); - String participantName = inputParts[1].trim(); - String participantNumber = inputParts[2].trim(); - String participantEmail = inputParts[3].trim(); - String eventName = inputParts[4].trim(); - return new AddCommand(participantName, participantNumber, participantEmail, eventName); + return getAddParticipantCommand(input); + } else if (commandFlag.equals("-m")) { + return getAddItemCommand(input); } logger.log(WARNING,"Invalid command format"); @@ -207,6 +196,43 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval } } + //@@author KuanHsienn + private Command getAddEventCommand(String input) throws IndexOutOfBoundsException, DateTimeParseException { + String[] inputParts = input.split(ADD_EVENT_REGEX); + logger.info("Creating AddCommand for event with details: " + + inputParts[1].trim() + ", " + inputParts[2].trim() + ", " + inputParts[3].trim()); + String eventName = inputParts[1].trim(); + LocalDateTime eventTime = LocalDateTime.parse(inputParts[2].trim(), + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); + String venue = inputParts[3].trim(); + Priority eventPriority = Priority.valueOf(inputParts[4].trim().toUpperCase()); + return new AddCommand(eventName, eventTime, venue, eventPriority); + } + + //@@author LTK-1606 + private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsException { + String[] inputParts = input.split(ADD_PARTICIPANT_REGEX); + logger.info("Creating AddCommand for participant with details: " + + inputParts[1].trim() + ", " + inputParts[2].trim()); + String participantName = inputParts[1].trim(); + String participantNumber = inputParts[2].trim(); + String participantEmail = inputParts[3].trim(); + String eventName = inputParts[4].trim(); + return new AddCommand(participantName, participantNumber, participantEmail, eventName); + } + + //@@author jemehgoh + private Command getAddItemCommand(String input) throws IndexOutOfBoundsException { + String[] inputParts = input.split(ADD_ITEM_REGEX); + String itemName = inputParts[1].trim(); + + String eventName = inputParts[2].trim(); + logger.info(String.format("Creating AddCommand for item with details: %s, %s", itemName, + eventName)); + return new AddCommand(itemName, eventName); + } + + //@@author LTK-1606 /** * Parses the input string to create a {@link Command} based on the provided command parts. * diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index d8089fd996..37668ee538 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -66,7 +66,7 @@ public void loadEvents(EventList events) throws IOException { * @return True if valid and matches, false otherwise. */ private boolean isValidFilePath(String filePath) { - String expectedPath = "events.txt"; // You can change this if needed + String expectedPath = "events.csv"; // You can change this if needed return filePath.equals(expectedPath); } From 23e7643a41e18c9cba75fc958fd819cdb8bb9128 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Wed, 30 Oct 2024 08:50:40 +0800 Subject: [PATCH 303/619] Add RemoveCommand feature to Developer Guide --- docs/DeveloperGuide.md | 42 +++++++++++++++++- .../AddParticipantSequenceDiagram.puml | 15 +++++++ docs/diagrams/RemoveEventSequenceDiagram.puml | 16 +++++++ .../RemoveParticipantSequenceDiagram.puml | 15 +++++++ docs/images/AddParticipantSequenceDiagram.png | Bin 0 -> 29644 bytes docs/images/RemoveEventSequenceDiagram.png | Bin 0 -> 18126 bytes .../RemoveParticipantSequenceDiagram.png | Bin 0 -> 21419 bytes 7 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 docs/diagrams/AddParticipantSequenceDiagram.puml create mode 100644 docs/diagrams/RemoveEventSequenceDiagram.puml create mode 100644 docs/diagrams/RemoveParticipantSequenceDiagram.puml create mode 100644 docs/images/AddParticipantSequenceDiagram.png create mode 100644 docs/images/RemoveEventSequenceDiagram.png create mode 100644 docs/images/RemoveParticipantSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index f3931aab6d..03f9abfac0 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -114,7 +114,7 @@ The method stores the generated `outputMessage` in `this.message`, ready for dis The `add` feature allow users to add events/participants based on relevant flags. It is implemented in the `AddCommand` class which extends the base `Command` class and parse through the command to retrieve information based off flags. -The above operation is implemented as `AdCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, +The above operation is implemented as `AddCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, and is invoked when the latter operation is called. The `AddCommand` handles two primary functions: @@ -135,8 +135,48 @@ Given below is an example usage scenario for the add mechanism, and how it behav The interactions between components during the execution of the `add` command are show in the **Sequence Diagram** below: +**Add Event** + +**Add Participant** + + + +### Remove feature + +The `remove` feature allows users to remove events/participants based on relevant flags. +It is implemented in the `RemoveCommand` class which extends the base `Command` class and parse through the command to retrieve information based off flags. + +The above operation is implemented as `RemoveCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, +and is invoked when the latter operation is called. + +The `RemoveCommand` handles two primary functions: + +1. **Remove an Event:** When given the name of an event, it searches for and deletes it from the event list if it exists. +2. **Remove a Participant:** When provided with a participant’s name and the name of an event, it attempts to remove the specified participant from that event. + +#### Feature Implementation + +Given below is an example usage scenario for the remove mechanism, and how it behaves at each step. + +1. The user enters the command `remove` followed by `-e` or `-p` to specify removing an event or participant. +2. This step is determined by our `Parser` which parses through the user input to determine if it is adding a participant or event +3. Based on the parsed input, `RemoveComamnd` executes one of the following actions: + + **Remove Event:** Remove the specified event from `EventList` using the provided event name + + **Remove Participant:** Locates the event in `EventList` and deletes the specified participant +4. If the event or participant is not found, `RemoveCommand` sets a failure message. + +The interactions between components during the execution of the `remove` command are show in the **Sequence Diagram** below: + +**Remove Event** + + + +**Remove Participant** + + + ### Mark/unmark feature diff --git a/docs/diagrams/AddParticipantSequenceDiagram.puml b/docs/diagrams/AddParticipantSequenceDiagram.puml new file mode 100644 index 0000000000..b2846a4459 --- /dev/null +++ b/docs/diagrams/AddParticipantSequenceDiagram.puml @@ -0,0 +1,15 @@ +@startuml +Main -> Parser: add p/John Doe n/Meeting e/johndoe@example.com p/12345678 +activate Parser +Parser -> AddCommand: new AddCommand("John Doe", "12345678", "johndoe@example.com", "Meeting") +activate AddCommand +AddCommand -> EventList: addParticipantToEvent("John Doe", "12345678", "johndoe@example.com", "Meeting") +activate EventList +EventList --> AddCommand +deactivate EventList +AddCommand --> Parser +deactivate AddCommand +Parser --> Main +deactivate Parser + +@enduml \ No newline at end of file diff --git a/docs/diagrams/RemoveEventSequenceDiagram.puml b/docs/diagrams/RemoveEventSequenceDiagram.puml new file mode 100644 index 0000000000..b1f7abbd65 --- /dev/null +++ b/docs/diagrams/RemoveEventSequenceDiagram.puml @@ -0,0 +1,16 @@ +@startuml + +Main -> Parser: remove e/Meeting +activate Parser +Parser -> RemoveCommand: new RemoveCommand("Meeting") +activate RemoveCommand +RemoveCommand -> EventList: removeEvent("Meeting") +activate EventList +EventList --> RemoveCommand +deactivate EventList +RemoveCommand --> Parser +deactivate RemoveCommand +Parser --> Main +deactivate Parser + +@enduml \ No newline at end of file diff --git a/docs/diagrams/RemoveParticipantSequenceDiagram.puml b/docs/diagrams/RemoveParticipantSequenceDiagram.puml new file mode 100644 index 0000000000..6e83358189 --- /dev/null +++ b/docs/diagrams/RemoveParticipantSequenceDiagram.puml @@ -0,0 +1,15 @@ +@startuml +Main -> Parser: remove p/John Doe e/Meeting +activate Parser +Parser -> RemoveCommand: new RemoveCommand("John Doe", "Meeting") +activate RemoveCommand +RemoveCommand -> EventList: removeParticipantFromEvent("John Doe", "Meeting") +activate EventList +EventList --> RemoveCommand +deactivate EventList +RemoveCommand --> Parser +deactivate RemoveCommand +Parser --> Main +deactivate Parser + +@enduml \ No newline at end of file diff --git a/docs/images/AddParticipantSequenceDiagram.png b/docs/images/AddParticipantSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..d350fa4a9debd88620feb6b5c51f096829ef5894 GIT binary patch literal 29644 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

    c@fI`yy?xNu5|kX;mvkTu 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 gQ~d98!xb?W8H& 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%0A06|>n73JJlY{bqP*3%x=ktx*9}=$8h3lTy=O2+t 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 Date: Wed, 30 Oct 2024 09:11:04 +0800 Subject: [PATCH 304/619] Add ViewCommand feature to Developer Guide --- docs/DeveloperGuide.md | 34 ++++++++++++++++-- .../AddParticipantSequenceDiagram.puml | 1 + .../RemoveParticipantSequenceDiagram.puml | 1 + docs/diagrams/ViewEventSequenceDiagram.puml | 20 +++++++++++ docs/images/ViewEventSequenceDiagram.png | Bin 0 -> 26260 bytes 5 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 docs/diagrams/ViewEventSequenceDiagram.puml create mode 100644 docs/images/ViewEventSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 03f9abfac0..8e4be65b36 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -124,7 +124,7 @@ The `AddCommand` handles two primary functions: #### Feature Implementation -Given below is an example usage scenario for the add mechanism, and how it behaves at each step. +Given below is an example usage scenario for the `add` mechanism, and how it behaves at each step. 1. The user enters the command `add` followed by `-e` or `-p` to indicate adding an event or participant. 2. This step is determined by our `Parser` which parses through the user input to determine if it is adding a participant or event @@ -158,7 +158,7 @@ The `RemoveCommand` handles two primary functions: #### Feature Implementation -Given below is an example usage scenario for the remove mechanism, and how it behaves at each step. +Given below is an example usage scenario for the `remove` mechanism, and how it behaves at each step. 1. The user enters the command `remove` followed by `-e` or `-p` to specify removing an event or participant. 2. This step is determined by our `Parser` which parses through the user input to determine if it is adding a participant or event @@ -177,10 +177,38 @@ The interactions between components during the execution of the `remove` command +### View feature + +The `view` feature allows users to view the list of participants of an event. +The view command will search for an event by its name and display all its participants if found. +It is implemented in the `ViewCommand` class which extends the base `Command` class and interacts with the `EventList` to retrieve and display participant information. + +The `ViewCommand` class handles one primary function: + +1. It is to enable users to view all participants associated with a specific event. +It accomplishes this by searching for the event by its name and displaying participant details if the event is found. + +#### Feature Implementation + +Given below is an example usage scenario for the `view` mechanism, and how it behaves at each step + +1. The user enters the command `view` followed by an `-e` flag to indicate which event to view participants from +2. The command is processed by the `Parser`, which identifies that the user intends to view participants for the specified event. +3. The `ViewCommand` attempts to retrieve the event from the `EventList` using the `getEventByName` method. +4. If the event is found: + - The `ViewCommand` constructs a success message that includes the number of participants and their details in a formatted manner. + + If the event is not found: + - The `ViewCommand` sets an error message. +5. The message generated by `ViewCommand` is returned to the user interface, which then displays it to the user + +The interactions between components during the execution of the `view` command are show in the **Sequence Diagram** below: + + ### Mark/unmark feature -The mark/unmark feature allows users to mark events as done or not done. The feature comprises `MarkEventCommand`, which +The `mark/unmark` feature allows users to mark events as done or not done. The feature comprises `MarkEventCommand`, which extends `Command`. This class performs one operation, which marks a specified event as done or not done. The above operation is implemented as `MarkEventCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, diff --git a/docs/diagrams/AddParticipantSequenceDiagram.puml b/docs/diagrams/AddParticipantSequenceDiagram.puml index b2846a4459..24c975d042 100644 --- a/docs/diagrams/AddParticipantSequenceDiagram.puml +++ b/docs/diagrams/AddParticipantSequenceDiagram.puml @@ -1,4 +1,5 @@ @startuml + Main -> Parser: add p/John Doe n/Meeting e/johndoe@example.com p/12345678 activate Parser Parser -> AddCommand: new AddCommand("John Doe", "12345678", "johndoe@example.com", "Meeting") diff --git a/docs/diagrams/RemoveParticipantSequenceDiagram.puml b/docs/diagrams/RemoveParticipantSequenceDiagram.puml index 6e83358189..9224eea3e2 100644 --- a/docs/diagrams/RemoveParticipantSequenceDiagram.puml +++ b/docs/diagrams/RemoveParticipantSequenceDiagram.puml @@ -1,4 +1,5 @@ @startuml + Main -> Parser: remove p/John Doe e/Meeting activate Parser Parser -> RemoveCommand: new RemoveCommand("John Doe", "Meeting") diff --git a/docs/diagrams/ViewEventSequenceDiagram.puml b/docs/diagrams/ViewEventSequenceDiagram.puml new file mode 100644 index 0000000000..d0012807e0 --- /dev/null +++ b/docs/diagrams/ViewEventSequenceDiagram.puml @@ -0,0 +1,20 @@ +@startuml + +Main -> Parser: view EventName +activate Parser +Parser -> ViewCommand: new ViewCommand("EventName") +activate ViewCommand +ViewCommand -> EventList: getEventByName("EventName") +activate EventList +EventList -> EventList: getParticpantList() +activate EventList +EventList -->EventList +deactivate EventList +EventList --> ViewCommand: Optional +deactivate EventList +ViewCommand --> Parser: return message +deactivate ViewCommand +Parser --> Main +deactivate Parser + +@enduml \ No newline at end of file diff --git a/docs/images/ViewEventSequenceDiagram.png b/docs/images/ViewEventSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..8b034efbb5aa7589557bf16651be05b0a5c36e82 GIT binary patch literal 26260 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 literal 0 HcmV?d00001 From c67ca403b49ad1f777011a3f70c326a8c8952a7a Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 30 Oct 2024 11:54:18 +0800 Subject: [PATCH 305/619] Update JUnit tests for add item and add author tags --- .../seedu/manager/command/AddCommand.java | 2 +- .../java/seedu/manager/parser/Parser.java | 2 +- .../seedu/manager/command/AddCommandTest.java | 38 +++++++++++++++++++ .../java/seedu/manager/parser/ParserTest.java | 6 +++ 4 files changed, 46 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index 7f82cdd231..fa1dea7e8c 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -15,7 +15,7 @@ public class AddCommand extends Command { public static final String COMMAND_WORD = "add"; private static final String ADD_EVENT_MESSAGE = "Event added successfully"; private static final String ADD_PARTICIPANT_MESSAGE = "Participant added successfully"; - private static final String ADD_ITEM_MESSAGE = "Item added successfully!"; + private static final String ADD_ITEM_MESSAGE = "Item added successfully"; private static final String ADD_FAILURE_MESSAGE = "Event not found!"; protected String eventName; diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 28d6449f93..794f706aa6 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -151,6 +151,7 @@ public Command parseCommand(String command) throws InvalidCommandException { } } + //@@author KuanHsienn /** * Parses the input string to create an {@link Command} object based on the provided command parts. *

    @@ -196,7 +197,6 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval } } - //@@author KuanHsienn private Command getAddEventCommand(String input) throws IndexOutOfBoundsException, DateTimeParseException { String[] inputParts = input.split(ADD_EVENT_REGEX); logger.info("Creating AddCommand for event with details: " + diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index 986d3d3e97..1c2821b2cd 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -114,5 +114,43 @@ public void add_duplicateParticipant_throwsException() { assertThrows(DuplicateDataException.class, addCommand::execute); } + + @Test + public void add_oneItem_success() { + String expectedMessage = "Item added successfully"; + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-25 16:00", formatter), + "Venue 1", Priority.MEDIUM); + + AddCommand addCommand = new AddCommand("Foolscap paper", "Event 1"); + addCommand.setData(eventList); + addCommand.execute(); + + assertEquals(expectedMessage, addCommand.getMessage()); + } + + @Test + public void add_oneItemInvalidEvent_failure() { + String expectedMessage = "Event not found!"; + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-25 16:00", formatter), + "Venue 1", Priority.MEDIUM); + + AddCommand addCommand = new AddCommand("Graph paper", "Event 2"); + addCommand.setData(eventList); + addCommand.execute(); + + assertEquals(expectedMessage, addCommand.getMessage()); + } + + @Test + public void add_duplicateItem_throwsException() { + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-25 16:00", formatter), + "Venue 1", Priority.MEDIUM); + eventList.addItemToEvent("Crepe paper", "Event 1"); + + AddCommand addCommand = new AddCommand("Crepe paper", "Event 1"); + addCommand.setData(eventList); + + assertThrows(DuplicateDataException.class, addCommand::execute); + } } diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index d784bcff01..e25075eaf9 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -16,6 +16,7 @@ class ParserTest { + //@@author jemehgoh @Test public void parseCommand_invalidString_throwsException() { Parser parser = new Parser(); @@ -33,6 +34,7 @@ public void parseCommand_exitWord_exit() { assertInstanceOf(ExitCommand.class, command); } + //@@author glenn-chew @Test public void parseCommand_menuWord_menu() { Parser parser = new Parser(); @@ -41,6 +43,7 @@ public void parseCommand_menuWord_menu() { assertInstanceOf(MenuCommand.class, command); } + //@@author MatchaRRR @Test public void parseCommand_listWord_list() { Parser parser = new Parser(); @@ -49,6 +52,7 @@ public void parseCommand_listWord_list() { assertInstanceOf(ListCommand.class, command); } + //@@author jemehgoh @Test public void addCommand_addEvent_add() { Parser parser = new Parser(); @@ -83,6 +87,7 @@ public void removeCommand_removeNoParameter_invalid() { parser.parseCommand(commandString);}); } + //@@author jemehgoh @Test public void parseCommand_markEvent_mark() { Parser parser = new Parser(); @@ -154,6 +159,7 @@ public void parseCommand_markInvalidFlags_throwsException() { parser.parseCommand(commandString);}); } + //@@author LTK-1606 @Test public void parseCommand_copyCommandInvalidFlags_throwsException() { Parser parser = new Parser(); From 8d46fb797235ebaf87f1bc8b82931de86f4a7bb3 Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Wed, 30 Oct 2024 13:09:00 +0800 Subject: [PATCH 306/619] Update Author Tags --- src/main/java/seedu/manager/parser/Parser.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 506f77ba75..1280577ae8 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -434,7 +434,8 @@ public void parseFile(EventList events, String filePath) throws IOException { throw new IOException("Error loading events from file: " + filePath + "."); } } - + + //@author LTK-1606 /** * Parses the input string and command parts to create a {@code FilterCommand} object. *

    @@ -471,8 +472,6 @@ private Command parseFilterCommand(String input, String[] commandParts) throws I } } - - //@author LTK-1606 /** * Parses the input command to create a {@code CopyCommand} object. *

    @@ -506,7 +505,6 @@ private Command parseCopyCommand(String input, String[] commandParts) throws Inv } } - //@author LTK-1606 /** * Parses the input command to create a {@code FindCommand} object. *

    From c835bc68d2af24bf1cf4428fc54907579baec63d Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 30 Oct 2024 13:09:04 +0800 Subject: [PATCH 307/619] Update UserGuide.md --- docs/UserGuide.md | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index f242508d4f..45b95f4e7f 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -23,6 +23,7 @@ Enter a command: * Words in `UPPER_CASE` represent parameters that are to be supplied by the user. * Parameters listed have to be entered in the specified order. * Extraneous parameters for commands that do not take in parameters (e.g. `list`) will be ignored. +* Events information and participants information are saved after each user command ### Viewing the command list: `menu` @@ -41,7 +42,6 @@ copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. find -e EVENT -p NAME: Finds all participants with specified name in an event. filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. sort -by KEYWORD: Sorts events by name/time/priority. -save: Save latest changes to file exit: Exit program ``` @@ -167,12 +167,6 @@ Examples: * `sort -by time` will output a list of all the user's events chronologically (earliest to latest). * `sort -by priority` will output a list of all the user's events in terms of urgency (most to least important). -### Saving the program: `save` - -Save the program - -Format: `save` - ### Exiting the program: `exit` Exits the program. @@ -194,5 +188,4 @@ Format: `exit` * Find participants: `find -e EVENT -p NAME` * Filter events: `filter -e/-t/-u FILTER_DESCRIPTION` * Sort events: `sort -by KEYWORD` -* Save program: `save` * Exit program: `exit` From a80fa4092fce498ebec9c34ac21c863571854e5d Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Wed, 30 Oct 2024 13:38:13 +0800 Subject: [PATCH 308/619] Update Author --- src/main/java/seedu/manager/command/CopyCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/command/CopyCommand.java b/src/main/java/seedu/manager/command/CopyCommand.java index 2a13c5af28..d9d270763b 100644 --- a/src/main/java/seedu/manager/command/CopyCommand.java +++ b/src/main/java/seedu/manager/command/CopyCommand.java @@ -6,7 +6,7 @@ import java.util.ArrayList; import java.util.Optional; -//@author LTK-1606 +//@@author LTK-1606 /** * Represents a command to copy the participant list from one event to another. */ From 9ba3346659d4445c9c92e427a7125d67d9bf0815 Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Wed, 30 Oct 2024 13:38:47 +0800 Subject: [PATCH 309/619] Update Author --- src/main/java/seedu/manager/command/FindCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/command/FindCommand.java b/src/main/java/seedu/manager/command/FindCommand.java index 4316f31ea0..8a3e758f2a 100644 --- a/src/main/java/seedu/manager/command/FindCommand.java +++ b/src/main/java/seedu/manager/command/FindCommand.java @@ -6,7 +6,7 @@ import java.util.ArrayList; import java.util.Optional; -//@author LTK-1606 +//@@author LTK-1606 /** * Represents a command to find all participants in an event with a certain name. */ From 81473c7b5f83fa777cc546cdf1f45dfa22013415 Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Wed, 30 Oct 2024 13:41:02 +0800 Subject: [PATCH 310/619] Update Author Tags --- src/main/java/seedu/manager/event/Event.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index f0b0ab5565..945638b93a 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -221,7 +221,7 @@ public boolean markParticipantByName(String participantName, boolean isPresent) return markParticipant(participant, isPresent); } - //@author LTK-1606 + //@@author LTK-1606 /** * Finds participants in the event whose names contain the specified person name. *

    From bf66850b5ce1b282ef7546540f5ffc4a1a6c240a Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Wed, 30 Oct 2024 13:43:17 +0800 Subject: [PATCH 311/619] Update Author Tags --- src/main/java/seedu/manager/parser/Parser.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 1280577ae8..d6fc1c4dba 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -148,6 +148,7 @@ public Command parseCommand(String command) throws InvalidCommandException { } } + //@@author LTK-1606 /** * Parses the input string to create an {@link Command} object based on the provided command parts. *

    @@ -435,7 +436,7 @@ public void parseFile(EventList events, String filePath) throws IOException { } } - //@author LTK-1606 + //@@author LTK-1606 /** * Parses the input string and command parts to create a {@code FilterCommand} object. *

    From 7ada55ea94ee8ed26611f21107fd94c2ce836fd5 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Wed, 30 Oct 2024 13:53:20 +0800 Subject: [PATCH 312/619] Add sequence diagrams for V2 commands --- docs/diagrams/CopyCommandSequenceDiagram.puml | 44 +++++++++++++++++++ .../FilterCommandSequenceDiagram.puml | 29 ++++++++++++ docs/diagrams/FindCommandSequenceDiagram.puml | 38 ++++++++++++++++ docs/diagrams/SortCommandSequenceDiagram.puml | 27 ++++++++++++ 4 files changed, 138 insertions(+) create mode 100644 docs/diagrams/CopyCommandSequenceDiagram.puml create mode 100644 docs/diagrams/FilterCommandSequenceDiagram.puml create mode 100644 docs/diagrams/FindCommandSequenceDiagram.puml create mode 100644 docs/diagrams/SortCommandSequenceDiagram.puml diff --git a/docs/diagrams/CopyCommandSequenceDiagram.puml b/docs/diagrams/CopyCommandSequenceDiagram.puml new file mode 100644 index 0000000000..47d3717513 --- /dev/null +++ b/docs/diagrams/CopyCommandSequenceDiagram.puml @@ -0,0 +1,44 @@ +@startuml +actor User +participant "CopyCommand" as CC +participant "EventList" as EL +participant "Event (source)" as SourceEvent +participant "Event (destination)" as DestEvent +participant "Participant" as P + +User -> CC: execute() +activate CC + +CC -> EL: getEventByName(copyFrom) +activate EL +EL --> CC: return SourceEvent (Optional) +deactivate EL + +CC -> EL: getEventByName(copyTo) +activate EL +EL --> CC: return DestEvent (Optional) +deactivate EL + +alt Both Events Found + CC -> SourceEvent: getParticipantList() + activate SourceEvent + SourceEvent --> CC: return participants (ArrayList) + deactivate SourceEvent + + alt Participant List Not Empty + CC -> DestEvent: setParticipantList(participants) + activate DestEvent + deactivate DestEvent + CC -> CC: Append COPY_SUCCESSFUL + else Participant List Empty + CC -> CC: Append PARTICIPANT_NOT_FOUND + end alt + +else Event(s) Not Found + CC -> CC: Append EVENT_NOT_FOUND +end alt + +CC --> User: Display copy result message +deactivate CC + +@enduml \ No newline at end of file diff --git a/docs/diagrams/FilterCommandSequenceDiagram.puml b/docs/diagrams/FilterCommandSequenceDiagram.puml new file mode 100644 index 0000000000..535367e54d --- /dev/null +++ b/docs/diagrams/FilterCommandSequenceDiagram.puml @@ -0,0 +1,29 @@ +@startuml +actor User +participant "FilterCommand" as FC +participant "EventList" as EL +participant "FilteredEventList" as FEL + +User -> FC: execute() +activate FC +FC -> FEL: new EventList() // create empty list for filtered events +activate FEL +deactivate FEL + +alt Filter by priority (-u) + FC -> EL: filterByPriority(priority) + activate EL + EL --> FC: return filteredEvents + deactivate EL + FC -> FC: Append FILTER_BY_PRIORITY_MESSAGE +end alt + +loop each event in filteredEvents + FC -> FEL: getEvent(i) + FEL --> FC: Event.toString() +end loop + +FC --> User: Display filtered event list +deactivate FC + +@enduml \ No newline at end of file diff --git a/docs/diagrams/FindCommandSequenceDiagram.puml b/docs/diagrams/FindCommandSequenceDiagram.puml new file mode 100644 index 0000000000..1350746f94 --- /dev/null +++ b/docs/diagrams/FindCommandSequenceDiagram.puml @@ -0,0 +1,38 @@ +@startuml +actor User +participant "FindCommand" as FC +participant "EventList" as EL +participant "Event" as E +participant "Participant" as P + +User -> FC: execute() +activate FC +FC -> EL: getEventByName(eventName) +activate EL +EL --> FC: return event (Optional) +deactivate EL + +alt Event Found + FC -> E: findParticipants(personName) + activate E + E --> FC: return participantsFound (ArrayList) + deactivate E + + alt Participants Found + FC -> FC: Append FIND_SUCCESS_MESSAGE + loop each participant + FC -> P: toString() + P --> FC: participant details + end loop + else No Participants Found + FC -> FC: Append FIND_FAILURE_MESSAGE + end alt + +else Event Not Found + FC -> FC: Append FIND_EVENT_FAILURE_MESSAGE +end alt + +FC --> User: Display search results +deactivate FC + +@enduml \ No newline at end of file diff --git a/docs/diagrams/SortCommandSequenceDiagram.puml b/docs/diagrams/SortCommandSequenceDiagram.puml new file mode 100644 index 0000000000..6d0ef3bae6 --- /dev/null +++ b/docs/diagrams/SortCommandSequenceDiagram.puml @@ -0,0 +1,27 @@ +@startuml +actor User +participant "SortCommand" as SC +participant "EventList" as EL +participant "SortedEventList" as SEL + +User -> SC: execute() +activate SC +SC -> EL: new EventList(eventList) // deep copy +activate EL +EL --> SC: return sortedEventList +deactivate EL + +SC -> SEL: sortByName() / sortByTime() / sortByPriority() +activate SEL +SEL --> SC: sorted list +deactivate SEL + +loop each event in sortedEventList + SC -> SEL: getEvent(i) + SEL --> SC: Event.toString() +end loop + +SC --> User: Display sorted event list +deactivate SC + +@enduml \ No newline at end of file From 61cad275fed2d71f70ba8984e75a575644d419b0 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 30 Oct 2024 15:07:41 +0800 Subject: [PATCH 313/619] Update remove command to support item removal --- .../seedu/manager/command/RemoveCommand.java | 23 ++++-- .../java/seedu/manager/event/EventList.java | 17 ++++ .../java/seedu/manager/parser/Parser.java | 80 +++++++++++++++++-- 3 files changed, 105 insertions(+), 15 deletions(-) diff --git a/src/main/java/seedu/manager/command/RemoveCommand.java b/src/main/java/seedu/manager/command/RemoveCommand.java index e15a35dd9b..612934f510 100644 --- a/src/main/java/seedu/manager/command/RemoveCommand.java +++ b/src/main/java/seedu/manager/command/RemoveCommand.java @@ -11,6 +11,7 @@ public class RemoveCommand extends Command { private static final String REMOVE_FAILURE = "Not found"; protected String eventName; protected String participantName; + protected String itemName; /** * Constructs a RemoveCommand object with the specified event name. @@ -24,17 +25,23 @@ public RemoveCommand(String eventName) { //@@author LTK-1606 /** - * Constructs a RemoveCommand object with the specified event name. + * Constructs a RemoveCommand object with the specified event name and item name. * * @param eventName The name of the event the participant is to be removed from. - * @param participantName The name of the participant to be removed. + * @param itemName The name of the item to be removed. + * @param isParticipant true if the item is a participant, false otherwise */ - public RemoveCommand(String participantName, String eventName) { + public RemoveCommand(String itemName, String eventName, boolean isParticipant) { super(false); this.eventName = eventName; - this.participantName = participantName; + if (isParticipant) { + participantName = itemName; + } else { + this.itemName = itemName; + } } + //@@author KuanHsienn /** * Executes the command to remove an event or a participant from an event. * @@ -49,10 +56,12 @@ public RemoveCommand(String participantName, String eventName) { public void execute() { boolean isRemoved; - if (participantName == null) { - isRemoved = this.eventList.removeEvent(this.eventName); + if (participantName != null) { + isRemoved = eventList.removeParticipantFromEvent(participantName, eventName); + } else if (itemName != null) { + isRemoved = eventList.removeItemFromEvent(itemName, eventName); } else { - isRemoved = this.eventList.removeParticipantFromEvent(this.participantName, this.eventName); + isRemoved = eventList.removeEvent(eventName); } if (isRemoved) { diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index e663f7642d..a0829fa275 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -176,6 +176,7 @@ public boolean removeParticipantFromEvent(String participantName, String eventNa * @return {@code true} if the item is successfully added to the event, {@code false} otherwise. */ public boolean addItemToEvent(String itemName, String eventName) { + assert itemName != null : "Item name should not be null"; Optional event = getEventByName(eventName); if (event.isPresent()) { event.get().addItem(itemName); @@ -183,6 +184,22 @@ public boolean addItemToEvent(String itemName, String eventName) { return event.isPresent(); } + /** + * Returns true if an item with a given name is successfully removed from an event, returns false otherwise. + * + * @param itemName the name of the item to be removed. + * @param eventName the name of the event the item is to be removed from. + * @return {@code true} if the item is successfully removed from the vent, {@code false} otherwise. + */ + public boolean removeItemFromEvent(String itemName, String eventName) { + assert itemName != null : "Item name should not be null"; + Optional event = getEventByName(eventName); + if (event.isPresent()) { + return event.get().removeItem(itemName); + } + return false; + } + //@@author LTK-1606 /** * Sort the event list by name, alphabetically. diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 794f706aa6..76d1ad595f 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -33,6 +33,7 @@ * Represents the command parser for EventManagerCLI */ public class Parser { + public static final String REMOVE_PARTICIPANT_REGEX = "(-p|-e)"; private static final Logger logger = Logger.getLogger(Parser.class.getName()); private static final String INVALID_COMMAND_MESSAGE = "Invalid command!"; private static final String INVALID_ADD_MESSAGE = """ @@ -110,7 +111,8 @@ public class Parser { """; private static final String ADD_EVENT_REGEX = "(-e|-t|-v|-u)"; private static final String ADD_PARTICIPANT_REGEX = "(-p|-n|-email|-e)"; - private static final String ADD_ITEM_REGEX = "(-m|-e)"; + public static final String REMOVE_ITEM_REGEX = "(-m|-e)"; + private static final String ADD_ITEM_REGEX = REMOVE_ITEM_REGEX; private static final String FIND_REGEX = "\\s*(-e|-p)\\s*"; /** @@ -197,7 +199,17 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval } } - private Command getAddEventCommand(String input) throws IndexOutOfBoundsException, DateTimeParseException { + /** + * Returns an {@link AddCommand} that adds an event with fields parsed from a given user input. + * + * @param input the given user input. + * @return an {@link AddCommand} that adds an event with fields parsed from input. + * @throws IndexOutOfBoundsException if not all fields are present. + * @throws DateTimeParseException if the time parameter is not entered in the correct format. + * @throws IllegalArgumentException if the priority parameter is not valid. + */ + private Command getAddEventCommand(String input) throws IndexOutOfBoundsException, DateTimeParseException, + IllegalArgumentException { String[] inputParts = input.split(ADD_EVENT_REGEX); logger.info("Creating AddCommand for event with details: " + inputParts[1].trim() + ", " + inputParts[2].trim() + ", " + inputParts[3].trim()); @@ -210,6 +222,13 @@ private Command getAddEventCommand(String input) throws IndexOutOfBoundsExceptio } //@@author LTK-1606 + /** + * Returns an {@link AddCommand} that adds a participant with fields parsed from a given user input. + * + * @param input the given user input. + * @return an {@link AddCommand} that adds a participant with fields parsed from input. + * @throws IndexOutOfBoundsException if not all fields are present. + */ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsException { String[] inputParts = input.split(ADD_PARTICIPANT_REGEX); logger.info("Creating AddCommand for participant with details: " + @@ -222,10 +241,16 @@ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsEx } //@@author jemehgoh + /** + * Returns an {@link AddCommand} that adds an item with fields parsed from a given user input. + * + * @param input the given user input. + * @return an {@link AddCommand} that adds an item with fields parsed from input. + * @throws IndexOutOfBoundsException if not all fields are present. + */ private Command getAddItemCommand(String input) throws IndexOutOfBoundsException { String[] inputParts = input.split(ADD_ITEM_REGEX); String itemName = inputParts[1].trim(); - String eventName = inputParts[2].trim(); logger.info(String.format("Creating AddCommand for item with details: %s, %s", itemName, eventName)); @@ -257,11 +282,11 @@ private Command parseRemoveCommand(String input, String[] commandParts) throws I String[] inputParts; if (commandFlag.equals("-e")) { - inputParts = input.split("-e"); - return new RemoveCommand(inputParts[1].trim()); + return getRemoveEventCommand(input); } else if (commandFlag.equals("-p")) { - inputParts = input.split("(-p|-e)"); - return new RemoveCommand(inputParts[1].trim(), inputParts[2].trim()); + return getRemoveParticipantCommand(input); + } else if (commandFlag.equals("-m")) { + return getRemoveItemCommand(input); } logger.log(WARNING,"Invalid command format"); @@ -272,9 +297,48 @@ private Command parseRemoveCommand(String input, String[] commandParts) throws I } } + //@@author KuanHsienn + /** + * Returns a {@link RemoveCommand} that removes an event, with a given user input. + * + * @param input the user input to be parsed. + * @return a {@link RemoveCommand} that removes an event with fields parsed from input. + * @throws IndexOutOfBoundsException if not all fields are present in input. + */ + private RemoveCommand getRemoveEventCommand(String input) throws IndexOutOfBoundsException { + String[] inputParts = input.split("-e"); + return new RemoveCommand(inputParts[1].trim()); + } + + //@@author LTK-1606 + /** + * Returns a {@link RemoveCommand} that removes a participant, with fields from a given user input. + * + * @param input the user input to be parsed. + * @return a {@link RemoveCommand} that removes a participant with fields parsed from input. + * @throws IndexOutOfBoundsException if not all fields are present in input. + */ + private RemoveCommand getRemoveParticipantCommand(String input) throws IndexOutOfBoundsException { + String[] inputParts = input.split(REMOVE_PARTICIPANT_REGEX); + return new RemoveCommand(inputParts[1].trim(), inputParts[2].trim(), true); + } + + //@@author jemehgoh + /** + * Returns a {@link RemoveCommand} that removes an item, with fields from a given user input. + * + * @param input the user input to be parsed. + * @return a {@link RemoveCommand} that removes an item with fields parsed from input. + * @throws IndexOutOfBoundsException if not all fields are present in input. + */ + private RemoveCommand getRemoveItemCommand(String input) throws IndexOutOfBoundsException { + String[] inputParts = input.split(REMOVE_ITEM_REGEX); + return new RemoveCommand(inputParts[1].trim(), inputParts[2].trim(), false); + } + //@@author glenn-chew /** - * Parses the input string to create a {@link Command} based on the providedcomma nd parts. + * Parses the input string to create a {@link Command} based on the provided command parts. * *

    * This method checks the command flag extracted from the command parts. If the command From 6b14c75d4e7932567d76f23a98dbe001ea159385 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 30 Oct 2024 15:27:42 +0800 Subject: [PATCH 314/619] Add JUnit tests for the remove item command --- .../java/seedu/manager/parser/Parser.java | 10 +++--- .../manager/command/RemoveCommandTest.java | 31 +++++++++++++++++++ 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 76d1ad595f..5c6a53dcb6 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -33,7 +33,6 @@ * Represents the command parser for EventManagerCLI */ public class Parser { - public static final String REMOVE_PARTICIPANT_REGEX = "(-p|-e)"; private static final Logger logger = Logger.getLogger(Parser.class.getName()); private static final String INVALID_COMMAND_MESSAGE = "Invalid command!"; private static final String INVALID_ADD_MESSAGE = """ @@ -111,8 +110,8 @@ public class Parser { """; private static final String ADD_EVENT_REGEX = "(-e|-t|-v|-u)"; private static final String ADD_PARTICIPANT_REGEX = "(-p|-n|-email|-e)"; - public static final String REMOVE_ITEM_REGEX = "(-m|-e)"; - private static final String ADD_ITEM_REGEX = REMOVE_ITEM_REGEX; + private static final String ITEM_REGEX = "(-m|-e)"; + private static final String REMOVE_PARTICIPANT_REGEX = "(-p|-e)"; private static final String FIND_REGEX = "\\s*(-e|-p)\\s*"; /** @@ -249,7 +248,7 @@ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsEx * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getAddItemCommand(String input) throws IndexOutOfBoundsException { - String[] inputParts = input.split(ADD_ITEM_REGEX); + String[] inputParts = input.split(ITEM_REGEX); String itemName = inputParts[1].trim(); String eventName = inputParts[2].trim(); logger.info(String.format("Creating AddCommand for item with details: %s, %s", itemName, @@ -279,7 +278,6 @@ private Command parseRemoveCommand(String input, String[] commandParts) throws I assert commandParts[0].equalsIgnoreCase(RemoveCommand.COMMAND_WORD); try { String commandFlag = commandParts[1]; - String[] inputParts; if (commandFlag.equals("-e")) { return getRemoveEventCommand(input); @@ -332,7 +330,7 @@ private RemoveCommand getRemoveParticipantCommand(String input) throws IndexOutO * @throws IndexOutOfBoundsException if not all fields are present in input. */ private RemoveCommand getRemoveItemCommand(String input) throws IndexOutOfBoundsException { - String[] inputParts = input.split(REMOVE_ITEM_REGEX); + String[] inputParts = input.split(ITEM_REGEX); return new RemoveCommand(inputParts[1].trim(), inputParts[2].trim(), false); } diff --git a/src/test/java/seedu/manager/command/RemoveCommandTest.java b/src/test/java/seedu/manager/command/RemoveCommandTest.java index 9abedfa372..a162ccb31c 100644 --- a/src/test/java/seedu/manager/command/RemoveCommandTest.java +++ b/src/test/java/seedu/manager/command/RemoveCommandTest.java @@ -74,4 +74,35 @@ public void remove_oneParticipantWrongly_success() { assertEquals(2, eventList.getEvent(0).getParticipantCount()); } + + @Test + public void remove_oneItem_success() { + String expectedMessage = "Removed successfully"; + EventList eventList = new EventList(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 16:00", formatter), + "LT7A", Priority.HIGH); + eventList.addItemToEvent("Perf board", "Event 1"); + + RemoveCommand removeCommand = new RemoveCommand("Perf board", "Event 1", false); + removeCommand.setData(eventList); + removeCommand.execute(); + + assertEquals(expectedMessage, removeCommand.getMessage()); + } + + @Test + public void remove_invalidItem_failure() { + String expectedMessage = "Not found"; + EventList eventList = new EventList(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 16:00", formatter), + "LT7A", Priority.HIGH); + + RemoveCommand removeCommand = new RemoveCommand("Perf board", "Event 1", false); + removeCommand.setData(eventList); + removeCommand.execute(); + + assertEquals(expectedMessage, removeCommand.getMessage()); + } } From d5c2175c83ddc0ad9689f9ed489f5099f50d7d90 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 30 Oct 2024 15:58:00 +0800 Subject: [PATCH 315/619] Update error and menu messages to include add and remove item commands --- src/main/java/seedu/manager/command/MenuCommand.java | 2 ++ src/main/java/seedu/manager/parser/Parser.java | 3 ++- text-ui-test/EXPECTED.TXT | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index efb822810b..50abda507e 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -13,8 +13,10 @@ public class MenuCommand extends Command { list: List events. remove -e EVENT: Remove an event from the event list. add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. + add -m ITEM -e EVENT: Add an item to an event. view -e EVENT: View the list of participants of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. + remove -m ITEM -e EVENT: Remove an item from an event. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. sort -by KEYWORD: Sorts events by name/time/priority. diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 5c6a53dcb6..f310c13119 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -40,12 +40,13 @@ public class Parser { Please enter your commands in the following format: add -e EVENT -t TIME -v VENUE -u PRIORITY add -p PARTICIPANT -e EVENT + add -m ITEM -e EVENT """; private static final String INVALID_REMOVE_MESSAGE = """ Invalid command! Please enter your commands in the following format: remove -e EVENT - remove -p PARTICIPANT -e EVENT + remove -m ITEM -e EVENT """; private static final String INVALID_VIEW_MESSAGE = """ Invalid command! diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index b8a99a0896..d3fc4b16ff 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -9,8 +9,10 @@ add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. list: List events. remove -e EVENT: Remove an event from the event list. add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. +add -m ITEM -e EVENT: Add an item to an event. view -e EVENT: View the list of participants of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. +remove -m ITEM -e EVENT: Remove an item from an event. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. sort -by KEYWORD: Sorts events by name/time/priority. @@ -30,6 +32,7 @@ Enter a command: Invalid command! Please enter your commands in the following format: add -e EVENT -t TIME -v VENUE -u PRIORITY add -p PARTICIPANT -e EVENT +add -m ITEM -e EVENT ------------------------ Enter a command: Event added successfully From 831ae9ca020d03a75251e82409446c6a29e3aa83 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 30 Oct 2024 15:59:52 +0800 Subject: [PATCH 316/619] Update user guide to include add and remove item commands --- docs/UserGuide.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index f242508d4f..7008cc903d 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -35,14 +35,16 @@ add -e EVENT -t TIME -v VENUE: Add an event to the event list. list: List events. remove -e EVENT: Remove an event from the event list. add -p PARTICIPANT -e EVENT: Add a participant to an event. +add -m ITEM -e EVENT: Add an item to an event. view -e EVENT: View the list of participants of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. +remove -m ITEM -e EVENT: Remove an item from an event. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. find -e EVENT -p NAME: Finds all participants with specified name in an event. filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. sort -by KEYWORD: Sorts events by name/time/priority. -save: Save latest changes to file -exit: Exit program +save: Save latest changes to file. +exit: Exit program. ``` Format: `menu` @@ -55,31 +57,35 @@ Format: `list` ### Add an event or participant: `add` -Adds an event to the event list, or a participant to an event. +Adds an event to the event list, a participant to an event, or an item to an event. Format: * `add -e EVENT -t TIME -v VENUE` for adding an event to the events list. * `add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT` for adding a participant to an event. +* `add -m ITEM -e EVENT` for adding an item to an event. Examples: -* `add -e Origami workshop -t Mon 1600-1800 -v Building A` adds an event with name `Origami workshop`, time `Mon 1600-1800` and venue `Building A` to the events list. +* `add -e Origami workshop -t 2024-10-12 18:00 -v Building A` adds an event with name `Origami workshop`, time `2024-10-12 18:00` and venue `Building A` to the events list. * `add -p John Tan -n 91583215 -email john@gmail.com -e Origami workshop` adds a participant `John Tan` to the event `Origami workshop`. +* `add -m Origami paper -e Origami workshop` adds an item `Origami paper` to the event `Origami workshop`. ### Remove an event or participant: `remove` -Removes an event from the event list, or a participant from an event. +Removes an event from the event list, a participant from an event, or an item from an event. Format: * `remove -e EVENT` for removing an event from the event list. * `remove -p PARTICIPANT -e EVENT` for removing a participant from an event. +* `remove -m ITEM -e EVENT` for removing an item from an event. Examples: * `remove -e Origami workshop` removes the event `Origami workshop` from the event list. * `remove -p John Tan -e Origami workshop` removes the participant `John Tan` from the event `Origami workshop`. +* `remove -m Origami paper -e Origami workshop` removes the item `Origami paper` from the event `Origami workshop`. ### View all participants for an event: `view` From bd97d8de74d260c13b3fcd690ba583c0b67b7245 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 30 Oct 2024 16:00:34 +0800 Subject: [PATCH 317/619] Update command list in user guide with add and remove item commands --- docs/UserGuide.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 7008cc903d..9f8937565e 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -191,8 +191,10 @@ Format: `exit` * List all events: `list` * Add event: `add -e EVENT -t TIME -v VENUE` * Add participant to an event: `add -p PARTICIPANT -e EVENT` +* Add item to an event: `add -m ITEM -e EVENT` * Remove event: `remove -e EVENT` * Remove participant from an event: `remove -p PARTICIPANT -e EVENT` +* Remove item from an event: `remove -m ITEM -e EVENT` * View all participants for an event: `view -e EVENT` * Mark an event as done: `mark -e EVENT -s STATUS` * Mark a participant as present: `mark -p PARTICIPANT -e EVENT -s STATUS` From d0a375b690b87f2c6cc5879008c8c042592bbbf5 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 30 Oct 2024 20:37:29 +0800 Subject: [PATCH 318/619] Update ViewCommand to be able to show item lists --- docs/UserGuide.md | 4 -- .../seedu/manager/command/ViewCommand.java | 52 +++++++++++++------ src/main/java/seedu/manager/event/Event.java | 18 +++++++ .../java/seedu/manager/parser/Parser.java | 2 +- 4 files changed, 56 insertions(+), 20 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 0630e89412..84635996d5 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -44,12 +44,8 @@ copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. find -e EVENT -p NAME: Finds all participants with specified name in an event. filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. sort -by KEYWORD: Sorts events by name/time/priority. -<<<<<<< HEAD save: Save latest changes to file. exit: Exit program. -======= -exit: Exit program ->>>>>>> master ``` Format: `menu` diff --git a/src/main/java/seedu/manager/command/ViewCommand.java b/src/main/java/seedu/manager/command/ViewCommand.java index 7966c1d73f..0a761904bc 100644 --- a/src/main/java/seedu/manager/command/ViewCommand.java +++ b/src/main/java/seedu/manager/command/ViewCommand.java @@ -1,6 +1,7 @@ package seedu.manager.command; import seedu.manager.event.Event; +import seedu.manager.item.Item; import seedu.manager.item.Participant; import java.util.Optional; @@ -12,40 +13,61 @@ */ public class ViewCommand extends Command { public static final String COMMAND_WORD = "view"; - private static final String VIEW_MESSAGE = "There are %d participants in %s! " + + private static final String VIEW_PARTICIPANT_MESSAGE = "There are %d participants in %s! " + "Here are your participants:"; + private static final String VIEW_ITEM_MESSAGE = "There are %d items in %s! " + + "Here are your items:"; private static final String INVALID_EVENT_MESSAGE = "Event not found!"; protected String eventName; + private boolean isViewingParticipants; /** * Constructs an ViewCommand object with the for the specified event. * * @param eventName The name of the event to be viewed. */ - public ViewCommand(String eventName) { + public ViewCommand(String eventName, boolean isViewingParticipants) { super(false); this.eventName = eventName; + this.isViewingParticipants = isViewingParticipants; } /** * Executes the command to view the participants for an event. */ public void execute() { - Optional eventToView = eventList.getEventByName(this.eventName); - - if (eventToView.isPresent()) { - StringBuilder outputMessage = new StringBuilder( - String.format(VIEW_MESSAGE, eventToView.get().getParticipantCount(), eventName) + "\n"); - int count = 1; - for (Participant participant : eventToView.get().getParticipantList()) { - outputMessage.append(String.format("%d. %s\n", count, participant.toString())); - count++; - } - - this.message = outputMessage.toString(); + Optional eventToView = eventList.getEventByName(eventName); + + if (eventToView.isEmpty()) { + message = INVALID_EVENT_MESSAGE; + } else if (isViewingParticipants) { + message = getParticipants(eventToView.get()); } else { - this.message = INVALID_EVENT_MESSAGE; + message = getItems(eventToView.get()); + } + } + + private String getParticipants(Event eventToView) { + StringBuilder outputMessage = new StringBuilder( + String.format(VIEW_PARTICIPANT_MESSAGE, eventToView.getParticipantCount(), eventName) + "\n"); + int count = 1; + for (Participant participant : eventToView.getParticipantList()) { + outputMessage.append(String.format("%d. %s\n", count, participant.toString())); + count++; + } + return outputMessage.toString(); + } + + //@@author jemehgoh + private String getItems(Event eventToView) { + StringBuilder outputMessage = new StringBuilder( + String.format(VIEW_ITEM_MESSAGE, eventToView.getItemCount(), eventName) + "\n"); + int count = 1; + for (Item item : eventToView.getItemList()) { + outputMessage.append(String.format("%d. %s\n", count, item.toString())); + count++; } + return outputMessage.toString(); } } diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 8df144d143..101a12e763 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -144,6 +144,15 @@ public boolean removeItem(String itemName) { return itemList.removeIf((item) -> (item.getName().equalsIgnoreCase(itemName))); } + /** + * Returns the number of items in the event's item list. + * + * @return the number of items in the event's item list. + */ + public int getItemCount() { + return itemList.size(); + } + //@@author MatchaRRR /** * @return the event name @@ -174,6 +183,15 @@ public ArrayList getParticipantList() { return participantList; } + //@@author jemehgoh + /** + * @return the item list of the event. + */ + public ArrayList getItemList() { + return itemList; + } + + //@@author LTK-1606 /** * @return the event priority */ diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index e1d743b339..06b44e294f 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -359,7 +359,7 @@ private Command parseViewCommand(String input, String[] commandParts) throws Inv if (commandFlag.equals("-e")) { String [] inputParts = input.split("-e"); - return new ViewCommand(inputParts[1].trim()); + return new ViewCommand(inputParts[1].trim(), true); } logger.log(WARNING,"Invalid command format"); From 7874d8154db410d5daadf77c1b2d78c1dd086f24 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 30 Oct 2024 22:33:42 +0800 Subject: [PATCH 319/619] Reorder menu commands --- docs/UserGuide.md | 67 +++++++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 45b95f4e7f..36ce1571ea 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -32,16 +32,19 @@ Shows a list of all valid user commands in the program. ``` Here are the possible commands: -add -e EVENT -t TIME -v VENUE: Add an event to the event list. list: List events. -remove -e EVENT: Remove an event from the event list. -add -p PARTICIPANT -e EVENT: Add a participant to an event. view -e EVENT: View the list of participants of an event. +add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. +add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. +remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. +edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. +mark -e EVENT -s STATUS: Mark an event as done or not done. +mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. -find -e EVENT -p NAME: Finds all participants with specified name in an event. -filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. sort -by KEYWORD: Sorts events by name/time/priority. +filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. +find -e EVENT -p NAME: Finds all participants with specified name in an event. exit: Exit program ``` @@ -53,6 +56,16 @@ Shows a list of all events currently stored in the program. Format: `list` +### View all participants for an event: `view` + +Shows a list of all participants for an event. + +Format: `view -e EVENT` + +Examples: + +* `view -e Origami workshop` shows a list of all participants for the event `Origami workshop`. + ### Add an event or participant: `add` Adds an event to the event list, or a participant to an event. @@ -81,16 +94,6 @@ Examples: * `remove -e Origami workshop` removes the event `Origami workshop` from the event list. * `remove -p John Tan -e Origami workshop` removes the participant `John Tan` from the event `Origami workshop`. -### View all participants for an event: `view` - -Shows a list of all participants for an event. - -Format: `view -e EVENT` - -Examples: - -* `view -e Origami workshop` shows a list of all participants for the event `Origami workshop`. - ### Mark an event as done: `mark` Marks an event in the event list as done or not done. @@ -129,16 +132,18 @@ Examples: * `copy Origami workshop > Coding workshop` copies the participant list from the `Origami workshop` event to the `Coding workshop` event. -### Find participant: `find` +### Sorts event list: `sort` -Finds all participants with a specified name in a specified event. +Sorts events according to event name, event date-time or event priority level. -Format: `find -e EVENT -p NAME` +Format: `sort -by KEYWORD` -* The `NAME` keywords are case-insensitive. +* `KEYWORD` is case-insensitive, but must be one of these inputs: `name/time/priority` Examples: -* `find -e Origami workshop -p john` will output all participants with `john` in their name in the event `Origami workshop`. +* `sort -by name` will output a list of all the user's events alphabetically (from A to Z). +* `sort -by time` will output a list of all the user's events chronologically (earliest to latest). +* `sort -by priority` will output a list of all the user's events in terms of urgency (most to least important). ### Filters event list: `filter` @@ -154,18 +159,16 @@ Examples: * `filter -t 2024` will output all events that are occurring in `2024`. * `filter -u high` with output all events with priority level `HIGH`. -### Sorts event list: `sort` +### Find participant: `find` -Sorts events according to event name, event date-time or event priority level. +Finds all participants with a specified name in a specified event. -Format: `sort -by KEYWORD` +Format: `find -e EVENT -p NAME` -* `KEYWORD` is case-insensitive, but must be one of these inputs: `name/time/priority` +* The `NAME` keywords are case-insensitive. Examples: -* `sort -by name` will output a list of all the user's events alphabetically (from A to Z). -* `sort -by time` will output a list of all the user's events chronologically (earliest to latest). -* `sort -by priority` will output a list of all the user's events in terms of urgency (most to least important). +* `find -e Origami workshop -p john` will output all participants with `john` in their name in the event `Origami workshop`. ### Exiting the program: `exit` @@ -175,17 +178,17 @@ Format: `exit` ## Command Summary -* View all commands: `view` * List all events: `list` +* View all participants for an event: `view -e EVENT` * Add event: `add -e EVENT -t TIME -v VENUE` -* Add participant to an event: `add -p PARTICIPANT -e EVENT` +* Add participant to an event: `add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT` * Remove event: `remove -e EVENT` * Remove participant from an event: `remove -p PARTICIPANT -e EVENT` -* View all participants for an event: `view -e EVENT` +* Edit particpant of an event: `edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT` * Mark an event as done: `mark -e EVENT -s STATUS` * Mark a participant as present: `mark -p PARTICIPANT -e EVENT -s STATUS` * Copy participant list: `copy FROM_EVENT > TO_EVENT` -* Find participants: `find -e EVENT -p NAME` -* Filter events: `filter -e/-t/-u FILTER_DESCRIPTION` * Sort events: `sort -by KEYWORD` +* Filter events: `filter -e/-t/-u FILTER_DESCRIPTION` +* Find participants: `find -e EVENT -p NAME` * Exit program: `exit` From d3237a5acf08b3796269e850c81a3a403bd5c01c Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Wed, 30 Oct 2024 22:42:39 +0800 Subject: [PATCH 320/619] Add EditCommand Class --- .../seedu/manager/command/AddCommand.java | 7 +-- .../seedu/manager/command/EditCommand.java | 49 +++++++++++++++++++ .../seedu/manager/command/MenuCommand.java | 9 ++-- .../java/seedu/manager/event/EventList.java | 2 + 4 files changed, 60 insertions(+), 7 deletions(-) create mode 100644 src/main/java/seedu/manager/command/EditCommand.java diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index 776c3b2d79..cf4796532f 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -8,8 +8,9 @@ //@@author KuanHsienn /** - * Represents a command to add an event to the event list. - * The add command will store the event's name, time, and venue. + * Represents a command to add an event to the event list or a participant to an event. + * The AddCommand class stores details of an event, including its name, time, venue, + * and priority, or details of a participant, including their name, contact number, and email. */ public class AddCommand extends Command { public static final String COMMAND_WORD = "add"; @@ -81,8 +82,8 @@ public void execute() throws DuplicateDataException { } else { boolean isAdded = this.eventList.addParticipantToEvent( this.participantName, - this.participantEmail, this.participantNumber, + this.participantEmail, this.eventName ); this.message = (isAdded) ? ADD_PARTICIPANT_MESSAGE : ADD_FAILURE_MESSAGE; diff --git a/src/main/java/seedu/manager/command/EditCommand.java b/src/main/java/seedu/manager/command/EditCommand.java new file mode 100644 index 0000000000..0779e399c5 --- /dev/null +++ b/src/main/java/seedu/manager/command/EditCommand.java @@ -0,0 +1,49 @@ +package seedu.manager.command; + +/** + * Represents a command to edit an event to the event list. + * The add command will store the event's name, time, and venue. + */ +public class EditCommand extends Command{ + public static final String COMMAND_WORD = "edit"; + private static final String EDIT_PARTICIPANT_MESSAGE = "Participant email successfully updated"; + private static final String EDIT_FAILURE_MESSAGE = "Event/Participant not found"; + protected String eventName; + protected String participantName; + protected String participantNumber; + protected String participantEmail; + + + //@@author KuanHsienn + /** + * Constructs an EditCommand object with the specified participant name, participant number, + * participant email, and event name. + * + * @param participantName The name of the participant to be updated. + * @param participantNumber The new phone number of the participant. + * @param participantEmail The new email address of the participant. + * @param eventName The name of the event associated with the participant. + */ + public EditCommand(String participantName, String participantNumber, String participantEmail, String eventName) { + super(false); + this.participantName = participantName; + this.participantNumber = participantNumber; + this.participantEmail = participantEmail; + this.eventName = eventName; + } + + @Override + public void execute() { + if (participantName == null) { + return; + } else { + boolean isEdited = this.eventList.editParticipant( + this.participantName, + this.participantNumber, + this.participantEmail, + this.eventName + ); + this.message = (isEdited) ? EDIT_PARTICIPANT_MESSAGE : EDIT_FAILURE_MESSAGE; + } + } +} diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index efb822810b..924b75317e 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -9,16 +9,17 @@ public class MenuCommand extends Command { private static final String MENU_MESSAGE = """ Here are the possible commands: - add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. list: List events. - remove -e EVENT: Remove an event from the event list. - add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. view -e EVENT: View the list of participants of an event. + add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. + add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. + remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. + edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. - sort -by KEYWORD: Sorts events by name/time/priority. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. + sort -by KEYWORD: Sorts events by name/time/priority. filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. find -e EVENT -p NAME: Finds all participants with specified name in an event. exit: Exit program"""; diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 13ffb4955a..613f214d9e 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -169,6 +169,8 @@ public boolean removeParticipantFromEvent(String participantName, String eventNa return false; } + public void + /** * Sort the event list by name, alphabetically. */ From e6ed081ca4f8a845f9e9e581c3aebe0c8dbe1611 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Wed, 30 Oct 2024 22:49:54 +0800 Subject: [PATCH 321/619] Update Event class to update participant contact information --- src/main/java/seedu/manager/event/Event.java | 20 +++++++++++++ .../java/seedu/manager/event/EventList.java | 28 ++++++++++++++++++- 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 945638b93a..d8389b6dff 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -101,6 +101,26 @@ public boolean removeParticipant(String participantName) { (participant.getName().equalsIgnoreCase(participantName))); } + /** + * Updates the details of a participant in this event. + * + * @param participantName the name of the participant to be updated. + * @param newNumber the new contact number of the participant. + * @param newEmail the new email address of the participant. + * @return {@code true} if the participant was successfully updated; + * {@code false} if the participant was not found. + */ + public boolean updateParticipant(String participantName, String newNumber, String newEmail) { + for (Participant participant : this.participantList) { + if (participant.getName().equalsIgnoreCase(participantName)) { + participant.setNumber(newNumber); + participant.setEmail(newEmail); + return true; + } + } + return false; + } + /** * Retrieves the number of participants in the participant list. * diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 613f214d9e..3caadb6a4a 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -169,7 +169,33 @@ public boolean removeParticipantFromEvent(String participantName, String eventNa return false; } - public void + //@@author KuanHsienn + /** + * Edits the details of a participant in a specified event. + * + *

    + * This method searches for the event with the given name in the event list and + * attempts to update the specified participant's phone number and email. If the event + * is found and the participant is successfully updated, it returns {@code true}. + * If the event does not exist or the participant is not found, it returns + * {@code false}. + *

    + * + * @param participantName the name of the participant to be edited. + * @param number the new contact number of the participant. + * @param email the new email address of the participant. + * @param eventName the name of the event associated with the participant. + * @return {@code true} if the participant was successfully edited; + * {@code false} if the event does not exist or the participant was not found. + */ + public boolean editParticipant(String participantName, String number, String email, String eventName) { + for (Event event : eventList) { + if (event.getEventName().equals(eventName)) { + return event.updateParticipant(participantName, number, email); + } + } + return false; + } /** * Sort the event list by name, alphabetically. From afc4a3cb1697df3deebe787ae39edeb32a2aa6a4 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Wed, 30 Oct 2024 22:54:00 +0800 Subject: [PATCH 322/619] Update EXPECTED.TXT --- .../java/seedu/manager/command/EditCommand.java | 6 +++--- text-ui-test/EXPECTED.TXT | 17 +++++++++++++---- text-ui-test/input.txt | 2 ++ 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/main/java/seedu/manager/command/EditCommand.java b/src/main/java/seedu/manager/command/EditCommand.java index 0779e399c5..c3b1bc32cb 100644 --- a/src/main/java/seedu/manager/command/EditCommand.java +++ b/src/main/java/seedu/manager/command/EditCommand.java @@ -2,11 +2,11 @@ /** * Represents a command to edit an event to the event list. - * The add command will store the event's name, time, and venue. + * The edit command will store the event's name, time, and venue. */ public class EditCommand extends Command{ public static final String COMMAND_WORD = "edit"; - private static final String EDIT_PARTICIPANT_MESSAGE = "Participant email successfully updated"; + private static final String EDIT_PARTICIPANT_MESSAGE = "Participant contact information successfully updated"; private static final String EDIT_FAILURE_MESSAGE = "Event/Participant not found"; protected String eventName; protected String participantName; @@ -19,7 +19,7 @@ public class EditCommand extends Command{ * Constructs an EditCommand object with the specified participant name, participant number, * participant email, and event name. * - * @param participantName The name of the participant to be updated. + * @param participantName The name of the participant. * @param participantNumber The new phone number of the participant. * @param participantEmail The new email address of the participant. * @param eventName The name of the event associated with the participant. diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index b8a99a0896..c995939414 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -5,16 +5,17 @@ Enter a command: Invalid command! ------------------------ Enter a command: Here are the possible commands: -add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. list: List events. -remove -e EVENT: Remove an event from the event list. -add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. view -e EVENT: View the list of participants of an event. +add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. +add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. +remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. +edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. -sort -by KEYWORD: Sorts events by name/time/priority. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. +sort -by KEYWORD: Sorts events by name/time/priority. filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. find -e EVENT -p NAME: Finds all participants with specified name in an event. exit: Exit program @@ -63,6 +64,14 @@ Events saved successfully. Enter a command: There are 1 participants in dinner party! Here are your participants: 1. Mary [ ] +------------------------ +Events saved successfully. +------------------------ +Enter a command: Invalid command! +------------------------ +Enter a command: There are 1 participants in dinner party! Here are your participants: +1. Mary [ ] + ------------------------ Events saved successfully. ------------------------ diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index 64e586f82a..d157c5e407 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -9,6 +9,8 @@ list mark -e Saturday brunch -s done add -p Mary -n 98512525 -email example@gmail.com -e dinner party view -e dinner party +edit -p Mary -n 98624759 -email Mary@gmail.com -e dinner party +view -e dinner party add -e anniversary celebration -t 2024-10-23 12:34 -v hotel -u medium sort -by name sort -by time From 07254f8c45888fca87264688d557ae493e90d72c Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Wed, 30 Oct 2024 23:05:21 +0800 Subject: [PATCH 323/619] Update Parser class for EditCommand --- .../java/seedu/manager/parser/Parser.java | 62 ++++++++++++++++++- .../manager/command/EditCommandTest.java | 4 ++ text-ui-test/EXPECTED.TXT | 6 +- 3 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 src/test/java/seedu/manager/command/EditCommandTest.java diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index d6fc1c4dba..b1ccb5b0b2 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -11,6 +11,7 @@ import seedu.manager.command.MarkParticipantCommand; import seedu.manager.command.MenuCommand; import seedu.manager.command.RemoveCommand; +import seedu.manager.command.EditCommand; import seedu.manager.command.SortCommand; import seedu.manager.command.ViewCommand; import seedu.manager.command.FindCommand; @@ -39,7 +40,7 @@ public class Parser { Invalid command! Please enter your commands in the following format: add -e EVENT -t TIME -v VENUE -u PRIORITY - add -p PARTICIPANT -e EVENT + add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT """; private static final String INVALID_REMOVE_MESSAGE = """ Invalid command! @@ -47,6 +48,11 @@ public class Parser { remove -e EVENT remove -p PARTICIPANT -e EVENT """; + private static final String INVALID_EDIT_MESSAGE = """ + Invalid command! + Please enter your commands in the following format: + edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT + """; private static final String INVALID_VIEW_MESSAGE = """ Invalid command! Please enter your commands in the following format: @@ -125,6 +131,8 @@ public Command parseCommand(String command) throws InvalidCommandException { return parseAddCommand(command, commandParts); case RemoveCommand.COMMAND_WORD: return parseRemoveCommand(command, commandParts); + case EditCommand.COMMAND_WORD: + return parseEditCommand(command, commandParts); case ListCommand.COMMAND_WORD: return new ListCommand(); case ViewCommand.COMMAND_WORD: @@ -247,6 +255,58 @@ private Command parseRemoveCommand(String input, String[] commandParts) throws I } } + /** + * Parses the input string to create an Command object based on the provided command parts. + *

    + * This method checks the command flag extracted from the command parts. If the command + * flag is "-e", it splits the input string to create an EditCommand + * for editing an event. If the command flag is "-p", it creates an EditCommand + * for editing a participant's details. If neither flag is matched, it throws an InvalidCommandException + * with an error message. + *

    + * + * @param input the input string containing the command details. + * @param commandParts an array of strings representing the parsed command parts, + * where the second element is the command flag. + * @return a Command object representing the parsed command. + * @throws InvalidCommandException if the flags are not matched in the command parts. + */ + private Command parseEditCommand(String input, String[] commandParts) throws InvalidCommandException { + assert commandParts[0].equalsIgnoreCase(EditCommand.COMMAND_WORD); + try { + String commandFlag = commandParts[1]; + String[] inputParts; + + if (commandFlag.equals("-e")) { + inputParts = input.split("(-p|-n|-email|-e)"); + String participantName = inputParts[1].trim(); + String newNumber = inputParts[2].trim(); + String newEmail = inputParts[3].trim(); + String eventName = inputParts[4].trim(); + return new EditCommand(participantName, newNumber, newEmail, eventName); + } else if (commandFlag.equals("-p")) { + inputParts = input.split("(-p|-n|-email|-e)"); + String participantName = inputParts[1].trim(); + String newNumber = inputParts[2].trim(); + String newEmail = inputParts[3].trim(); + String eventName = inputParts[4].trim(); + return new EditCommand(participantName, newNumber, newEmail, eventName); + } + + logger.log(WARNING, "Invalid command format"); + throw new InvalidCommandException(INVALID_EDIT_MESSAGE); + } catch (IndexOutOfBoundsException exception) { + logger.log(WARNING, "Invalid command format"); + throw new InvalidCommandException(INVALID_EDIT_MESSAGE); + } catch (DateTimeParseException exception) { + logger.log(WARNING, "Invalid date-time format"); + throw new InvalidCommandException(INVALID_DATE_TIME_MESSAGE); + } catch (IllegalArgumentException exception) { + logger.log(WARNING, "Invalid priority level status"); + throw new InvalidCommandException(INVALID_PRIORITY_MESSAGE); + } + } + //@@author glenn-chew /** * Parses the input string to create a {@link Command} based on the providedcomma nd parts. diff --git a/src/test/java/seedu/manager/command/EditCommandTest.java b/src/test/java/seedu/manager/command/EditCommandTest.java new file mode 100644 index 0000000000..23dfe1537b --- /dev/null +++ b/src/test/java/seedu/manager/command/EditCommandTest.java @@ -0,0 +1,4 @@ +package seedu.manager.command; + +public class EditCommandTest { +} diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index c995939414..ca65fa6208 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -30,7 +30,7 @@ Events saved successfully. Enter a command: Invalid command! Please enter your commands in the following format: add -e EVENT -t TIME -v VENUE -u PRIORITY -add -p PARTICIPANT -e EVENT +add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT ------------------------ Enter a command: Event added successfully @@ -67,7 +67,9 @@ Enter a command: There are 1 participants in dinner party! Here are your partici ------------------------ Events saved successfully. ------------------------ -Enter a command: Invalid command! +Enter a command: Participant contact information successfully updated +------------------------ +Events saved successfully. ------------------------ Enter a command: There are 1 participants in dinner party! Here are your participants: 1. Mary [ ] From 14e6209ee16b1f2705807e53494cb07c860f7d6c Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Wed, 30 Oct 2024 23:20:32 +0800 Subject: [PATCH 324/619] Add JUnit test --- .../seedu/manager/command/EditCommand.java | 2 +- .../seedu/manager/command/AddCommandTest.java | 2 - .../manager/command/EditCommandTest.java | 57 +++++++++++++++++++ 3 files changed, 58 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/manager/command/EditCommand.java b/src/main/java/seedu/manager/command/EditCommand.java index c3b1bc32cb..d061d75be6 100644 --- a/src/main/java/seedu/manager/command/EditCommand.java +++ b/src/main/java/seedu/manager/command/EditCommand.java @@ -7,7 +7,7 @@ public class EditCommand extends Command{ public static final String COMMAND_WORD = "edit"; private static final String EDIT_PARTICIPANT_MESSAGE = "Participant contact information successfully updated"; - private static final String EDIT_FAILURE_MESSAGE = "Event/Participant not found"; + private static final String EDIT_FAILURE_MESSAGE = "Event/Participant not found!"; protected String eventName; protected String participantName; protected String participantNumber; diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index 986d3d3e97..d9c45c3c4c 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -13,7 +13,6 @@ import static org.junit.jupiter.api.Assertions.assertThrows; public class AddCommandTest { - //@@author jemehgoh private EventList eventList; private DateTimeFormatter formatter; @@ -23,7 +22,6 @@ public void testSetUp() { formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); } - //@@author @Test public void add_event_success() { eventList.addEvent("Event 1", diff --git a/src/test/java/seedu/manager/command/EditCommandTest.java b/src/test/java/seedu/manager/command/EditCommandTest.java index 23dfe1537b..142720886e 100644 --- a/src/test/java/seedu/manager/command/EditCommandTest.java +++ b/src/test/java/seedu/manager/command/EditCommandTest.java @@ -1,4 +1,61 @@ package seedu.manager.command; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import seedu.manager.enumeration.Priority; +import seedu.manager.event.EventList; +import seedu.manager.exception.DuplicateDataException; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + public class EditCommandTest { + private EventList eventList; + private DateTimeFormatter formatter; + + @BeforeEach + public void testSetUp() { + eventList = new EventList(); + formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + } + + @Test + public void edit_participant_success() { + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), "Venue A", Priority.HIGH); + eventList.addParticipantToEvent("Tom", "89521252", "example@gmail.com", "Event 1"); + + EditCommand editParticipantCommand = new EditCommand("Tom", "9123 4567", "new_email@example.com", "Event 1"); + editParticipantCommand.setData(eventList); + editParticipantCommand.execute(); + + assertEquals("9123 4567", eventList.getEvent(0).getParticipantList().get(0).getNumber()); + assertEquals("new_email@example.com", eventList.getEvent(0).getParticipantList().get(0).getEmail()); + } + + @Test + public void edit_participant_invalidEvent_failure() { + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), "Venue A", Priority.HIGH); + eventList.addParticipantToEvent("Tom", "89521252", "example@gmail.com", "Event 1"); + String expectedMessage = "Event/Participant not found!"; + EditCommand editParticipantCommand = new EditCommand("Tom", "9123 4567", "new_email@example.com", "Non-Existent Event"); + editParticipantCommand.setData(eventList); + editParticipantCommand.execute(); + + assertEquals(expectedMessage, editParticipantCommand.getMessage()); + } + + @Test + public void edit_participant_invalidParticipant_failure() { + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), "Venue A", Priority.HIGH); + eventList.addParticipantToEvent("Tom", "89521252", "example@gmail.com", "Event 1"); + String expectedMessage = "Event/Participant not found!"; + EditCommand editParticipantCommand = new EditCommand("Invalid Participant", "9123 4567", "new_email@example.com", "Event 1"); + editParticipantCommand.setData(eventList); + editParticipantCommand.execute(); + + assertEquals(expectedMessage, editParticipantCommand.getMessage()); + } } From 5bef0d7a24fcbf1fc57ff7eaafd82b6f74dcf134 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Wed, 30 Oct 2024 23:26:01 +0800 Subject: [PATCH 325/619] Modify test method names --- src/test/java/seedu/manager/command/EditCommandTest.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/test/java/seedu/manager/command/EditCommandTest.java b/src/test/java/seedu/manager/command/EditCommandTest.java index 142720886e..f08044d66e 100644 --- a/src/test/java/seedu/manager/command/EditCommandTest.java +++ b/src/test/java/seedu/manager/command/EditCommandTest.java @@ -4,13 +4,11 @@ import org.junit.jupiter.api.Test; import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; -import seedu.manager.exception.DuplicateDataException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; public class EditCommandTest { private EventList eventList; @@ -36,7 +34,7 @@ public void edit_participant_success() { } @Test - public void edit_participant_invalidEvent_failure() { + public void editParticipant_invalidEvent_failure() { eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), "Venue A", Priority.HIGH); eventList.addParticipantToEvent("Tom", "89521252", "example@gmail.com", "Event 1"); String expectedMessage = "Event/Participant not found!"; @@ -48,7 +46,7 @@ public void edit_participant_invalidEvent_failure() { } @Test - public void edit_participant_invalidParticipant_failure() { + public void editParticipant_invalidParticipant_failure() { eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), "Venue A", Priority.HIGH); eventList.addParticipantToEvent("Tom", "89521252", "example@gmail.com", "Event 1"); String expectedMessage = "Event/Participant not found!"; From 2027383d3a5ff2a943f3be7ac83ce3e3dab0ccee Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Wed, 30 Oct 2024 23:30:32 +0800 Subject: [PATCH 326/619] Update to pass CI test --- .../seedu/manager/command/EditCommandTest.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/test/java/seedu/manager/command/EditCommandTest.java b/src/test/java/seedu/manager/command/EditCommandTest.java index f08044d66e..4cda792744 100644 --- a/src/test/java/seedu/manager/command/EditCommandTest.java +++ b/src/test/java/seedu/manager/command/EditCommandTest.java @@ -38,7 +38,12 @@ public void editParticipant_invalidEvent_failure() { eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), "Venue A", Priority.HIGH); eventList.addParticipantToEvent("Tom", "89521252", "example@gmail.com", "Event 1"); String expectedMessage = "Event/Participant not found!"; - EditCommand editParticipantCommand = new EditCommand("Tom", "9123 4567", "new_email@example.com", "Non-Existent Event"); + EditCommand editParticipantCommand = new EditCommand( + "Tom", + "9123 4567", + "new_email@example.com", + "Non-Existent Event" + ); editParticipantCommand.setData(eventList); editParticipantCommand.execute(); @@ -50,7 +55,12 @@ public void editParticipant_invalidParticipant_failure() { eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), "Venue A", Priority.HIGH); eventList.addParticipantToEvent("Tom", "89521252", "example@gmail.com", "Event 1"); String expectedMessage = "Event/Participant not found!"; - EditCommand editParticipantCommand = new EditCommand("Invalid Participant", "9123 4567", "new_email@example.com", "Event 1"); + EditCommand editParticipantCommand = new EditCommand( + "Invalid Participant", + "9123 4567", + "new_email@example.com", + "Event 1" + ); editParticipantCommand.setData(eventList); editParticipantCommand.execute(); From 300f0c441457848ece445b2194586bdc00ac739b Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 30 Oct 2024 23:48:56 +0800 Subject: [PATCH 327/619] Add support for viewing items to the parser --- .../seedu/manager/command/MenuCommand.java | 2 +- .../java/seedu/manager/parser/Parser.java | 31 +++++++++++++++++-- .../manager/command/ViewCommandTest.java | 2 +- text-ui-test/EXPECTED.TXT | 2 +- text-ui-test/input.txt | 2 +- 5 files changed, 32 insertions(+), 7 deletions(-) diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 50abda507e..f1e7592356 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -14,7 +14,7 @@ public class MenuCommand extends Command { remove -e EVENT: Remove an event from the event list. add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. add -m ITEM -e EVENT: Add an item to an event. - view -e EVENT: View the list of participants of an event. + view -e EVENT -y TYPE: View the list of participants or items of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. mark -e EVENT -s STATUS: Mark an event as done or not done. diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 06b44e294f..da505439db 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -51,7 +51,11 @@ public class Parser { private static final String INVALID_VIEW_MESSAGE = """ Invalid command! Please enter your commands in the following format: - view -e EVENT + view -e EVENT -y TYPE + """; + private static final String INVALID_TYPE_MESSAGE = """ + Invalid type! + Please set the type as either "participant" or "item" """; private static final String INVALID_MARK_MESSAGE = """ Invalid command! @@ -114,6 +118,7 @@ public class Parser { private static final String ITEM_REGEX = "(-m|-e)"; private static final String REMOVE_PARTICIPANT_REGEX = "(-p|-e)"; private static final String FIND_REGEX = "\\s*(-e|-p)\\s*"; + private static final String VIEW_REGEX = "(-e|-y)"; /** * Returns a command based on the given user command string. @@ -358,8 +363,7 @@ private Command parseViewCommand(String input, String[] commandParts) throws Inv String commandFlag = commandParts[1]; if (commandFlag.equals("-e")) { - String [] inputParts = input.split("-e"); - return new ViewCommand(inputParts[1].trim(), true); + return getViewCommand(input); } logger.log(WARNING,"Invalid command format"); @@ -371,6 +375,27 @@ private Command parseViewCommand(String input, String[] commandParts) throws Inv } //@@author jemehgoh + /** + * Returns a {@link ViewCommand} with fields parsed from a given user input. + * + * @param input the user input to be parsed. + * @return a {@link ViewCommand} with fields parsed from input. + * @throws IndexOutOfBoundsException if not all fields are present in input. + * @throws InvalidCommandException if the status parameter in input is invalid. + */ + private ViewCommand getViewCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException { + String[] inputParts = input.split(VIEW_REGEX); + String eventName = inputParts[1].trim(); + String viewType = inputParts[2].trim(); + if (viewType.equalsIgnoreCase("participant")) { + return new ViewCommand(eventName, true); + } else if (viewType.equalsIgnoreCase("item")) { + return new ViewCommand(eventName, false); + } else { + throw new InvalidCommandException(INVALID_TYPE_MESSAGE); + } + } + /** * Parses the input string to create a {@link Command} based on the provided command parts. * diff --git a/src/test/java/seedu/manager/command/ViewCommandTest.java b/src/test/java/seedu/manager/command/ViewCommandTest.java index 3e6af66307..58081c4abf 100644 --- a/src/test/java/seedu/manager/command/ViewCommandTest.java +++ b/src/test/java/seedu/manager/command/ViewCommandTest.java @@ -25,7 +25,7 @@ public void setUp() { command.setData(eventList); command.execute(); - viewCommand = new Parser().parseCommand("view -e Event 1"); + viewCommand = new Parser().parseCommand("view -e Event 1 -y participant"); viewCommand.setData(eventList); viewCommand.execute(); } diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index d3fc4b16ff..70a505af7e 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -10,7 +10,7 @@ list: List events. remove -e EVENT: Remove an event from the event list. add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. add -m ITEM -e EVENT: Add an item to an event. -view -e EVENT: View the list of participants of an event. +view -e EVENT -t TYPE: View the list of participants or items of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. mark -e EVENT -s STATUS: Mark an event as done or not done. diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index 64e586f82a..cee6338a91 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -8,7 +8,7 @@ mark -e dinner party -s done list mark -e Saturday brunch -s done add -p Mary -n 98512525 -email example@gmail.com -e dinner party -view -e dinner party +view -e dinner party -y participant add -e anniversary celebration -t 2024-10-23 12:34 -v hotel -u medium sort -by name sort -by time From 0ed64476199ebeb512513874a5643a0af7c2ede9 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 31 Oct 2024 00:25:21 +0800 Subject: [PATCH 328/619] Add JUnit tests --- .../manager/command/ViewCommandTest.java | 38 +++++++++++++++++-- .../java/seedu/manager/parser/ParserTest.java | 28 ++++++++++++++ 2 files changed, 62 insertions(+), 4 deletions(-) diff --git a/src/test/java/seedu/manager/command/ViewCommandTest.java b/src/test/java/seedu/manager/command/ViewCommandTest.java index 58081c4abf..4845487032 100644 --- a/src/test/java/seedu/manager/command/ViewCommandTest.java +++ b/src/test/java/seedu/manager/command/ViewCommandTest.java @@ -8,14 +8,16 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; +//@@author glenn-chew public class ViewCommandTest { - private static EventList eventList = new EventList(); + private EventList eventList; private Command viewCommand; @BeforeEach public void setUp() { Command command; + eventList = new EventList(); command = new Parser().parseCommand("add -e Event 1 -t 2024-10-10 10:00 -v Venue A -u high"); command.setData(eventList); @@ -25,9 +27,9 @@ public void setUp() { command.setData(eventList); command.execute(); - viewCommand = new Parser().parseCommand("view -e Event 1 -y participant"); - viewCommand.setData(eventList); - viewCommand.execute(); + command = new Parser().parseCommand("add -m Plastic chair -e Event 1"); + command.setData(eventList); + command.execute(); } @Test @@ -35,7 +37,35 @@ public void execute_twoEvents_success() { String expectedMessage = "There are 1 participants in Event 1! Here are your participants:\n" + "1. Tom [ ]\n"; + viewCommand = new Parser().parseCommand("view -e Event 1 -y participant"); + viewCommand.setData(eventList); + viewCommand.execute(); + assertEquals(expectedMessage, viewCommand.getMessage()); assertFalse(viewCommand.getCanExit()); } + + //@@author jemehgoh + @Test + public void execute_invalidEvent_failure() { + String expectedMessage = "Event not found!"; + + viewCommand = new Parser().parseCommand("view -e Event 2 -y participant"); + viewCommand.setData(eventList); + viewCommand.execute(); + + assertEquals(expectedMessage, viewCommand.getMessage()); + } + + @Test + public void execute_viewItems_success() { + String expectedMessage = "There are 1 items in Event 1! Here are your items:\n" + + "1. Plastic chair [ ]\n"; + + viewCommand = new Parser().parseCommand("view -e Event 1 -y item"); + viewCommand.setData(eventList); + viewCommand.execute(); + + assertEquals(expectedMessage, viewCommand.getMessage()); + } } diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index e25075eaf9..128fb0e012 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -9,6 +9,7 @@ import seedu.manager.command.MenuCommand; import seedu.manager.command.ListCommand; import seedu.manager.command.RemoveCommand; +import seedu.manager.command.ViewCommand; import seedu.manager.exception.InvalidCommandException; import static org.junit.jupiter.api.Assertions.assertInstanceOf; @@ -87,6 +88,33 @@ public void removeCommand_removeNoParameter_invalid() { parser.parseCommand(commandString);}); } + //@@author jemehgoh + @Test + public void viewCommand_viewParticipant_view() { + Parser parser = new Parser(); + Command command = parser.parseCommand("view -e event -y participant"); + + assertInstanceOf(ViewCommand.class, command); + } + + @Test + public void viewCommand_noParameter_throwsException() { + Parser parser = new Parser(); + String commandString = "view"; + + assertThrows(InvalidCommandException.class, () -> { + parser.parseCommand(commandString);}); + } + + @Test + public void viewCommand_invalidStatus_throwsException() { + Parser parser = new Parser(); + String commandString = "view -e event -y command"; + + assertThrows(InvalidCommandException.class, () -> { + parser.parseCommand(commandString);}); + } + //@@author jemehgoh @Test public void parseCommand_markEvent_mark() { From fc841bf470218e70022ee212544ed3f73e6279be Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 31 Oct 2024 00:43:42 +0800 Subject: [PATCH 329/619] Extract out flags and change if-else in add and remove to switch --- .../java/seedu/manager/parser/Parser.java | 41 +++++++++++-------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index da505439db..9d5084ad33 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -119,6 +119,9 @@ public class Parser { private static final String REMOVE_PARTICIPANT_REGEX = "(-p|-e)"; private static final String FIND_REGEX = "\\s*(-e|-p)\\s*"; private static final String VIEW_REGEX = "(-e|-y)"; + public static final String EVENT_FLAG = "-e"; + public static final String PARTICIPANT_FLAG = "-p"; + public static final String ITEM_FLAG = "-m"; /** * Returns a command based on the given user command string. @@ -182,16 +185,17 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval try { String commandFlag = commandParts[1]; - if (commandFlag.equals("-e")) { + switch (commandFlag) { + case EVENT_FLAG: return getAddEventCommand(input); - } else if (commandFlag.equals("-p")) { + case PARTICIPANT_FLAG: return getAddParticipantCommand(input); - } else if (commandFlag.equals("-m")) { + case ITEM_FLAG: return getAddItemCommand(input); + default: + logger.log(WARNING, "Invalid command format"); + throw new InvalidCommandException(INVALID_ADD_MESSAGE); } - - logger.log(WARNING,"Invalid command format"); - throw new InvalidCommandException(INVALID_ADD_MESSAGE); } catch (IndexOutOfBoundsException exception) { logger.log(WARNING,"Invalid command format"); throw new InvalidCommandException(INVALID_ADD_MESSAGE); @@ -285,16 +289,17 @@ private Command parseRemoveCommand(String input, String[] commandParts) throws I try { String commandFlag = commandParts[1]; - if (commandFlag.equals("-e")) { + switch (commandFlag) { + case EVENT_FLAG: return getRemoveEventCommand(input); - } else if (commandFlag.equals("-p")) { + case PARTICIPANT_FLAG: return getRemoveParticipantCommand(input); - } else if (commandFlag.equals("-m")) { + case ITEM_FLAG: return getRemoveItemCommand(input); + default: + logger.log(WARNING, "Invalid command format"); + throw new InvalidCommandException(INVALID_REMOVE_MESSAGE); } - - logger.log(WARNING,"Invalid command format"); - throw new InvalidCommandException(INVALID_REMOVE_MESSAGE); } catch (IndexOutOfBoundsException exception) { logger.log(WARNING,"Invalid command format"); throw new InvalidCommandException(INVALID_REMOVE_MESSAGE); @@ -310,7 +315,7 @@ private Command parseRemoveCommand(String input, String[] commandParts) throws I * @throws IndexOutOfBoundsException if not all fields are present in input. */ private RemoveCommand getRemoveEventCommand(String input) throws IndexOutOfBoundsException { - String[] inputParts = input.split("-e"); + String[] inputParts = input.split(EVENT_FLAG); return new RemoveCommand(inputParts[1].trim()); } @@ -362,7 +367,7 @@ private Command parseViewCommand(String input, String[] commandParts) throws Inv try { String commandFlag = commandParts[1]; - if (commandFlag.equals("-e")) { + if (commandFlag.equals(EVENT_FLAG)) { return getViewCommand(input); } @@ -417,10 +422,10 @@ private Command parseMarkCommand(String input, String[] commandParts) throws Inv try { String commandFlag = commandParts[1]; - if (commandFlag.equalsIgnoreCase("-e")) { + if (commandFlag.equalsIgnoreCase(EVENT_FLAG)) { String[] inputParts = input.split("-e|-s"); return getMarkEventCommand(inputParts[1].trim(), inputParts[2].trim()); - } else if (commandFlag.equalsIgnoreCase("-p")) { + } else if (commandFlag.equalsIgnoreCase(PARTICIPANT_FLAG)) { String[] inputParts = input.split("-p|-e|-s"); return getMarkParticipantCommand(inputParts[1].trim(), inputParts[2].trim(), inputParts[3].trim()); } @@ -575,7 +580,7 @@ private Command parseFilterCommand(String input, String[] commandParts) throws I throw new InvalidCommandException(INVALID_FILTER_MESSAGE); } - Set validFlags = Set.of("-e", "-t", "-u"); + Set validFlags = Set.of(EVENT_FLAG, "-t", "-u"); if (validFlags.contains(commandParts[1].trim().toLowerCase())) { return new FilterCommand(commandParts[1].trim().toLowerCase(), inputParts[1].trim()); } @@ -637,7 +642,7 @@ private Command parseCopyCommand(String input, String[] commandParts) throws Inv private Command parseFindCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(FindCommand.COMMAND_WORD); try { - if (!input.contains("-e") || !input.contains("-p")) { + if (!input.contains(EVENT_FLAG) || !input.contains(PARTICIPANT_FLAG)) { throw new InvalidCommandException(INVALID_FIND_FLAG_MESSAGE); } From e960f5660ba65a65832979d7a476426796977ca8 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 31 Oct 2024 00:57:03 +0800 Subject: [PATCH 330/619] Fix Checkstyle issues and update user guide --- docs/UserGuide.md | 31 ++++++++++++------- .../java/seedu/manager/parser/Parser.java | 6 ++-- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 84635996d5..ae9f5d0447 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -31,21 +31,22 @@ Shows a list of all valid user commands in the program. ``` Here are the possible commands: - -add -e EVENT -t TIME -v VENUE: Add an event to the event list. + +add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. list: List events. remove -e EVENT: Remove an event from the event list. -add -p PARTICIPANT -e EVENT: Add a participant to an event. +add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. add -m ITEM -e EVENT: Add an item to an event. -view -e EVENT: View the list of participants of an event. +view -e EVENT -y TYPE: View the list of participants or items of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. +mark -e EVENT -s STATUS: Mark an event as done or not done. +mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. +sort -by KEYWORD: Sorts events by name/time/priority. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. -find -e EVENT -p NAME: Finds all participants with specified name in an event. filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. -sort -by KEYWORD: Sorts events by name/time/priority. -save: Save latest changes to file. -exit: Exit program. +find -e EVENT -p NAME: Finds all participants with specified name in an event. +exit: Exit program ``` Format: `menu` @@ -88,15 +89,21 @@ Examples: * `remove -p John Tan -e Origami workshop` removes the participant `John Tan` from the event `Origami workshop`. * `remove -m Origami paper -e Origami workshop` removes the item `Origami paper` from the event `Origami workshop`. -### View all participants for an event: `view` +### View all participants or items for an event: `view` + +Shows a list of all participants or items for an event. -Shows a list of all participants for an event. +Format: `view -e EVENT -y TYPE` -Format: `view -e EVENT` +* The list shown varies based on the value of `TYPE` entered, as follows: + * A list of participants is shown when `TYPE` is `participant`. + * A list of items is shown when `TYPE` is `item`. +* `TYPE` is case-insensitive, i.e. `PARTICIPANT` and `participant` will produce the same result. Examples: -* `view -e Origami workshop` shows a list of all participants for the event `Origami workshop`. +* `view -e Origami workshop -y participant` shows a list of all participants for the event `Origami workshop`. +* `view -e Origami workshop -y item` shows a list of all items for the event `Origami workshop`. ### Mark an event as done: `mark` diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 9d5084ad33..7b5bb1f827 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -119,9 +119,9 @@ public class Parser { private static final String REMOVE_PARTICIPANT_REGEX = "(-p|-e)"; private static final String FIND_REGEX = "\\s*(-e|-p)\\s*"; private static final String VIEW_REGEX = "(-e|-y)"; - public static final String EVENT_FLAG = "-e"; - public static final String PARTICIPANT_FLAG = "-p"; - public static final String ITEM_FLAG = "-m"; + private static final String EVENT_FLAG = "-e"; + private static final String PARTICIPANT_FLAG = "-p"; + private static final String ITEM_FLAG = "-m"; /** * Returns a command based on the given user command string. From 341c016c5d41acc328c2a69eb21f7b49e9515e93 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 31 Oct 2024 01:04:40 +0800 Subject: [PATCH 331/619] Update I/O redirection test --- text-ui-test/EXPECTED.TXT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 70a505af7e..534acc50f5 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -10,7 +10,7 @@ list: List events. remove -e EVENT: Remove an event from the event list. add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. add -m ITEM -e EVENT: Add an item to an event. -view -e EVENT -t TYPE: View the list of participants or items of an event. +view -e EVENT -y TYPE: View the list of participants or items of an event. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. mark -e EVENT -s STATUS: Mark an event as done or not done. From 57bdce611a3ac9c583dcd74194d5fac41ec26039 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Thu, 31 Oct 2024 01:29:56 +0800 Subject: [PATCH 332/619] Swap order of inputs in addParticipantToEvent --- src/main/java/seedu/manager/command/AddCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index 776c3b2d79..1c9de6a12f 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -81,8 +81,8 @@ public void execute() throws DuplicateDataException { } else { boolean isAdded = this.eventList.addParticipantToEvent( this.participantName, - this.participantEmail, this.participantNumber, + this.participantEmail, this.eventName ); this.message = (isAdded) ? ADD_PARTICIPANT_MESSAGE : ADD_FAILURE_MESSAGE; From 1e0bcdc00a2b4ad819a18ab12f10d82ac04429e6 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Thu, 31 Oct 2024 01:32:39 +0800 Subject: [PATCH 333/619] Update Particpant toString with new attributes --- src/main/java/seedu/manager/item/Participant.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/item/Participant.java b/src/main/java/seedu/manager/item/Participant.java index 49b8d06874..2e6f7377ce 100644 --- a/src/main/java/seedu/manager/item/Participant.java +++ b/src/main/java/seedu/manager/item/Participant.java @@ -102,6 +102,7 @@ public String markIfPresent() { */ @Override public String toString() { - return String.format("%s [%s]", this.name, this.markIfPresent()); + return String.format("[%s] Name: %s / Number: %s / Email: %s", + this.markIfPresent(), this.name, this.number, this.email); } } From 073327169dddf2a2bf13d9a9b97845f084585627 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Thu, 31 Oct 2024 01:33:44 +0800 Subject: [PATCH 334/619] Edit INVALID_ADD_MESSAGE with updated command format --- src/main/java/seedu/manager/parser/Parser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index d6fc1c4dba..f8199aa5eb 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -39,7 +39,7 @@ public class Parser { Invalid command! Please enter your commands in the following format: add -e EVENT -t TIME -v VENUE -u PRIORITY - add -p PARTICIPANT -e EVENT + add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT """; private static final String INVALID_REMOVE_MESSAGE = """ Invalid command! From 86de0401540679f0fb98fb2eff615824ad142778 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Thu, 31 Oct 2024 01:34:24 +0800 Subject: [PATCH 335/619] Update JUnit tests to display new Participant toString --- src/test/java/seedu/manager/command/FindCommandTest.java | 4 ++-- src/test/java/seedu/manager/command/ViewCommandTest.java | 2 +- src/test/java/seedu/manager/item/ParticipantTest.java | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/test/java/seedu/manager/command/FindCommandTest.java b/src/test/java/seedu/manager/command/FindCommandTest.java index ae5d56c2a9..61c0366f4a 100644 --- a/src/test/java/seedu/manager/command/FindCommandTest.java +++ b/src/test/java/seedu/manager/command/FindCommandTest.java @@ -32,8 +32,8 @@ public void execute_findCommand_success() { findCommand.execute(); String expectedMessage = "Person(s) found!\n" + - "1. John Doe [ ]\n" + - "2. Jane Doe [ ]\n"; + "1. [ ] Name: John Doe / Number: 9123 8321 / Email: example1@gmail.com\n" + + "2. [ ] Name: Jane Doe / Number: 8123 9321 / Email: example2@gmail.com\n"; assertEquals(expectedMessage, findCommand.getMessage()); } diff --git a/src/test/java/seedu/manager/command/ViewCommandTest.java b/src/test/java/seedu/manager/command/ViewCommandTest.java index 3e6af66307..6e338b6959 100644 --- a/src/test/java/seedu/manager/command/ViewCommandTest.java +++ b/src/test/java/seedu/manager/command/ViewCommandTest.java @@ -33,7 +33,7 @@ public void setUp() { @Test public void execute_twoEvents_success() { String expectedMessage = "There are 1 participants in Event 1! Here are your participants:\n" - + "1. Tom [ ]\n"; + + "1. [ ] Name: Tom / Number: 95015025 / Email: example@gmail.com\n"; assertEquals(expectedMessage, viewCommand.getMessage()); assertFalse(viewCommand.getCanExit()); diff --git a/src/test/java/seedu/manager/item/ParticipantTest.java b/src/test/java/seedu/manager/item/ParticipantTest.java index 699d1260a5..28f050ecd7 100644 --- a/src/test/java/seedu/manager/item/ParticipantTest.java +++ b/src/test/java/seedu/manager/item/ParticipantTest.java @@ -24,6 +24,7 @@ public void setPresent_setFalse_notPresent() { public void toString_setTrue_present() { Participant participant = new Participant("Participant", "89521252", "example@gmail.com"); participant.setPresent(true); - assertEquals("Participant [X]", participant.toString()); + assertEquals("[X] Name: Participant / Number: 89521252 / Email: example@gmail.com", + participant.toString()); } } From e8b0b17a69f5b220e66f2eb9dc4166dbeae5b151 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Thu, 31 Oct 2024 01:35:21 +0800 Subject: [PATCH 336/619] Update expected test output to handle new view message --- text-ui-test/EXPECTED.TXT | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index b8a99a0896..7dadea507a 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -29,7 +29,7 @@ Events saved successfully. Enter a command: Invalid command! Please enter your commands in the following format: add -e EVENT -t TIME -v VENUE -u PRIORITY -add -p PARTICIPANT -e EVENT +add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT ------------------------ Enter a command: Event added successfully @@ -61,7 +61,7 @@ Enter a command: Participant added successfully Events saved successfully. ------------------------ Enter a command: There are 1 participants in dinner party! Here are your participants: -1. Mary [ ] +1. [ ] Name: Mary / Number: 98512525 / Email: example@gmail.com ------------------------ Events saved successfully. From 8b5f5ef51b4b7296adc1c32766e8ca6e866db1fe Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 31 Oct 2024 12:58:06 +0800 Subject: [PATCH 337/619] Update developer guide in response to review comments --- docs/DeveloperGuide.md | 7 ++++++- docs/diagrams/CommandClassDiagram.puml | 12 ++++++------ docs/diagrams/CommandSequenceDiagram.puml | 8 ++++---- docs/diagrams/StorageClassDiagram.puml | 19 +++++++++---------- docs/images/CommandClassDiagram.png | Bin 13202 -> 13355 bytes docs/images/StorageClassDiagram.png | Bin 60549 -> 27330 bytes 6 files changed, 25 insertions(+), 21 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 8e4be65b36..3d98b01674 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -56,22 +56,27 @@ The `Command` component and its component classes are shown in the below **Class +In all `XYZCommand` classes, the abstract `execute()` method from the parent `Command` class is implemented. + The `Command` component does the following: * Handle the execution of the user command through interactions with `Event`. * Provides a command output message to `Ui` after the command execution. -The interactions between `Command` and other commands in the system is shown in the following _Sequence Diagram_: +The interactions between `Command` and other components in the system when a command is executed is shown in the following _Sequence Diagram_: ### Event component +The `Event` component comprises an `EventList` class that is composed of multiple `Event`s. Each `Event` contains event participant data, represented by multiple `Participant` objects. + The `Event` component and its component classes are shown in the below **Class Diagram**: The `Event` component does the following: + * Handle the addition, removal and marking of events stored in `EventList`. * Add, remove and mark participants for a specific `Event` in `EventList`. diff --git a/docs/diagrams/CommandClassDiagram.puml b/docs/diagrams/CommandClassDiagram.puml index c10d990a40..f9bc10b8cb 100644 --- a/docs/diagrams/CommandClassDiagram.puml +++ b/docs/diagrams/CommandClassDiagram.puml @@ -3,7 +3,7 @@ 'https://plantuml.com/class-diagram rectangle command { - rectangle "<>\n Command" COMMAND_COLOUR + rectangle " {abstract}\n Command" COMMAND_COLOUR rectangle XYZCommand COMMAND_COLOUR } @@ -13,12 +13,12 @@ rectangle Parser PARSER_COLOUR rectangle Event EVENT_COLOUR rectangle Ui UI_COLOUR -"<>\n Command" <|-- XYZCommand +" {abstract}\n Command" <|-- XYZCommand -Main .> "<>\n Command" -Parser .> "<>\n Command" -"<>\n Command" <.. Ui -"<>\n Command" ...> Event +Main .> " {abstract}\n Command" +Parser .> " {abstract}\n Command" +" {abstract}\n Command" <.. Ui +" {abstract}\n Command" ...> Event @enduml \ No newline at end of file diff --git a/docs/diagrams/CommandSequenceDiagram.puml b/docs/diagrams/CommandSequenceDiagram.puml index 1d212afb5b..800c000cd5 100644 --- a/docs/diagrams/CommandSequenceDiagram.puml +++ b/docs/diagrams/CommandSequenceDiagram.puml @@ -1,10 +1,10 @@ @startuml !include style.puml -participant "Main" as main -participant "Parser" as parser PARSER_COLOUR -participant "Ui" as ui UI_COLOUR -participant "XYZCommand" as xyzCommand COMMAND_COLOUR +participant ":Main" as main +participant ":Parser" as parser PARSER_COLOUR +participant ":Ui" as ui UI_COLOUR +participant ":XYZCommand" as xyzCommand COMMAND_COLOUR main -> parser : parseCommand(userCommandText) diff --git a/docs/diagrams/StorageClassDiagram.puml b/docs/diagrams/StorageClassDiagram.puml index f6f5bda78e..d63735c7fe 100644 --- a/docs/diagrams/StorageClassDiagram.puml +++ b/docs/diagrams/StorageClassDiagram.puml @@ -4,22 +4,21 @@ allowmixing package storage { class Storage { - - String filePath - + Storage(String filePath) + - filePath : String + + Storage(filePath : String) + void saveEvents(EventList events) throws IOException - + void loadEvents(EventList events) throws IOException - - boolean isValidFilePath(String filePath) - - boolean isTestEnvironment() + + loadEvents(EventList events) : void + - isValidFilePath(String filePath) : boolean + - isTestEnvironment() : boolean } } rectangle Main -rectangle EventList EVENT_COLOUR +rectangle Event EVENT_COLOUR rectangle Parser PARSER_COLOUR -Storage ..> EventList : saves/loads -Parser <.. Storage : adopts -EventList *--> "*" Event : contains -Main .> Storage : invokes +Storage ..> Event : saves/loads > +Parser <.. Storage : < adopts +Main .> Storage : invokes > @enduml diff --git a/docs/images/CommandClassDiagram.png b/docs/images/CommandClassDiagram.png index 4557d9611adfb3be65029d7e79cda17db15657d2..3ccbfaf51c202560bc84ce51b24db209fcd296f8 100644 GIT binary patch literal 13355 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 SLhx5RI4TMn@`bV%q5lU17n98Z literal 13202 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 diff --git a/docs/images/StorageClassDiagram.png b/docs/images/StorageClassDiagram.png index 486abd1ff1107f1061617eee6f9c05b9155108cf..00d487af5c5e51443aeaa7303438d74161c4d9d6 100644 GIT binary patch literal 27330 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ξ$hk{ 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≪VvcpQ`5?FZ-0 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 Mvlq`04X;Q38}Xzl(*OVf From 2889f99036c890950936400c5ab12a84d360b5ce Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 31 Oct 2024 14:25:03 +0800 Subject: [PATCH 338/619] Add colours to mark sequence diagram --- docs/diagrams/MarkEventSequenceDiagram.puml | 7 ++++--- docs/images/MarkEventSequenceDiagram.png | Bin 19088 -> 21120 bytes 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/diagrams/MarkEventSequenceDiagram.puml b/docs/diagrams/MarkEventSequenceDiagram.puml index cf00c26d73..aad5384fd3 100644 --- a/docs/diagrams/MarkEventSequenceDiagram.puml +++ b/docs/diagrams/MarkEventSequenceDiagram.puml @@ -1,9 +1,10 @@ @startuml +!include style.puml participant ":Main" as main -participant ":MarkEventCommand" as markCommand -participant ":EventList" as eventList -participant ":Event" as event +participant ":MarkEventCommand" as markCommand COMMAND_COLOUR +participant ":EventList" as eventList EVENT_COLOUR +participant ":Event" as event EVENT_COLOUR main -> markCommand : execute() activate markCommand diff --git a/docs/images/MarkEventSequenceDiagram.png b/docs/images/MarkEventSequenceDiagram.png index 4baf33672aa8ce3abc1b1b3b84245f9a295f68d7..0475326173131270d2cda0dcc90015ba7d010603 100644 GIT binary patch literal 21120 zcmb@t1yq$?w>GQ-f^>s)h{&cvq(wqdQjqTM?nb&x*&rp--Q68-N{~(gHzC~(|H9{e z-ZolY;4^ujf@@dNf=oh+3PtP8B*!HQJFeA+B)#Dvf5heSvxveS+W?| zSUC^DD8Vq5W{RqgfB*g7eK3w|%C=&=Y{x6?=3SKtcLwB;Jcb%%{|6+oez6_nMcc1l z)Km^S&-N`g&fa^?_PgEnpr-P0A-Og+!P#LD$}$>2{wVAtjdE+p z|6G^MTR4A-GJSwAV09cB`Q=Yi@j&t1cGs-e-?(-jFcpfE+HZFT)BQGI9yA|#?^qBo zm^h)xDBMpz$Q)g+p5eCMb0T8anvxH3B3v&XZE5fj z*Kp^FB){HmbDq}9szZJ2lAOLc&>y9s_orBl-$E2V#L>N7Oa_Dz zU&WwkZ@*iorhd_?;v0&y_^kghm)z9D`*PIAMc19k&x-pq-du1@zsPHpa<^Pu*1#86 z4@nO`cD@%@&sy(%B1&>X`GSb;tHQIl`Az~U$XspBrVA+i@{j4+uv96Dn%)eQ`qMm4 zCO>CGvq?^{>@ri^%N`Ne7c_Gmhi&agH6wfv@Aw{M8S8cL-aCc2V#129+S{qfs`wJO zy&KK6RN(8u$wIkaZ%`Nw>XgUp$mVVmG}K>Qzb(SWWteQ9pPVESXR=>#hn9DL6f+pZ z$Fs1%W##_Xw8>ISW4pPqe<^TyHZV9aG_e~b1jC)@60Q{N~~tcw_Y8DpOMokcKUmq23N~Tg}z-UkzednkUS4aw|c+3*i8TB zFx+!*s7HHTU6R{pJ72=H62qnhJ5ssmAdz!TyUuo{Co*k3W};~NYNv5GO#E5at%kv< zw{}YYw`@b(M>ccowNFDAod6~dl95JV0} zU~?Kk+<00bN$Y-shpAe0z`gJ;0k$@f$VieNb8^U;<@eR_S$^+T`?5>iI}9&Umyf?Y zKP!k|KiN+~lBP(cn-^0ubNqd8>BC!ioVErHwD7S)y(69yodPdi^%I5qBxx4aS! z^u2=A|H41Bao?R+Tb!0?U%yq4>ab~TW@RR_cD=qpFsqk_w7@vOl)mw)5dr^-5OTP zK0f1#qQFu6L`6@i#*~JE?zUVc5#bBfPeC1hFRQb+o#;+^TKO0o!cjXLRJddJBkN`%VlMur^d+Ho=X<(b zHk>10OwoEnmz;YQDfz56guSxDm2T~~LcPsO-;jRWDB^|0R>tTfe6`)he$ z_6&>)SUdjs;zIP(sQ2*GJmf6C81L!4q*AD&^;diacx+V5`+gU~r&_<6L=GzK-eQ=y z9Uv8WDhFD7`H{ZmHhe_ut7@XO4gpK%g|67s@I9a-_?(N(?Obag6JMz)2Hjooa@<|O zW5R;gTFs6u3dKx*;ddEqZ!gzw7T1L9c)M-t+|IChoMhB4YWwUjV-?w6o?NGSUl4Ev zW2W-C9}Uo_X?_+G@;Lr2)8zY{KnAW=I%w`?h~F;?*V8KGdzi3PoqtNG&O3d^6}bu- zc5TTR_gy+ZP#`JZOg*^PR7PQ-*ZDHCW2n3mxzX&S15xBfo%KnA<}10qo8?(5IcHJd zp=8liHFdHT8%`rMHYajUx;0_b-_GL1b7StX8hh&XqU8qm#VRV&n34CJit)p$ux_5& z8y9r#`26+Z>LG<(wD*=U9>=R?jFulyH7>bkVxl%GKOW`wYwVB)`6Ta>1bk^+O!4o) zOp_D)vY6v|<4&UQW9ipH*chxk`Ps4~2YrBVyOz#VXR2o8;-!?c5Usx*C`({YN*;exGi`6I~(GHJ3)~FFD@CjsO+h!xRA9vJ! zsh=STZPy!o@BdpaLUOsgpy(;tb1M>j+e>zW;P<)JX-w*7nzx{ zLa={0;%(0na=;4>{KatSK=h{XO!vOoW9rD*DN~~E+^6m;U4qEgG8K%+u{#+dkW#Hi zZ+(5z_+VH9lN;&n&YasGXtVfR;-H&%L+8;=n zn~TF?<6d6ZNzcuec6M+cKla+55!{fi79@HNSIViawyQO9%Ok_=Xq9ex^UnEAuVgzp zgdKW%VN~wXBt$b8qFpUe@K9|^jh&I2=A_`UzMh5Iws|ma$$@%!qiW+cC&6#U^Xu2E z6NKjzKU%~L<`7>^Jd+S&kzdf8FPJ{B(pJ7s}4**5B08$1^LdLNbDGWZ_1 zhtOnSM1xl8P}kcZ7kh6uT2v*kOrP~^{3z43Rd_uYIHtCM5g4*quB4mHD} zvwTK4MZ|)YW1O>2X$8Zw{P~0GK_jNQ&dBIUj;1=ZCa3MA_L33Y7ID%ykCk{#)4wUj zw)-xpUOp9r7L%*jSl5N-GqBuyCg<}pG9gNMr_PTr(48kRjv7iz)1bI8ksH<=h|#~P z!22BW@SqyUb+BU$y+XV`t+=r^Qi`jVjYz7|okG6IH@cWH!=vjb`_N6i@hXNuhWu2M zWm9z`(hU9OBy2q0zNL+Wp&>K1-l<9Iol-5E<#>B3A8KZbr(Kvh-$lfg$&(I6Luhhh z($mYyA*d2>$*U#Ig)1YZwGW7;s)h;=Hq{f=6zws3rfdzz|1i20`d~R`x`+mAt}*{ZV{@gbgDV?l zu6m5glb};-u@?^sLstqud=j4=#o()A+*I6%jNhW`FyxdvWLcCpsVNr7cFK97P;=_E zUxd?f;#V%bpQsL9sR$0CIB(#cAEDsJ=rdUEtJFXy!|R$aI?SO&XXE1Tq)=PiS7TP? z#eB;0sP8Alul?tP#Qf&+Ho8bf>yUK?UPl4W)m=KYyt#!AzOnQowszsXf@Ko*wY1lV zL0{Noh&Unz4LZnS701Cyc7l3KzIuc9)sV^fHHrN_uBNnNtHV(w!jglh+T}``qN;kW z-=7{=6CnsPmkorx^_C)i#|gchtw+mUoT_|KkQ2XaX|B(gD^jaz_1((Y`~`2rN^<%9 z(ti3d|W?^M1n>pR*{xm}7KCGO5sPahK8h(o`+xpE@V zS3A67S#r=?ZSSGINt;P!Ar@Pnd6112DRR+tUlCJgC4_t7^AK9PeU7W1euvB)XBVs+ zli%-H_ja}MVfuI8IXpd^4i7K2g8~9|?{}Tj#jwJ`xB6br4Qxmrde(4A@6aNB z^OEg}z{t=Xq)~w~WOk&(_?@Z)zPmdAq&+LLLplEMpX1*vJxi3~SC`EUaQ>wxb>f7i zO9*6_d=90dXov6%&gf@W&Gol%0d^?8y9&On&sXQ1H`FIz-nN``Bd1huk4J`-p#7Q4(*)B#Ejy1Cj0!t$~sqe{@svLi&6j1hYwUH zCJE}*zcI;pI(mAH#|vC+n)2)skDEFrM%a!HrFj(j^pp36@}HAV{q6ZF6JnyEbNZgDeJS}KzI5+Nk@(LVJG?>~ zx0_Pcm@GF;SJVWFllKs_!Mz$HTIToRBCuh*wEk2m0B^h^P7H_UKC~FMy&VB=b__MG z{-}sh(a2rHSi`Xo)sCUyMWbLpt$)JZeR}9eP&3DkF8q8K(JjuSrn1RmoFIXqteJT56wlKYj2!wX^Tn7N|?MX11dC&j(W0H|mmt zLK@tL*zPXlLnWVdFf<$(myTj>!x5lpX`SsDG6>OEj42`ziKh$<^)`#`N`(`uwbrv3 zzA%435%*)5;qd3qv(?qrQZ0C2z-gYZEor*xvV6k(rwz;JuyRRT<}s!E5b z)6`Q*SRDR_fc{C4V+n4OCR9iWVS4=Yq%ZfYH_4u6e2lE`;3L;Jr-*0|A5Rn~mEA_I zJxwCP zr4O2>C`#qw;VT|$iE6q5#OE1jSIOwlNL?UT=Y(^DrmdsWliBujdT~v#rRC$zMH9D@ zgYiOcH&<8ca#rSg*!+Bd1ce~Z<0;R!4_9*DvO}#l&+-nke&C(Wu&B5lYWZ)$_^8Y8 zB^C-~y*Fyj8QIE57yF*GYHT@@c@Jt~74H2#NT_}J2USMr8eU-NEc5vRdcaaV=ET)T zl)1x4>=~Eyr#g$Kp#?z}9wxt)-3DUBy=5|{I#-ILBRDGA!pUP}4zB0!ARIZ#2LA8+ z@)fZL#C3T`ZdK^#u=naKgjv0*=X4qNH9vo>y578hUiVQi`n>bfES&{f%f~i10L$18 zEoZVZHIS}g&FGhTC&-&Cc)t62=2Jy#~!F}3p~QE@|vUS|ugkg8%14ya}0=F<3j9Z#Tz z5&i7!Q4CF?0A1P6uk|bcPDRY6u&8@FOZiI_QT(`hiOm6X>@&tjE7h%*lBIBpC9~~_ zSt2b+uV7?q{qfvX+yfscB{69D7hOF_tNU?DWhGkE0IVKH#H4C%VL?hlvb3_296wR3 zUY#Tw995tG74}-Lj14O4Gg0EqM#Q)Vk>leWS(xlz7#?RB_))5MzJ7DuKY=kkR&1YD zR-&Yp(R3*=#Ii>(0sz#R^1^Y4U?K8h!iHRhp2;)Z^ya`+g6JKmd;z;%HdCBQ1Z8NQ zNr*;-+|5gAnRKU!G_S^xvF#qRv>-T}n)Dn)7P?s4`LO8IZbe=Wo~NrX;-{(&Vm!99 zzfGZ$6-&Y2a1lC+kn-D@kSQz%JOkznka7mSsy5GYwd-`VU-=WsuV^I$IiQkWr${EOgBDPDEP3w zxU(d^n9b%Jn0H%mTYxlDv5+)+xz_5l^X6OI=x~2dE0@Mq6mEgu#ph5d2+^L0%gP%m z$mth88Yuyj`^gJlF7|~Fyj8P4K5r0D7$jXFxYJ8?yw8nx=FT~d2NGX;oovd07cbq9 z@=RT6*k(e*bF!I<<2ih==@2Bn2+`AOObHiW?(<9LJ#6CV?2#dvptgEfh)*lk`Ek@X z-F;)j<*Y3|R`B92(22}c6JB1r>=54RL?4%1Z?8-1LR??36XRwhue_Wk_?+6J_|oUb z(++1p>^u7tNvs~P8b&sLg?jgNgEw&$5to)Ky3Sel$0EHk&jg82r%T$l-oSqcMp4VV zv+Y!B`A%<0!BLqGNd+CzLr4AX(za0tWOeRTFe-e1MOh$_?fr*9mdOfbEE}*n`nRdP z@-=;fZ6YZ6g2Xo3>xP|?j3po{tp6G=O0h)yU&|%W*KGbTA2#yN4E~SxAOa~)|39WR zsDj*XmbP}i#%0m0vt8~AUG%y2y1qDG=JTUM=@iz1sOTo@1o6A)#y}d~EG@qOL=H}+Qqu24QIxlU1zKR#} zII;Bfyb3=qO`G&UeY-r{BlYmJ0|q_0njzR8fuD zkDO=1H+`|ReVIm*lCaZ7pWzp`2mP$G)fPmAgh2)Gb7j*Fe~;ypa$6f#2V;_xu<5pe z+0~leog5qvdm>2}n>~o&_4V~!784PXk>o<&S1Y~IYAbttd*ElKz%!MSIbQ_iGbygG zo5Z*Q`+9RGjSni{E5d!Q_9b4uy7vo>%VxTwdwl%(_juv6;eml7joO_`lVLC=r|X_> zoacTwQB+jaY>ky@Kg0VRF$syxlSv&PW{n!ASpim7tYjh2vog_OOz;uo>&^`*ql&n3 zZxp$+vvZw*0I;v=3L_jGoV}ZBi%Iob>qxKk_VdHF)YR0#&5h1rER#lMEF=n1KQ_s~ zwkxc_6P!*+McTEfxjCf6Fs`#NB-UcGM5|o?H6fRYq2bZ?Y(gzMD(Xz5%WmUtOSo|p zcgRhGjyJ6fT)l4=xork-u*F0F zwpUi$M4y=|Gi7Dvod=^oeyELudt!r!_X!w4MM5MAmtS}wvr4f#m&?xF>R|G1DL?Z8 zL}JcLPj6{?nP%&EvQ3LxnXWJpU<0q4P8U2vt^?^xQy)ZA3lr1*b)UTQn_g8^R^qrH zCb;Y_ycUQW0Iq`q2WKSXb+|noMjic8HkD82Gn;Siop}4@rB{RTAc@{H47RvDS9t;AXy&F+O$$fw^62o{Y5#a zlZyYUp-B)$A^3Y^^UC2th9^_K|D61FfnRa0h#4Y)wlkBMn1lo!9iwPS_Hj= zlkHh@a&l^;G3`cYpup(?Yx#arXSbrMsR>cc`?<5zqTh{La}M^q+)Y{Nw?k@kZ~+v!uX*11is;4o z!S0GEvM>pArVCQO^b9F}*C!<&MaFA3`Xs(r+tbTS?NBmO>@u3=V&&u3%b-zYO%Wcn8A08Z_;$;=y661=!{p%L~ zNPrQzp5>fbE;PBV4W*(?T^?`JqfZ?pT2kQR`t7w!LLq%k&);x|0Gp-r`(v{uiiMhP zp9lNRLqkLJ-=+IW$H@N6K_6w?8#69vQ@!bJ-Meh}NA7mQ?UG2Oia={4P3JA3!}|! zP4P2yBI-XMppxXwvTuHWrsDzYS8s`@3K<0<{&n9!UPrVjmb7uS?*H}Pe+{nkbBT0C z^v|$*--&D4@jrt&@Q+WSldQZ5dQeFVEktos>z~985H^_Wd3P7I2>y>@bQ2fPViKx7 znT3g;_gJAL83RX-_xjbp)(iQ!wg308|Jsm9th>1gDQ-@ioVTX-Z^Fs=owvGcUI*+h z?=5u}t!>ZNW*+uNQ?^d+A+=l`^n>g6NXiGZp6efG*aDLR7rjE@;^_3Wx0QfV`RL^2WPjhcRLAm0 z=&AH)U48uui%Ayk3g_*a19(4LQXKL1<>_LLRdQWb05-+1nQDv1y1Karr|`)P^Pg?L zSK0bUzsLK>$E%wO>FIMR1l`&E(IgnVCMQq7r;CC$-khyqHBFxG%;TxxKlqQsA^i9{ zoUqz*`XfBuULIeQhU#}!Es#t-%gQC(FxX71j}WTQ?e*zMrbKT~&qR@$!+3$x zGhT;P^o~6aBiPZ_^!rRvxX;Zwea4HHryn#{YpiCM-!pGx415vvfWx5V{LbiDSi9fT zJ3)8}A1qWUwYIj7+W&c?nP>lDsoH!THSsa0v7w2{;X#R3Blrv5i1f?qYbdKm zO%X_(P*YRKtOQefhv0_fdz|iAOcV)|Zmk2ya(gk^s;{rlcCSUj@mF7Lj!d$+xOh%h zmM2(m5u2bOIfAZROmcE~s=hf0^FCK+cI?p~)~O7tTqUqSw;m4hTjG@*1Y=PG&xM=W zodrVg;0-sfG=^6c2^WNk37xjp^ZWo<>Y=;7e_=V* zw#X5IOnnQ?dcZ~T%^zC@IF829uy{o4vJ*?_XJ;kw?w(`&8yxKHzW3!ZTib*|c;|Qe zjj#D(m~_V{UCQ&MM5nc6q`-5o&dvgfExC;gzzd^P(U$!De58{g5zhnad;pVfug(uK zNS=R)<(i>$Rb2sL?mH#=Y_?PaI1GNE+5)iW?d?tJbHzS$7n*&2eVNuTkABECH#L2I z7=iKP>SD9h%E}5v_I#W?&%@Qho0}W9{%D~a9*0$F7Z(@DC@oc0)hBdx)CgL9e0=(O zM6B9moW|%`{>3e4%V_x4vo#pri5y0#sO3akW1XEVM;kvZ{pv*8j6UP%JWQ*g%ULG7 zKO!6iOJLCo+l;KNJRD5sR$G&XBRoVmU1;Ln!U|qq_8pQBF)%VS3uVN3vXJ!_uc=Zh zo~a%Fgqr&PHW%O1?jTs3daO^>qo$}D8eCw^MBW_nKBWT1_T)e|8Xg{==g;GI3-!ChG-|EktZ1Qjq@w=> z@RSXPgWr`JUH6yWkAIg72oT`oBO-`w+Vb6ay>ln}1+0oJ{M;iJfm9$gf;o;$UySuxWXw+iDL3H$u!hz6Wl|~Y? zi)3o)`og$o4i{!;FK@0dHR11u!KHt$PNye8jK2JmI3-dt^BRWl7DC~6)(wN9CPqX= z0LW9pjzE^!>~WgGSS1!RDBhPfK%!Z1k93L`O(6(b#ldDSdj;?N$#>t*0udr1HZbuW zXKg5n3$0Y6+Jz2Y@K*-mMWCl_#yAy_s=QHnC~>wn>+_Ln{1(VVakENYyN;~oCZ z?#IildWN2Rwh30|=D%6)xeSto!m`nrA^^JcIvSBc#w2TN7Gl9_aPJIu9?g1di6@pL z-PkYz<5Hg%u8^(+#R0N%awf7SNvn`xM=Hs#XiYd9YtEz6cB(u-JAhc)6o*7S;!Qk+ zDS!iz&lD#PwVf(dE*23OGUu9Mq+E6n81HzoHIc<5@%0syHpJP<>9yE^QdAwOyntpz z|3d)^BBI=pf)t(4v86h#FNarB$JamOThJn~NTIZyOVyP4^{F3bzy=2fZ1>bi(_!`1 zc9nkZx8QP!Y|yF`6_8;}VIZbI0YNogY64xW8jX;tt(nv3QFq%1A{NaLS=hQ2BAzGS z7aR04=}IpF3DTs%ZkI`ZA(MIirL1j%s^Z%x`pS-uyeoj`-nE&edF71EAewh7*Kz7r zYr^lntgf!!23TYhZ=qDJ@~MbT$iwo=ckm)FUr6uj`X>VODvM1(%8Zf^>s?)4_x$fI zQcD|81}&5MK2RzdDIwzJ=clbRhLpZb7ismrR@KGqc7UQCGb_0Pm&WQe((2<=^Pw}5 z-9S9~h1GLbunoWNz6-%R6r&Kga&WAv=4J77d$~J&S}GmZ-Vun#PBdWx z+|M)(Ix&|yK5Tcc{!js0s!=;MJDXhmj+VGL5BtVox9*K@OcDDIx-GR~ly-&TqZv+4 z!Zj2WtcrK=dna8ydZLWg>Z(k%O~`N1TvP9y^40)=cz5$I(8`&>3|RIzU&5EUHY8DjG1D^0MT z_)!tv$FWYKHjO;FWbg8-^Eo{{?92@}y8uo&Bo`p}=jzbpCKO56G=NJ7$Ri$jFupVV zuJ7ph++EZa6M8s=Q$R~a;Es$N9D263@k7o_&4lnT;oa4||5*qm&J>?4Yy~iLF_ORQ_}K=Lq^DDg6ndM$dlX zJo_aqPP$YYj2i8z5QzA(`w{I-SxhEDh1aFCH&$@}qt?}>s4@_L>ztkqJfiCQCj_Tx zVSnlPEh)W_P&h9$a|H%vw8IkwynK#_XbG=`t?ZGAy{1#x75}cj0&ohPCPN`op(3B+ z<0qQj4gtRg5S*EfEv7h+>SLQs&vd1UTnY~kA>jnzx1Z?c!fMBS|Ac~Am{I_6Xolw0 zU1MWo@yr^4(5atsVvpOOAHZK&&HRGHLmA_i0eB_6kqmKF!tMrllH5iggtoJ^S3F)9 zN5GENC~AXRT3YJVd%L^uEG=8O;h%#?6mhW@(xFt}Po~xFbwkU&yu9p3-uQ#Wf#`#C zP!SK92SJC`&?{|~80$YU{x3q+6WmmEzUE7Xo-j3~dPRzZW4HHH*e(@u-=s}fzAgAd zfma^!*RU2~B=4xV`mItL+S}W~cBMv>a42B;v)&z0nHmYMC4`;3g)S97l>kO z0-L?Gw1j|+iC+xuPa8d`4nR?;4~r3Ufm=KhQTnyIdI7lR*%?ZwEzUu1l_xW`AHXsH zm|@Xp%`Z8#b9Iq`zxj*L4h%36$vSYZ)IQq`cT26M6t@3oQ4p-l+ZmVbnd6p#{sh)=4GWMM7m^1W zjkY|mH{p-Q&4Z2dM%?l>13HlC+j@IAA_jc#_*l?!J*G}E z9@siR4^LUS-PBq5w+g_hnAB)k=urPWxrOSppQ3*sHbKwy^!Zr+`;L!oZEZlMLY2y5 zg9Zl%8Ufti0gR-5=t9{I(D&|aI$@xKtqmsA|F`29)p=jL11L*NOPkDPaq^8m?W^JD zL@~I8YZw(36)$WSA_ihavL(bbNdl;1Iw=`BejWe>AS5Q><3mGdFhyV&9#}(tiiy0r*IY7$NV}P&(HPR}^ngUrZW(cr7GV~U9Z5wLC}71!1Rq4xN3?&1 zIgkN9oe&elWBIm8O&qDGS|#yNsfatzb8D)+tl0D($16Cot-<{mjzY+) z-B+aeWvc&lU*p|XWP=;Dj8_-d(*U7Dx(-rU(UWYo^l66gwA1142U7OO)rXzgQVnN>V<3 z>QssnvIJ%2;(gvsOh;tpD0i8xjvr!uc|2iZv{}NLIPWK-(=PX zC9)mnZyw*bQB=eq=xZ^?FCe4q>)a*rg<+BLe9)o|=rv7$BmH<{BHMnQ__|UF2Qw(R zKd4MBQ>i`_(V1Wbf0w67y&47-f8ZdR!k!7-t*}@x{R7r9(Ejd#$De4o_p=>AEG{GX zkoY@Zhx8HxeS_=8(FPER?=;hrm=E*&#}-;&DUVLJraA2bt;5PfUp~9CYm;Y|<`fCL zi!=Y`ZH>$UC7cGrbVvxwMyDHMy1JpP84xq?Le`tVLQfT;ot?I}HUOnwo}NH%1*$o- z`73O5ad%0y*nbb19qNQZ$jHb*xyeWokR_%G6k5U{{}cJ{5>1{UsOG`-Tpb-90gG2- z{$i>=%81yIF z&sVUD!vRd#a+FYH@%orV6{3IyEFM5rf#FHm%JMRh(Z8)C%EPFkg&`e!cIv(Q#9jJ>X=7tSO552@^b)G_aL zlwU?5Zeu@;{0{>E7kc`aZkvJfx2*c_66^o;`hP)sCHx4~_Hd&pa{iN+c;Epk`5f2R z(tNzj^&agF@$X)puceW+%cA`PAdwhkthfULT|+y-J${7dw7<6``kXMKC1SqO1za~E zaGH7p!v{nrL@K;Xg3{|~yLK^5O6u`{U`1y1JK08~mZg8PRA;fbHy4oYJAL!?w6?rl zt;uyid@#HlXl6m^k2Bota*;Tkw^Tt^=RU$i6g1#M!aKksP|=+1Hb&|0CP!ywW!3EL z$_`uwbY@~=VtJIt4wy3-;GZ*}!YDt8Wc)2r&vfj8XPTXztrSpv>2=|#9hf)K(V@S) z(A<>8Bj9!MoQ-V{sCwU<>V7=%g>`mxP$?63_ye8H4Y+4__jp{WKcJRgd+o@}qoV~>OW|7-Zq~q(=#+Q1S0J8Xs^qnS3*k46*z;hqFo142`om;Km=H* zwos}1M>4Vlb+T9kgu@RJrn$tkKimBQeA59;;x1Nj1;H8}H*iTvVBHO1AzfWvV4K;Y zIxU`$4LZGPX=p%_&GQU95M-=@^Y1|f(VJC~7lw>M5)gjh;~NN23EBi-4*&?51llN| zmpmUV3D!XZ3up*=3fZWbPamFuj8j?9C<2Y*IlxBP%9$_d=-?n4nFNAkvKTKQ=!qx+ z{)ecdzyZx@ZRckkD(7K#YP9g2&s7I)bOT=HjoI1y_{4YPXH`eZ33 zY67#y!_X8yr{6%w27D)IS-#Go7n7f#KLo4eV}SrYeedETWulY>$Y(ekCAmADor>s zG&7Sn$k(6E2!g${l)XYE1``5fyHvZ;aG*a_4bAzHN6Rg^o78WyPNg-P9o<( zW4gCJg2fTyAQ4H@jfzva%vWyq<7ti*aTq8|i(#V1dMUnlzbU;2CT^U=r_U>Y9^koo$zGhXB-SI-A z&9F!-pp|`gTCxh6U;0`uV2y(vO1rYU8gws(U^xh3e!1h_&-+V|;l94M<_AJ3pD#he zlYJ22+X@-%?#uJ@@?*R_G8G2psN$)~N9c-gOSuu{-`p|4grdg{=F|y5mwzP zkjoC4B$W(e@y>&m^Howe=x~})+D4K2c!B3JLY3t-t~~P(Iv+wh7M7jn(*>X+ku1wB zX@gv`eE2g0d3uX)E~xdL%C|=a?d1NEk&&yEP>ZUBV4zqpq54jxH5j-eQ;j%|-vx z>*}UKc`_ySGyq$`9`Wu|p;G4n09*bLJZG!ZCLu{*VH5C0{tq!kfWP~L$>1P=KJ@Jy zj#o7R+!}g}+OELM)WmG>?zVcIS}XUtge^_a%;>Wfc>?fc3EC%63NKH0qXjHW&L!Xg z(+frbGA4OaX9(O<9qjyUddmA8o&XjL#HC;#F9??6P$_pvg@J)Vtevy-YVM9r>vfPd z2qBvfuuxQZSp@FjV)dfe>HLpeIh@@DhWD!=Q?cd!0BlK$4;_^P?@Zj-v#VBs{0#6Mu5KK0^B|fk|z7dmE#b3gz`LOi^HE!JNoWnHZp^7=fF;P;MZhxx_}S8IvQMS}>vwnW?pjHVC}B)4m=?Mj>=4wOG&dk!jZ) zIbIx@NfUC5qs;1gI^+3=69xqr28!3h*dJQ&%-l!P1aax@L;+h@9&=j zW-RZzyCA4cOh5o6{Vu-;p9T5&NYs5B)9vw?b8>Q|%~6EZfXFX3(T~ z{t@}+GtlT=36nE5xVdX1BG3sPSLWqpWsR8w`L99VjfR#Mgfq4>U^3;ek_*W|Q23eA zao|}jz`*b*th5Aar?ZcX4?MQF!-vBD?r@@MDRH17fzZdyG-9f>03?AAAMP2lsh^ag z?%1eTnfi*71G2|+eS5Qe`@U_v-rE4o?%r>82(Dv*%PI|4PH$p*SVdXiA|SfN7{(eVO1* zKo|h&1MGx&4)h`7Ka~Wfr8Ynl6%`Trbr^nJv}|(h4ClfV*7N2Bj3@s);rlr_!;`;4X1!WO8)fhEI$p+awPYHu6+F! zvT{oe${)$7@lG-d_{bIw(DsV|#>&c%CO3y0e(j*Y-n0H!9T?@o?jPCcd5{shtH85o zZ}5Y{V{Y4ElZ5yGQRszr?(#>{B0=DI7~VTuWk!qI`MS?X7j6-L@1M&7S^h9~)LRR= zbF3myE1W+H)jvMA!ugLG|Fx=zk^7HDZx9%DG!Q|0zViZClh-S{}L)YsDAzG zPrBv`JVoKi&Ff;P&58LIFAYslDz^L|lXFyqi%rI3t7~ZZD-@5u%L!4q3DfXpSyI9{ z;r%<9;p38BjnWCKIDqi7wz9IawpI%&Q{)l+sI-Yjv5K(IXK3z%DcFay_&~rJmVi5D z)@f;~t*zY?N_&E`T>btm+9C8SE0lCGff$wQb|)h~cnMJTz^-W>Bid*@@elitSF$Nh z?Bw^qC%__iM`)11r1C)Y^!33BN+4hZ6-{JThEwdh0&ooWw757$-TI|fov<7+z&=pU zU22P7Ky(@$%`7dMZW+JbI|nI^a1FcwVZFc0BK8%ahgZN>f%*O3-5tJp$uXV6=J?Mf zEhs2|h&2kz+ODsz`c?y$^#9gj_q{^X?GIXpIX0;4_0#k$T^svGD^-SzSs7$~2G+g&>eH zidyWyOF0Z9^bo;2;EF>x-fuu<79d^-2ngR+{vIN7jJPKN6t;=LQ93~x4G|gHz)g^j zsw%Nt)2qK((}N0+NHB(AK}zsaY;5eFtJ?PB9&L0#)jvvF@MGpJ#QxmK{&;4zM~@gT zY3|>@55QL%>p7l&oXL3t=mDmE?aTU5hxSkH3-TSRi=h?`5CIXy8~8bfy9&r>YDanY zL&%h#?@F}=L1oNT697?$4t`W2A74L$a=OM~=7OvAX%O@eOQM1Y5{_AD@$zslNuff? z$O0#Sw>PaPo(!ylL5OB_%VTHckvfQqp&;lKKp z-@w5y53%yW3Oas*(;-k@<#zwqRDiXXv~_ZeW08wy9O?ckAY^<6-)(6$yEsa8SRG)N z{XIgfq<$vJKu^C03d)w--vVXh$C;Xq;b5AjXTFTOgju>>R{o)h^?ZZUl{PK}fwJVS zL600oZ1$_)Q$>+g@8rxb&b|fmUjIykOU27RR(c@u)zGBYaY;X)v>PJiy4RP)m25M2 zc3z$PBbOCqCr*GFXW*couTR~KrQ&gL)yJW;9MAF|@0HX3X*5O_nmHB!u}}}?jO37c zvtE7M8QtYTc<=CNGo|6HBRl7{ z+MIBr4=Cmq{&sIvhxd9d3b!>gz?^u7omqkgC-d#+nV-)2%e-i+Hxmj@?kRLro(o-% zJMM=o-Sm)hf->Pqv!RrFu)?=VY1D*>be(Sn*RTlhMp&P$`!q(?6UVVhAG*e*d(g*p z*FBy29vKDMatdN22jTuT=C4?ye?ig+;{=6NPZjEM=>OLnq5n&NHRL{2r_p)$_jpftB;HBNImO_kpuR0&j*e@2pm)*I4TkaoYK_G+ARFXpNdF z6PKsiqY#3pWEfh=0g5HYsF?>Tu*Zy$>~LJvZ07JZWkp!b&Bb#G4HhfS&x$mV1X;?r zGt!j#h>F%GCMJLCkf`;RGG6mOla}3~wiB zH&ZZuw9YQT|6U<-HDx?{Agxf}0J^pd8v{d!z41QH7}0=5#s>w~lHrVm!I`B8J&?Ka zxz;IX#=eazH&9E}x@ekYzmY;{-rQ(ApY;IRi+vj$17o9o$)WLV`^BEv z)Yc@3G=tE{%C8wbyb#B8^@^&G)nmbU(=HTp)SJ!TDh=>{k$il2K0 zx`k-Ty>jDsnWP)W)B=7Pt$ZXI`v6B%JTF3>zd+>vXx)b^{-AuQ;JXr7vOT01F6M|R z31O4Nvfi?WQ-S{N5XfTl<@!Q1y($F+WC=4{eW*$WU3QZE{SBJkBkN#5d!1;#sn$E$ zdJWp-Z$RsS>e9*frO@>eqah|apVQHLqTI`RHXm=0Crx%mFar$*joQiM7k$q_Z*6CT zvJ*N>r^WkS<|_M&eG8I7r7!!QuL}`6H{sdO)hGGkm-R*13bHK%ne*R@dPskG+_os@ z+2hyTK4*Mic<{Bxu0!ikt7=Y2v##v>@1G%GgqR1$Shk+u4(oQ!yft}xpdK)rCv#!x zc?}huB_kbFw*OcUsfM<5|@XUfj&rAN~~T&`S9{MTqekw&bOv zQp@K=0+MQ5o12ulxX#DF=SlsL;>X4!V9-LKE^wKRcFfPya&TPCRC|o3ntQN>!3w2q zELN8rOHFQb{18H$%B_6 zJ6bTeCFl0J9uD_c2>AL_nD?zuyh~yqJ2h&jhJMO9UWy&{DvvuGc^B~`SFiqOR#+Wc zeq|FWDo(3GVcQG4^|?&Ruh2@X?tSJmR!s`&LFo~pnK;U+wp?LEXY#R@jO}D$|~G~b}uO~|FL1Dy^w~B4QYb8wH`~n^RYmNDgvd3 zir8sLyFtn|^WXrft5{~4+qA0%Ct8)qpw#|dAY z_k0;Y((&l=`S6>7{5}XbCzs4gX)0r(y{2ymdDD46>d^g1+U0#&h!fQum3hBNBFdLg zq`zwqUj#jIRpr;aFb(pt8emTM80cFpiO5bwLY-E67Z;Xy@IJQ%sGBtXqRS!G8nv>& zCv8v|^OXveL7rA(-FB@i5^Z)PPSRN zqTGK_J)P@4h;jXKdKv7TkIUV_z_@RQKkcX?RAL`c9z*1yob%$W_<6okjxyX< z=TyU{!bT<$X2H5?zOpp6w6*BVrifX*)+imr_a!+1vc=BPjA=p0Sx4=hkoI_nILUxq zB(O$XcF-ApV61=)e!f^_ZckdWjj<~lVu{X#+pBb+KC&d6)X`LBB7c;Wd0Hyqn{oWA zR!icLrG}g2rnFU-z{#N@Q_z|urnf8Bq!yFsX-K2m znv4*!uDNxPV8zf%rFxk?nY1QuOuG`Ie>)P#dk+I&DH71jIRY{+uEqn4QiSj7n**Kl zMAh{C{NE{cb5#uqg|A`=8c?wsl6dq4@W&Z#VxcX&cXS|hCc({>N|=YEmzOMDg*0YY zK?#{AT&79Cur8>q!#iE(w*~7%(8`>M^XV%7#aCmeq^04uwP`x{ zw7>8kMuvxP!uwt7V6i1SKDJk9)72KW#zr#bRaKyf;zuNr(!y8a2fN?ro29LH)HkB6 z!FhIo%%%&i?7(F2wp)x%TJN+b+{Xfb(lj9kY!#uQ|{!PC-Bt>N%?b~3vq_i zO&eCpGv-q)6E{tDzUxIpGI8`rUMJpl0Zt1$pX`c+Q@2X$Duo}`BFQH@sZlGu(ntU6 z$n^YRI9x7Rd9>1&Ub=5wGg9l7oU>nI*JcI|el1&lc2wnD0@ub|)n^!MFHAQ%2VIfp zrylQNE*);wY%E--N{S2ob^l*2XaCRi-pBET?UHqJ(=jnBqHJ!GV-Y5I$<1+>+e38f zTt!#N($=J84wBr(+{8E{v0>Smxm_eNmPQ9*@bR=kfS_ zzOVP|^?ANz!+rQVrs~D|0j#&_9KuDU^K#{}ysgvoj%k)cv-HTXp+B7x4Zy0uo-T2| zu0EpwWe&eWdrA&+o(j`zZKx0`5fcL{cW859ir|GtAjuzbBG(t@Q6sxD`C?)gZ{Fwv z6HvwI`kzTjT#CoS=q=aje|;pxgM?NvRi5^F_Dp9P!oCJe55k|IuJr!F#JuqMNnA}0 zU0bzWssw@Q;pB9?sh0a@4eMiaDYr}6{MUGxr;cI#kIQVt_6L6IC-u~k8ts-#Dmi~;nG3TRG z%2{T1GiSlQNjLXk-0e(Th~CbA+AD#&Ru`&B3>=kOI@bB_s?y10*-jTef%Ll|i2c0+ zJ8ImX;&W&cv{r1g1dZ~D;2rGuED6qf@rZgSq7D2Q0|L*r@!w?Pv?rMQwJ_#to2F?^ zpArHYFY!L^{*^F)owvGL`~9cSid*IuS_yYs+(9ka*V&gfzL3lu*{sQkxXTRbIJEqk zLOy?#t;7^~w$7=KD?pKOOni*;V~Faymr<;HvZI?DcC0xD7_LzsF`6H<_ zUq5~kBrX9BoHVHgSMhPQC9f?d?(!aY)f|85gjIIuP*F6%Hv@y%x^cWU3h^N)4e4|i zHs`1DOC2)mE`(0ir-_H&OGU5uhI{(|#VHbfUyxFOohbJ;{C#_;=AjGpu!J{Yd;>lF z(AN*TME$!*&Xus5d*iKLtDu`bEIg=7!?Kha0`eL<`3UIQ0PLw;>)*)A!ybIgTvE~{ z4Hq1gt<>1U>c9ybEY2hKd;>{rS^n=4j$5_lF4WUiSb2)-<+dX|iSvs}9?eG0S)?4v zGxyW<9`vv~@6p4awHAc7@MBg`+;BkUs+{ShB6R)PTX!;NkO55*>GAP!IZ^K;>IlE7 zdzL4k7R`miI<}`~rZz=!L;&BKMbqZ7q?2QY9hK$sa?+`F9II0vD?s<_@ip02Pv-pqndQK~XsvvH`=Th`hslq#1p-bPAGE1+rnD~+q z(rZ}I)WDGkW~QS+R~kq&24$tR#(I8@s&D+eFwLn@RYpVEI4(NTzQDFCm1g?XFvKEa zBqu-(c|{r%oIGQ06N5Uil5O5tpzzU+0K_M^Tze>Av1rtu?-F*wS1G ze-`cY({wynvoCMz>Oh99x^J!z-PR@bQ6#m_dq{ugi3TN`e6tMU8VnjG98iL7c#+IS zlQBxGicYfgBr^1atct(|m%yA({h}Z!xh!2hMt?#bmz6XZbNhqzOroERAV*!#<{b9p z$$mhY8jidSv)ygT$VxRiGhBYHaV6{5xtbAm(+YB!2(ZGeXH^EZ`O3L&A83^iO0hh7 zZO3UZ+UQLjE;`G{*lV3A*#+*cTUn`te7vuB!;|WHWA?57$^Gtivr-Br*x4Q+qXZYH z{icCX9un0Lit0|q5;hD`2l?!~@9W2N>OGS8_t#JyGVtKomfW)Lc$xDM{Ea4M z>D+vRk;-ng{fi5a^0sfPm083D(BPVF3;brX#&>b?SI%Xt@S6>ohA(E9y21F#P(E}% z0gS)lWsPf6mIVjWyD!dXX9syO z(oS($$V-nESD;32Z&?Xxip?t$DJckJ!T)TU4}gN$6UX}QdcODEL zHl{r0K?Lg5@XhOAp}NOk%0V-QB<8Lk9$1{@e{HYBJ5P$H#aKWF$INVtMf9n5n&iAp1yzu{>};H@ JD=jY&{{aAO!oL6j literal 19088 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 From 171738f5f548b143e3210ade76b8eeb3ec654e22 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 31 Oct 2024 14:25:41 +0800 Subject: [PATCH 339/619] Update add command sequence diagrams --- docs/diagrams/AddCommandSequenceDiagram.puml | 22 ++++++ docs/diagrams/AddEventSequenceDiagram.puml | 74 +++++++++++++++----- 2 files changed, 80 insertions(+), 16 deletions(-) create mode 100644 docs/diagrams/AddCommandSequenceDiagram.puml diff --git a/docs/diagrams/AddCommandSequenceDiagram.puml b/docs/diagrams/AddCommandSequenceDiagram.puml new file mode 100644 index 0000000000..2011ff6ce6 --- /dev/null +++ b/docs/diagrams/AddCommandSequenceDiagram.puml @@ -0,0 +1,22 @@ +@startuml +!include style.puml +hide footbox + +participant ":Main" as main +participant ":AddCommand" as command COMMAND_COLOUR +participant ":EventList" as eventList EVENT_COLOUR + +main -> command : execute() +activate command COMMAND_COLOUR + +alt participantName == null + ref over command, eventList: Add event to event list +else participantName != null + ref over command, eventList: Add participant to event list + +end + +return + + +@enduml \ No newline at end of file diff --git a/docs/diagrams/AddEventSequenceDiagram.puml b/docs/diagrams/AddEventSequenceDiagram.puml index 2cc903f8c6..618e3db50e 100644 --- a/docs/diagrams/AddEventSequenceDiagram.puml +++ b/docs/diagrams/AddEventSequenceDiagram.puml @@ -1,20 +1,62 @@ @startuml +!include style.puml +hide footbox -Main -> Parser: add n/Meeting t/2023-11-10T14:00 v/Room 101 p/HIGH -activate Parser -Parser -> AddCommand: new AddCommand("Meeting", time, "Room 101", Priority.HIGH) -activate AddCommand -AddCommand -> EventList: addEvent("Meeting", time, "Room 101", Priority.HIGH) -activate EventList -EventList -> Event: new Event("Meeting", time, "Room 101", Priority.HIGH) -activate Event -Event --> EventList -deactivate Event -EventList --> AddCommand -deactivate EventList -AddCommand --> Parser -deactivate AddCommand -Parser --> Main -deactivate Parser +'Main -> Parser: add n/Meeting t/2023-11-10T14:00 v/Room 101 p/HIGH +'activate Parser +'Parser -> AddCommand: new AddCommand("Meeting", time, "Room 101", Priority.HIGH) +'activate AddCommand +'AddCommand -> EventList: addEvent("Meeting", time, "Room 101", Priority.HIGH) +'activate EventList +'EventList -> Event: new Event("Meeting", time, "Room 101", Priority.HIGH) +'activate Event +'Event --> EventList +'deactivate Event +'EventList --> AddCommand +'deactivate EventList +'AddCommand --> Parser +'deactivate AddCommand +'Parser --> Main +'deactivate Parser + + participant ":AddCommand" as command COMMAND_COLOUR + participant ":EventList" as eventList EVENT_COLOUR + participant ":Optional" as existing_event EVENT_COLOUR + participant "newEvent:Event" as event EVENT_COLOUR + +group sd Add event to event list + activate command COMMAND_COLOUR + command -> eventList : addEvent(eventName, time, venue, priority) + activate eventList EVENT_COLOUR + + eventList -> eventList : getEventByName(eventName) + activate eventList EVENT_COLOUR + + return :Optional + + eventList -> existing_event : isPresent() + activate existing_event EVENT_COLOUR + + return :boolean + + alt isPresent() == true + eventList --> command : :DuplicateDataException + else isPresent() == false + + create event + eventList -> event : Event(eventName, venue, time, priority) + activate event EVENT_COLOUR + + return + + eventList -> eventList : add(newEvent : Event) + activate eventList EVENT_COLOUR + + return + + return + end + +end @enduml \ No newline at end of file From c72d575313940a2bceaf84063b32edff45471429 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 31 Oct 2024 16:05:05 +0800 Subject: [PATCH 340/619] Update developer guide regarding view command --- docs/DeveloperGuide.md | 38 ++++++++-------- docs/diagrams/ViewEventSequenceDiagram.puml | 41 ++++++++++-------- docs/diagrams/ViewItemSequenceDiagram.puml | 27 ++++++++++++ .../ViewParticipantSequenceDiagram.puml | 26 +++++++++++ docs/images/ViewEventSequenceDiagram.png | Bin 26260 -> 22214 bytes docs/images/ViewItemSequenceDiagram.png | Bin 0 -> 20749 bytes .../images/ViewParticipantSequenceDiagram.png | Bin 0 -> 24336 bytes 7 files changed, 97 insertions(+), 35 deletions(-) create mode 100644 docs/diagrams/ViewItemSequenceDiagram.puml create mode 100644 docs/diagrams/ViewParticipantSequenceDiagram.puml create mode 100644 docs/images/ViewItemSequenceDiagram.png create mode 100644 docs/images/ViewParticipantSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 8e4be65b36..9d938c3cf6 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -179,32 +179,34 @@ The interactions between components during the execution of the `remove` command ### View feature -The `view` feature allows users to view the list of participants of an event. -The view command will search for an event by its name and display all its participants if found. -It is implemented in the `ViewCommand` class which extends the base `Command` class and interacts with the `EventList` to retrieve and display participant information. +The `view` feature allows users to view the participants or items for a selected event. +The feature comprises `ViewCommand`, which extends `Command`, and has one operation, which shows the user a list of all participants or items for an event. -The `ViewCommand` class handles one primary function: +The above operation is implemented as `ViewCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, +and is invoked when the latter operation is called. -1. It is to enable users to view all participants associated with a specific event. -It accomplishes this by searching for the event by its name and displaying participant details if the event is found. +The output of the operation depends on two variables: +* `eventName`, the name of the selected event. +* `isViewingParticipants`, which is true if a list of participants is to be shown, and false otherwise. -#### Feature Implementation +The `ViewCommand#execute()` operation works as follows: + +1. `ViewCommand` gets the `Event` with name `eventName` from `EventList`. If the event is not found, the command's output message will be set to an error message. +2. Depending on the value of `isViewingParticipants`, `ViewCommand` either gets a list of `Participant`s or `Item`s from `Event`. +3. `ViewCommand` constructs an output message of formatted strings that it gets from the `Participant`s or `Item`s in the list. -Given below is an example usage scenario for the `view` mechanism, and how it behaves at each step +The interactions between components during the execution of the `view` command are show in the **Sequence Diagrams** below: -1. The user enters the command `view` followed by an `-e` flag to indicate which event to view participants from -2. The command is processed by the `Parser`, which identifies that the user intends to view participants for the specified event. -3. The `ViewCommand` attempts to retrieve the event from the `EventList` using the `getEventByName` method. -4. If the event is found: - - The `ViewCommand` constructs a success message that includes the number of participants and their details in a formatted manner. + + + - If the event is not found: - - The `ViewCommand` sets an error message. -5. The message generated by `ViewCommand` is returned to the user interface, which then displays it to the user +The values of `eventName` and `isViewingParticipants` are set by the user through the event and type parameters in the `view` command respectively. + +The `Parser` assigns the event parameter directly to `eventName`. Conversely, it sets `isViewingParticipants` to true if the type parameter value is `participant`, +to false if the type parameter value is `item`, and treats any other value entered as invalid. -The interactions between components during the execution of the `view` command are show in the **Sequence Diagram** below: - ### Mark/unmark feature diff --git a/docs/diagrams/ViewEventSequenceDiagram.puml b/docs/diagrams/ViewEventSequenceDiagram.puml index d0012807e0..406a1954f5 100644 --- a/docs/diagrams/ViewEventSequenceDiagram.puml +++ b/docs/diagrams/ViewEventSequenceDiagram.puml @@ -1,20 +1,27 @@ @startuml +!include style.puml +hide footbox -Main -> Parser: view EventName -activate Parser -Parser -> ViewCommand: new ViewCommand("EventName") -activate ViewCommand -ViewCommand -> EventList: getEventByName("EventName") -activate EventList -EventList -> EventList: getParticpantList() -activate EventList -EventList -->EventList -deactivate EventList -EventList --> ViewCommand: Optional -deactivate EventList -ViewCommand --> Parser: return message -deactivate ViewCommand -Parser --> Main -deactivate Parser +participant ":Main" as main +participant ":ViewCommand" as command +participant ":EventList" as eventList -@enduml \ No newline at end of file +main -> command : execute() +activate command + +command -> eventList : getEventByName(eventName : String) +activate eventList + +return eventToView : Event + +alt eventToView == null + command --> main : Invalid event +else isViewingParticipants + ref over command, eventList: view participants +else else + ref over command, eventList: view items +end + +return + +@enduml diff --git a/docs/diagrams/ViewItemSequenceDiagram.puml b/docs/diagrams/ViewItemSequenceDiagram.puml new file mode 100644 index 0000000000..df9e4129ab --- /dev/null +++ b/docs/diagrams/ViewItemSequenceDiagram.puml @@ -0,0 +1,27 @@ +@startuml +!include style.puml +hide footbox + +participant ":ViewCommand" as command +participant "eventToView:Event" as event +participant "item:Item" as item + +group sd view items +activate command + command -> command : getItems(eventToView : Event) + activate command + + command -> event : getItemsList() + activate event + + return items : ArrayList + + loop for item in items + command -> item : toString() + activate item + return :String + end + + return :String +end +@enduml diff --git a/docs/diagrams/ViewParticipantSequenceDiagram.puml b/docs/diagrams/ViewParticipantSequenceDiagram.puml new file mode 100644 index 0000000000..cda722b02a --- /dev/null +++ b/docs/diagrams/ViewParticipantSequenceDiagram.puml @@ -0,0 +1,26 @@ +@startuml +!include style.puml +hide footbox + +participant ":ViewCommand" as command +participant "eventToView:Event" as event +participant "participant:Participant" as participant + +group sd view participants + activate command + command -> command : getParticipants(eventToView : Event) + activate command + + command -> event : getParticipantsList() + activate event + + return participants : ArrayList + + loop for participant in participants + command -> participant : toString() + activate participant + return :String + end + return :String +end +@enduml diff --git a/docs/images/ViewEventSequenceDiagram.png b/docs/images/ViewEventSequenceDiagram.png index 8b034efbb5aa7589557bf16651be05b0a5c36e82..9292f2cb88455a0b2c9fa31162a47fedb4bdcba4 100644 GIT binary patch literal 22214 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�HMfUqJ%;qGSZH8i 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

    1baa83(uMK{9iDw=Z81diVBIo^+Fl)z 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 literal 26260 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 diff --git a/docs/images/ViewItemSequenceDiagram.png b/docs/images/ViewItemSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..56b84ef9b812a6be2d45deac09a5748530c79d47 GIT binary patch literal 20749 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

    oWVtX!>05;VtT(xfUn0VEMLwbM*$ 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 z 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 IOz+*l0g`ceH2?qr literal 0 HcmV?d00001 From a2590e946ea838f9bde0977b3a09b6bc806a10d9 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Thu, 31 Oct 2024 16:28:38 +0800 Subject: [PATCH 341/619] Add JavaDoc comments --- .../seedu/manager/command/EditCommand.java | 5 ++ .../manager/command/EditCommandTest.java | 48 ++++++++++++++++--- 2 files changed, 46 insertions(+), 7 deletions(-) diff --git a/src/main/java/seedu/manager/command/EditCommand.java b/src/main/java/seedu/manager/command/EditCommand.java index d061d75be6..7cda1ac8ab 100644 --- a/src/main/java/seedu/manager/command/EditCommand.java +++ b/src/main/java/seedu/manager/command/EditCommand.java @@ -32,6 +32,11 @@ public EditCommand(String participantName, String participantNumber, String part this.eventName = eventName; } + /** + * Executes the edit operation, updating the participant's contact information if the + * participant is associated with the specified event. If successful, a confirmation message + * is set; otherwise, an error message is set. + */ @Override public void execute() { if (participantName == null) { diff --git a/src/test/java/seedu/manager/command/EditCommandTest.java b/src/test/java/seedu/manager/command/EditCommandTest.java index 4cda792744..0799debb2b 100644 --- a/src/test/java/seedu/manager/command/EditCommandTest.java +++ b/src/test/java/seedu/manager/command/EditCommandTest.java @@ -22,10 +22,25 @@ public void testSetUp() { @Test public void edit_participant_success() { - eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), "Venue A", Priority.HIGH); - eventList.addParticipantToEvent("Tom", "89521252", "example@gmail.com", "Event 1"); + eventList.addEvent( + "Event 1", + LocalDateTime.parse("2024-10-20 21:00", formatter), + "Venue A", + Priority.HIGH + ); + eventList.addParticipantToEvent( + "Tom", + "89521252", + "example@gmail.com", + "Event 1" + ); - EditCommand editParticipantCommand = new EditCommand("Tom", "9123 4567", "new_email@example.com", "Event 1"); + EditCommand editParticipantCommand = new EditCommand( + "Tom", + "9123 4567", + "new_email@example.com", + "Event 1" + ); editParticipantCommand.setData(eventList); editParticipantCommand.execute(); @@ -35,8 +50,18 @@ public void edit_participant_success() { @Test public void editParticipant_invalidEvent_failure() { - eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), "Venue A", Priority.HIGH); - eventList.addParticipantToEvent("Tom", "89521252", "example@gmail.com", "Event 1"); + eventList.addEvent( + "Event 1", + LocalDateTime.parse("2024-10-20 21:00", formatter), + "Venue A", + Priority.HIGH + ); + eventList.addParticipantToEvent( + "Tom", + "89521252", + "example@gmail.com", + "Event 1" + ); String expectedMessage = "Event/Participant not found!"; EditCommand editParticipantCommand = new EditCommand( "Tom", @@ -52,8 +77,17 @@ public void editParticipant_invalidEvent_failure() { @Test public void editParticipant_invalidParticipant_failure() { - eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), "Venue A", Priority.HIGH); - eventList.addParticipantToEvent("Tom", "89521252", "example@gmail.com", "Event 1"); + eventList.addEvent( + "Event 1", + LocalDateTime.parse("2024-10-20 21:00", formatter), + "Venue A", Priority.HIGH + ); + eventList.addParticipantToEvent( + "Tom", + "89521252", + "example@gmail.com", + "Event 1" + ); String expectedMessage = "Event/Participant not found!"; EditCommand editParticipantCommand = new EditCommand( "Invalid Participant", From b1fcfe85a0a93a3a07186ef59cff0a1b8b59080e Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 31 Oct 2024 17:09:52 +0800 Subject: [PATCH 342/619] Add command to mark items and associated JUnit tests --- .../manager/command/MarkItemCommand.java | 51 ++++++++++++++++ src/main/java/seedu/manager/event/Event.java | 30 ++++++++++ .../manager/command/MarkItemCommandTest.java | 59 +++++++++++++++++++ 3 files changed, 140 insertions(+) create mode 100644 src/main/java/seedu/manager/command/MarkItemCommand.java create mode 100644 src/test/java/seedu/manager/command/MarkItemCommandTest.java diff --git a/src/main/java/seedu/manager/command/MarkItemCommand.java b/src/main/java/seedu/manager/command/MarkItemCommand.java new file mode 100644 index 0000000000..6f90c5416d --- /dev/null +++ b/src/main/java/seedu/manager/command/MarkItemCommand.java @@ -0,0 +1,51 @@ +package seedu.manager.command; + +import seedu.manager.event.Event; + +import java.util.Optional; + +//@@author jemehgoh +/** + * Represents an executable mark command for marking items. + */ +public class MarkItemCommand extends MarkCommand { + private static final String ITEM_MARK_MESSAGE = "Item accounted for."; + private static final String ITEM_UNMARK_MESSAGE = "Item unaccounted for."; + private static final String INVALID_ITEM_MESSAGE = "Item not found!"; + + private final String itemName; + + /** + * Constructs a new MarkItemCommand with a given item name, event name and whether to mark + * or unmark the item. + * + * @param itemName the name of the item. + * @param eventName the name of the event. + * @param toMark true if the item is to be marked present, false if he is to be marked absent. + */ + public MarkItemCommand(String itemName, String eventName, boolean toMark) { + super(eventName, toMark); + this.itemName = itemName; + } + + /** + * Executes the mark item command, by marking the item as present or absent + */ + @Override + public void execute() { + Optional event = eventList.getEventByName(eventName); + + if (event.isEmpty()) { + message = INVALID_EVENT_MESSAGE; + return; + } + + boolean isMarked = event.get().markItemByName(itemName, toMark); + + if (isMarked) { + message = (toMark) ? ITEM_MARK_MESSAGE : ITEM_UNMARK_MESSAGE; + } else { + message = INVALID_ITEM_MESSAGE; + } + } +} diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 101a12e763..1771da1006 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -273,6 +273,20 @@ public boolean markParticipantByName(String participantName, boolean isPresent) return markParticipant(participant, isPresent); } + /** + * Returns true if the item with the given name can be marked present or absent. + * Returns false otherwise. + * + * @param itemName the name of the item. + * @param isPresent true if the item is to be marked present, false if it is to be marked absent. + * @return {@code true} if the item with itemName has been marked present or absent, + * @code false} otherwise. + */ + public boolean markItemByName(String itemName, boolean isPresent) { + Optional item = getItemByName(itemName); + return markItem(item, isPresent); + } + //@@author LTK-1606 /** * Finds participants in the event whose names contain the specified person name. @@ -364,4 +378,20 @@ private Optional getItemByName(String itemName) { return Optional.empty(); } + + /** + * Returns true if an item has been marked present or absent, returns false otherwise. + * + * @param item the name of the item to be marked. + * @param isPresent true if the item is to be marked present, false otherwise. + * @return true if the item has been successfully marked, false otherwise. + */ + private boolean markItem(Optional item, boolean isPresent) { + if (item.isEmpty()) { + return false; + } + + item.get().setPresent(isPresent); + return true; + } } diff --git a/src/test/java/seedu/manager/command/MarkItemCommandTest.java b/src/test/java/seedu/manager/command/MarkItemCommandTest.java new file mode 100644 index 0000000000..bc20596b52 --- /dev/null +++ b/src/test/java/seedu/manager/command/MarkItemCommandTest.java @@ -0,0 +1,59 @@ +package seedu.manager.command; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import seedu.manager.enumeration.Priority; +import seedu.manager.event.EventList; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class MarkItemCommandTest { + private EventList eventList; + private DateTimeFormatter formatter; + + @BeforeEach + public void testSetUp() { + eventList = new EventList(); + formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + + eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 16:00", formatter), + "Venue 1", Priority.HIGH); + eventList.addItemToEvent("Worksheet", "Event 1"); + } + + @Test + public void execute_validItem_success() { + String expectedMessage = "Item accounted for."; + + MarkItemCommand command = new MarkItemCommand("Worksheet", "Event 1", true); + command.setData(eventList); + command.execute(); + + assertEquals(expectedMessage, command.getMessage()); + } + + @Test + public void execute_invalidItem_failure() { + String expectedMessage = "Item not found!"; + + MarkItemCommand command = new MarkItemCommand("Cutter", "Event 1", false); + command.setData(eventList); + command.execute(); + + assertEquals(expectedMessage, command.getMessage()); + } + + @Test + public void execute_invalidEvent_failure() { + String expectedMessage = "Event not found!"; + + MarkItemCommand command = new MarkItemCommand("Lined paper", "Event 2", true); + command.setData(eventList); + command.execute(); + + assertEquals(expectedMessage, command.getMessage()); + } +} From 7762c8b376861d479e11e91199891962f8e7ff52 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Thu, 31 Oct 2024 17:18:09 +0800 Subject: [PATCH 343/619] Resolve merge conflicts --- .../java/seedu/manager/parser/Parser.java | 52 +++++++++++-------- text-ui-test/EXPECTED.TXT | 10 ++-- 2 files changed, 34 insertions(+), 28 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index da2ee918ef..952205bd79 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -120,8 +120,8 @@ public class Parser { Invalid find flag! Please set the find flag using "-e" and "-p"" """; - private static final String ADD_EVENT_REGEX = "(-e|-t|-v|-u)"; - private static final String ADD_PARTICIPANT_REGEX = "(-p|-n|-email|-e)"; + private static final String EVENT_REGEX = "(-e|-t|-v|-u)"; + private static final String PARTICIPANT_REGEX = "(-p|-n|-email|-e)"; private static final String ITEM_REGEX = "(-m|-e)"; private static final String REMOVE_PARTICIPANT_REGEX = "(-p|-e)"; private static final String FIND_REGEX = "\\s*(-e|-p)\\s*"; @@ -229,7 +229,7 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval */ private Command getAddEventCommand(String input) throws IndexOutOfBoundsException, DateTimeParseException, IllegalArgumentException { - String[] inputParts = input.split(ADD_EVENT_REGEX); + String[] inputParts = input.split(EVENT_REGEX); logger.info("Creating AddCommand for event with details: " + inputParts[1].trim() + ", " + inputParts[2].trim() + ", " + inputParts[3].trim()); String eventName = inputParts[1].trim(); @@ -249,7 +249,7 @@ private Command getAddEventCommand(String input) throws IndexOutOfBoundsExceptio * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsException { - String[] inputParts = input.split(ADD_PARTICIPANT_REGEX); + String[] inputParts = input.split(PARTICIPANT_REGEX); logger.info("Creating AddCommand for participant with details: " + inputParts[1].trim() + ", " + inputParts[2].trim()); String participantName = inputParts[1].trim(); @@ -376,26 +376,16 @@ private Command parseEditCommand(String input, String[] commandParts) throws Inv assert commandParts[0].equalsIgnoreCase(EditCommand.COMMAND_WORD); try { String commandFlag = commandParts[1]; - String[] inputParts; - if (commandFlag.equals("-e")) { - inputParts = input.split("(-p|-n|-email|-e)"); - String participantName = inputParts[1].trim(); - String newNumber = inputParts[2].trim(); - String newEmail = inputParts[3].trim(); - String eventName = inputParts[4].trim(); - return new EditCommand(participantName, newNumber, newEmail, eventName); - } else if (commandFlag.equals("-p")) { - inputParts = input.split("(-p|-n|-email|-e)"); - String participantName = inputParts[1].trim(); - String newNumber = inputParts[2].trim(); - String newEmail = inputParts[3].trim(); - String eventName = inputParts[4].trim(); - return new EditCommand(participantName, newNumber, newEmail, eventName); + switch (commandFlag) { + case EVENT_FLAG: + return getEditParticipantCommand(input); + case PARTICIPANT_FLAG: + return getEditParticipantCommand(input); + default: + logger.log(WARNING, "Invalid command format"); + throw new InvalidCommandException(INVALID_REMOVE_MESSAGE); } - - logger.log(WARNING, "Invalid command format"); - throw new InvalidCommandException(INVALID_EDIT_MESSAGE); } catch (IndexOutOfBoundsException exception) { logger.log(WARNING, "Invalid command format"); throw new InvalidCommandException(INVALID_EDIT_MESSAGE); @@ -408,6 +398,24 @@ private Command parseEditCommand(String input, String[] commandParts) throws Inv } } + //@@author KuanHsienn + /** + * Returns an {@link EditCommand} that edits a participant with fields parsed from a given user input. + * + * @param input the given user input. + * @return an {@link EditCommand} that edits a participant with fields parsed from input. + * @throws IndexOutOfBoundsException if not all fields are present. + */ + private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsException { + String[] inputParts = input.split(PARTICIPANT_REGEX); + inputParts = input.split("(-p|-n|-email|-e)"); + String participantName = inputParts[1].trim(); + String newNumber = inputParts[2].trim(); + String newEmail = inputParts[3].trim(); + String eventName = inputParts[4].trim(); + return new EditCommand(participantName, newNumber, newEmail, eventName); + } + //@@author glenn-chew /** * Parses the input string to create a {@link Command} based on the provided command parts. diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 1e5432889a..1f3e750151 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -5,9 +5,8 @@ Enter a command: Invalid command! ------------------------ Enter a command: Here are the possible commands: -add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. list: List events. -view -e EVENT: View the list of participants of an event. +view -e EVENT -y TYPE: View the list of participants or items of an event. add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. remove -e EVENT: Remove an event from the event list. @@ -64,11 +63,10 @@ Enter a command: Participant added successfully ------------------------ Events saved successfully. ------------------------ -Enter a command: There are 1 participants in dinner party! Here are your participants: -1. Mary [ ] +Enter a command: Invalid command! +Please enter your commands in the following format: +view -e EVENT -y TYPE ------------------------- -Events saved successfully. ------------------------ Enter a command: Participant contact information successfully updated ------------------------ From 721a89e26daa5a8fdec4496a5c5c4a828f18c285 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 31 Oct 2024 17:48:34 +0800 Subject: [PATCH 344/619] Add support for marking items to the parser --- .../java/seedu/manager/parser/Parser.java | 137 +++++++++++++----- .../java/seedu/manager/parser/ParserTest.java | 19 +++ 2 files changed, 117 insertions(+), 39 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 7b5bb1f827..4b27383ae0 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -8,6 +8,7 @@ import seedu.manager.command.ListCommand; import seedu.manager.command.MarkCommand; import seedu.manager.command.MarkEventCommand; +import seedu.manager.command.MarkItemCommand; import seedu.manager.command.MarkParticipantCommand; import seedu.manager.command.MenuCommand; import seedu.manager.command.RemoveCommand; @@ -402,19 +403,13 @@ private ViewCommand getViewCommand(String input) throws IndexOutOfBoundsExceptio } /** - * Parses the input string to create a {@link Command} based on the provided command parts. - * - *

    - * This method checks the command flag extracted from the command parts. If the command - * flag is {@code "-e"}, it splits the input string to create a {@link MarkCommand} - * to mark an event done or undone. Otherwise, it throws an {@link InvalidCommandException} - * with an error message. - *

    + * Returns a {@link MarkCommand} to mark an event, participant or item based on a given input string + * and command parts. * * @param input the input string containing the command details. * @param commandParts an array of strings representing the parsed command parts, * where the second element is the command flag. - * @return a {@link Command} object representing the parsed command. + * @return a {@link MarkCommand} with fields parsed from input. * @throws InvalidCommandException if the flag is not matched. */ private Command parseMarkCommand(String input, String[] commandParts) throws InvalidCommandException { @@ -422,16 +417,17 @@ private Command parseMarkCommand(String input, String[] commandParts) throws Inv try { String commandFlag = commandParts[1]; - if (commandFlag.equalsIgnoreCase(EVENT_FLAG)) { - String[] inputParts = input.split("-e|-s"); - return getMarkEventCommand(inputParts[1].trim(), inputParts[2].trim()); - } else if (commandFlag.equalsIgnoreCase(PARTICIPANT_FLAG)) { - String[] inputParts = input.split("-p|-e|-s"); - return getMarkParticipantCommand(inputParts[1].trim(), inputParts[2].trim(), inputParts[3].trim()); + switch (commandFlag) { + case EVENT_FLAG: + return getMarkEventCommand(input); + case PARTICIPANT_FLAG: + return getMarkParticipantCommand(input); + case ITEM_FLAG: + return getMarkItemCommand(input); + default: + logger.log(WARNING, "Invalid command format"); + throw new InvalidCommandException(INVALID_MARK_MESSAGE); } - - logger.log(WARNING,"Invalid command format"); - throw new InvalidCommandException(INVALID_MARK_MESSAGE); } catch (IndexOutOfBoundsException exception) { logger.log(WARNING,"Invalid command format"); throw new InvalidCommandException(INVALID_MARK_MESSAGE); @@ -439,19 +435,33 @@ private Command parseMarkCommand(String input, String[] commandParts) throws Inv } /** - * Returns a {@link MarkEventCommand} with a given event name and status. If the given status is invalid, - * throws an {@link InvalidCommandException}. + * Returns a {@link MarkEventCommand} with fields from a given user input. + * + * @param input the given user input. + * @return a {@link MarkEventCommand} with fields from input. + * @throws InvalidCommandException if the status parameter is invalid. + * @throws IndexOutOfBoundsException if not all fields are present. + */ + private Command getMarkEventCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException { + String[] inputParts = input.split("-e|-s"); + String eventName = inputParts[1].trim(); + boolean toMark = toMarkEvent(inputParts[2].trim()); + + return new MarkEventCommand(eventName, toMark); + } + + /** + * Returns true if status is "done", returns false if status is "undone". * - * @param eventName the given event name. - * @param status the given event status. - * @return a MarkCommand with a given event name and status - * @throws InvalidCommandException if the given status is invalid. + * @param status the status parameter. + * @return true if status is "done", returns false if status is "undone". + * @throws InvalidCommandException if status is invalid. */ - private Command getMarkEventCommand(String eventName, String status) throws InvalidCommandException { + private boolean toMarkEvent(String status) throws InvalidCommandException { if (status.equalsIgnoreCase("done")) { - return new MarkEventCommand(eventName, true); + return true; } else if (status.equalsIgnoreCase("undone")) { - return new MarkEventCommand(eventName, false); + return false; } else { logger.log(WARNING,"Invalid status keyword"); throw new InvalidCommandException(INVALID_EVENT_STATUS_MESSAGE); @@ -459,23 +469,72 @@ private Command getMarkEventCommand(String eventName, String status) throws Inva } /** - * Returns a {@link MarkCommand} with a given participant name, event name and status. If the given status is - * invalid, throws an {@link InvalidCommandException}. + * Returns a {@link MarkParticipantCommand} with fields from a given user input. * - * @param participantName the given participant name. - * @param eventName the given event name. - * @param status the given event status. - * @return a MarkCommand with a given event name and status - * @throws InvalidCommandException if the given status is invalid. + * @param input the given user input. + * @return a {@link MarkParticipantCommand} with fields from input. + * @throws InvalidCommandException if the status parameter is invalid. + * @throws IndexOutOfBoundsException if not all fields are present. */ - private Command getMarkParticipantCommand(String participantName, String eventName, String status) { + private Command getMarkParticipantCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException { + String[] inputParts = input.split("-p|-e|-s"); + String participantName = inputParts[1].trim(); + String eventName = inputParts[2].trim(); + boolean toMark = toMarkParticipant(inputParts[3].trim()); + + return new MarkParticipantCommand(participantName, eventName, toMark); + } + + /** + * Returns true if status is "present", returns false if status is "absent". + * + * @param status the status parameter. + * @return true if status is "present", returns false if status is "absent". + * @throws InvalidCommandException if status is invalid. + */ + private boolean toMarkParticipant(String status) throws InvalidCommandException { if (status.equalsIgnoreCase("present")) { - return new MarkParticipantCommand(participantName, eventName, true); + return true; } else if (status.equalsIgnoreCase("absent")) { - return new MarkParticipantCommand(participantName, eventName, false); + return false; } else { - logger.log(WARNING, "Invalid status keyword"); - throw new InvalidCommandException(INVALID_PARTICIPANT_STATUS_MESSAGE); + logger.log(WARNING,"Invalid status keyword"); + throw new InvalidCommandException(INVALID_EVENT_STATUS_MESSAGE); + } + } + + /** + * Returns a {@link MarkItemCommand} with fields from a given user input. + * + * @param input the given user input. + * @return a {@link MarkItemCommand} with fields from input. + * @throws InvalidCommandException if the status parameter is invalid. + * @throws IndexOutOfBoundsException if not all fields are present. + */ + private Command getMarkItemCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException { + String[] inputParts = input.split("-m|-e|-s"); + String itemName = inputParts[1].trim(); + String eventName = inputParts[2].trim(); + boolean toMark = toMarkItem(inputParts[3].trim()); + + return new MarkItemCommand(itemName, eventName, toMark); + } + + /** + * Returns true if status is "accounted", returns false if status is "unaccounted". + * + * @param status the status parameter. + * @return true if status is "accounted", returns false if status is "unaccounted". + * @throws InvalidCommandException if status is invalid. + */ + private boolean toMarkItem(String status) throws InvalidCommandException { + if (status.equalsIgnoreCase("accounted")) { + return true; + } else if (status.equalsIgnoreCase("unaccounted")) { + return false; + } else { + logger.log(WARNING,"Invalid status keyword"); + throw new InvalidCommandException(INVALID_EVENT_STATUS_MESSAGE); } } diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index 128fb0e012..ab959b9ce2 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -5,6 +5,7 @@ import seedu.manager.command.Command; import seedu.manager.command.ExitCommand; import seedu.manager.command.MarkEventCommand; +import seedu.manager.command.MarkItemCommand; import seedu.manager.command.MarkParticipantCommand; import seedu.manager.command.MenuCommand; import seedu.manager.command.ListCommand; @@ -178,6 +179,24 @@ public void parseCommand_markParticipantInvalidStatus_throwsException() { parser.parseCommand(commandString);}); } + @Test + public void parseCommand_markItem_mark() { + Parser parser = new Parser(); + String commandString = "mark -m paper -e event -s accounted"; + Command command = parser.parseCommand(commandString); + + assertInstanceOf(MarkItemCommand.class, command); + } + + @Test + public void parseCommand_markItemInvalidStatus_mark() { + Parser parser = new Parser(); + String commandString = "mark -m paper -e event -s done"; + + assertThrows(InvalidCommandException.class,() -> { + parser.parseCommand(commandString);}); + } + @Test public void parseCommand_markInvalidFlags_throwsException() { Parser parser = new Parser(); From aa3ff16abde1cc9c98ff9890d4ab7f75188ad018 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 31 Oct 2024 19:17:48 +0800 Subject: [PATCH 345/619] Fix error messages and update user guide --- docs/UserGuide.md | 22 +++++++++-- .../seedu/manager/command/MarkCommand.java | 8 ++-- .../manager/command/MarkEventCommand.java | 12 +++--- .../manager/command/MarkItemCommand.java | 10 ++--- .../command/MarkParticipantCommand.java | 10 ++--- .../seedu/manager/command/MenuCommand.java | 1 + .../java/seedu/manager/parser/Parser.java | 39 ++++++++++++------- text-ui-test/EXPECTED.TXT | 1 + 8 files changed, 64 insertions(+), 39 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index eeef47824f..83beedc30f 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -32,17 +32,17 @@ Shows a list of all valid user commands in the program. ``` Here are the possible commands: -add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. list: List events. -remove -e EVENT: Remove an event from the event list. -add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. -add -m ITEM -e EVENT: Add an item to an event. view -e EVENT -y TYPE: View the list of participants or items of an event. +add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. +add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. +remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. +mark -m ITEM -e EVENT -s STATUS: Mark an item as accounted or unaccounted. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. sort -by KEYWORD: Sorts events by name/time/priority. filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. @@ -132,6 +132,19 @@ Examples: * `mark -p John Tan -e Origami workshop -s done` marks the participant `John Tan` in the `Origami workshop` event as present. * `mark -p John Tan -e Origami workshop -s undone` marks the participant `John Tan` in the `Origami workshop` event as absent. +### Marks an item as accounted for: `mark` + +Marks an item for an event as accounted for or unaccounted for. + +Format: `mark -m ITEM -e EVENT -s STATUS` + +* The status parameter must be either `accounted` (to mark accounted) or `unaccounted` (to mark unaccounted). + +Examples: + +* `mark -m Origami paper -e Origami workshop -s done` marks the item `Origami paper` in the `Origami workshop` event as accounted. +* `mark -m Origami paper -e Origami workshop -s undone` marks the item `Origami paper` in the `Origami workshop` event as unaccounted. +* ### Copies participant list: `copy` Copies the participant list from one event to another event. @@ -202,6 +215,7 @@ Format: `exit` * Edit participant of an event: `edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT` * Mark an event as done: `mark -e EVENT -s STATUS` * Mark a participant as present: `mark -p PARTICIPANT -e EVENT -s STATUS` +* Mark an item as accounted for: `mark -m ITEM -e EVENT -s STATUS` * Copy participant list: `copy FROM_EVENT > TO_EVENT` * Sort events: `sort -by KEYWORD` * Filter events: `filter -e/-t/-u FILTER_DESCRIPTION` diff --git a/src/main/java/seedu/manager/command/MarkCommand.java b/src/main/java/seedu/manager/command/MarkCommand.java index 15b873c04b..7b19e02fcf 100644 --- a/src/main/java/seedu/manager/command/MarkCommand.java +++ b/src/main/java/seedu/manager/command/MarkCommand.java @@ -10,18 +10,18 @@ public abstract class MarkCommand extends Command { protected static final String INVALID_EVENT_MESSAGE = "Event not found!"; protected String eventName; - protected boolean toMark; + protected boolean isToMark; /** * Constructs a new MarkCommand with the given event name. * * @param eventName the given event name. - * @param toMark true if the item is to be marked, false if it is to be unmarked. + * @param isToMark true if the item is to be marked, false if it is to be unmarked. */ - public MarkCommand(String eventName, boolean toMark) { + public MarkCommand(String eventName, boolean isToMark) { super(false); this.eventName = eventName; - this.toMark = toMark; + this.isToMark = isToMark; } /** diff --git a/src/main/java/seedu/manager/command/MarkEventCommand.java b/src/main/java/seedu/manager/command/MarkEventCommand.java index 629a911c47..85e04ae3e2 100644 --- a/src/main/java/seedu/manager/command/MarkEventCommand.java +++ b/src/main/java/seedu/manager/command/MarkEventCommand.java @@ -16,23 +16,23 @@ public class MarkEventCommand extends MarkCommand { * Constructs a new MarkEventCommand with the given event name. * * @param eventName the event name. - * @param toMark true if the event is to be marked done, false otherwise. + * @param isToMark true if the event is to be marked done, false otherwise. */ - public MarkEventCommand(String eventName, boolean toMark) { - super(eventName, toMark); + public MarkEventCommand(String eventName, boolean isToMark) { + super(eventName, isToMark); } /** * Executes a mark command by marking the specified event as done or not done, - * depending on the value of toMark. + * depending on the value of isToMark. */ @Override public void execute() { Optional eventToMark = this.eventList.getEventByName(this.eventName); if (eventToMark.isPresent()) { - eventToMark.get().setDone(this.toMark); - this.message = (this.toMark) ? EVENT_MARK_MESSAGE : EVENT_UNMARK_MESSAGE; + eventToMark.get().setDone(this.isToMark); + this.message = (this.isToMark) ? EVENT_MARK_MESSAGE : EVENT_UNMARK_MESSAGE; } else { this.message = INVALID_EVENT_MESSAGE; } diff --git a/src/main/java/seedu/manager/command/MarkItemCommand.java b/src/main/java/seedu/manager/command/MarkItemCommand.java index 6f90c5416d..dcef6d2548 100644 --- a/src/main/java/seedu/manager/command/MarkItemCommand.java +++ b/src/main/java/seedu/manager/command/MarkItemCommand.java @@ -21,10 +21,10 @@ public class MarkItemCommand extends MarkCommand { * * @param itemName the name of the item. * @param eventName the name of the event. - * @param toMark true if the item is to be marked present, false if he is to be marked absent. + * @param isToMark true if the item is to be marked present, false if he is to be marked absent. */ - public MarkItemCommand(String itemName, String eventName, boolean toMark) { - super(eventName, toMark); + public MarkItemCommand(String itemName, String eventName, boolean isToMark) { + super(eventName, isToMark); this.itemName = itemName; } @@ -40,10 +40,10 @@ public void execute() { return; } - boolean isMarked = event.get().markItemByName(itemName, toMark); + boolean isMarked = event.get().markItemByName(itemName, isToMark); if (isMarked) { - message = (toMark) ? ITEM_MARK_MESSAGE : ITEM_UNMARK_MESSAGE; + message = (isToMark) ? ITEM_MARK_MESSAGE : ITEM_UNMARK_MESSAGE; } else { message = INVALID_ITEM_MESSAGE; } diff --git a/src/main/java/seedu/manager/command/MarkParticipantCommand.java b/src/main/java/seedu/manager/command/MarkParticipantCommand.java index 8a80c88ebd..d0f8eea1d9 100644 --- a/src/main/java/seedu/manager/command/MarkParticipantCommand.java +++ b/src/main/java/seedu/manager/command/MarkParticipantCommand.java @@ -21,10 +21,10 @@ public class MarkParticipantCommand extends MarkCommand { * * @param participantName the name of the participant. * @param eventName the name of the event. - * @param toMark true if the participant is to be marked present, false if he is to be marked absent. + * @param isToMark true if the participant is to be marked present, false if he is to be marked absent. */ - public MarkParticipantCommand(String participantName, String eventName, boolean toMark) { - super(eventName, toMark); + public MarkParticipantCommand(String participantName, String eventName, boolean isToMark) { + super(eventName, isToMark); this.participantName = participantName; } @@ -40,10 +40,10 @@ public void execute() { return; } - boolean isMarked = event.get().markParticipantByName(participantName, toMark); + boolean isMarked = event.get().markParticipantByName(participantName, isToMark); if (isMarked) { - message = (toMark) ? PARTICIPANT_MARK_MESSAGE : PARTICIPANT_UNMARK_MESSAGE; + message = (isToMark) ? PARTICIPANT_MARK_MESSAGE : PARTICIPANT_UNMARK_MESSAGE; } else { message = INVALID_PARTICIPANT_MESSAGE; } diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index e2e3c4a0c2..9b80b6ce69 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -19,6 +19,7 @@ public class MenuCommand extends Command { edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. + mark -m ITEM -e EVENT -s STATUS: Mark an item as accounted or unaccounted. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. sort -by KEYWORD: Sorts events by name/time/priority. filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 39a16a4d87..952619b016 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -70,6 +70,7 @@ public class Parser { Please enter your commands in the following format: mark -e EVENT -s STATUS mark -p PARTICIPANT -e EVENT -s STATUS + mark -m ITEM -e EVENT -s STATUS """; private static final String INVALID_EVENT_STATUS_MESSAGE = """ Invalid event status! @@ -79,6 +80,10 @@ public class Parser { Invalid participant status! Please set the event status as either "present" or "absent" """; + private static final String INVALID_ITEM_STATUS_MESSAGE = """ + Invalid mark status! + Please set the event status as either "accounted" or "unaccounted" + """; private static final String INVALID_SORT_MESSAGE = """ Invalid command! Please enter your commands in the following format: @@ -121,15 +126,18 @@ public class Parser { Invalid find flag! Please set the find flag using "-e" and "-p"" """; + private static final String EVENT_FLAG = "-e"; + private static final String PARTICIPANT_FLAG = "-p"; + private static final String ITEM_FLAG = "-m"; private static final String EVENT_REGEX = "(-e|-t|-v|-u)"; private static final String PARTICIPANT_REGEX = "(-p|-n|-email|-e)"; private static final String ITEM_REGEX = "(-m|-e)"; private static final String REMOVE_PARTICIPANT_REGEX = "(-p|-e)"; private static final String FIND_REGEX = "\\s*(-e|-p)\\s*"; - private static final String VIEW_REGEX = "(-e|-y)"; - private static final String EVENT_FLAG = "-e"; - private static final String PARTICIPANT_FLAG = "-p"; - private static final String ITEM_FLAG = "-m"; + private static final String VIEW_REGEX = "(-e|-y)";; + private static final String MARK_EVENT_REGEX = "-e|-s"; + private static final String MARK_PARTICIPANT_REGEX = "-p|-e|-s"; + private static final String MARK_ITEM_REGEX = "-m|-e|-s"; /** * Returns a command based on the given user command string. @@ -514,11 +522,11 @@ private Command parseMarkCommand(String input, String[] commandParts) throws Inv * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getMarkEventCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException { - String[] inputParts = input.split("-e|-s"); + String[] inputParts = input.split(MARK_EVENT_REGEX); String eventName = inputParts[1].trim(); - boolean toMark = toMarkEvent(inputParts[2].trim()); + boolean isToMark = toMarkEvent(inputParts[2].trim()); - return new MarkEventCommand(eventName, toMark); + return new MarkEventCommand(eventName, isToMark); } /** @@ -548,12 +556,13 @@ private boolean toMarkEvent(String status) throws InvalidCommandException { * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getMarkParticipantCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException { - String[] inputParts = input.split("-p|-e|-s"); + String[] inputParts = input.split(MARK_PARTICIPANT_REGEX); String participantName = inputParts[1].trim(); String eventName = inputParts[2].trim(); - boolean toMark = toMarkParticipant(inputParts[3].trim()); + boolean isToMark = toMarkParticipant(inputParts[3].trim()); + - return new MarkParticipantCommand(participantName, eventName, toMark); + return new MarkParticipantCommand(participantName, eventName, isToMark); } /** @@ -570,7 +579,7 @@ private boolean toMarkParticipant(String status) throws InvalidCommandException return false; } else { logger.log(WARNING,"Invalid status keyword"); - throw new InvalidCommandException(INVALID_EVENT_STATUS_MESSAGE); + throw new InvalidCommandException(INVALID_PARTICIPANT_STATUS_MESSAGE); } } @@ -583,12 +592,12 @@ private boolean toMarkParticipant(String status) throws InvalidCommandException * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getMarkItemCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException { - String[] inputParts = input.split("-m|-e|-s"); + String[] inputParts = input.split(MARK_ITEM_REGEX); String itemName = inputParts[1].trim(); String eventName = inputParts[2].trim(); - boolean toMark = toMarkItem(inputParts[3].trim()); + boolean isToMark = toMarkItem(inputParts[3].trim()); - return new MarkItemCommand(itemName, eventName, toMark); + return new MarkItemCommand(itemName, eventName, isToMark); } /** @@ -605,7 +614,7 @@ private boolean toMarkItem(String status) throws InvalidCommandException { return false; } else { logger.log(WARNING,"Invalid status keyword"); - throw new InvalidCommandException(INVALID_EVENT_STATUS_MESSAGE); + throw new InvalidCommandException(INVALID_ITEM_STATUS_MESSAGE); } } diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 1f3e750151..befe496898 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -15,6 +15,7 @@ remove -m ITEM -e EVENT: Remove an item from an event. edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. +mark -m ITEM -e EVENT -s STATUS: Mark an item as accounted or unaccounted. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. sort -by KEYWORD: Sorts events by name/time/priority. filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. From 234dae8209b2a8146ed1618a195f3be071148f70 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 31 Oct 2024 19:27:17 +0800 Subject: [PATCH 346/619] Fix I/O redirection tests --- text-ui-test/EXPECTED.TXT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index f3080131d1..9bfe0809a8 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -73,7 +73,7 @@ Enter a command: Participant contact information successfully updated Events saved successfully. ------------------------ Enter a command: There are 1 participants in dinner party! Here are your participants: -1. Name: Mary / Number: 98512525 / Email: example@gmail.com [ ] +1. Name: Mary / Number: 98624759 / Email: Mary@gmail.com [ ] ------------------------ Events saved successfully. From 87b6f0197bf3bdd20bf6f68a94d834e4aea3eebb Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Fri, 1 Nov 2024 01:37:33 +0800 Subject: [PATCH 347/619] edit event command implementation --- .../manager/command/EditEventCommand.java | 53 ++++++++++++++++++ ...mmand.java => EditParticipantCommand.java} | 9 ++- .../seedu/manager/command/MenuCommand.java | 1 + src/main/java/seedu/manager/event/Event.java | 19 ++++++- .../java/seedu/manager/event/EventList.java | 31 ++++++++++ .../java/seedu/manager/parser/Parser.java | 56 +++++++++++-------- ...t.java => EditParticipantCommandTest.java} | 8 +-- 7 files changed, 144 insertions(+), 33 deletions(-) create mode 100644 src/main/java/seedu/manager/command/EditEventCommand.java rename src/main/java/seedu/manager/command/{EditCommand.java => EditParticipantCommand.java} (88%) rename src/test/java/seedu/manager/command/{EditCommandTest.java => EditParticipantCommandTest.java} (91%) diff --git a/src/main/java/seedu/manager/command/EditEventCommand.java b/src/main/java/seedu/manager/command/EditEventCommand.java new file mode 100644 index 0000000000..73009cb17e --- /dev/null +++ b/src/main/java/seedu/manager/command/EditEventCommand.java @@ -0,0 +1,53 @@ +package seedu.manager.command; + +import seedu.manager.enumeration.Priority; + +import java.time.LocalDateTime; + +/** + * Represents a command to edit an event to the event list. + * The edit command will store the event's name, time, and venue. + */ +public class EditEventCommand extends Command{ + public static final String COMMAND_WORD = "edit"; + private static final String EDIT_EVENT_MESSAGE = "Event information successfully updated"; + private static final String EDIT_FAILURE_MESSAGE = "Event not found!"; + protected String eventName; + protected String eventNewName; + protected LocalDateTime eventTime; + protected String eventVenue; + protected Priority eventPriority; + + + //@@author MatchaRRR + /** + * Constructs an EditCommand object with the specified participant name, participant number, + * participant email, and event name. + * + * @param eventName The name of the event to be edited. + * @param eventNewName The new name of the event. + * @param eventTime The new time of the event. + * @param eventVenue The new venue of the event. + * @param eventPriority The new priority of the event. + */ + public EditEventCommand(String eventName, String eventNewName, LocalDateTime eventTime, String eventVenue, Priority eventPriority) { + super(false); + this.eventName = eventName; + this.eventNewName = eventNewName; + this.eventTime = eventTime; + this.eventVenue = eventVenue; + this.eventPriority = eventPriority; + } + + + /** + * Executes the edit operation, updating the event's information if the event exits. + * If successful, a confirmation message + * is set; otherwise, an error message is set. + */ + @Override + public void execute() { + boolean isEdited = this.eventList.editEvent(eventName, eventNewName, eventTime, eventVenue, eventPriority); + this.message = (isEdited) ? EDIT_EVENT_MESSAGE : EDIT_FAILURE_MESSAGE; + } +} diff --git a/src/main/java/seedu/manager/command/EditCommand.java b/src/main/java/seedu/manager/command/EditParticipantCommand.java similarity index 88% rename from src/main/java/seedu/manager/command/EditCommand.java rename to src/main/java/seedu/manager/command/EditParticipantCommand.java index 7cda1ac8ab..6bcc59ee75 100644 --- a/src/main/java/seedu/manager/command/EditCommand.java +++ b/src/main/java/seedu/manager/command/EditParticipantCommand.java @@ -4,7 +4,7 @@ * Represents a command to edit an event to the event list. * The edit command will store the event's name, time, and venue. */ -public class EditCommand extends Command{ +public class EditParticipantCommand extends Command{ public static final String COMMAND_WORD = "edit"; private static final String EDIT_PARTICIPANT_MESSAGE = "Participant contact information successfully updated"; private static final String EDIT_FAILURE_MESSAGE = "Event/Participant not found!"; @@ -24,7 +24,7 @@ public class EditCommand extends Command{ * @param participantEmail The new email address of the participant. * @param eventName The name of the event associated with the participant. */ - public EditCommand(String participantName, String participantNumber, String participantEmail, String eventName) { + public EditParticipantCommand(String participantName, String participantNumber, String participantEmail, String eventName) { super(false); this.participantName = participantName; this.participantNumber = participantNumber; @@ -32,6 +32,7 @@ public EditCommand(String participantName, String participantNumber, String part this.eventName = eventName; } + /** * Executes the edit operation, updating the participant's contact information if the * participant is associated with the specified event. If successful, a confirmation message @@ -39,9 +40,7 @@ public EditCommand(String participantName, String participantNumber, String part */ @Override public void execute() { - if (participantName == null) { - return; - } else { + if (participantName != null) { boolean isEdited = this.eventList.editParticipant( this.participantName, this.participantNumber, diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index e2e3c4a0c2..a7d05e1f44 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -17,6 +17,7 @@ public class MenuCommand extends Command { remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. + edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index afab217627..716325061f 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -21,7 +21,7 @@ public class Event { protected ArrayList participantList; private ArrayList itemList; - private final String eventName; + private String eventName; private LocalDateTime eventTime; private String eventVenue; private boolean isDone; @@ -128,6 +128,23 @@ public boolean updateParticipant(String participantName, String newNumber, Strin return false; } + //@@author MatchaRRR + /** + * Updates the details of an event. + * + * @param eventNewName The new name of the event. + * @param eventTime The new time of the event. + * @param eventVenue The new venue of the event. + * @param eventPriority The new priority of the event. + */ + public void updateEvent(String eventNewName, LocalDateTime eventTime, String eventVenue, Priority eventPriority) { + this.eventName = eventNewName; + this.eventTime = eventTime; + this.eventVenue = eventVenue; + this.eventPriority = eventPriority; + } + + /** * Retrieves the number of participants in the participant list. * diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 13b6a11f43..4c01512313 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -196,6 +196,37 @@ public boolean editParticipant(String participantName, String number, String ema return false; } + //@@author MatchaRRR + /** + * Edits the details of an event in a specified event. + * + *

    + * This method searches for the event with the given name in the event list and attempts to update the event's information. + * If the event is found and the participant is successfully updated, it returns {@code true}. + * If the event does not exist, it returns {@code false}. + *

    + * + + * @param eventName The name of the event to be edited. + * @param eventNewName The new name of the event. + * @param eventTime The new time of the event. + * @param eventVenue The new venue of the event. + * @param eventPriority The new priority of the event. + * @return {@code true} if the event was successfully edited; + * {@code false} if the event does not exist. + */ + public boolean editEvent(String eventName, String eventNewName, LocalDateTime eventTime, String eventVenue, Priority eventPriority) { + for (Event event : eventList) { + if (event.getEventName().equals(eventName)) { + event.updateEvent(eventNewName, eventTime, eventVenue, eventPriority); + return true; + } + } + return false; + } + + + /** * Returns true if an item with a given name is successfully added to a given event, returns false otherwise. * diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 952205bd79..713824b4f9 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -1,20 +1,6 @@ package seedu.manager.parser; -import seedu.manager.command.AddCommand; -import seedu.manager.command.Command; -import seedu.manager.command.CopyCommand; -import seedu.manager.command.ExitCommand; -import seedu.manager.command.FilterCommand; -import seedu.manager.command.ListCommand; -import seedu.manager.command.MarkCommand; -import seedu.manager.command.MarkEventCommand; -import seedu.manager.command.MarkParticipantCommand; -import seedu.manager.command.MenuCommand; -import seedu.manager.command.RemoveCommand; -import seedu.manager.command.EditCommand; -import seedu.manager.command.SortCommand; -import seedu.manager.command.ViewCommand; -import seedu.manager.command.FindCommand; +import seedu.manager.command.*; import seedu.manager.enumeration.Priority; import seedu.manager.exception.InvalidCommandException; import seedu.manager.event.EventList; @@ -121,6 +107,7 @@ public class Parser { Please set the find flag using "-e" and "-p"" """; private static final String EVENT_REGEX = "(-e|-t|-v|-u)"; + private static final String EVENT_ATTRIBUTE_REGEX ="(-e|-name|-t|-v|-u)"; private static final String PARTICIPANT_REGEX = "(-p|-n|-email|-e)"; private static final String ITEM_REGEX = "(-m|-e)"; private static final String REMOVE_PARTICIPANT_REGEX = "(-p|-e)"; @@ -129,6 +116,7 @@ public class Parser { private static final String EVENT_FLAG = "-e"; private static final String PARTICIPANT_FLAG = "-p"; private static final String ITEM_FLAG = "-m"; + public static final String SPACE = " "; /** * Returns a command based on the given user command string. @@ -137,7 +125,7 @@ public class Parser { * @throws InvalidCommandException if the given command string cannot be parsed to a valid command. */ public Command parseCommand(String command) throws InvalidCommandException { - String[] commandParts = command.split(" "); + String[] commandParts = command.split(SPACE); String commandWord = commandParts[0]; switch (commandWord) { @@ -145,7 +133,7 @@ public Command parseCommand(String command) throws InvalidCommandException { return parseAddCommand(command, commandParts); case RemoveCommand.COMMAND_WORD: return parseRemoveCommand(command, commandParts); - case EditCommand.COMMAND_WORD: + case EditParticipantCommand.COMMAND_WORD: return parseEditCommand(command, commandParts); case ListCommand.COMMAND_WORD: return new ListCommand(); @@ -373,13 +361,13 @@ private RemoveCommand getRemoveItemCommand(String input) throws IndexOutOfBounds * @throws InvalidCommandException if the flags are not matched in the command parts. */ private Command parseEditCommand(String input, String[] commandParts) throws InvalidCommandException { - assert commandParts[0].equalsIgnoreCase(EditCommand.COMMAND_WORD); + assert commandParts[0].equalsIgnoreCase(EditParticipantCommand.COMMAND_WORD); try { String commandFlag = commandParts[1]; switch (commandFlag) { case EVENT_FLAG: - return getEditParticipantCommand(input); + return getEditEventCommand(input); case PARTICIPANT_FLAG: return getEditParticipantCommand(input); default: @@ -400,22 +388,44 @@ private Command parseEditCommand(String input, String[] commandParts) throws Inv //@@author KuanHsienn /** - * Returns an {@link EditCommand} that edits a participant with fields parsed from a given user input. + * Returns an {@link EditParticipantCommand} that edits a participant with fields parsed from a given user input. * * @param input the given user input. - * @return an {@link EditCommand} that edits a participant with fields parsed from input. + * @return an {@link EditParticipantCommand} that edits a participant with fields parsed from input. * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsException { String[] inputParts = input.split(PARTICIPANT_REGEX); - inputParts = input.split("(-p|-n|-email|-e)"); String participantName = inputParts[1].trim(); String newNumber = inputParts[2].trim(); String newEmail = inputParts[3].trim(); String eventName = inputParts[4].trim(); - return new EditCommand(participantName, newNumber, newEmail, eventName); + return new EditParticipantCommand(participantName, newNumber, newEmail, eventName); + } + + //@@author MatcahRRR + /** + * Returns an {@link EditParticipantCommand} that edits an event with fields parsed from a given user input. + * + * @param input the given user input. + * @return an {@link EditParticipantCommand} that edits an event with fields parsed from input. + * @throws IndexOutOfBoundsException if not all fields are present. + */ + private Command getEditEventCommand(String input) throws IndexOutOfBoundsException { + String[] inputParts = input.split(EVENT_ATTRIBUTE_REGEX); + + String eventName = inputParts[1].trim(); + String eventNewName = inputParts[2].trim(); + LocalDateTime eventTime = LocalDateTime.parse(inputParts[3].trim(), + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); + String eventVenue = inputParts[4].trim(); + Priority eventPriority = Priority.valueOf(inputParts[5].trim().toUpperCase()); + + + return new EditEventCommand(eventName, eventNewName, eventTime, eventVenue, eventPriority); } + //@@author glenn-chew /** * Parses the input string to create a {@link Command} based on the provided command parts. diff --git a/src/test/java/seedu/manager/command/EditCommandTest.java b/src/test/java/seedu/manager/command/EditParticipantCommandTest.java similarity index 91% rename from src/test/java/seedu/manager/command/EditCommandTest.java rename to src/test/java/seedu/manager/command/EditParticipantCommandTest.java index 0799debb2b..64c540f705 100644 --- a/src/test/java/seedu/manager/command/EditCommandTest.java +++ b/src/test/java/seedu/manager/command/EditParticipantCommandTest.java @@ -10,7 +10,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -public class EditCommandTest { +public class EditParticipantCommandTest { private EventList eventList; private DateTimeFormatter formatter; @@ -35,7 +35,7 @@ public void edit_participant_success() { "Event 1" ); - EditCommand editParticipantCommand = new EditCommand( + EditParticipantCommand editParticipantCommand = new EditParticipantCommand( "Tom", "9123 4567", "new_email@example.com", @@ -63,7 +63,7 @@ public void editParticipant_invalidEvent_failure() { "Event 1" ); String expectedMessage = "Event/Participant not found!"; - EditCommand editParticipantCommand = new EditCommand( + EditParticipantCommand editParticipantCommand = new EditParticipantCommand( "Tom", "9123 4567", "new_email@example.com", @@ -89,7 +89,7 @@ public void editParticipant_invalidParticipant_failure() { "Event 1" ); String expectedMessage = "Event/Participant not found!"; - EditCommand editParticipantCommand = new EditCommand( + EditParticipantCommand editParticipantCommand = new EditParticipantCommand( "Invalid Participant", "9123 4567", "new_email@example.com", From 9b6d1efabc4819dfbca02ee2fd6a4a272eb78bd0 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Fri, 1 Nov 2024 01:46:59 +0800 Subject: [PATCH 348/619] . --- .../manager/command/EditEventCommand.java | 3 ++- .../java/seedu/manager/event/EventList.java | 6 +++--- .../java/seedu/manager/parser/Parser.java | 20 +++++++++++++++++-- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/manager/command/EditEventCommand.java b/src/main/java/seedu/manager/command/EditEventCommand.java index 73009cb17e..0a9ee12ca9 100644 --- a/src/main/java/seedu/manager/command/EditEventCommand.java +++ b/src/main/java/seedu/manager/command/EditEventCommand.java @@ -30,7 +30,8 @@ public class EditEventCommand extends Command{ * @param eventVenue The new venue of the event. * @param eventPriority The new priority of the event. */ - public EditEventCommand(String eventName, String eventNewName, LocalDateTime eventTime, String eventVenue, Priority eventPriority) { + public EditEventCommand(String eventName, String eventNewName, LocalDateTime eventTime, String eventVenue, + Priority eventPriority) { super(false); this.eventName = eventName; this.eventNewName = eventNewName; diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 4c01512313..fed8871bbb 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -201,12 +201,11 @@ public boolean editParticipant(String participantName, String number, String ema * Edits the details of an event in a specified event. * *

    - * This method searches for the event with the given name in the event list and attempts to update the event's information. + * This method searches for the event with the given name in the event list and update the event's information. * If the event is found and the participant is successfully updated, it returns {@code true}. * If the event does not exist, it returns {@code false}. *

    * - * @param eventName The name of the event to be edited. * @param eventNewName The new name of the event. * @param eventTime The new time of the event. @@ -215,7 +214,8 @@ public boolean editParticipant(String participantName, String number, String ema * @return {@code true} if the event was successfully edited; * {@code false} if the event does not exist. */ - public boolean editEvent(String eventName, String eventNewName, LocalDateTime eventTime, String eventVenue, Priority eventPriority) { + public boolean editEvent(String eventName, String eventNewName, LocalDateTime eventTime, String eventVenue, + Priority eventPriority) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { event.updateEvent(eventNewName, eventTime, eventVenue, eventPriority); diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 713824b4f9..a18f45c9aa 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -1,6 +1,21 @@ package seedu.manager.parser; -import seedu.manager.command.*; +import seedu.manager.command.AddCommand; +import seedu.manager.command.Command; +import seedu.manager.command.CopyCommand; +import seedu.manager.command.ExitCommand; +import seedu.manager.command.FilterCommand; +import seedu.manager.command.ListCommand; +import seedu.manager.command.MarkCommand; +import seedu.manager.command.MarkEventCommand; +import seedu.manager.command.MarkParticipantCommand; +import seedu.manager.command.MenuCommand; +import seedu.manager.command.RemoveCommand; +import seedu.manager.command.EditParticipantCommand; +import seedu.manager.command.EditEventCommand; +import seedu.manager.command.SortCommand; +import seedu.manager.command.ViewCommand; +import seedu.manager.command.FindCommand; import seedu.manager.enumeration.Priority; import seedu.manager.exception.InvalidCommandException; import seedu.manager.event.EventList; @@ -411,7 +426,8 @@ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsE * @return an {@link EditParticipantCommand} that edits an event with fields parsed from input. * @throws IndexOutOfBoundsException if not all fields are present. */ - private Command getEditEventCommand(String input) throws IndexOutOfBoundsException { + private Command getEditEventCommand(String input) throws IndexOutOfBoundsException, DateTimeParseException, + IllegalArgumentException { String[] inputParts = input.split(EVENT_ATTRIBUTE_REGEX); String eventName = inputParts[1].trim(); From e9d2485d67d823ae8434c21d224f734326bc1fad Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Fri, 1 Nov 2024 01:53:07 +0800 Subject: [PATCH 349/619] . --- .../command/EditParticipantCommand.java | 3 +- .../java/seedu/manager/parser/Parser.java | 4 +- .../manager/command/EditEventCommandTest.java | 103 ++++++++++++++++++ 3 files changed, 108 insertions(+), 2 deletions(-) create mode 100644 src/test/java/seedu/manager/command/EditEventCommandTest.java diff --git a/src/main/java/seedu/manager/command/EditParticipantCommand.java b/src/main/java/seedu/manager/command/EditParticipantCommand.java index 6bcc59ee75..36d7a3993b 100644 --- a/src/main/java/seedu/manager/command/EditParticipantCommand.java +++ b/src/main/java/seedu/manager/command/EditParticipantCommand.java @@ -24,7 +24,8 @@ public class EditParticipantCommand extends Command{ * @param participantEmail The new email address of the participant. * @param eventName The name of the event associated with the participant. */ - public EditParticipantCommand(String participantName, String participantNumber, String participantEmail, String eventName) { + public EditParticipantCommand(String participantName, String participantNumber, String participantEmail, + String eventName) { super(false); this.participantName = participantName; this.participantNumber = participantNumber; diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index a18f45c9aa..d7c5c616ba 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -121,6 +121,9 @@ public class Parser { Invalid find flag! Please set the find flag using "-e" and "-p"" """; + + public static final String SPACE = " "; + private static final String EVENT_REGEX = "(-e|-t|-v|-u)"; private static final String EVENT_ATTRIBUTE_REGEX ="(-e|-name|-t|-v|-u)"; private static final String PARTICIPANT_REGEX = "(-p|-n|-email|-e)"; @@ -131,7 +134,6 @@ public class Parser { private static final String EVENT_FLAG = "-e"; private static final String PARTICIPANT_FLAG = "-p"; private static final String ITEM_FLAG = "-m"; - public static final String SPACE = " "; /** * Returns a command based on the given user command string. diff --git a/src/test/java/seedu/manager/command/EditEventCommandTest.java b/src/test/java/seedu/manager/command/EditEventCommandTest.java new file mode 100644 index 0000000000..e012b543b4 --- /dev/null +++ b/src/test/java/seedu/manager/command/EditEventCommandTest.java @@ -0,0 +1,103 @@ +package seedu.manager.command; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import seedu.manager.enumeration.Priority; +import seedu.manager.event.EventList; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class EditEventCommandTest { + private EventList eventList; + private DateTimeFormatter formatter; + + @BeforeEach + public void testSetUp() { + eventList = new EventList(); + formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + } + + @Test + public void edit_participant_success() { + eventList.addEvent( + "Event 1", + LocalDateTime.parse("2024-10-20 21:00", formatter), + "Venue A", + Priority.HIGH + ); + eventList.addParticipantToEvent( + "Tom", + "89521252", + "example@gmail.com", + "Event 1" + ); + + EditParticipantCommand editParticipantCommand = new EditParticipantCommand( + "Tom", + "9123 4567", + "new_email@example.com", + "Event 1" + ); + editParticipantCommand.setData(eventList); + editParticipantCommand.execute(); + + assertEquals("9123 4567", eventList.getEvent(0).getParticipantList().get(0).getNumber()); + assertEquals("new_email@example.com", eventList.getEvent(0).getParticipantList().get(0).getEmail()); + } + + @Test + public void editParticipant_invalidEvent_failure() { + eventList.addEvent( + "Event 1", + LocalDateTime.parse("2024-10-20 21:00", formatter), + "Venue A", + Priority.HIGH + ); + eventList.addParticipantToEvent( + "Tom", + "89521252", + "example@gmail.com", + "Event 1" + ); + String expectedMessage = "Event/Participant not found!"; + EditParticipantCommand editParticipantCommand = new EditParticipantCommand( + "Tom", + "9123 4567", + "new_email@example.com", + "Non-Existent Event" + ); + editParticipantCommand.setData(eventList); + editParticipantCommand.execute(); + + assertEquals(expectedMessage, editParticipantCommand.getMessage()); + } + + @Test + public void editParticipant_invalidParticipant_failure() { + eventList.addEvent( + "Event 1", + LocalDateTime.parse("2024-10-20 21:00", formatter), + "Venue A", Priority.HIGH + ); + eventList.addParticipantToEvent( + "Tom", + "89521252", + "example@gmail.com", + "Event 1" + ); + String expectedMessage = "Event/Participant not found!"; + EditParticipantCommand editParticipantCommand = new EditParticipantCommand( + "Invalid Participant", + "9123 4567", + "new_email@example.com", + "Event 1" + ); + editParticipantCommand.setData(eventList); + editParticipantCommand.execute(); + + assertEquals(expectedMessage, editParticipantCommand.getMessage()); + } +} From c899352f44661b7603342a9665b805f595373622 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Fri, 1 Nov 2024 02:07:49 +0800 Subject: [PATCH 350/619] testcode --- .../java/seedu/manager/parser/Parser.java | 2 +- .../manager/command/EditEventCommandTest.java | 72 +++++++------------ 2 files changed, 27 insertions(+), 47 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index d7c5c616ba..3fb577370f 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -122,7 +122,7 @@ public class Parser { Please set the find flag using "-e" and "-p"" """; - public static final String SPACE = " "; + private static final String SPACE = " "; private static final String EVENT_REGEX = "(-e|-t|-v|-u)"; private static final String EVENT_ATTRIBUTE_REGEX ="(-e|-name|-t|-v|-u)"; diff --git a/src/test/java/seedu/manager/command/EditEventCommandTest.java b/src/test/java/seedu/manager/command/EditEventCommandTest.java index e012b543b4..b7b42cbaa8 100644 --- a/src/test/java/seedu/manager/command/EditEventCommandTest.java +++ b/src/test/java/seedu/manager/command/EditEventCommandTest.java @@ -21,7 +21,7 @@ public void testSetUp() { } @Test - public void edit_participant_success() { + public void edit_Event_success() { eventList.addEvent( "Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), @@ -35,52 +35,31 @@ public void edit_participant_success() { "Event 1" ); - EditParticipantCommand editParticipantCommand = new EditParticipantCommand( - "Tom", - "9123 4567", - "new_email@example.com", - "Event 1" + EditEventCommand editEventCommand = new EditEventCommand( + "Event 1", + "newEvent 1", + LocalDateTime.parse("2024-10-31 00:00", formatter), + "new_Venue", + Priority.LOW ); - editParticipantCommand.setData(eventList); - editParticipantCommand.execute(); - assertEquals("9123 4567", eventList.getEvent(0).getParticipantList().get(0).getNumber()); - assertEquals("new_email@example.com", eventList.getEvent(0).getParticipantList().get(0).getEmail()); - } + editEventCommand.setData(eventList); + editEventCommand.execute(); - @Test - public void editParticipant_invalidEvent_failure() { - eventList.addEvent( - "Event 1", - LocalDateTime.parse("2024-10-20 21:00", formatter), - "Venue A", - Priority.HIGH - ); - eventList.addParticipantToEvent( - "Tom", - "89521252", - "example@gmail.com", - "Event 1" - ); - String expectedMessage = "Event/Participant not found!"; - EditParticipantCommand editParticipantCommand = new EditParticipantCommand( - "Tom", - "9123 4567", - "new_email@example.com", - "Non-Existent Event" - ); - editParticipantCommand.setData(eventList); - editParticipantCommand.execute(); + assertEquals("newEvent 1", eventList.getEvent(0).getEventName()); + assertEquals(LocalDateTime.parse("2024-10-31 00:00", formatter), eventList.getEvent(0).getEventTime()); + assertEquals("new_Venue", eventList.getEvent(0).getEventVenue()); + assertEquals(Priority.LOW, eventList.getEvent(0).getEventPriority()); - assertEquals(expectedMessage, editParticipantCommand.getMessage()); } @Test - public void editParticipant_invalidParticipant_failure() { + public void editEvent_invalidEvent_failure() { eventList.addEvent( "Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), - "Venue A", Priority.HIGH + "Venue A", + Priority.HIGH ); eventList.addParticipantToEvent( "Tom", @@ -88,16 +67,17 @@ public void editParticipant_invalidParticipant_failure() { "example@gmail.com", "Event 1" ); - String expectedMessage = "Event/Participant not found!"; - EditParticipantCommand editParticipantCommand = new EditParticipantCommand( - "Invalid Participant", - "9123 4567", - "new_email@example.com", - "Event 1" + String expectedMessage = "Event not found!"; + EditEventCommand editEventCommand = new EditEventCommand( + "Non-Existent Event", + "newEvent 1", + LocalDateTime.parse("2024-10-31 00:00", formatter), + "new_Venue", + Priority.LOW ); - editParticipantCommand.setData(eventList); - editParticipantCommand.execute(); + editEventCommand.setData(eventList); + editEventCommand.execute(); - assertEquals(expectedMessage, editParticipantCommand.getMessage()); + assertEquals(expectedMessage, editEventCommand.getMessage()); } } From ddd4900e06f0eba767a873640a76abc14ab1d4f8 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Fri, 1 Nov 2024 02:25:03 +0800 Subject: [PATCH 351/619] test --- .../manager/command/EditEventCommandTest.java | 2 +- text-ui-test/EXPECTED.TXT | 40 ++++++++++++------- text-ui-test/events.csv | 2 + text-ui-test/input.txt | 2 + 4 files changed, 31 insertions(+), 15 deletions(-) create mode 100644 text-ui-test/events.csv diff --git a/src/test/java/seedu/manager/command/EditEventCommandTest.java b/src/test/java/seedu/manager/command/EditEventCommandTest.java index b7b42cbaa8..4fd3f318dd 100644 --- a/src/test/java/seedu/manager/command/EditEventCommandTest.java +++ b/src/test/java/seedu/manager/command/EditEventCommandTest.java @@ -21,7 +21,7 @@ public void testSetUp() { } @Test - public void edit_Event_success() { + public void editEventsuccess() { eventList.addEvent( "Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 9bfe0809a8..dc80193fce 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -1,5 +1,5 @@ Welcome to EventManagerCLI. -Error loading events from file: events.csv. +Events loaded successfully. ------------------------ Enter a command: Invalid command! ------------------------ @@ -13,6 +13,7 @@ remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. +edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. @@ -23,7 +24,9 @@ exit: Exit program ------------------------ Events saved successfully. ------------------------ -Enter a command: There are 0 events in your list! Here are your scheduled events: +Enter a command: There are 2 events in your list! Here are your scheduled events: +1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: N +2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ Events saved successfully. @@ -35,12 +38,11 @@ add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT add -m ITEM -e EVENT ------------------------ -Enter a command: Event added successfully ------------------------- -Events saved successfully. +Enter a command: Duplicate event! ------------------------ -Enter a command: There are 1 events in your list! Here are your scheduled events: -1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: N +Enter a command: There are 2 events in your list! Here are your scheduled events: +1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: N +2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ Events saved successfully. @@ -49,13 +51,25 @@ Enter a command: Event marked as done ------------------------ Events saved successfully. ------------------------ -Enter a command: There are 1 events in your list! Here are your scheduled events: -1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y +Enter a command: There are 2 events in your list! Here are your scheduled events: +1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ Events saved successfully. ------------------------ Enter a command: Event not found! +------------------------ +Events saved successfully. +------------------------ +Enter a command: Event information successfully updated +------------------------ +Events saved successfully. +------------------------ +Enter a command: There are 2 events in your list! Here are your scheduled events: +1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N + ------------------------ Events saved successfully. ------------------------ @@ -78,19 +92,17 @@ Enter a command: There are 1 participants in dinner party! Here are your partici ------------------------ Events saved successfully. ------------------------ -Enter a command: Event added successfully ------------------------- -Events saved successfully. +Enter a command: Duplicate event! ------------------------ Enter a command: Events successfully sorted by name! 1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N -2. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y +2. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y ------------------------ Events saved successfully. ------------------------ Enter a command: Events successfully sorted by time! -1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y +1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y 2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ diff --git a/text-ui-test/events.csv b/text-ui-test/events.csv new file mode 100644 index 0000000000..9b69bb1106 --- /dev/null +++ b/text-ui-test/events.csv @@ -0,0 +1,2 @@ +dinner party,2024-10-10 15:00,Bob's House,LOW +anniversary celebration,2024-10-23 12:34,hotel,MEDIUM diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index 2132ca4ba4..cc554fb443 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -7,6 +7,8 @@ list mark -e dinner party -s done list mark -e Saturday brunch -s done +edit -e dinner party -name dinner party -t 2024-10-10 15:00 -v Bob's House -u LOW +list add -p Mary -n 98512525 -email example@gmail.com -e dinner party view -e dinner party edit -p Mary -n 98624759 -email Mary@gmail.com -e dinner party From d21a713ee86b9bcb6b77c380622a39bd0c9f07ef Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Fri, 1 Nov 2024 02:50:14 +0800 Subject: [PATCH 352/619] edit feature for UG --- docs/UserGuide.md | 22 +++++++++++++++++++--- text-ui-test/EXPECTED.TXT | 27 +++++++++++++-------------- 2 files changed, 32 insertions(+), 17 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index eeef47824f..fa9a4dfcff 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -32,15 +32,16 @@ Shows a list of all valid user commands in the program. ``` Here are the possible commands: -add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. list: List events. -remove -e EVENT: Remove an event from the event list. +view -e EVENT -y TYPE: View the list of participants or items of an event. +add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. add -m ITEM -e EVENT: Add an item to an event. -view -e EVENT -y TYPE: View the list of participants or items of an event. +remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. +edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. @@ -48,6 +49,7 @@ sort -by KEYWORD: Sorts events by name/time/priority. filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. find -e EVENT -p NAME: Finds all participants with specified name in an event. exit: Exit program + ``` Format: `menu` @@ -90,6 +92,20 @@ Examples: * `remove -p John Tan -e Origami workshop` removes the participant `John Tan` from the event `Origami workshop`. * `remove -m Origami paper -e Origami workshop` removes the item `Origami paper` from the event `Origami workshop`. +### Edit the information of an event or a participant: `edit` + +Edit the name/time/venue/priority of an event, or edit the number/email of a participant. + +Format: + +* `edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT` for editing a participant's contact information in an event. +* `edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY` for editing an event's basic information. + +Examples: + +* `edit -p Mary -n 9182 3213 -email mary@gmail.com -e CS2113` +* `edit -e CS2113 -name CS2113T -t 2024-10-25 16:00 -v LT16 -u HIGH` + ### View all participants or items for an event: `view` Shows a list of all participants or items for an event. diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index dc80193fce..8762e887af 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -1,5 +1,5 @@ Welcome to EventManagerCLI. -Events loaded successfully. +Error loading events from file: events.csv. ------------------------ Enter a command: Invalid command! ------------------------ @@ -24,9 +24,7 @@ exit: Exit program ------------------------ Events saved successfully. ------------------------ -Enter a command: There are 2 events in your list! Here are your scheduled events: -1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: N -2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N +Enter a command: There are 0 events in your list! Here are your scheduled events: ------------------------ Events saved successfully. @@ -38,11 +36,12 @@ add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT add -m ITEM -e EVENT ------------------------ -Enter a command: Duplicate event! +Enter a command: Event added successfully ------------------------ -Enter a command: There are 2 events in your list! Here are your scheduled events: -1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: N -2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N +Events saved successfully. +------------------------ +Enter a command: There are 1 events in your list! Here are your scheduled events: +1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: N ------------------------ Events saved successfully. @@ -51,9 +50,8 @@ Enter a command: Event marked as done ------------------------ Events saved successfully. ------------------------ -Enter a command: There are 2 events in your list! Here are your scheduled events: -1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y -2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N +Enter a command: There are 1 events in your list! Here are your scheduled events: +1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y ------------------------ Events saved successfully. @@ -66,9 +64,8 @@ Enter a command: Event information successfully updated ------------------------ Events saved successfully. ------------------------ -Enter a command: There are 2 events in your list! Here are your scheduled events: +Enter a command: There are 1 events in your list! Here are your scheduled events: 1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y -2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ Events saved successfully. @@ -92,7 +89,9 @@ Enter a command: There are 1 participants in dinner party! Here are your partici ------------------------ Events saved successfully. ------------------------ -Enter a command: Duplicate event! +Enter a command: Event added successfully +------------------------ +Events saved successfully. ------------------------ Enter a command: Events successfully sorted by name! 1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N From 2c9b0aef469d4e2d9c5f25b8640248ec5f2ff808 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 1 Nov 2024 07:15:37 +0800 Subject: [PATCH 353/619] Update Event section of developer guide --- docs/DeveloperGuide.md | 17 ++++++++++------- docs/diagrams/EventClassDiagram.puml | 2 ++ docs/images/EventClassDiagram.png | Bin 13971 -> 16487 bytes 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 9d938c3cf6..1069736676 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -61,20 +61,25 @@ The `Command` component does the following: * Handle the execution of the user command through interactions with `Event`. * Provides a command output message to `Ui` after the command execution. -The interactions between `Command` and other commands in the system is shown in the following _Sequence Diagram_: +The interactions between `Command` and other components in the system is shown in the following _Sequence Diagram_: ### Event component +The `Event` component stores the event data for the program. This is done in the `EventList` class, which stores a list of `Event`s. + +Each `Event` is composed of the following: + +* Data on event details (the event name, date and venue), stored as separate variables. +* Data on the event priority, stored as a `Priority` enumeration value (which can be `HIGH`, `MEDIUM`, or `LOW`). +* A list of `Participant`s, each representing a participant at the event. +* A list of `Items`s, each representing an item for the event. + The `Event` component and its component classes are shown in the below **Class Diagram**: -The `Event` component does the following: -* Handle the addition, removal and marking of events stored in `EventList`. -* Add, remove and mark participants for a specific `Event` in `EventList`. - ## Implementation This section describes some noteworthy details on how certain features are implemented. @@ -206,8 +211,6 @@ The values of `eventName` and `isViewingParticipants` are set by the user throug The `Parser` assigns the event parameter directly to `eventName`. Conversely, it sets `isViewingParticipants` to true if the type parameter value is `participant`, to false if the type parameter value is `item`, and treats any other value entered as invalid. - - ### Mark/unmark feature The `mark/unmark` feature allows users to mark events as done or not done. The feature comprises `MarkEventCommand`, which diff --git a/docs/diagrams/EventClassDiagram.puml b/docs/diagrams/EventClassDiagram.puml index 275f1dbda2..e487c31de7 100644 --- a/docs/diagrams/EventClassDiagram.puml +++ b/docs/diagrams/EventClassDiagram.puml @@ -5,6 +5,7 @@ rectangle event { rectangle EventList EVENT_COLOUR rectangle Event EVENT_COLOUR rectangle Participant EVENT_COLOUR + rectangle Item EVENT_COLOUR } rectangle Main @@ -13,6 +14,7 @@ rectangle Storage STORAGE_COLOUR EventList *--> "*" Event : event Event *--> "*" Participant : participant +Event *--> "*" Item : item Main .> EventList EventList <. Storage diff --git a/docs/images/EventClassDiagram.png b/docs/images/EventClassDiagram.png index 76ab85edb8831bcff51607fa5efdc9e5054e9d43..805fb7897a00201c0c6d448d121d989cee680170 100644 GIT binary patch literal 16487 zcmc(`WmMJO*DfsGB_+rvr8|X93rLrQbV+w?B%~We6r{Vm5s;8nT98d69m+;J1j)0! z_5MHO8E3p7-ZM^oaLC^K7i-Nm*PQdZ=Cz_V)a3E7DY5U|xr3*uAp7Lb9V9>SPa6{% zd{gR6*a!Y&gURW^p1HXCI9gf5?#Np?Te+LVtSo6Qd}wW9Fjo&KH@B;!xiieu$&u@s zi_`PbAsX!aiA^&*7$_n+Aw>ZuQqJ>nyfd~-+ep1hW#A4Sq!tBeqKL$mG= zx+6lwv;qmfiYbrRnGql|ql$fX3~iX64tOfpDnF})HCe>lp>BwMcWI5rDx9gf5|$-r z9+if{KP*s^;j{FF(2>Z^FR|p=ZZQr6b8e4T#Uiy#mCmJmu4#%ZBZ-;*2YffTOU3rB zncyLmJQYrsb&JrVme)#Ld&Q+2*&2JC`|`GrQoR%%k04t#JrxcHoi*i2EjrJvCZ=Lv zexP@qr$c6lqF?nKMH|5-2-Q{DDsZp8`oLolD?tX`0+#TIT}1!6IN z2@>+bl{Pe^)SL^Vke}FwDkk!JqFH<3hRI-+IKp@c6)zfJS7p}zCV{-mjCqKG%$iLX zqk*< zI`Y-*bIW(`NN6d_N^5(Y?0&$|BYApuuKrYtu<~T-g{G#owp48{Jw5!TK%2#W9bNv% zxDdPPhtu~u%b5D^`WI*(^FJoOot_nCv;R{1{Yr zMq+`#ZNwgv5LKEa3LPRvh#Jq#0s$Yel`y0U!$aWGgtB?LFhW#KmVdsEVN?D-S*EqR zx=KbyW{pYD(E5D0)vP-th1(Q97ZLS}O&KG$!E4_H8beF<9)^Gq#4}95;am8!j@tUr z>FH^g<&L5P%$`?6LrMyq(3pR2VCscoN?RfolaXscG3j|z4UD7^v{4_;?A?%xLTT@Y zmVH7?#HZ)wHfc|l@Nb2h7WPlBAuD0T-&0pt$HRN|&}Hch#2)3J+sg+-F$kI*=jzRS zBOGR`;|InI%TIOYI@%zPx>wU5{ZW?%f zI>?+u1%+)bws{dsx~+wkm9Z+=EO+>y?JqNjPT_f~aqi{9wBLYtP*PCXVUABtU7xSN zrW1CYkg&44^x;KCc{w`nJt=e)BqXHQG?EcW{5GRuk-WUT1_lO&Fa7Ab zSXiPc+C9FjO%In7*=HE=Ar%$aw+CF$cX#LMH&|bu?RUDahGb;i=U8s@+Mh8EL{kk5 z5ARNmiNW^w_s79`+3d0$l0ZvMPVRO2b9ZgcLXY~Pb7t=2-xjtR%SL+{+})6>u0-S18+l;q|HRZdS$ky3}Gnzi^}{-pF)#fT?Mj4MC9K3fhYIypHpXkcMw z4X*b5F)cj<>?qh^-{Z!RuEisW-@`4 z1){S)CV7j>09+;9$9r>#)E)19uEB=W;9XF3Y;m!*wl)a`kL3X26ZY<-;S_FQO#EI{ zK{%3nytyNyD_9Qkg-+H{1Infli4RdYedo5`_k4FAv9)E?3X6tqZfw|M&NVuaNBdo$ z&K!K1nDFS2gV@>G)#8$-7H`kX>wY4!R6Gz*9jt5o*9j1BMHQ6VH8ZD8P2-JpIHGl3RB#O{c%oTo5t_Y(;D%iAUzKIRD(Offit4BiY|KIJzI8?{V-y(Oy^=Qd&|vqGZ{-e z*Q(kN>T!eZOYkYz8PT;7B7yLclK%X3AtrhfYuClTTpgg8lP@q?`Ve0pD*`?A|3QkWV+QQ7(6>b}B>7fbh^l<4lECMBrpN+^Bz zFC4`U3xbyslxg7yWej{GDi&d*o!rSX#$uSe zQpH{DYFuMi-nI?Xag!T?aHamPE-4wA^)GocJG58Mw5iF-efUpe@A1+L2_?tHU?|Bq zT^$W`@9piiw6u_On-pG#39vzkjb-qNBIbs7mSy`z&oWl-;^Am5T9|!)`QdFD(&}zI zG!+^n5if9{nXh{AB!^_2>v@Gb)Kza~rHd{EMb1+(%V14`Szvel+heB+f}-MLXAg$k z4t@{i91877<#Crd08;lpH+eIZMGqtdv`^&edGo}-ohf;_E zD&ef1ot+gaxyO&G#k}8algdN=N3Op4^fi1{>ckz7hd2KGtP0=tO`PI}L=m%3%}G5x zsFYiZ&Ntp+VuJ{ixJs?mc6Ad8#s$gP3$kUU+Vu-IzUvn4o!0IVV7A{dfry7zV^!qh zz);%WzTa{gw_*J~CO0>?rluy9jrm50$B!SIo14eNa#1h0D{6GB3{J=8X^h{y2BQXE z?luGO?(QiA@ghg!8ieem#KfK1x^<8ZM#{HQiWmr13f*C_clGu4b#;fw$6w#sO?2Mg zD7Su$S8MkqA3uLo6NYdOO^sx~;yW_Fkmf`m9=?WqQ1vwI^pg27$1gP^&G8fjZ`)OR z-d*HY!K3LspB$J4S-vri%^$*XmhZEkNX6^m_H zW=IAG`1rI;!YS4#4b_!xl5Tm9Tx)e~?uQE1-eKaKwEJdZNo2cimb=IyBmDB$mxp+x zj9$-_`^l_FIY$Hp1-c-F`%d3xRFwObIz2-?XD$kR6Q6pBt(k=fFg=GDigY)i8=^@Q zPGgO^^Vg^9-8z=4us~+@XRR6=8ebdcxL#29Bp@}%Tf6Jh)lVw3(LbhDe z%CT4hu?N+W_#v%I$j%i8;(oK&cB-w#-cp~?n^-S`&kp-vmG z%SdHD>qpgdMWjpXZjuY?)U?z+i_9zjM(tF2tvcV9@ZRIQwtvBMwX6gK{a^1qwleFk zqPNKEGxCcXJb&nZ>3{FGuJAxW05+V=84Hv6wLwfnlOz9{I^IMt8|rEQ=@M=?SHHPA zoMQfKp~Yi~k;CKMfyk2vrB`?$pjT5){&m@aA&*p`MX-Vcf?W)stXwfqv6 zwqV%206(%m&*x7A?JC~EbFwpcitkybCIwWW{xDm88JLyIrWQF;W?7)6e)ye0FDMP)hif2Qf!Y0Iwsl0+fB>7#q9OYjOHLHlWRs>U z7944~OO}M%q!l(eIeF3@iV+LLB)t9k)dkeA_R>AnjF(^c*qFlH8xYaCsZ3<3FX5B(CJw9phEyLu2wp6Chcd@98G4l*O6%O}scyJlv3!U5~I-1OvR5xfa9rBC{6I47C`2759 ziaSZ<@o|RDna`hR(H}ieKqoNN_pW=&IG;!hsf~?~9}h;s0Qnc&isT~&!l>Q54iv?o zGag3Hv$3-e4-Y$xr1FyPD@R@n>9#%J6>^&YC{{_F7$^3oUl3x8(;g9m7UMrbKYxje z{hgM7@fjWBgW>#n`Yf+gq83T~XnVS{h#41-zg9g*2Q2p$EH;ExXl5F%UoHb9QIQ@} z-|6?hn3(_co@bdb&jkuZ9K{vG5K6`+UcNk4PBCFK(#+#CNUGG&%90ix`5?LLV@Y^f zW0iW~7?>2(|J;~CvDZkR z+7CSoH$#E*5*tDr#L+{)4TYr?O*ppou7sOlDf>TROu!GlyZnLA3!%n!pWmq~v7nZm zf}Q{azPP+>W z3)qSHId2BP!|1Ogm`+5M_ksFH=k~RW)h93 z0HT;q;LEP5o8Bl`pU9b2rv|GsRD9l7xRHk;r5a2&Sg_YV<+7-^0i>2BR7*|6QRjR( z9m}Q%^uy6}JA3=?9j3AaXq5HJr0Ki}tm$wY#~3k8)4LZWTCZdxr!H1nR4@~`Mi<4* z**cxySYNh~jAOB9)qK8QzE}6Qz-3|Sp*tUkyt?q0g<8RQ ze3g2$*2x!>Pp4`cE8CNjUK_e5|Bhbng~wat3;-VRU`F%9Mcg-{!U*m8fJ#!`o1e})sXiKWEG{C}@d&?X5U(CnQkPVnjGsE7P~ua4U|fz~h|(9# zm6I$a3ng*5YPg5sI9By=Hpl0lF{lX-ZlX@3k@gU*|3YY@V9_M~4!A|gnq>R}!!>_u z(;NRuI6RmFk0l7E|Ndu~+4uL`NnsDFrW~9d%`Eb&zAkV+xUZ7P{=~!wMuYUBilaT& z;42z)<+Ppky{uc}j~J?w<9$MetzEV}-F8l!%6(qym$GABsNbYDzDPHsmETQXdyF7>B0eCyIIA7>3#!B2qNzmj?LqI&%l|`+EIKRs)l4 z^`M^gp7zlU5crei1q$dbvbKyi)i+U*A{|Q#vb#9dJz)wbh@C?oJBz?a%vOlS?XjIn zv9P0|A%^;&tVR1~+o)rAjgxHGvtX9^O7h(Uicmj?tHih~N?|!=!{+a`p9kfd&DNfo zIZku7Xv0#4@rq;^JgsR_6V?0`vJCv*;J-8J^=fY11BG-VP(s|nF!BANsg-HMVKBy`~m6JL09=?~|-67}>V~cxWv`VHWYm7)pDz zbZ|T-Ibk?=?}-iiqacA)af`LtU_?QI7Rj`G{+e7UUURzy))(3JS4~%R`r$MjL5siP z$osWr#$D z9&)pE6k;-dx|O)wo3qZ7s0)C7Qz|OheYoySFp7${ZERSI%whZkFvGZ2vc=}+=hKPg zQO@MZ(bzcL8*DTkot!2nCafH2_*FRZ0X#LiGeMQQSZjsU_@s9kMJ7HmQMN;>xUg_z zw(c3MS>+FAT}AWp@o`)y6bl0kMmn`IxrX_#U%$E=;;6;9H#a@kK4STX?eO$YuH8|> zSVdD)Q%iIk2{ZM5s;8$wP=!%iJ3#K)a|9TfZqX98tbB|?%pmPi*iu1I_#43h^oxP&Aw$^KZX*`q?m5syD(D1n>;CXTaZ$w1t ziT_}7?~fO!KR&d#uaIN>6!AHFu*ivyKpXIy*T57BoP7N5I#r( zNh18i3@i~*QThEkvVyWPG&y}GBP2WkYd--=_&a0K{QUfY+iNcmc$Qu;@Um$D2f9xd+pO|3$5S>EeI9r~W~}(Xu5esz_3R15f@$Aq>*{{n+!XgciP|GX`g_0Mugw(KqY2IM zT0jPY)j2wHZ(aBQyB7U`b$R>tEuu7^g@Xf^fFSVdoOiMN-&a#f2KcRX1;ez1Nk~Xe zwx@o8j0%&-`#X?zQ1tT5MQDx=f@^ZG;(1(AoA|fXz|FmFX z4E;0o^C%;iw;Yg%&I<#hqfDkAv40FL|LD=94X+H#;M$M^nO8`gOXr8{>uYN!9e&Y& zFWB(S*Z|~Gr9op%Tnv)84M3BJhlhX0<|kX-tVk{Fx&kj!MwEI7c|CqbiB<-t!rn?i zM39KzBM&yq&)u&WIDqF=S5bj^c!ai$9j^D&)xS8~ySnnT-T=Ip*Ul^wP9yk$Y#;3@p@(a}9H{yPX;TU(ynp_T1zY~8!A>@}Ewjf!f`4q`9BmJ%xV1`S}j zB9?BizDsW8G_-pDcx_M&P+#Q?*7K$QBe%kukB z68pu)g$9fC23V%JxVQ}q9v+L2n9R&2m6aSvt^nG7`}VCc;bOOW8RqGE3wY;?LX?Pf z34bVY3i2O!l&A+*RD8?S-2;~XYqQJ#>gss8PDN&BCg6(`keJmn@8nU5xQB^_QQFVH zvjfE^aBmI6;09W~99ZrVaG99sX!F(wasrKU5K$rfNfztlH|T&5^RqnLTV#-rdoWB( zlG-B%mgkzz^A6+G>5rLDKFs&0nMP|b2vs@t3@t3^9r=ArGy#!MGuP~5YG6PK*~IfK zp00RW6M+wb`kvTI+y;u#{C?)f)_4J6(u)h)^ExJdL8$Zdy8=M=izr~Y>p1fmk}7cV?oF2juC z1sVY)67bqHf|geU2hRo$ngS*Q*9@SwvlsWj5a8o;U+oEpMH+xUiMNus_c?IpEf&c) z^o`kKK6idbU;G67wY$4pLl2LF&vJk1!wF_U7h@x}gx~pQ ziYZ*v6B#&C6fkGs$B$bG#HYT#zE7W=7F(03y9xe=P+1)v9T*H25D?HAaBclLy)oe0 z*B4dtubId(@Tq7eU&h2Fa~eMOI!5{9QQ1$PJmCwx@q-Ti`;^~VphP9@k^HY$UwC?Xoi#elVCyw2qOZ@+&AI)0q?YzKb#hNv>Z5eNfA{Vk1_8CO zh)A%TlniLAw6pyi&p&}A(F#LYI6E)ZJ(I`5!66_ZFf}y=HN?%NF4&3A;3Z3L+mo!d zxc4xup3oYJG-m`BWG}p?e?D5%MQ-#WgK4~Tyi>ezh+dQLzf90fm zQaHWMkU^hP_?%l!J7>B;nAKWwdWm6KGZOgWKmw8ZAv+4+FtUfwSF>X##*N>%Boyl+ zvd8i}DO1>4w0e^dr$#^^YPfXv?W#|Pd>BAvVrbQ@X2%KsKT-&Low+SZS9<oPlD4vH_l!ridaf6B82y178H3u{AWju#B+-R&QFP`u@oqzY3N!<1$-r0>hsf zp83+{c`!l|aJvc&Pf+%rHFrZGF=T(iB}Dn1ZRX+>6FW^|ZvW_>-C6yW{7 z3l)A98e<{Y*mw~jsSA4$_#61aN2J~}#KG38+M@c%eHm4}?tc_BT1|=HhZETI>Y41N zWUmuuThTNPh(@1O;|)Ym;7wXR%eu6jJx%>Vp}xky@J#j8K(^`3ir!P`G4%H4a{t@s zjBBuyA1(d zcKIqy8Rzb;$>jChcM{95!ebm~B`X-3zJ~>7XZ`ZiIc+eh**#nLKA*e%G0wyE>zf58 zzJxeVayR*iuaw8Qk~emo`CCbO2&#&IZn;><>GM!MdNy=x7^c5O^4pIeK<@wY9Vo=8fxVAunFd9 z{%xU0MN5XEpALEL!{@7XJA@vhS*>=D?c%Nq3L-Hjg`9*0G#}?@0ez`wXxR4teU#nb zi5tP8h9|B>uim2DbVRqcl$C^QS;${Mf6S9=ba+TLg_3QxHoxTjrn6epV`ik<>8i>p z-``;NT}byz`nyP)p5S`OiUY;obW>=RiL(DKg@5ia8yto0eQlL~Z9;5JQq^^(p^ss! zCCusTxLUsy_f1WU<>qc1w5NOpagfh*X94wafLq@F;Y8i;{xj-rT<%D?4}l^-%4(c2 z+-_n7)3RHDoZ*;n70sI1IMn>7`TxuWyAJ&~CioL;jRi`t^h0Y7vp9ahF4r4@w6>ol zbw~QAx1#*>*Sn0qZ1wjuyY_tY^4;K6YsehFtqICaJjCPtyg|{AtH0oUHoRY)!X3Kl zTr}va;v2}1p8VE@wA+2>HbbtESh!gd)uUVqk5hHt^EvIF>o7i2M%Sa+!1`{88OxDD zEfo)QdL@+!%V_{F2eYvuYNLrK;;D|k*%F`apc&si-4HN6{=~Q*B6%o}jbam)xj~H6 zLpa(oNlo%}EzhujZCvp*-|`844#@yQxMI`?pQsSw@MBZtgdU#ujZ7vx)t1~NO%RAKUax)z}~#KJBVw$G+jEgx9S!+5=_d+ zcrW>>K!P=T55%od%f<)IDR@SMQ?<%s`CZgc30kJ85!mbS%%9G7>kbzE?=;mkWueFR zTnj-h94D%S^{H?=!{HnU=w8d>EH*9P=)r(EgP8?#Lu`O#oXuK?R(`J05UFpsn=QuO zFeHsro@Zth^s>;y@89Ed^=qG%^hg8JX@!oXaKYGq`m=sp3)iGBHA8Fj&&H!PJ#p@5 zHB{*VFV>^7d}xd9huhicq*Iad{_db&Ip~+%d8Kz)5m1L%t(^LFhll(N4%|GiJ@;_B z(F>n3MZ@kT-t6h*xbz3<4}2mio+H4wCATENdHmDK48P~&F8VLglINpI@i4Q9sp_|j zwd7Oe*%kd^!h*CA3kqvd463x)|MJsl$9)tuk~YqtYD^#OnidVWDT81Gm%3lXUR5o| zay-4z3G9_EcPecv)(w7Yfda3CyG$+9yLx^`LqIc1VVFbLnQ=OW7>Pm}#5$&T0yJ<1 zeA@aI`GKK@Y~sDvKv#L3YrF~0T~OE^kEbk8 z^+1)=tx$$i#RJ4y*(Lsb%FM4=PqEEn=;lAwS#|2CcsB<5y^|kFhJ7H6WumNU_?^z^ znGpj`hx$;qISptOl{8`!ODWP{0Q}AIfB5f@3!Q<>qoboLs16Q4yt&gBEsO&=xg9Y- zDBrbUGPlR$);2}NlK8zV^k)61Mu<-1vx+GyVyvR#Zy;iLtfDqzNTG2}v)b-d>q8Tp zrL>FBBQ&z-qm2})2V@tLJRb8%6>>>C*w8p3X6V`H;^ zohtm?>|$$+grX_4)O$Ra#L3UG?@E#1i~;c>fslVt>qiEIB(5PJSCRL-i+7W2yw8$V ze*GF4o6G}vD1p~unqwQiHw>_JzNNA6eNW3nLwkW127$k64%itapn*c-NhzBU2Ffdd z=ZfWrLjdjd<%@p-h3XwcIHwuKl>uusN>9 z7D7aH_;c6LH;nHuA4i0f>IQh5k%fiKT}osX4=$tkQj*eSQs$qs_4M`iRa1F_sS9yO zcp8NPCZohqySaH}7QFZNer`*^^@S#R6(}#8T$a@cbcFvv=vTFF>yQ5w*CA+I5^nI!vlzn34iR>4400>qoaI@a9eY8x1$Y3-_o8xFs>|AUGkbl z?cAmFI(bingI%|B>q{PrA=J3-c@YNdA3XEs%o`|CHU{73g@Fk`7fWyf-8JY9I34qU zAeGf0cI}C>oZKg%kT_>f39k8&x~XHLo-cg0dDWtQM5)E^)$xC!7p z(4={M8_5$r9|FzyX2-cl@=2)wP=5A9fa7hbuLt@Cd9Q<{o}NcHDntK_Ra0KK#soq^ z0sKSJ>maqhp6_O4_|Gq*9hZA;K|w)4v<9YW{e3j6K>l@c!Cxbst^sivsEmJOyv6Pp z_y7^Vc_a0o7k&g}At1%hUB8R73InDDFh^UZ3IAAG-q`zW&-n4#yhjgzZi9?){!KLhr6 zUhdfa@nbmWmhMe@Zf@>x5>@k$7sSP&oN5D3c&5rw-b+B*Og`Xp_u+qTbSqZPNKQ(U zlh0r(D=Pycyn=$EJOA(pI@W+I0iX}i4h5p=On?eEY<4dC_t&INKq3GS`aYIZBAU*D zhK45A@~kYqgiKxoT0RKKg`VDCA3p9kq*uSr*#GJc-vT!C`{w5OI1|41OTfYu77R&c zX}uI>fsk&r?RVf{W0#kf=8C2Z0}UJ{6b3YP=>KX80rT1a^=k&R3+He$5T+fjz8pc@ zPB*AWE-H8eXpm1IKUSK2NZ)&d{f*2NufrNKWTf}RLi&8)} z!nD}{o}M_!(5f-*1UMt&LmLc{5Yc!0A4ctCCEp7iGI@)moxp{cJINFGoI?wv?0A6o3{FYh0#l*xOzox$4o~js=xU2+v7LcK6 z0?z3uw3zAW=y*N{XVH^;^}VL4DJVd>-w=2k5PTr+IqN-JM!|301x4$r3VD?yV0YJ1 z$I|k_j%PrCL_4}FZV>js-;SGn<*EDyz@;VwWddMl0JVcZMNx`p zEne$$eR+m)jTL5CR8fJ$hql;t$SWiifxUP2>-fOHXvzO+#bkmA@a#KG41lu)8rLGx zFnI9sF$jJe=GN9sS7ng~SjFg;TnFce&q^K4hG+?um>C#CV=Ysj%0j`84AtrOQ40ZR zy2JOB%@9h<2S)>Vb7!%QTqzHBqqVuwnQN^$ZNKiD~LN(6-+i9Nj4@!0uAS z2^>L`5(-O#jqzD5%$(;(FxngZtIbFm)aSL$%``x;E5(up2*ZTjn4$~)+ zvv3MAZyw^vGSn6}+*8U#$tr`!qqDQfXmp<$tU?dK+VI^q@trKyL_RF!_uSTI`6yd- z4B8N-4QA=n>7M{)U|#V^MrKgqr=W}8x1+tbi^60vDTIJeu2IO7aHB*bv{Cg^?$r9< z+K=8yf=-}92I}A6q9K-W)SlZV>%s=JZe+eE+E9>jBekx9ap<~bBJr;;e$+T3PIl(r z!jO25=Rs2nC@p}B4TWK_atJgM<3~ZeWKbcxut7Vj6lRtOTwU_!oB`{RA|^i{4-q3} zB0ivf1$=-o`rz01oQZMDfnSOp#d`q$yIS{9eFyyy9`2wX><|rlY1fZYL?LHI$KP`T zL#hU{E}~#7R6h?7S=rd`VoI{E@9p7l;u=D0)sFT~L061`E9ex6orQUL-n54kSP?m5 zwQ%}n!2wUIP|)leVK)k-cC+x{SIlQ^zd8Mu`-$4MxNkW;JdVK(3t--uN+ou`HS59? z+b<*yH5ed-Z$Z;^Qn(O1^iabREH9S=X6EsRqop#&s0kqZyt!0-QgH@B^us^}{l=9R zkmRh@8O@N^%oyJgWgcw2=r>nFBLE_&+@_GHu`x09KgzVAv?QFIRjH}>?$!|VkPn1& zW`SgEF$J1jsqDd_E2O(SJ2#ihx7f0>q3~4{mMkXRNe&=G7JI&PZ?QW>L~?(*Q+?6w z9N73ZwYY^mOPA_~3@-_AY~l~{1RhGgelh-+UWCN5sri-WW;kH~nnH(=pX*L4)yBs@ zH^)Zjo(T%K3K=R%Hj+jNn1c+yxMhqq_ZGROCtH4iU^eT`8$xKgtF}brMhrb%Q@`}N zbyp6Io4W?IFeV`T#|Nu2Pud4E00$dxB$B|+QwBnCK>@aWqn7egE-am`Lbqz|=&*?i zo5TT-rAoIyxu(=OeL~@O2~i@SH5GyG928i}@}w`ZOOla+8z@eCq|0Cu5J-CMQ9*P# z*fI^U?-Wg(XnePelREFX0j1DZsfFg$uK{flAtS#REa|;Rm1QPvxU%K;Et6|NVo$B9qeBXTWaZ>6*O*Ff$MI-rffh%_G2;d(CP1cO5D+*42@jlA7`a|e zdh}MA(w<4x0Wj8DLqC9ETP+{^Da1RnTHa3u$ z%gRsPE4sZ*`t$8U9Ox=*#e=3A`!zmayTzv%((v%`kzN3I>Y=34#HyUxLGV=wz&c_9 zSHj1?TjKlkjqDXPMBvDW)!N7C5t$>;hcShJ4IKwY40cPpj~+|d)N5@+CVu|69Ka|1 zXR3|&&xW&@(hWcZu2&S)&H&1d`K@Z}>D{~B6WRXdLdetD0#qc&gw`P_82Dk~IOJUK zTU%oSuu|IX^2i9X4t)Nsnk88d zA~NN9_{I4-m9T4Wdpi}Cfc40|s7j-j1ZuXxbZ7fRfCgz0OCLlXui_cx@7}!&Ou4bS zY31yE^II;xK8aNd1(*rTLkfVg*jQZ9r2xuRVUC!ZDpXaG#`8N$k*^;xGxzq%pqYaV zXJ=Pd+4#dr3Xeu(_K^6OFfdxqJ#df7J|No|Mn0Ej`x8q+He#G7$d{;z6y} zLxJ{ne}DfLRN}3MALiP;K=H#sm04TM)2god@B7>@e>%D6X^St@x+H=uFXPl`-izKU z^Pk_3zJ0zAG%XV)>JyNtH=w5!8lR+Nh?VaC+c;{R|Lv#(-0-)WRoX{zhPt;E|NNUr zctF;4FaUFC=tDD6Bl&ew93F%MVq>#z}1u_t@M9E>e5dTO#Oi5r4uf+fM} zBou$-2ANpqVYhmF5I){jw^9y4k7Op|IT!uDy(Go zRU{Bg7Bx!WH|B&0BMgk%@AWCRDCCCTTxRr(?7EOXqiN;qAYK2 zE0d_Gzzpn?D2A-4pGwhWMhT_ zGOU?>*r=jc&~2>(Lzosn+Du9c_#t5(U`fFgYG$6g8DD^k0Up0PB0KY?yB5-Nmj>R4 zXZfHt0JP5jG5eYVMm<%)qtKD(Ku9`d=9`y#(e(^-Qd;)08KDJ5acsF3wA;x@G!@Fj zPFI4>n1yB{qv#U+lwK^%z05ki?5)vd??#0x|Fe9dH~89qBlEGa^w6FmZ8@l156V58 zDUmU{5P{Um4bV%Fk1i`TtClCh&6b6G1q_ zYW zw04ng)ziZEpue3L;Voc{=z=9EM5d2R-T$#b9s-IhG^G-g`>PmKI_$04g zy;o^v#HNHu@F9tr{}~Gko;?-IbB+_k#%cbLxtIf|Vp}EX7o%4k0%1=XXK8Mg>+qba zt8DTeW>u6^{IKH^@V!3*?`mnPei@IZk}_02HmG;crQBw=I<2mxj!S)gYljMk!XB6EaG6RL^>w)iWhl2vr#v`71e zk0o<)dj}%jW}S?s@H5RE?1vbOc}ukFT!8BNv|n9MeK11uNaLfXdRa}kY&2{Cw!>9C z{*;-`+=M_XqH8r_>Q*rqMuH2h90!k=FSv;qZadV4x;y=GsPIU*{%VT3%WT}Qt*Z9> zO7bdz;}63FS5t$4iC4tHlu%68gI=VCqlEE)>VtB*`e~KTWV7dhp^=6H4aqMaIw#@l z?IDMP3#Rd}Gxz?EVE7-s?%ECe+wI1XFgH-njMRPKYp?c^XuL4X7-Rf7I#Ba*w5;-Tfe4~#KR>lij%sZfl7 z{gb|b^X>n1;5bA9_mB4R|La8Z|KbJGNkz}BtWE(956(z0c%N=3RaJ39MH6+k4=A|S*Vhp&^g`tvS)lxkqZHf*CwO2OAqr?CZr}*PD$v&6T=@XK-+i5A z{K5fH!SC+wekPP9lhP3cCuRlk<-w6_%#Z`ZMEnq1Y@isSjd~=FpvBDBxCtzKtMtCb U{%Qf7_`jnlrzTtd$SmZ409!@2`v3p{ literal 13971 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 From 91d2d14dac954e18fb6caa7d21662c95751a18cf Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 1 Nov 2024 08:33:37 +0800 Subject: [PATCH 354/619] Update design section of developer guide --- docs/DeveloperGuide.md | 44 ++++++--- docs/diagrams/ArchitectureSequence.puml | 90 +++--------------- docs/diagrams/CommandSequenceDiagram.puml | 7 +- .../StorageLoadingSequenceDiagram.puml | 23 +++++ .../StorageSavingSequenceDiagram.puml | 20 ++++ docs/diagrams/UiClassDiagram.puml | 15 +-- docs/images/ArchitectureSequenceDiagram.png | Bin 47483 -> 23654 bytes docs/images/CommandSequenceDiagram.png | Bin 27617 -> 28622 bytes docs/images/UiClassDiagram.png | Bin 16821 -> 3975 bytes 9 files changed, 100 insertions(+), 99 deletions(-) create mode 100644 docs/diagrams/StorageLoadingSequenceDiagram.puml create mode 100644 docs/diagrams/StorageSavingSequenceDiagram.puml diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index c8ded40498..0d598883d7 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -16,17 +16,30 @@ The application comprises the following components: * `Main`, which handles program startup and shutdown, and also interactions between other components. * `UI`, which handles user input and showing messages to the user. -* `Storage`, which handles the loading and saving of data upon program startup and shutdown. +* `Storage`, which handles the loading and saving of data from and to a file upon program startup and shutdown. * `Parser`, which converts user input into commands. * `Command`, which are executed to modify the data stored in the program. * `Event`, which stores the program's data. ### Interactions between components +The overall program execution is as follows: + +1. Upon program startup, the `Ui` shows the user a welcome message. +2. `Storage` loads the event data from the saved file into `Event` +3. The program enters the command loop upon invocation of the `runCommandLoop()` method. +4. In the command loop, the program gets, parses and executes commands entered by the user. +5. `Storage` saves the event data in `Event` after the execution of each user command. +6. The program exits the command loop once `IsGettingCommands` is set to `false`. + -The above **Sequence Diagram** shows how the different components of the system interact with one -another in the scenario when the command `add -e event -t 1200 -v venue` is executed. +The above **Sequence Diagram** shows how the different components of the system interact in the above operation. The components are represented by classes, as follows: + +* `Main` refers to the `Main` class in `Main`. +* `Ui` refers to the `Ui` class in `Ui`. +* `Storage` refers to the `Storage` class in `Storage`. +* `EventList` refers to the list of events in `Event` which the program's event data is stored (see the _Event component_ section for more details). ### UI component @@ -36,8 +49,10 @@ The `UI` component comprises an Ui class, as shown in the above **Class Diagram* The `UI` does the following: -* Take in command input from the user and pass the input to `Main`. -* Show output messages from `Command` to the user after command execution. +* Show the user a welcome message upon program startup. +* Take in command input from the user and pass the input to `Main` (through the `getCommand()` method). +* Show output messages from `Command` to the user after command execution (through the `showOutputMessage()` method). +* Show error messages from any caught exceptions (through the `showErrorMessageToUser()` method). ### Storage component @@ -52,18 +67,25 @@ The `Storage` does the following: ### Command component +The `Command` component comprises multiple `XYZCommand` classes, which inherit from the abstract `Command` parent class. + +In each `XYZCommand` class, command execution is done through the `execute()` method, which is implemented from an abstract method in `Command`. +After the command execution, `XYZCommand`'s output message is set depending on whether the execution was a success or a failure. + The `Command` component and its component classes are shown in the below **Class Diagram**: -In all `XYZCommand` classes, the abstract `execute()` method from the parent `Command` class is implemented. - -The `Command` component does the following: +The logic of the command parsing and execution in `Command` is as follows: -* Handle the execution of the user command through interactions with `Event`. -* Provides a command output message to `Ui` after the command execution. +1. The `Ui` takes in a command input from the user, and passes the user command input to `Main`. +2. The `Parser` gets the user command input from `Main` and creates an `XYZCommand` instance. +The parameters of the `XYZCommand` instance are parsed from fields given in the user input. +3. The program's event data (in the form of `EventList`) is passed to `XYZCommand` by `Main`. +4. `XYZCommand` is executed with the invocation of the `execute()` method. +5. The `Ui` gets `XYZCommand`'s output message, and shows it to the user. -The interactions between `Command` and other components in the system when a command is executed is shown in the following _Sequence Diagram_: +The interactions between `Command` and other components in the system for the above set of operations is shown in the following _Sequence Diagram_: diff --git a/docs/diagrams/ArchitectureSequence.puml b/docs/diagrams/ArchitectureSequence.puml index aacfc3a5c1..ff3ea28e89 100644 --- a/docs/diagrams/ArchitectureSequence.puml +++ b/docs/diagrams/ArchitectureSequence.puml @@ -1,87 +1,25 @@ @startuml !include style.puml -Participant "Main" as main -Participant "Ui" as ui UI_COLOUR -Participant "Storage" as storage STORAGE_COLOUR -Participant "Parser" as parser PARSER_COLOUR -Participant "Command" as command COMMAND_COLOUR -Participant "EventList" as event EVENT_COLOUR +Participant ":Main" as main +Participant ":Ui" as ui UI_COLOUR +Participant ":Storage" as storage STORAGE_COLOUR +Participant ":EventList" as events EVENT_COLOUR - -main -> storage : loadEvents(events) -activate storage STORAGE_COLOUR -storage --> parser : parseFile(events, FILE_PATH) -activate parser PARSER_COLOUR -parser -> event : addEvent(eventName, time, venue) -activate event EVENT_COLOUR -event --> parser -deactivate event -parser --> storage -deactivate parser -storage -> main -deactivate storage - -main -> parser : Parser() -activate parser PARSER_COLOUR -parser --> main : :Parser -deactivate parser - -main -> ui : getCommand() -activate ui UI_COLOUR -ui --> main : "add -e event -t 1200 -v venue" -deactivate ui - - - -main -> parser : parseCommand("add -e event -t 1200 -v venue") -activate parser PARSER_COLOUR - -create command -parser -> command : AddCommand("event", "1200", "venue") -activate command COMMAND_COLOUR -command --> parser : :AddCommand -deactivate command - -parser --> main : command:AddCommand -deactivate parser -destroy parser - -main -> command : setData(events:EventList) -activate command COMMAND_COLOUR -command --> main -deactivate command - -main -> command : execute() -activate command COMMAND_COLOUR - -command -> event : addEvent("event", "1200", "venue") -activate event EVENT_COLOUR -event --> command -deactivate event - -command --> main -deactivate command - -main -> ui : showOutputToUser(command: Command) +main -> ui : greetUser() activate ui UI_COLOUR +return -ui -> command : getMessage() -activate command COMMAND_COLOUR +ref over main, storage, events : Loading of events list -command --> ui : :String -deactivate command +main -> main : runCommandLoop() +activate main -ui --> main : -deactivate ui +loop isGettingCommands +ref over main, events : Command parsing and execution +ref over main, storage, events : Saving of events list +end -main -> storage : saveEvents(events) -activate storage STORAGE_COLOUR -storage -> event : getList() -activate event EVENT_COLOUR -event --> storage -deactivate event -storage --> main -deactivate storage +return @enduml \ No newline at end of file diff --git a/docs/diagrams/CommandSequenceDiagram.puml b/docs/diagrams/CommandSequenceDiagram.puml index 800c000cd5..7d8c20b0a8 100644 --- a/docs/diagrams/CommandSequenceDiagram.puml +++ b/docs/diagrams/CommandSequenceDiagram.puml @@ -1,11 +1,16 @@ @startuml !include style.puml +hide footbox participant ":Main" as main -participant ":Parser" as parser PARSER_COLOUR participant ":Ui" as ui UI_COLOUR +participant ":Parser" as parser PARSER_COLOUR participant ":XYZCommand" as xyzCommand COMMAND_COLOUR +main -> ui : getCommand() +activate ui UI_COLOUR + +return userCommandText : String main -> parser : parseCommand(userCommandText) activate parser PARSER_COLOUR diff --git a/docs/diagrams/StorageLoadingSequenceDiagram.puml b/docs/diagrams/StorageLoadingSequenceDiagram.puml new file mode 100644 index 0000000000..33c205200c --- /dev/null +++ b/docs/diagrams/StorageLoadingSequenceDiagram.puml @@ -0,0 +1,23 @@ +@startuml +!include style.puml +hide footbox + +Participant ":Main" as main +Participant ":Storage" as storage STORAGE_COLOUR +Participant ":Parser" as parser PARSER_COLOUR +Participant ":EventList" as event EVENT_COLOUR + +main -> storage : loadEvents(events : EventList) +activate storage STORAGE_COLOUR +storage --> parser : parseFile(events, FILE_PATH) +activate parser PARSER_COLOUR +parser -> event : addEvent(eventName, time, venue) +activate event EVENT_COLOUR +event --> parser +deactivate event +parser --> storage +deactivate parser +storage -> main +deactivate storage + +@enduml \ No newline at end of file diff --git a/docs/diagrams/StorageSavingSequenceDiagram.puml b/docs/diagrams/StorageSavingSequenceDiagram.puml new file mode 100644 index 0000000000..233f747cc9 --- /dev/null +++ b/docs/diagrams/StorageSavingSequenceDiagram.puml @@ -0,0 +1,20 @@ +@startuml +!include style.puml +hide footbox + +Participant ":Main" as main +Participant ":Storage" as storage STORAGE_COLOUR +Participant ":Parser" as parser PARSER_COLOUR +Participant ":EventList" as event EVENT_COLOUR + + +main -> storage : saveEvents(events) +activate storage STORAGE_COLOUR +storage -> event : getList() +activate event EVENT_COLOUR +event --> storage +deactivate event +storage --> main +deactivate storage + +@enduml \ No newline at end of file diff --git a/docs/diagrams/UiClassDiagram.puml b/docs/diagrams/UiClassDiagram.puml index 5234605c55..d800333044 100644 --- a/docs/diagrams/UiClassDiagram.puml +++ b/docs/diagrams/UiClassDiagram.puml @@ -1,21 +1,14 @@ @startuml !include style.puml -allowmixing -package ui { - class "Ui" as Ui UI_COLOUR { - +greetUser() : void - +getCommand() : String - +showOutputToUser(command:Command) : void - +showErrorMessageToUser(exception:Exception) : void - } +rectangle ui { + rectangle Ui UI_COLOUR } rectangle Main - rectangle Command COMMAND_COLOUR -Main ..> Ui -Ui .> Command +Main .> Ui +Ui ..> Command @enduml diff --git a/docs/images/ArchitectureSequenceDiagram.png b/docs/images/ArchitectureSequenceDiagram.png index ee33372c56f1314ef827f48f15b9971f4b3ed86c..487ea81560a0f8e4c64e37fdd71bfae19333b68b 100644 GIT binary patch literal 23654 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 Ax&QzG literal 47483 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 M07*qoM6N<$f^bz3_5c6? diff --git a/docs/images/CommandSequenceDiagram.png b/docs/images/CommandSequenceDiagram.png index ce021001cfe5eef38d42592689a3f613f3d75701..bafd43c2de8b727d09aeda353e5aec52ed317e42 100644 GIT binary patch literal 28622 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 HTf+Yf-82kd literal 27617 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
    ;_87WsPXaVhq7MS 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 Z5gxUD7xR+4p7J85GPq@;Q>En?{SUA|d4T`` literal 16821 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 MU|p4pN6*6k4@dt{zW@LL From f46e731a0615febbfd708d6f03708699ed2b8cbc Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 1 Nov 2024 08:41:04 +0800 Subject: [PATCH 355/619] Fix CI violation --- src/main/java/seedu/manager/parser/Parser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 952619b016..c90cb50c26 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -134,7 +134,7 @@ public class Parser { private static final String ITEM_REGEX = "(-m|-e)"; private static final String REMOVE_PARTICIPANT_REGEX = "(-p|-e)"; private static final String FIND_REGEX = "\\s*(-e|-p)\\s*"; - private static final String VIEW_REGEX = "(-e|-y)";; + private static final String VIEW_REGEX = "(-e|-y)"; private static final String MARK_EVENT_REGEX = "-e|-s"; private static final String MARK_PARTICIPANT_REGEX = "-p|-e|-s"; private static final String MARK_ITEM_REGEX = "-m|-e|-s"; From 4298c4aaa250d3d0b186564a11ffad6eb130a40d Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 1 Nov 2024 10:19:03 +0800 Subject: [PATCH 356/619] Update sequence diagrams for add and remove commands --- docs/DeveloperGuide.md | 3 ++ docs/diagrams/AddEventSequenceDiagram.puml | 25 ++---------- .../RemoveCommandSequenceDiagram.puml | 21 ++++++++++ docs/diagrams/RemoveEventSequenceDiagram.puml | 38 ++++++++++++------ docs/diagrams/RemoveParticipantFromEvent.puml | 30 ++++++++++++++ .../RemoveParticipantSequenceDiagram.puml | 37 +++++++++++------ docs/images/RemoveCommandSequenceDiagram.png | Bin 0 -> 15935 bytes docs/images/RemoveEventSequenceDiagram.png | Bin 18126 -> 25601 bytes .../RemoveParticipantEventSequenceDiagram.png | Bin 0 -> 29123 bytes .../RemoveParticipantSequenceDiagram.png | Bin 21419 -> 28850 bytes 10 files changed, 109 insertions(+), 45 deletions(-) create mode 100644 docs/diagrams/RemoveCommandSequenceDiagram.puml create mode 100644 docs/diagrams/RemoveParticipantFromEvent.puml create mode 100644 docs/images/RemoveCommandSequenceDiagram.png create mode 100644 docs/images/RemoveParticipantEventSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 0d598883d7..b18ae635c5 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -203,6 +203,9 @@ The interactions between components during the execution of the `remove` command **Remove Participant** + + +The interactions between components for the removing of `Item`s from `Event`s are similar to those for removing `Participant`s, and will not be depicted. ### View feature diff --git a/docs/diagrams/AddEventSequenceDiagram.puml b/docs/diagrams/AddEventSequenceDiagram.puml index 618e3db50e..3bc47b0f56 100644 --- a/docs/diagrams/AddEventSequenceDiagram.puml +++ b/docs/diagrams/AddEventSequenceDiagram.puml @@ -2,27 +2,10 @@ !include style.puml hide footbox -'Main -> Parser: add n/Meeting t/2023-11-10T14:00 v/Room 101 p/HIGH -'activate Parser -'Parser -> AddCommand: new AddCommand("Meeting", time, "Room 101", Priority.HIGH) -'activate AddCommand -'AddCommand -> EventList: addEvent("Meeting", time, "Room 101", Priority.HIGH) -'activate EventList -'EventList -> Event: new Event("Meeting", time, "Room 101", Priority.HIGH) -'activate Event -'Event --> EventList -'deactivate Event -'EventList --> AddCommand -'deactivate EventList -'AddCommand --> Parser -'deactivate AddCommand -'Parser --> Main -'deactivate Parser - - participant ":AddCommand" as command COMMAND_COLOUR - participant ":EventList" as eventList EVENT_COLOUR - participant ":Optional" as existing_event EVENT_COLOUR - participant "newEvent:Event" as event EVENT_COLOUR +participant ":AddCommand" as command COMMAND_COLOUR +participant ":EventList" as eventList EVENT_COLOUR +participant ":Optional" as existing_event EVENT_COLOUR +participant "newEvent:Event" as event EVENT_COLOUR group sd Add event to event list activate command COMMAND_COLOUR diff --git a/docs/diagrams/RemoveCommandSequenceDiagram.puml b/docs/diagrams/RemoveCommandSequenceDiagram.puml new file mode 100644 index 0000000000..0ac66cd943 --- /dev/null +++ b/docs/diagrams/RemoveCommandSequenceDiagram.puml @@ -0,0 +1,21 @@ +@startuml +!include style.puml +hide footbox + +participant ":Main" as main +participant ":RemoveCommand" as command COMMAND_COLOUR + +main -> command : execute() +activate command COMMAND_COLOUR + +alt participant name is not null + ref over command : Remove participant +else item name is not null + ref over command : Remove item +else else + ref over command : Remove event +end + +return + +@enduml \ No newline at end of file diff --git a/docs/diagrams/RemoveEventSequenceDiagram.puml b/docs/diagrams/RemoveEventSequenceDiagram.puml index b1f7abbd65..44f5090217 100644 --- a/docs/diagrams/RemoveEventSequenceDiagram.puml +++ b/docs/diagrams/RemoveEventSequenceDiagram.puml @@ -1,16 +1,30 @@ @startuml +!include style.puml +hide footbox -Main -> Parser: remove e/Meeting -activate Parser -Parser -> RemoveCommand: new RemoveCommand("Meeting") -activate RemoveCommand -RemoveCommand -> EventList: removeEvent("Meeting") -activate EventList -EventList --> RemoveCommand -deactivate EventList -RemoveCommand --> Parser -deactivate RemoveCommand -Parser --> Main -deactivate Parser +participant ":RemoveCommand" as command COMMAND_COLOUR +participant ":EventList" as eventList EVENT_COLOUR +participant "event:Event" as event EVENT_COLOUR + +group sd Remove event + activate command COMMAND_COLOUR + + command -> eventList : removeEvent(eventName : String) + activate eventList EVENT_COLOUR + loop for event in eventList + eventList -> event : getName() + activate event EVENT_COLOUR + return :String + + opt name of event equals eventName + eventList -> eventList : remove(event : Event) + activate eventList EVENT_COLOUR + destroy event + return + eventList --> command : true : boolean + end + end + return false : boolean +end @enduml \ No newline at end of file diff --git a/docs/diagrams/RemoveParticipantFromEvent.puml b/docs/diagrams/RemoveParticipantFromEvent.puml new file mode 100644 index 0000000000..5066a965db --- /dev/null +++ b/docs/diagrams/RemoveParticipantFromEvent.puml @@ -0,0 +1,30 @@ +@startuml +!include style.puml +hide footbox + +participant ":EventList" as eventList EVENT_COLOUR +participant "event:Event" as event EVENT_COLOUR +participant "participant:Participant" as participant EVENT_COLOUR + +group sd Remove participant from event + activate eventList EVENT_COLOUR + eventList -> event : removeParticipant(participantName : String) + activate event EVENT_COLOUR + + loop for participant in participantList + event -> participant : getName() + activate participant EVENT_COLOUR + + return :String + + opt name of participant equals participantName + event -> event : remove(participant : Participant) + activate event EVENT_COLOUR + destroy participant + return + event --> eventList : true : boolean + end + end + return false : boolean +end +@enduml \ No newline at end of file diff --git a/docs/diagrams/RemoveParticipantSequenceDiagram.puml b/docs/diagrams/RemoveParticipantSequenceDiagram.puml index 9224eea3e2..3ef1519520 100644 --- a/docs/diagrams/RemoveParticipantSequenceDiagram.puml +++ b/docs/diagrams/RemoveParticipantSequenceDiagram.puml @@ -1,16 +1,29 @@ @startuml +!include style.puml +hide footbox + +participant ":RemoveCommand" as command COMMAND_COLOUR +participant ":EventList" as eventList EVENT_COLOUR +participant "event:Event" as event EVENT_COLOUR + +group sd Remove participant + activate command COMMAND_COLOUR + command -> eventList : removeParticipantFromEvent(participantName : String, eventName : String) + activate eventList EVENT_COLOUR + + loop for event in eventList + eventList -> event : getName() + activate event EVENT_COLOUR + + return :String + + opt name of event equals eventName + ref over eventList, event : Remove participant from event + eventList --> command : :boolean + end + end + return false : boolean +end -Main -> Parser: remove p/John Doe e/Meeting -activate Parser -Parser -> RemoveCommand: new RemoveCommand("John Doe", "Meeting") -activate RemoveCommand -RemoveCommand -> EventList: removeParticipantFromEvent("John Doe", "Meeting") -activate EventList -EventList --> RemoveCommand -deactivate EventList -RemoveCommand --> Parser -deactivate RemoveCommand -Parser --> Main -deactivate Parser @enduml \ No newline at end of file diff --git a/docs/images/RemoveCommandSequenceDiagram.png b/docs/images/RemoveCommandSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..0083f19ef8e7e651fdb750cd2f2f30f9fd35bc1d GIT binary patch literal 15935 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 bU1GDI+>S*@&}f4vxzQA5Rb?ur%!B?9Kct`@ literal 0 HcmV?d00001 diff --git a/docs/images/RemoveEventSequenceDiagram.png b/docs/images/RemoveEventSequenceDiagram.png index df1c13745d2b0d9d8ced3bd82bd0a58cf7483cc6..951ec940eef25218c44005dfbf9e20c57a506b2b 100644 GIT binary patch literal 25601 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 VWcQ?mj{n6$qUf9GUD34*{x1or@X7!H literal 18126 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

    13sGI|?P_1r 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 WC$Wz^;Qyw$?x?1r#&b2x!2bsdSqPy3 literal 0 HcmV?d00001 diff --git a/docs/images/RemoveParticipantSequenceDiagram.png b/docs/images/RemoveParticipantSequenceDiagram.png index 238a145d31bd3c7b8af2a70887e662e5124020de..161afdefeedc134a0306be209c29176466a6a6e9 100644 GIT binary patch literal 28850 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 literal 21419 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%0A06|>n73JJlY{bqP*3%x=ktx*9}=$8h3lTy=O2+t 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 Date: Fri, 1 Nov 2024 13:15:30 +0800 Subject: [PATCH 357/619] correct the error --- text-ui-test/events.csv | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 text-ui-test/events.csv diff --git a/text-ui-test/events.csv b/text-ui-test/events.csv deleted file mode 100644 index 9b69bb1106..0000000000 --- a/text-ui-test/events.csv +++ /dev/null @@ -1,2 +0,0 @@ -dinner party,2024-10-10 15:00,Bob's House,LOW -anniversary celebration,2024-10-23 12:34,hotel,MEDIUM From 34cf5ec0c1228d33bd831f660fae4a5c52316a6d Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 1 Nov 2024 18:00:31 +0800 Subject: [PATCH 358/619] Rewrite remove feature section --- docs/DeveloperGuide.md | 68 ++++++++++++------ .../RemoveParticipantSequenceDiagram.puml | 18 +++-- docs/diagrams/ViewEventSequenceDiagram.puml | 12 ++-- docs/diagrams/ViewItemSequenceDiagram.puml | 14 ++-- .../ViewParticipantSequenceDiagram.puml | 14 ++-- .../RemoveParticipantSequenceDiagram.png | Bin 28850 -> 27118 bytes 6 files changed, 75 insertions(+), 51 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index b18ae635c5..ee15fbf300 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -172,40 +172,68 @@ The interactions between components during the execution of the `add` command ar ### Remove feature -The `remove` feature allows users to remove events/participants based on relevant flags. -It is implemented in the `RemoveCommand` class which extends the base `Command` class and parse through the command to retrieve information based off flags. +The `remove` feature allows users to remove `Event`s from the `EventList`, `Participant`s or `Item`s from an `Event`. +It is implemented in the `RemoveCommand` class which extends the base `Command` class, and in the `EventList`. -The above operation is implemented as `RemoveCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, +The feature has three operations, namely: + +1. `EventList#RemoveParticipantFromEvent()`, which removes a `Participant` from an `Event` in the `EventList`. +2. `EventList#RemoveItemFromEvent()`, which removes an `Item` from an `Event` in the `EventList`. +3. `EventList#RemoveEvent()`, which removes an `Event` from the `EventList`. + +These three operations are invoked from `RemoveCommand` through `RemoveCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, and is invoked when the latter operation is called. -The `RemoveCommand` handles two primary functions: +In `RemoveCommand#execute()`, one operation is selected based on the values stored in several members of the `RemoveCommand` instance, namely: -1. **Remove an Event:** When given the name of an event, it searches for and deletes it from the event list if it exists. -2. **Remove a Participant:** When provided with a participant’s name and the name of an event, it attempts to remove the specified participant from that event. +* `participantName`, the name of the `Participant` to be removed from the specified `Event`, +* `itemName`, the name of the `Item` to be removed from the specified `Event`, +* `eventName`, the name of the specified `Event`. -#### Feature Implementation +The operation selection logic is as follows: -Given below is an example usage scenario for the `remove` mechanism, and how it behaves at each step. +1. If `participantName` is not `null`, the specified `Participant` will be removed from the specified `Event`. +2. Otherwise, if `itemName` is not `null`, the specified `Participant` will be removed from the specified `Event`. +3. Otherwise, the specified `Event` will be removed from the `EventList`. -1. The user enters the command `remove` followed by `-e` or `-p` to specify removing an event or participant. -2. This step is determined by our `Parser` which parses through the user input to determine if it is adding a participant or event -3. Based on the parsed input, `RemoveComamnd` executes one of the following actions: - + **Remove Event:** Remove the specified event from `EventList` using the provided event name - + **Remove Participant:** Locates the event in `EventList` and deletes the specified participant -4. If the event or participant is not found, `RemoveCommand` sets a failure message. +This path selection logic is executed upon the invocation of `RemoveCommand#execute()`. -The interactions between components during the execution of the `remove` command are show in the **Sequence Diagram** below: +The interactions between components during the execution path selection in `RemoveCommand#execute()` are show in the **Sequence Diagram** below: -**Remove Event** + - +The `EventList#RemoveParticipantFromEvent()` operation works as follows: -**Remove Participant** +1. `EventList` gets the `Event` with the event name `eventName` from the list of `Event`s stored within it. +2. The selected `Event` compares the names of the `Participant`s in its list of `Participant`s with `participantName`. +3. If a `Participant` with a matching name is found, the `Participant` is removed from the `Participant` list of the `Event`. + +If an `Event` with a name matching `eventName` or a `Participant` with name matching `participantName` is not found, the operation returns `false` +to indicate that the operation was unsuccessful. Otherwise, the operation returns `true`. + +The interactions between components during the above operation are shown in the **Sequence Diagram** below: -The interactions between components for the removing of `Item`s from `Event`s are similar to those for removing `Participant`s, and will not be depicted. +The operation logic for `EventList#RemoveItemFromEvent()` is similar to that for `EventList#RemoveParticipantFromEvent()`, and will not be elaborated upon. + +The `EventList#RemoveParticipantFromEvent()` operation works as follows: + +1. `EventList` compares the names of the `Event`s in its list of `Event`s with `eventName`. +2. If an `Event` with a matching name is found, the `Event` is removed from the `Event` list of the `EventList`. + +The interactions between components during the above operation are shown in the **Sequence Diagram** below: + + + +The values of `participantName`, `itemName`, and `eventName` are set through the participant, item and event parameters in the `remove` command respectively. + +The `Parser` assigns the values of the parameters directly to their respective members, depending on the first command flag in the user input, as follows: + +* If the first command flag is the event flag (`-e`), the `Parser` only assigns values to `eventName`. +* If the first command flag is the participant flag (`-p`), the `Parser` assigns values to `eventName` and `participantName`. +* If the first command flag is the item flag (`-m`), the `Parser` assigns values to `eventName` and `itemName`. ### View feature @@ -236,8 +264,6 @@ The values of `eventName` and `isViewingParticipants` are set by the user throug The `Parser` assigns the event parameter directly to `eventName`. Conversely, it sets `isViewingParticipants` to true if the type parameter value is `participant`, to false if the type parameter value is `item`, and treats any other value entered as invalid. - - ### Mark/unmark feature The `mark/unmark` feature allows users to mark events as done or not done. The feature comprises `MarkEventCommand`, which diff --git a/docs/diagrams/RemoveParticipantSequenceDiagram.puml b/docs/diagrams/RemoveParticipantSequenceDiagram.puml index 3ef1519520..b12705c307 100644 --- a/docs/diagrams/RemoveParticipantSequenceDiagram.puml +++ b/docs/diagrams/RemoveParticipantSequenceDiagram.puml @@ -4,25 +4,23 @@ hide footbox participant ":RemoveCommand" as command COMMAND_COLOUR participant ":EventList" as eventList EVENT_COLOUR -participant "event:Event" as event EVENT_COLOUR group sd Remove participant activate command COMMAND_COLOUR command -> eventList : removeParticipantFromEvent(participantName : String, eventName : String) activate eventList EVENT_COLOUR - loop for event in eventList - eventList -> event : getName() - activate event EVENT_COLOUR + eventList -> eventList : getEventByName() + activate eventList EVENT_COLOUR - return :String + return event:Event - opt name of event equals eventName - ref over eventList, event : Remove participant from event - eventList --> command : :boolean - end + alt event not found + eventList --> command : false : boolean + else else + ref over eventList, event : Remove participant from event + eventList --> command : :boolean end - return false : boolean end diff --git a/docs/diagrams/ViewEventSequenceDiagram.puml b/docs/diagrams/ViewEventSequenceDiagram.puml index 406a1954f5..43004c2c51 100644 --- a/docs/diagrams/ViewEventSequenceDiagram.puml +++ b/docs/diagrams/ViewEventSequenceDiagram.puml @@ -3,20 +3,20 @@ hide footbox participant ":Main" as main -participant ":ViewCommand" as command -participant ":EventList" as eventList +participant ":ViewCommand" as command COMMAND_COLOUR +participant ":EventList" as eventList EVENT_COLOUR main -> command : execute() -activate command +activate command COMMAND_COLOUR command -> eventList : getEventByName(eventName : String) -activate eventList +activate eventList EVENT_COLOUR return eventToView : Event -alt eventToView == null +alt eventToView not found command --> main : Invalid event -else isViewingParticipants +else isViewingParticipants is true ref over command, eventList: view participants else else ref over command, eventList: view items diff --git a/docs/diagrams/ViewItemSequenceDiagram.puml b/docs/diagrams/ViewItemSequenceDiagram.puml index df9e4129ab..ac915a300a 100644 --- a/docs/diagrams/ViewItemSequenceDiagram.puml +++ b/docs/diagrams/ViewItemSequenceDiagram.puml @@ -2,23 +2,23 @@ !include style.puml hide footbox -participant ":ViewCommand" as command -participant "eventToView:Event" as event -participant "item:Item" as item +participant ":ViewCommand" as command COMMAND_COLOUR +participant "eventToView:Event" as event EVENT_COLOUR +participant "item:Item" as item EVENT_COLOUR group sd view items -activate command +activate command COMMAND_COLOUR command -> command : getItems(eventToView : Event) - activate command + activate command COMMAND_COLOUR command -> event : getItemsList() - activate event + activate event EVENT_COLOUR return items : ArrayList loop for item in items command -> item : toString() - activate item + activate item EVENT_COLOUR return :String end diff --git a/docs/diagrams/ViewParticipantSequenceDiagram.puml b/docs/diagrams/ViewParticipantSequenceDiagram.puml index cda722b02a..7bb37e9249 100644 --- a/docs/diagrams/ViewParticipantSequenceDiagram.puml +++ b/docs/diagrams/ViewParticipantSequenceDiagram.puml @@ -2,23 +2,23 @@ !include style.puml hide footbox -participant ":ViewCommand" as command -participant "eventToView:Event" as event -participant "participant:Participant" as participant +participant ":ViewCommand" as command COMMAND_COLOUR +participant "eventToView:Event" as event EVENT_COLOUR +participant "participant:Participant" as participant EVENT_COLOUR group sd view participants - activate command + activate command COMMAND_COLOUR command -> command : getParticipants(eventToView : Event) - activate command + activate command COMMAND_COLOUR command -> event : getParticipantsList() - activate event + activate event EVENT_COLOUR return participants : ArrayList loop for participant in participants command -> participant : toString() - activate participant + activate participant EVENT_COLOUR return :String end return :String diff --git a/docs/images/RemoveParticipantSequenceDiagram.png b/docs/images/RemoveParticipantSequenceDiagram.png index 161afdefeedc134a0306be209c29176466a6a6e9..0c1f803b28cafd0194ab6a8148c58fefd043498d 100644 GIT binary patch literal 27118 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 literal 28850 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 From 5a08539c78e0a2512343ce40dd452fbf39af74ab Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Fri, 1 Nov 2024 21:47:00 +0800 Subject: [PATCH 359/619] Update add feature section --- docs/DeveloperGuide.md | 92 +++++++++++------- docs/diagrams/AddCommandSequenceDiagram.puml | 12 +-- docs/diagrams/AddEventSequenceDiagram.puml | 19 ++-- .../AddParticipantEventSequenceDiagram.puml | 34 +++++++ .../AddParticipantSequenceDiagram.puml | 34 ++++--- docs/diagrams/RemoveEventSequenceDiagram.puml | 5 +- docs/diagrams/RemoveParticipantFromEvent.puml | 9 +- .../RemoveParticipantSequenceDiagram.puml | 4 +- docs/images/AddCommandSequenceDiagram.png | Bin 0 -> 15950 bytes docs/images/AddEventSequenceDiagram.png | Bin 33570 -> 31538 bytes .../AddParticipantEventSequenceDiagram.png | Bin 0 -> 34326 bytes docs/images/AddParticipantSequenceDiagram.png | Bin 29644 -> 24299 bytes docs/images/RemoveEventSequenceDiagram.png | Bin 25601 -> 29618 bytes docs/images/RemoveParticipantFromEvent.png | Bin 0 -> 31858 bytes .../RemoveParticipantSequenceDiagram.png | Bin 27118 -> 25606 bytes docs/images/ViewEventSequenceDiagram.png | Bin 22214 -> 22810 bytes docs/images/ViewItemSequenceDiagram.png | Bin 20749 -> 20535 bytes 17 files changed, 137 insertions(+), 72 deletions(-) create mode 100644 docs/diagrams/AddParticipantEventSequenceDiagram.puml create mode 100644 docs/images/AddCommandSequenceDiagram.png create mode 100644 docs/images/AddParticipantEventSequenceDiagram.png create mode 100644 docs/images/RemoveParticipantFromEvent.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index ee15fbf300..d85ac6923f 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -58,7 +58,7 @@ The `UI` does the following: -The `Storage` component comprises a Storage class, as shown in above **Class Diagram**. +The `Storage` component comprises a Storage class, as shown in the above **Component Diagram**. The `Storage` does the following: @@ -72,7 +72,7 @@ The `Command` component comprises multiple `XYZCommand` classes, which inherit f In each `XYZCommand` class, command execution is done through the `execute()` method, which is implemented from an abstract method in `Command`. After the command execution, `XYZCommand`'s output message is set depending on whether the execution was a success or a failure. -The `Command` component and its component classes are shown in the below **Class Diagram**: +The `Command` component and its component classes are shown in the below **Component Diagram**: @@ -138,37 +138,65 @@ The method stores the generated `outputMessage` in `this.message`, ready for dis ### Add feature -The `add` feature allow users to add events/participants based on relevant flags. -It is implemented in the `AddCommand` class which extends the base `Command` class and parse through the command to retrieve information based off flags. +The `add` feature allows users to remove `Event`s from the `EventList`, `Participant`s or `Item`s from an `Event`. +It is implemented in the `AddCommand` class which extends the base `Command` class, and in the `EventList`. -The above operation is implemented as `AddCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, +The feature has three operations, namely: + +1. `EventList#AddParticipantToEvent()`, which adds a `Participant` to an `Event` in the `EventList`. +2. `EventList#AddItemFromEvent()`, which adds an `Item` to an `Event` in the `EventList`. +3. `EventList#AddEvent()`, which adds an `Event` to the `EventList`. + +These three operations are invoked from `AddCommand` through `AddCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, and is invoked when the latter operation is called. -The `AddCommand` handles two primary functions: +In `AddCommand#execute()`, one operation is selected based on the values stored in several members of the `RemoveCommand` instance, namely: -1. **Add an Event:** When provided with event details, including name, time, venue and priority, it creates and stores a new event in the event list. -2. **Add a Participant:** When provided with participant information, including name, contact number, and email, it attempts to add the participant to an existing event. +* `participantName`, the name of the `Participant` to be added to the specified `Event`, +* `itemName`, the name of the `Item` to be added to the specified `Event`, +* `eventName`, the name of the specified `Event`. -#### Feature Implementation +The operation selection logic is as follows: -Given below is an example usage scenario for the `add` mechanism, and how it behaves at each step. +1. If `participantName` is not `null`, `EventList#AddParticipantToEvent()` will be invoked. +2. Otherwise, if `itemName` is not `null`, `EventList#AddItemToEvent()` will be invoked. +3. Otherwise, `EventList#AddEvent()` will be invoked. -1. The user enters the command `add` followed by `-e` or `-p` to indicate adding an event or participant. -2. This step is determined by our `Parser` which parses through the user input to determine if it is adding a participant or event -3. Based on the parsed input, `AddCommand` executes one of the following actions: - + **Add Event:** Creates a new event in `EventList` with the provided event details - + **Add Participant:** Locates the event in `EventList` and adds the participant to it -4. If a duplicate event is found, `DuplicateDataException` is thrown. +This operation selection logic is executed upon the invocation of `AddCommand#execute()`. -The interactions between components during the execution of the `add` command are show in the **Sequence Diagram** below: +The interactions between components during the operation selection in `AddCommand#execute()` are show in the **Sequence Diagram** below: -**Add Event** + - +The `EventList#AddParticipantToEvent()` operation works as follows: + +1. `EventList` gets the `Event` with the event name `eventName` from the list of `Event`s stored within it. +2. In the selected `Event`, `Event` checks if there is a `Participant` with the name in `participantName` in the list of `Participant`s. If there is one, it throws a `DuplicateDataException`. +3. Otherwise, `Event` creates a new `Participant` object with the parameters passed to it, and adds it to the `Participant` list. -**Add Participant** +If an `Event` with a name matching `eventName` is not found, the operation returns `false` to indicate that the operation was unsuccessful. Otherwise, the operation returns `true`. + +The interactions between components during the execution of the `EventList#AddParticipantToEvent()` operation are show in the **Sequence Diagram** below: + + +The operation logic for `EventList#AddItemToEvent()` is similar to that for `EventList#AddParticipantToEvent()`, and will not be elaborated upon. + +The interactions between components during the execution of the `EventList#AddEvent()` operation are show in the **Sequence Diagram** below: + +1. `EventList` checks if there is a `Event` with the name in `eventName` in its list of `Events`s. If there is one, it throws a `DuplicateDataException`. +3. Otherwise, `EventList` creates a new `Event` object with the parameters passed to it, and adds it to the `Event` list. + + + +Upon the execution of the above operations, the output message is set based on the operation's return value, to indicate if the removal was successful. + +The `Parser` assigns the values of the parameters directly to their respective members, depending on the first command flag in the user input, as follows: + +* If the first command flag is the event flag (`-e`), the `Parser` only assigns values to `eventName`. +* If the first command flag is the participant flag (`-p`), the `Parser` assigns values to `eventName` and `participantName`. +* If the first command flag is the item flag (`-m`), the `Parser` assigns values to `eventName` and `itemName`. ### Remove feature @@ -190,15 +218,11 @@ In `RemoveCommand#execute()`, one operation is selected based on the values stor * `itemName`, the name of the `Item` to be removed from the specified `Event`, * `eventName`, the name of the specified `Event`. -The operation selection logic is as follows: - -1. If `participantName` is not `null`, the specified `Participant` will be removed from the specified `Event`. -2. Otherwise, if `itemName` is not `null`, the specified `Participant` will be removed from the specified `Event`. -3. Otherwise, the specified `Event` will be removed from the `EventList`. - -This path selection logic is executed upon the invocation of `RemoveCommand#execute()`. +The operation selection logic is similar to that for `AddCommand#execute()`, with `EventList#RemoveParticipantFromEvent()`, +`EventList#RemoveItemFromEvent()`, and `EventList#RemoveEvent()` in place of `EventList#AddParticipantToEvent()`, +`EventList#AddItemToEvent()`, and `EventList#AddEvent()`. For more details, refer to _Add feature_. -The interactions between components during the execution path selection in `RemoveCommand#execute()` are show in the **Sequence Diagram** below: +The interactions between components during the operation selection in `RemoveCommand#execute()` are show in the **Sequence Diagram** below: @@ -218,22 +242,22 @@ The interactions between components during the above operation are shown in the The operation logic for `EventList#RemoveItemFromEvent()` is similar to that for `EventList#RemoveParticipantFromEvent()`, and will not be elaborated upon. -The `EventList#RemoveParticipantFromEvent()` operation works as follows: +The `EventList#RemoveEvent()` operation works as follows: 1. `EventList` compares the names of the `Event`s in its list of `Event`s with `eventName`. 2. If an `Event` with a matching name is found, the `Event` is removed from the `Event` list of the `EventList`. +If an `Event` with a name matching `eventName` is not found, the operation returns `false` to indicate that the operation was unsuccessful. Otherwise, the operation returns `true`. + The interactions between components during the above operation are shown in the **Sequence Diagram** below: -The values of `participantName`, `itemName`, and `eventName` are set through the participant, item and event parameters in the `remove` command respectively. +Upon the execution of the above operations, the output message is set based on the operation's return value, to indicate if the removal was successful. -The `Parser` assigns the values of the parameters directly to their respective members, depending on the first command flag in the user input, as follows: +The values of `participantName`, `itemName`, and `eventName` are set through the participant, item and event parameters in the `remove` command respectively. -* If the first command flag is the event flag (`-e`), the `Parser` only assigns values to `eventName`. -* If the first command flag is the participant flag (`-p`), the `Parser` assigns values to `eventName` and `participantName`. -* If the first command flag is the item flag (`-m`), the `Parser` assigns values to `eventName` and `itemName`. +The `Parser` assigns the values of the parameters directly to their respective members, depending on the first command flag in the user input in the same way as for the `add` command. ### View feature diff --git a/docs/diagrams/AddCommandSequenceDiagram.puml b/docs/diagrams/AddCommandSequenceDiagram.puml index 2011ff6ce6..e880b3c99b 100644 --- a/docs/diagrams/AddCommandSequenceDiagram.puml +++ b/docs/diagrams/AddCommandSequenceDiagram.puml @@ -4,16 +4,16 @@ hide footbox participant ":Main" as main participant ":AddCommand" as command COMMAND_COLOUR -participant ":EventList" as eventList EVENT_COLOUR main -> command : execute() activate command COMMAND_COLOUR -alt participantName == null - ref over command, eventList: Add event to event list -else participantName != null - ref over command, eventList: Add participant to event list - +alt participantName != null + ref over command : Add participant +else itemName != null + ref over command : Add item +else else + ref over command : Add event end return diff --git a/docs/diagrams/AddEventSequenceDiagram.puml b/docs/diagrams/AddEventSequenceDiagram.puml index 3bc47b0f56..21ae79ec68 100644 --- a/docs/diagrams/AddEventSequenceDiagram.puml +++ b/docs/diagrams/AddEventSequenceDiagram.puml @@ -4,10 +4,10 @@ hide footbox participant ":AddCommand" as command COMMAND_COLOUR participant ":EventList" as eventList EVENT_COLOUR -participant ":Optional" as existing_event EVENT_COLOUR +participant "eventList:ArrayList" as list EVENT_COLOUR participant "newEvent:Event" as event EVENT_COLOUR -group sd Add event to event list +group sd Add event activate command COMMAND_COLOUR command -> eventList : addEvent(eventName, time, venue, priority) activate eventList EVENT_COLOUR @@ -15,16 +15,11 @@ group sd Add event to event list eventList -> eventList : getEventByName(eventName) activate eventList EVENT_COLOUR - return :Optional + return :Event - eventList -> existing_event : isPresent() - activate existing_event EVENT_COLOUR - - return :boolean - - alt isPresent() == true + alt event already present eventList --> command : :DuplicateDataException - else isPresent() == false + else else create event eventList -> event : Event(eventName, venue, time, priority) @@ -32,8 +27,8 @@ group sd Add event to event list return - eventList -> eventList : add(newEvent : Event) - activate eventList EVENT_COLOUR + eventList -> list : add(newEvent : Event) + activate list EVENT_COLOUR return diff --git a/docs/diagrams/AddParticipantEventSequenceDiagram.puml b/docs/diagrams/AddParticipantEventSequenceDiagram.puml new file mode 100644 index 0000000000..ff9f4946db --- /dev/null +++ b/docs/diagrams/AddParticipantEventSequenceDiagram.puml @@ -0,0 +1,34 @@ +@startuml +!include style.puml +hide footbox + +participant ":EventList" as eventList EVENT_COLOUR +participant ":Event" as event EVENT_COLOUR +participant "participant:Participant" as participant EVENT_COLOUR +participant "participantList:ArrayList" as participantList EVENT_COLOUR + +group sd Add participant to event + activate eventList EVENT_COLOUR + + eventList -> event : addParticipant(name, number, email) + activate event EVENT_COLOUR + + event -> event : getParticipantByName(participantName) + activate event EVENT_COLOUR + return :Event + + alt participant already present + event --> eventList:DuplicateDataException + else else + event -> participant : Participant(name, number, email) + activate participant EVENT_COLOUR + return participant : Participant + + event -> participantList : add(participant:Participant) + activate participantList EVENT_COLOUR + return + end + + return +end +@enduml \ No newline at end of file diff --git a/docs/diagrams/AddParticipantSequenceDiagram.puml b/docs/diagrams/AddParticipantSequenceDiagram.puml index 24c975d042..f80d3d5771 100644 --- a/docs/diagrams/AddParticipantSequenceDiagram.puml +++ b/docs/diagrams/AddParticipantSequenceDiagram.puml @@ -1,16 +1,26 @@ @startuml +!include style.puml +hide footbox -Main -> Parser: add p/John Doe n/Meeting e/johndoe@example.com p/12345678 -activate Parser -Parser -> AddCommand: new AddCommand("John Doe", "12345678", "johndoe@example.com", "Meeting") -activate AddCommand -AddCommand -> EventList: addParticipantToEvent("John Doe", "12345678", "johndoe@example.com", "Meeting") -activate EventList -EventList --> AddCommand -deactivate EventList -AddCommand --> Parser -deactivate AddCommand -Parser --> Main -deactivate Parser +participant ":AddCommand" as command COMMAND_COLOUR +participant ":EventList" as eventList EVENT_COLOUR +group sd Add participant + activate command COMMAND_COLOUR + command -> eventList : addParticipantToEvent(participantName,\n participantNumber, participantEmail, eventName) + activate eventList EVENT_COLOUR + + eventList -> eventList : getEventByName(eventName) + activate eventList EVENT_COLOUR + + return event:Event + + alt event not found + eventList --> command : Invalid event + else else + ref over eventList : Add participant to event + end + + return +end @enduml \ No newline at end of file diff --git a/docs/diagrams/RemoveEventSequenceDiagram.puml b/docs/diagrams/RemoveEventSequenceDiagram.puml index 44f5090217..9cd26d3185 100644 --- a/docs/diagrams/RemoveEventSequenceDiagram.puml +++ b/docs/diagrams/RemoveEventSequenceDiagram.puml @@ -4,6 +4,7 @@ hide footbox participant ":RemoveCommand" as command COMMAND_COLOUR participant ":EventList" as eventList EVENT_COLOUR +participant "eventList:ArrayList" as list EVENT_COLOUR participant "event:Event" as event EVENT_COLOUR group sd Remove event @@ -17,8 +18,8 @@ group sd Remove event return :String opt name of event equals eventName - eventList -> eventList : remove(event : Event) - activate eventList EVENT_COLOUR + eventList -> list : remove(event : Event) + activate list EVENT_COLOUR destroy event return eventList --> command : true : boolean diff --git a/docs/diagrams/RemoveParticipantFromEvent.puml b/docs/diagrams/RemoveParticipantFromEvent.puml index 5066a965db..8f419b3a17 100644 --- a/docs/diagrams/RemoveParticipantFromEvent.puml +++ b/docs/diagrams/RemoveParticipantFromEvent.puml @@ -4,6 +4,7 @@ hide footbox participant ":EventList" as eventList EVENT_COLOUR participant "event:Event" as event EVENT_COLOUR +participant "participantList:ArrayList" as participantList EVENT_COLOUR participant "participant:Participant" as participant EVENT_COLOUR group sd Remove participant from event @@ -18,13 +19,13 @@ group sd Remove participant from event return :String opt name of participant equals participantName - event -> event : remove(participant : Participant) - activate event EVENT_COLOUR + event -> participantList : remove(participant : Participant) + activate participantList EVENT_COLOUR destroy participant return - event --> eventList : true : boolean + event --> eventList : :boolean end end - return false : boolean + return :boolean end @enduml \ No newline at end of file diff --git a/docs/diagrams/RemoveParticipantSequenceDiagram.puml b/docs/diagrams/RemoveParticipantSequenceDiagram.puml index b12705c307..b025f98aac 100644 --- a/docs/diagrams/RemoveParticipantSequenceDiagram.puml +++ b/docs/diagrams/RemoveParticipantSequenceDiagram.puml @@ -16,9 +16,9 @@ group sd Remove participant return event:Event alt event not found - eventList --> command : false : boolean + eventList --> command : :boolean else else - ref over eventList, event : Remove participant from event + ref over eventList : Remove participant from event eventList --> command : :boolean end end diff --git a/docs/images/AddCommandSequenceDiagram.png b/docs/images/AddCommandSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..02a43801d36a27e27b0957394305c0332094425a GIT binary patch literal 15950 zcmbWeWmr_<*DtJqbdGe#&`5}s5|T22ba#VvcStid14@Xr3P>sv(j6itB1nfw$IyLl z^q`!OY3S)6s$3!r9Slu%8Yb zBIKE-uE#$=zjYfN$0uth`KbyDA7SLqKBrt`>utvH-6}Xb+5<*TIq~wh+k@sQ+aBK> zh0b;y1sM58Y!~}zGrd*hU5Ij^}LvV(byQ`4V zD^=O0PmI$iK+L>ywaYG~{0%5NaKWJbN^GH*y#|(rt@N5uDzE9>b$0<~hdd7ZTtT-Ih z-f={OtP7I$h$0_UXFd9!irU zyMRT*cab#@gUd4oT|>1H)<6e>f+KpnV^`1m?j)zjV$J#%#jjzQ8avL*VIQ-dTMac) zcBl<9G{V1x`iM6L5zNPNK6~&xFYQ$Ditym`S9c2I2YES;xElT8`(Zh*`5JuvI-u9w{vymd=d9VR2G>0`Y08bg=($#qY%xnxrQ z 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 diff --git a/docs/images/AddParticipantEventSequenceDiagram.png b/docs/images/AddParticipantEventSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..46df161264df05f6ceeb648942447eea9f6f8959 GIT binary patch literal 34326 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

    c@fI`yy?xNu5|kX;mvkTu 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 z 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 literal 25601 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 VWcQ?mj{n6$qUf9GUD34*{x1or@X7!H diff --git a/docs/images/RemoveParticipantFromEvent.png b/docs/images/RemoveParticipantFromEvent.png new file mode 100644 index 0000000000000000000000000000000000000000..a7c392c1c1b1fd51a20c7cb00a7749cd0cdd90c6 GIT binary patch literal 31858 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 XoSR|j+kG8BM$*;ZqLsSwpx^%h9==&B literal 0 HcmV?d00001 diff --git a/docs/images/RemoveParticipantSequenceDiagram.png b/docs/images/RemoveParticipantSequenceDiagram.png index 0c1f803b28cafd0194ab6a8148c58fefd043498d..0268f1bf98936d901cb239467721f2a418dae51c 100644 GIT binary patch literal 25606 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 diff --git a/docs/images/ViewEventSequenceDiagram.png b/docs/images/ViewEventSequenceDiagram.png index 9292f2cb88455a0b2c9fa31162a47fedb4bdcba4..bcb705a027ba0272f17e87aaae010032a384572e 100644 GIT binary patch literal 22810 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�HMfUqJ%;qGSZH8i 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

    1baa83(uMK{9iDw=Z81diVBIo^+Fl)z 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 diff --git a/docs/images/ViewItemSequenceDiagram.png b/docs/images/ViewItemSequenceDiagram.png index 56b84ef9b812a6be2d45deac09a5748530c79d47..d579aec42f0255764ab8f3c0a7eac59790c0a4d6 100644 GIT binary patch literal 20535 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 literal 20749 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

    oWVtX!>05;VtT(xfUn0VEMLwbM*$ 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 Date: Fri, 1 Nov 2024 22:19:42 +0800 Subject: [PATCH 360/619] Fix developer guide --- docs/DeveloperGuide.md | 4 ++-- ...sDiagram.puml => EventComponentDiagram.puml} | 1 + docs/images/EventComponentDiagram.png | Bin 0 -> 19427 bytes 3 files changed, 3 insertions(+), 2 deletions(-) rename docs/diagrams/{EventClassDiagram.puml => EventComponentDiagram.puml} (95%) create mode 100644 docs/images/EventComponentDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 1069736676..2bfc094649 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -76,9 +76,9 @@ Each `Event` is composed of the following: * A list of `Participant`s, each representing a participant at the event. * A list of `Items`s, each representing an item for the event. -The `Event` component and its component classes are shown in the below **Class Diagram**: +The component and its dependencies are shown in the below **Component Diagram**: - + ## Implementation diff --git a/docs/diagrams/EventClassDiagram.puml b/docs/diagrams/EventComponentDiagram.puml similarity index 95% rename from docs/diagrams/EventClassDiagram.puml rename to docs/diagrams/EventComponentDiagram.puml index e487c31de7..fd7b0a3edc 100644 --- a/docs/diagrams/EventClassDiagram.puml +++ b/docs/diagrams/EventComponentDiagram.puml @@ -15,6 +15,7 @@ rectangle Storage STORAGE_COLOUR EventList *--> "*" Event : event Event *--> "*" Participant : participant Event *--> "*" Item : item +Participant --|> Item Main .> EventList EventList <. Storage diff --git a/docs/images/EventComponentDiagram.png b/docs/images/EventComponentDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..7577d59a330c443af44374e3b66235a8cceddc68 GIT binary patch literal 19427 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 Date: Fri, 1 Nov 2024 23:52:48 +0800 Subject: [PATCH 361/619] Add section on Parser to Developer Guide --- docs/DeveloperGuide.md | 60 ++++++++++++++++++ docs/diagrams/AddCommandSequenceDiagram.puml | 4 +- docs/diagrams/AddEventSequenceDiagram.puml | 6 +- .../AddParticipantEventSequenceDiagram.puml | 8 +-- .../AddParticipantSequenceDiagram.puml | 4 +- .../CommandParsingSequenceDiagram.puml | 29 +++++++++ docs/diagrams/CommandSequenceDiagram.puml | 4 +- docs/diagrams/MarkEventSequenceDiagram.puml | 4 +- docs/diagrams/ParserClassDiagram.puml | 22 +++++++ docs/diagrams/ParserObjectDiagram0.puml | 8 +++ docs/diagrams/ParserObjectDiagram1.puml | 9 +++ docs/diagrams/RemoveEventSequenceDiagram.puml | 4 +- docs/diagrams/RemoveParticipantFromEvent.puml | 4 +- .../RemoveParticipantSequenceDiagram.puml | 2 +- docs/diagrams/UiClassDiagram.puml | 15 ++++- docs/diagrams/ViewEventSequenceDiagram.puml | 2 +- docs/diagrams/ViewItemSequenceDiagram.puml | 2 +- .../ViewParticipantSequenceDiagram.puml | 2 +- docs/images/AddEventSequenceDiagram.png | Bin 31538 -> 31247 bytes .../AddParticipantEventSequenceDiagram.png | Bin 34326 -> 33823 bytes docs/images/AddParticipantSequenceDiagram.png | Bin 24299 -> 22156 bytes docs/images/CommandParsingSequenceDiagram.png | Bin 0 -> 18312 bytes docs/images/ParserClassDiagram.png | Bin 0 -> 24512 bytes docs/images/ParserObjectDiagram0.png | Bin 0 -> 2284 bytes docs/images/ParserObjectDiagram1.png | Bin 0 -> 4106 bytes docs/images/RemoveParticipantFromEvent.png | Bin 31858 -> 29540 bytes .../RemoveParticipantSequenceDiagram.png | Bin 25606 -> 23315 bytes docs/images/UiClassDiagram.png | Bin 3975 -> 13827 bytes docs/images/ViewEventSequenceDiagram.png | Bin 22810 -> 21996 bytes docs/images/ViewItemSequenceDiagram.png | Bin 20535 -> 19249 bytes .../images/ViewParticipantSequenceDiagram.png | Bin 24336 -> 23580 bytes .../java/seedu/manager/parser/Parser.java | 1 - 32 files changed, 163 insertions(+), 27 deletions(-) create mode 100644 docs/diagrams/CommandParsingSequenceDiagram.puml create mode 100644 docs/diagrams/ParserClassDiagram.puml create mode 100644 docs/diagrams/ParserObjectDiagram0.puml create mode 100644 docs/diagrams/ParserObjectDiagram1.puml create mode 100644 docs/images/CommandParsingSequenceDiagram.png create mode 100644 docs/images/ParserClassDiagram.png create mode 100644 docs/images/ParserObjectDiagram0.png create mode 100644 docs/images/ParserObjectDiagram1.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d85ac6923f..f0e0706278 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -65,6 +65,29 @@ The `Storage` does the following: * Load events and participants information from a text file and save it to `EventList` list. * Save events from `EventList` list to a text file +### Parser component + + + +The `Parser` component comprises a `Parser` class, as shown in the above **Class Diagram**. + +The `Parser` class takes in a user input string, and constructs an `XYZCommand` object with fields parsed from the input. + +The logic of the `Parser` component is illustrated in the following use case: + +1. Upon receiving a user command input, `Main` constructs a new `Parser`. This state is represented in the following **Object Diagram**: + + + +2. `Main` passes the user command input to `Parser`, which parses the input and constructs an `XYZCommand` object, which is returned to `Main`. +The `Parser` instance is no longer referenced. The current state is as shown in the **Object Diagram** below: + + + +The interactions between `Parser` and the other components in the above procedure is shown in the sequence diagram in the _Command component_ section. + +Further details regarding command parsing can be found under _Command parsing_ in _Implementation_. + ### Command component The `Command` component comprises multiple `XYZCommand` classes, which inherit from the abstract `Command` parent class. @@ -106,6 +129,43 @@ The `Event` component does the following: This section describes some noteworthy details on how certain features are implemented. +### Command parsing ### + +The user command input for the program is in the following format: + +* `COMMAND_WORD FLAG PARAMETER FLAG_2 PARAMETER_2 ...` + +where `COMMAND_WORD` determines the command type, `FLAG` is a command flag demarcating a parameter, and `PARAMETER` is a parameter value. + +The above input is parsed into `Command`s by the `Parser` by the `Parser#parseCommand` operation, which, based upon the value of `COMMAND_WORD`, does the following: + +* If the command does not take in any parameters, the `Parser` constructs the corresponding `XYZCommandObject`. +* Otherwise, the `Parser` invokes a `Parser#parseXYZCommand` operation. + +The `Parser#parseXYZCommand` operation then does the following: +* If `XYZCommand` has multiple possible operations, the `Parser`, based on the value of the first command flag, constructs the +`XYZCommand` object for one of these operations. An example from `parseAddCommand` (where `commandFlag` is the first flag) is shown in the code snippet below: +``` +switch (commandFlag) { + case EVENT_FLAG: + return getAddEventCommand(input); + case PARTICIPANT_FLAG: + return getAddParticipantCommand(input); + case ITEM_FLAG: + return getAddItemCommand(input); + default: + logger.log(WARNING, "Invalid command format"); + throw new InvalidCommandException(INVALID_ADD_MESSAGE); + } +``` + +* Otherwise, the `Parser` parses the user command input based on the values of the `FLAG`s in the input. +* If any of the `FLAG`s in the user command input are not present or invalid, the `Parser` throws an `InvalidCommandException`. + +The interactions between classes for the parsing of a command with parameters is shown in the following **Sequence Diagram**: + + + ### List feature[TBD] The `list` feature allows users to view all scheduled events in the system. diff --git a/docs/diagrams/AddCommandSequenceDiagram.puml b/docs/diagrams/AddCommandSequenceDiagram.puml index e880b3c99b..6f0b193539 100644 --- a/docs/diagrams/AddCommandSequenceDiagram.puml +++ b/docs/diagrams/AddCommandSequenceDiagram.puml @@ -8,9 +8,9 @@ participant ":AddCommand" as command COMMAND_COLOUR main -> command : execute() activate command COMMAND_COLOUR -alt participantName != null +alt participantName is not null ref over command : Add participant -else itemName != null +else itemName is not null ref over command : Add item else else ref over command : Add event diff --git a/docs/diagrams/AddEventSequenceDiagram.puml b/docs/diagrams/AddEventSequenceDiagram.puml index 21ae79ec68..8efc1a1ac9 100644 --- a/docs/diagrams/AddEventSequenceDiagram.puml +++ b/docs/diagrams/AddEventSequenceDiagram.puml @@ -9,7 +9,7 @@ participant "newEvent:Event" as event EVENT_COLOUR group sd Add event activate command COMMAND_COLOUR - command -> eventList : addEvent(eventName, time, venue, priority) + command -> eventList : addEvent(String, LocalDateTime, String, Priority) activate eventList EVENT_COLOUR eventList -> eventList : getEventByName(eventName) @@ -22,12 +22,12 @@ group sd Add event else else create event - eventList -> event : Event(eventName, venue, time, priority) + eventList -> event : Event(create xyzCommand) activate event EVENT_COLOUR return - eventList -> list : add(newEvent : Event) + eventList -> list : add(Event) activate list EVENT_COLOUR return diff --git a/docs/diagrams/AddParticipantEventSequenceDiagram.puml b/docs/diagrams/AddParticipantEventSequenceDiagram.puml index ff9f4946db..ab3c1d61d9 100644 --- a/docs/diagrams/AddParticipantEventSequenceDiagram.puml +++ b/docs/diagrams/AddParticipantEventSequenceDiagram.puml @@ -10,21 +10,21 @@ participant "participantList:ArrayList" as participantList EVENT_CO group sd Add participant to event activate eventList EVENT_COLOUR - eventList -> event : addParticipant(name, number, email) + eventList -> event : addParticipant(String, String, String) activate event EVENT_COLOUR - event -> event : getParticipantByName(participantName) + event -> event : getParticipantByName(String) activate event EVENT_COLOUR return :Event alt participant already present event --> eventList:DuplicateDataException else else - event -> participant : Participant(name, number, email) + event -> participant : Participant(String, String, String) activate participant EVENT_COLOUR return participant : Participant - event -> participantList : add(participant:Participant) + event -> participantList : add(Participant) activate participantList EVENT_COLOUR return end diff --git a/docs/diagrams/AddParticipantSequenceDiagram.puml b/docs/diagrams/AddParticipantSequenceDiagram.puml index f80d3d5771..ad824d15c9 100644 --- a/docs/diagrams/AddParticipantSequenceDiagram.puml +++ b/docs/diagrams/AddParticipantSequenceDiagram.puml @@ -7,10 +7,10 @@ participant ":EventList" as eventList EVENT_COLOUR group sd Add participant activate command COMMAND_COLOUR - command -> eventList : addParticipantToEvent(participantName,\n participantNumber, participantEmail, eventName) + command -> eventList : addParticipantToEvent(String, String, String, String) activate eventList EVENT_COLOUR - eventList -> eventList : getEventByName(eventName) + eventList -> eventList : getEventByName(String) activate eventList EVENT_COLOUR return event:Event diff --git a/docs/diagrams/CommandParsingSequenceDiagram.puml b/docs/diagrams/CommandParsingSequenceDiagram.puml new file mode 100644 index 0000000000..1390eaad63 --- /dev/null +++ b/docs/diagrams/CommandParsingSequenceDiagram.puml @@ -0,0 +1,29 @@ +@startuml +!include style.puml +hide footbox + +participant ":Main" as main +participant ":Parser" as parser PARSER_COLOUR +participant ":XYZCommand" as xyzCommand COMMAND_COLOUR + +create parser +main -> parser : Parser() +activate parser PARSER_COLOUR +return + +main -> parser : parseCommand(String) +activate parser PARSER_COLOUR + +parser -> parser : parseXYZCommand(String, String[]) +activate parser PARSER_COLOUR + +create xyzCommand +parser -> xyzCommand : XYZCommand(...) +activate xyzCommand COMMAND_COLOUR +return :XYZCommand +return + +parser --> main : command :Command +deactivate parser + +@enduml \ No newline at end of file diff --git a/docs/diagrams/CommandSequenceDiagram.puml b/docs/diagrams/CommandSequenceDiagram.puml index 7d8c20b0a8..86237a3522 100644 --- a/docs/diagrams/CommandSequenceDiagram.puml +++ b/docs/diagrams/CommandSequenceDiagram.puml @@ -24,7 +24,7 @@ deactivate xyzCommand parser --> main : command : Command deactivate parser -main -> xyzCommand : setdata(events) +main -> xyzCommand : setData(EventList) activate xyzCommand COMMAND_COLOUR xyzCommand --> main deactivate xyzCommand @@ -34,7 +34,7 @@ activate xyzCommand COMMAND_COLOUR xyzCommand --> main deactivate xyzCommand -main -> ui : showOutputToUser(command) +main -> ui : showOutputToUser(Command) activate ui UI_COLOUR ui -> xyzCommand : getMessage() diff --git a/docs/diagrams/MarkEventSequenceDiagram.puml b/docs/diagrams/MarkEventSequenceDiagram.puml index aad5384fd3..11f985106b 100644 --- a/docs/diagrams/MarkEventSequenceDiagram.puml +++ b/docs/diagrams/MarkEventSequenceDiagram.puml @@ -9,13 +9,13 @@ participant ":Event" as event EVENT_COLOUR main -> markCommand : execute() activate markCommand -markCommand -> eventList : getEventByName(eventName : String) +markCommand -> eventList : getEventByName(String) activate eventList eventList --> markCommand : eventToMark : Event deactivate eventList -markCommand -> event : setDone(toMark : boolean) +markCommand -> event : setDone(boolean) activate event event --> markCommand diff --git a/docs/diagrams/ParserClassDiagram.puml b/docs/diagrams/ParserClassDiagram.puml new file mode 100644 index 0000000000..ec283a5e56 --- /dev/null +++ b/docs/diagrams/ParserClassDiagram.puml @@ -0,0 +1,22 @@ +@startuml +!include style.puml + +hide circle +skinparam ClassAttributeIconSize 0 + +class Parser { + +parseCommand(command : String) : Command + +parseAddCommand(input : String, commandParts : String) : Command + +parseRemoveCommand(input : String, commandParts : String) : Command + +parseEditCommand(input : String, commandParts : String) : Command + +parseFilterCommand(input : String, commandParts : String) : Command + +parseFindCommand(input : String, commandParts : String) : Command + +parseMarkCommand(input : String, commandParts : String) : Command + +parseRemoveCommand(input : String, commandParts : String) : Command + +parseSortCommand(input : String, commandParts : String) : Command +} + +Main ..> Parser +Parser ..> Command + +@enduml \ No newline at end of file diff --git a/docs/diagrams/ParserObjectDiagram0.puml b/docs/diagrams/ParserObjectDiagram0.puml new file mode 100644 index 0000000000..1b9db05598 --- /dev/null +++ b/docs/diagrams/ParserObjectDiagram0.puml @@ -0,0 +1,8 @@ +@startuml + +rectangle ":Main" as main +rectangle ":Parser" as parser + +parser <.. main + +@enduml \ No newline at end of file diff --git a/docs/diagrams/ParserObjectDiagram1.puml b/docs/diagrams/ParserObjectDiagram1.puml new file mode 100644 index 0000000000..892bc3a648 --- /dev/null +++ b/docs/diagrams/ParserObjectDiagram1.puml @@ -0,0 +1,9 @@ +@startuml + +rectangle ":Main" as main +rectangle ":Parser" as parser +rectangle ":XYZCommand" as command + +command <.. main + +@enduml \ No newline at end of file diff --git a/docs/diagrams/RemoveEventSequenceDiagram.puml b/docs/diagrams/RemoveEventSequenceDiagram.puml index 9cd26d3185..c551c768d3 100644 --- a/docs/diagrams/RemoveEventSequenceDiagram.puml +++ b/docs/diagrams/RemoveEventSequenceDiagram.puml @@ -10,7 +10,7 @@ participant "event:Event" as event EVENT_COLOUR group sd Remove event activate command COMMAND_COLOUR - command -> eventList : removeEvent(eventName : String) + command -> eventList : removeEvent(String) activate eventList EVENT_COLOUR loop for event in eventList eventList -> event : getName() @@ -18,7 +18,7 @@ group sd Remove event return :String opt name of event equals eventName - eventList -> list : remove(event : Event) + eventList -> list : remove(Event) activate list EVENT_COLOUR destroy event return diff --git a/docs/diagrams/RemoveParticipantFromEvent.puml b/docs/diagrams/RemoveParticipantFromEvent.puml index 8f419b3a17..25d2cdfe5c 100644 --- a/docs/diagrams/RemoveParticipantFromEvent.puml +++ b/docs/diagrams/RemoveParticipantFromEvent.puml @@ -9,7 +9,7 @@ participant "participant:Participant" as participant EVENT_COLOUR group sd Remove participant from event activate eventList EVENT_COLOUR - eventList -> event : removeParticipant(participantName : String) + eventList -> event : removeParticipant(String) activate event EVENT_COLOUR loop for participant in participantList @@ -19,7 +19,7 @@ group sd Remove participant from event return :String opt name of participant equals participantName - event -> participantList : remove(participant : Participant) + event -> participantList : remove(Participant) activate participantList EVENT_COLOUR destroy participant return diff --git a/docs/diagrams/RemoveParticipantSequenceDiagram.puml b/docs/diagrams/RemoveParticipantSequenceDiagram.puml index b025f98aac..69e2525d5f 100644 --- a/docs/diagrams/RemoveParticipantSequenceDiagram.puml +++ b/docs/diagrams/RemoveParticipantSequenceDiagram.puml @@ -7,7 +7,7 @@ participant ":EventList" as eventList EVENT_COLOUR group sd Remove participant activate command COMMAND_COLOUR - command -> eventList : removeParticipantFromEvent(participantName : String, eventName : String) + command -> eventList : removeParticipantFromEvent(String, String) activate eventList EVENT_COLOUR eventList -> eventList : getEventByName() diff --git a/docs/diagrams/UiClassDiagram.puml b/docs/diagrams/UiClassDiagram.puml index d800333044..859abb2cb7 100644 --- a/docs/diagrams/UiClassDiagram.puml +++ b/docs/diagrams/UiClassDiagram.puml @@ -1,12 +1,21 @@ @startuml !include style.puml +allowmixing -rectangle ui { - rectangle Ui UI_COLOUR +skinparam ClassAttributeIconSize 0 +hide circle + +class Ui { + +userInput : Scanner + +greetUser() : void + +getCommand() : String + +showOutputToUser() : void + +showErrorMessageToUser() : void + +showMessage() : void } rectangle Main -rectangle Command COMMAND_COLOUR +rectangle Command Main .> Ui Ui ..> Command diff --git a/docs/diagrams/ViewEventSequenceDiagram.puml b/docs/diagrams/ViewEventSequenceDiagram.puml index 43004c2c51..c0b427da3d 100644 --- a/docs/diagrams/ViewEventSequenceDiagram.puml +++ b/docs/diagrams/ViewEventSequenceDiagram.puml @@ -9,7 +9,7 @@ participant ":EventList" as eventList EVENT_COLOUR main -> command : execute() activate command COMMAND_COLOUR -command -> eventList : getEventByName(eventName : String) +command -> eventList : getEventByName(String) activate eventList EVENT_COLOUR return eventToView : Event diff --git a/docs/diagrams/ViewItemSequenceDiagram.puml b/docs/diagrams/ViewItemSequenceDiagram.puml index ac915a300a..abe09c2630 100644 --- a/docs/diagrams/ViewItemSequenceDiagram.puml +++ b/docs/diagrams/ViewItemSequenceDiagram.puml @@ -8,7 +8,7 @@ participant "item:Item" as item EVENT_COLOUR group sd view items activate command COMMAND_COLOUR - command -> command : getItems(eventToView : Event) + command -> command : getItems(Event) activate command COMMAND_COLOUR command -> event : getItemsList() diff --git a/docs/diagrams/ViewParticipantSequenceDiagram.puml b/docs/diagrams/ViewParticipantSequenceDiagram.puml index 7bb37e9249..3832d3ed73 100644 --- a/docs/diagrams/ViewParticipantSequenceDiagram.puml +++ b/docs/diagrams/ViewParticipantSequenceDiagram.puml @@ -8,7 +8,7 @@ participant "participant:Participant" as participant EVENT_COLOUR group sd view participants activate command COMMAND_COLOUR - command -> command : getParticipants(eventToView : Event) + command -> command : getParticipants(Event) activate command COMMAND_COLOUR command -> event : getParticipantsList() diff --git a/docs/images/AddEventSequenceDiagram.png b/docs/images/AddEventSequenceDiagram.png index 14ada3b68eee46c8f63a5a2b64958b64ca7051d6..019bf6fe256b3381607136804965e6334f3dd57c 100644 GIT binary patch literal 31247 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 MtgZA!!Rp5U0KhTrYXATM literal 31538 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

    jQKaJJ$?UxK@fOZ%eJ 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 S(pyZO=UZc8Ph2tE680~Vsbo(8 diff --git a/docs/images/CommandParsingSequenceDiagram.png b/docs/images/CommandParsingSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..f8c66dce95d4932800153fc65bf07c9d808255db GIT binary patch literal 18312 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 literal 0 HcmV?d00001 diff --git a/docs/images/ParserObjectDiagram0.png b/docs/images/ParserObjectDiagram0.png new file mode 100644 index 0000000000000000000000000000000000000000..fb9313f0e62d6debd0442857e27c4acb33a1d7d7 GIT binary patch literal 2284 zcma)8cU05K77j|0t{@!&*U+UI1%(8R5CH{(0)iq$nmjZllpui!QIsAH0TB_6i4p-7{rS%EulLWJb7t z5{CA};G#m&#sS#STYX)cfY(BZyBF@)JV*$b!9VjrI-hSny}yxNsT_MlR@zy=*jOX& zQv1hiA%l}0fl`tz^hffY-O13j6k1G=;E9D5m$lU&4SIYNIe3c%@yK|rlG$pVK)k`JASAT+Gxh{iG}tD-*bD`v&MnFNnEfXUjjwOyu-p7WQAR329< z_|A*;q}ND17iU~YSFc_oifaCl>YNvMKRxN)gVg!*39FFTBJ1DpyLdCV#R~)y zyXR;JcgOqw^Ni@^f>Q4|Z+D#H_%g-j>9Ou|J4Ll)1da-R5AZNMYf=)N}QhcFl(ZY)zo?tSP7mwt|@B}^7$c4zoNMGW3+yeI*VIgjU z(DxU6f`?zL7t=t$``rNj|fl{a01$0)T$MMZ^$Gd;PG=*3BG+074?s1qknY&0QuMqdYaR=;_Zot^Dd zhnw%sv%p!AHDHzm{>+n$wj1zA`g^n6)0MD) zHywie`Q=wuE+$EHl{Lw1a92G@Q2(EvS#>S;3V$O55X=y z;ycgds>Jc7{jSy5S`t>d?5rD}6<6UzX4YYqx%!Zh5H$-7ILa8+)IeCr2m|}d z(nadf-mWnsX1j)m-P?Jm!Z~(p2fmBTCPzX;rc$|6SZzH$J#%wLb+x+@!X$2UMO!#! zcYX2iRBj_--64^~;S3bm>+0xm^j7*$M?|c=M5G&twqWr1TL15)^mI2hO(A2dQ?tjZ zDBeNLE=dLQzQU(In5{7v6%}=W&19Z^qZ%v3gjh0aYSyP)lPT~Y{r#@;B9?#pe;=<3 zN{^k|m$GWNn1GClIW^iCCt&!nx$GCsaRNnnbhHH%l4d$IRa}1g_1RDf1yfyp4y>%S z6gW%-XBvuXj7?0BUz!r)^!2$o`F#AbHZT7TDwQus$rOk`zbl75*$F-WNkn|b$0=TiZ2$%u>R zp17%KX~amO_!%z4{|LT)dmDg#>$`Vy^73>9Nyxx+~sfG?c-s!Iq?-SF72q2U4+h`|J}N;@StdbK)N-z7?x2HMPyVm%Ng zb=~5?%2%(}jQ<(Mx^?Y^Q>92WQ1xApimq7nL|F4hW}pxt}BnntE#GcSg$cU zI=Z>JnfCHePw2s9XjxfVC91h^XEndOe_&v_S-#ems_XLX+So0#h@^@^bo$Smsz_K< zKmGHvJmIl2|0STZ-|q&aP$(o4iN%^^*+eG8pDndKduuS8R1VqD@p)VkZ0(wAh06 z#n!u5&6b^zNHUqMTcnJK!{Gp}l>(r#qB-X=LdO^*Wu9c!6KUm#O8H}a{;lDwbbo}C zQ_o=0c^C}V-PN^Yl?xM&+1cKFO{Y`J_nd>OsjBv0U~RSG&mA~$pjNVNb)r6cDdfhD z-#Qk?YD~<{FVUBw_$959j7N{E(WA%YWRta!s+?31W(E%MsX8py{X2NX(#q;9k7w-L zpsb`+6E=OOotbs?TbY*<;;b83L&gY3RzH=1N%a(|061*DRQDK*#R}+n*skp2;PAHg z0g2>}h7KHYxF;eavihaBpzoTP5p2L_Aj;6d;AKGpy)0HyNlCD^_43iM4Q?(2^Ao!j zNk==&V)x)W=Z9$A*;)NZx?9ta^xZnW#R^mvI(@xGVI!oPIJFd9E*)&NuufHAKZrcldJ3x*I L7rTlx*Ao5(+uU(h literal 0 HcmV?d00001 diff --git a/docs/images/ParserObjectDiagram1.png b/docs/images/ParserObjectDiagram1.png new file mode 100644 index 0000000000000000000000000000000000000000..8edc51bf38640fe98be7c528e74bcaba4e418f38 GIT binary patch literal 4106 zcmb7HXH-*Nmqv=O+qI~k(LY5ARU2# zv>@Pzh9*tAgeKDK+;^>+HM5-g@y(Ct-gQsg=j`+By`LLvVW!Ur;ek+5Q85}C=vjjA zIS?3nYVg@*Ol$^UlBnBuD0smA5MQJ_ib@~pk9^>YLLvm*LIgZfsQV99<>c=By85Gn z{Cs8M0ey*=Oz4+ zWxJ*ZUS$|uGkPxebn>0&g<82k8XogaA2pYlS}j*aYWaQ|uv`A7f2YewlzMiiUdJP{;{4_LCYwB>{weK)kd!*+6^!UJyhdPi$iCV%OU;6safrHg;x`fB*;?%y`Rq$Wq6=dI7t@K% zczqv-jzkerDk`QohI-o8kDOO?eJpHjEu9l&Jp=mN(guF!rz!AC@U!;+}(>yO5|AE zXmh#gX{CD~>~8NDm6nRj$n+hHi%yR^O%etxi;Fv1+aOL^xw)%rls}yZ+Y|-}WSrTR z$+WT80s0;N#G3wG9G4t=cRK{$lOnSABl|3VI_zq4HS8ixw~g#1L6YV3;7tt0Lgj?#`DS7Q(^!?LBbu@FR>~?Wf}q}Up+3QW@Q)aq*M*DXdP&!M z?VX(`Yy5tsyF`pu5-Xn3oa@h!pY2nbYMPE@sPP@0@${E*sEOa1ia1=I>v>a{b?xzv zFWL7;ji1U?nBsLVm#{z_v_jN03$-#LzZj%6hp~0$RzSow*2s^Mc<5JNm&X^Bnd0G5V+wb4M(VjqQY2DVKv7&;4`03tk z;ye>J;^5a%g+su2U9y!+*zb0lX`tr7rDESK#+sEarbtB*Wxe^(zbk_aFEP`zH zJrGs&N~zL=2YVZ?n#Rz#Of9D;j}N*r>Nm9UAjLpePK57HjQjr@dj5+3B{RsbWgYKF*h z%Jv#Vp*Q> zKv!WOujO-FO+ccrRhoD_&_5UrvEurf%+X%=uF8F)AxQm9`wC!vkHZ~B8S0z=z>$Mc znLx35tkxT-&#G3&{a~34-CFu^|EErnLFrXjfh4IsY{&w)p z>f(QLEyulwq`3a0Hc=3~ZlP~!0?+S6dOAAtDrQ>6^GvjD7HHni%;|%Wj4T8WzTWOi zt+v9Uw#H{Tp%p;nDtaV%1O1__S76zj(^1R{J$Aq)!W=0~%eD<&v?UTMqX2 z_LEuyyUS!82B`CKIWo!Ng26aP;TPeTZVv#~pQ3RoDq^yPOE;y+mlf)BF-h6k#?h@! zi@-xwrYq_hQc`){1=b?QU*hDNOG)fEK1LG8r1) )n5kyI{}O8*@!By4yv%g@uLd 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 Bk`n*` literal 31858 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 XoSR|j+kG8BM$*;ZqLsSwpx^%h9==&B diff --git a/docs/images/RemoveParticipantSequenceDiagram.png b/docs/images/RemoveParticipantSequenceDiagram.png index 0268f1bf98936d901cb239467721f2a418dae51c..5362749313152c55506175d53088fa5faa7fa281 100644 GIT binary patch literal 23315 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 literal 25606 zcmd43by$?!`#vgyltb45A}t{?AcAx^B8UnqHH5SvQql+vsiYDD(qIt=oem{RqjZOW zfgqjd8Qpt-+@J3`zf;$BuCxDf&oJ}8?^^3w&vQTbeXoho(^V%UWgJn{Mt-jzX5sP9B}@tZ<1jyGurHf4_eO53b{tHg?g(VFX3%H&9&RU`B1E)JI>i zfo)5zu)dm>=vzzPT(?0`W@YtG;IJ+}^ygVp2S&t=A7Mq`Wj}8%MDwfW^{VR1iJbf_ zrC8W6*XnQQAfIxzK&dc&OI5>8>gorrb~@u@+5#%~EcIylAUQ2w1fu9+blB9|*)GQN0yQFrXSwXCFtdCKlTdVQf&nvI)Z zu+rhy!z!tc2d9rRw5O%bYZ}zYqTOD9C!qWq(iZ1haJIPQ&WRSTd~-yCO?!Ymy~e$J zMW557)v{|z7*mqYvoNwKZI>P~^)XG|Ibc1tJiNL5U1k|S%i+!edYF9rP^-JM`(Qb` zc9zhErlX2?PqSa zS;i&5qA-8uza$&WIG2*2(x|4}(&E9rd5X1bmTvs=INm}#zrm3s=ps!O#Y%RqxuvB<7*Rm(`w?T%PJe+x{7TUh_9>Y;M>{{M>b{!7Vj@q52Oqi%_o)_n=W4ruy6I0WAWPE zaGF!(2%*doV3K}iX&YRIclOm_uUv)hrj(#?y2h37C=phAvFIy(-fp$)SF?p8v~L)> z2oPRi&Xdsyp|nUAme*doE_I4eR76|ov8vm*tHp0zA4hDLWTN{sdUaVoSJbrRy-%!b z4^|;&$1o0NRZF34^78yNSmxwtexenzg_3zMq}p!Xxu;#gx6DsL%^rfhp&)Io(P^Pw z-Eghl@6>!SChi_RjEw7iH%db-6K$0f3ggnG5ktgN*&>H*v(S`Ey#!>zRs>9H;@51E zA+chLST@F>|EpgM8E{0BT=?81zwN2%C2nZKc19rGK+ew3?Ze3CjY31~x5u!ywp@0& z>!KskAMWX-(NGm%qweQEQwJ{^vOCqImUIm0nJ}t%Ixth$1_i?qt)r4rAIX%?87BD( zYL9NPhdxVGX+7a8H9R!3UH)uvZoXj2BE_Dsr^0bC7PGXcf*akvWD6vVpM6`wEyc#P zn@jPF*IORi^$nHhYb1I6EV{;~p+DJIB4oRQ?S0Wd5}9ZAq-FV-%Cnydwn+N+x@NK1y0+XvQ7Sw`WrdL;^8$xW@VvdYKJ z73FPoHoD^6IrfJ4Nw=(r3$^o|pXj41B5eXS9GF_3hkLD|uNg6{ms#+AogN=5e<&p% zfkC59gVACm(%H=i`W$4~LaCg4zE0R>@3(5w6I+{C6dxtb*mo{R>nzUWspKxQVyi|E zo_EIIbWduo_w)3g{#og~-(UVI$z(X4QTQXxp;hN~`3=PzuVk@@FP56r2le>7=RUn| z`LfF+lO8OV`m9<8kFMPzaDl+Bh{La`cXhc(=-BG(L5YjLU(;4K_b-oq5xD2I7sl$z0#`QX_ zhB~*}GbZ-ON3!KVCP=9q?woAj3z)kwZ+`l#;WOo&ytgD>^Av^?PYZSJ7nzlTAHYzT!N`*TtZS{;=b`>Xr#Ue;WvkR;JU39QgMfZJo>z-IkFHhoodcT)eT!_;_Eqvt56e zS9_gzm}tpaUbrU&W6=6A<+RV3*VKLz$6aAo8!VAX|5+I+K|*Q9a$7RTrPRBzGP3Hp zVd3Vw^v#1%QkBFX_sBYCX0EdJwicg1R?L(a8~nDLIML42BipCM@Ss<9f8>gbV4_5( zfi=ORntV;vQQ>Hn3B9>@9i=4H-S^W@Rz`gyu|J{0bEEIbor&4w zX@sFspU8c4u2vXiqH7DeP`^hQ={a|juS~}t@KKovT_B-I3{lHO7~?(DDhqEYVyEin)_QtESwHuwS=>^d z>)=qMb}Z|mExp|Q`g&7m)i#~m>8pXT_eG9l5SDu8G&<_6A+I$=9g#-9w;7^0A}JTI zQms_7+}>Dq4tKNex_F1hJL}nLVj@hRieZ=KPB}ULrqIFvP)7Bs7omB=%WW-lryLHnXYf3_?0*E@+3-u3PM^BS(#6V z9KoI9YtpW8YV}s>tKH+y3V60!>CM9Yt<(CQ z*W2#d6iU2Svl8F-%e4HSHpsOzu&MW||3dTK)Z28oqL4#IzP`6jSbccHKDD-xl7ydN zNhqu@j;&7i$!h0rcB1~u@_|#|87Y)eDP7=u*KNJ>oBqkAgu)54+(+M7;tK2iI8=zV zgPnbbB?og<^(*^7X5PGv=GRcT*_|R(F0b7`vD$c~7e&l|qcIl!0kJGzrt|3P&Iknx z;Ug_wFQYoEZMbg`vBCY6&U;%)&9i>zrf$(~j%lB*vw`+HLIdoJ&ELWZG?Z)K&c&}` z;@&sj(Xv&~ZB23tlOiIh*@~Gl@YCX8R1-c_vsJRXf4Z+sr;hqD#$9*XAbz0L0fpE; zifx$luf$tdt{P}dk!P5`RsBjhL%_U|PX4Z}uaba%-?ga|OK$r#xpBhnlaZ_`!WoWc5h)dHsW#~KIgO;owwV#N6mZltK}Cmi>&Q4hJZKyF_slNZ__ds}W` z=k!FxwiDYb)%slRgNHY&Ck(g39+@>V{gfgmi9H!kdw(?wNhjD#*V-E4dCnZk&6Gr! z;=DiF)j6)4OiAzdWM$`ogXPfn%KKneF{3e-@1ar?bhMGN&z`h%&5@k2T5J_nF%Ih>fMJwLY2&>u^?|!7RepIop z@_4Pm%M7C*rG?MbA>C+I()hkP{j^a(_o!I(K=T&~ z#3G;OqZvzf#)~D-W!`Y#t#x)R^tFQx%yr~?glKq&@ZIkl?9(}(*xo7ZgqD{$1H=Bk zfJL4+)KV4fGK3KjNyE~^o>fwLqdx0eWzj0SkeT)ImFj99U>v+je#TDMzV5#^Naq(m zBzDAs`%J^d!ffa5(o&_P*H{kptmvOC8QxMdh*LYtO0$lc8mOviQ{jOfq4j`Gu!_v5 zq3$zZ#sp9PiT0e%BF}@fh$pM|w}(Fqo6tsNzrjcAUgX9z$^Jb**=VG<*4@19uz++W zYdMl{v$i&eiW=IpiSIufpbD5nl&|TX(sV}7{oK`Lu9B>LD<9u$fz*gW*y+Df$gDOH znhmMk)umWYRl$1sS#e++E_&WMsvG5fnwn<)f^yo}ZB6}}_Z=6^YCdn-UU`ZMQW=*Z zWjmt%aYvj?_+#ly4bBgS=|kd%`kN91bzb6G6<-49Ua;l%|PSCnhS;3Vd2+JLPXx_8o+91>|a51$yoD z$H5Lh!)oe}khZ8LQ6wvv5F;q|vX=r9uqEh_WLqT7`!br#Xhv$~$b{3gDDr}jsL%D#4DWzA|Ms_6@rQKSU_y~5G;#|+CN{aZCTwF$~21~akuVIPPK zY?{`RGsxc$kdgMDInuv9Z5n>?h(*=m*j5Y1!w2&VB+L*DFX^I6s)^>Z-_EN9a zd-K^$LtBxsgOylzZ1{Nh#Q2bi$4Hc-!f@yK{l8PTYbE(N?MpPyk_{-=Vd;CsH;as# zl2o94dP{wN_c`(STyt6Y{)UG~?H)7xzNW2>vmpgL83vJ~nD;Sy^`70}HF!PONI|{6DSq)Rg5V(b`&r5oGgARd5_aq zj~v8pt=`ulB*Tx0J$aVJIIY{w)a*hu#kC+Qq-eCtJ`HzbkYwdH1OFA_)F~n7 zlqA!*mI@iIwqvEV_a0-%Z}g2paL&9p-e*v2GKsyElrlBe5$*potp2}(__&tiaj!nhEVLZl{#pUQ z+8Qikpb0zSlv2H6}G@ob(2+A08Y%l{8R4n!4WeI^uVGa#if`eGr}Lo{P;x zW4WjWsX{-`zq*tPzuk?%3+f&j!v)yHacG}7V3MA{J@ynt1VTVCma< z56jEJUY@d_Z5jCIPG6%v&ZPDb{pHh(b^%;JhDmUuhi*p7AYVuS1{HiwBF*s?QY^ZE zO7j9S`<1}I{w%Xd!rnyc^0LFC8+9>^N0vRr2v4`{DuPLE>Bk(W5^?F#UtdGudcI`V z|AU@S8LPok=L=2OUzg2NjN?#EJakHSY`iu{2wkEmqW(o{b0*qW0m~Lb`9&Gq2DcN- zgk~yyJqv9mVvA(zhSJ}((~WwG6hn~VlCp*0R=y2AHW~eOqQ2g+jLUhv=CYiVwJq+F zxrW6nGpzwy#Oz!?w>Q3Cea8{aNcdKb9QTxzeOq5&b#X;$jG?k~a$0FDl0!lW(s*ip zHV>jHl{7rKg@lAUFhP{A!IaqNS6>l+e%Er3`2i0ldq}J!w&1b97MAS>=GSiV?d!{j zhVQ2`JaqCg|LY(Bc*TS{|8s|Irc3_N__b|MV=&QNih9gRlePHfD29Na9TK~n%SjAv zM{^exE#5yA9PBVC(B;#vnXO)~yI$q?L{!4kxZ2}!ga2xOb*Y z8)j5G4!u0VU*)+hBy8FD+^k+sMrLnqu}{OYzQj}haPQU2ZteC&zJxP2y4E)dHMF#z zn$_2d4*25c@J0{@-DhQw_4@Lnyl#8`(Z^?oUCAQYjt(+OX^*e546jV=KRu5aqr#Nh z_2moKZA~{t(6lQFU#)bVyL;?-VkKikV-h=3@^I!>H{QajPGA5O-)(hQPQ&UrTcz7mNZd9aq zRcgK0dwXovWe5GD@jdSBtSz>E{q*8ddb-K?(Mo-~R2uG%s4dxOxESvRHVCgF!uL!q zOCO)<*QrL)C-7WQ%PlW2pQ!VbUS&ROAL2`}T0Y@F($muui)JI}Oq0Cb63vLkklns@ zOYsstRk?1ul&-EW@!|TH0d)~}N-`!fg?(=AhrXL*p10@PL+zvJ1&0eRuzGrW=Ekr{ zd#o>AR=JtzTu2mQ|M6)f7sP4U+H1Q$y>~DR;bImgSy#9YcD@K(&3{OtdGOkKVjPyP zXTLX3oA{Y6`Kp+0HyeS^yU3cFnpm?6mnl)}_RQv^$4JfT?8jf*CG7E$SaF0M%%6WG z?iAagI~FU;t?7`{%}LwRw)t&D;zEWDWt2&^#}pe!oP@LKYYP%=;C?3l{?58VhAeF9 zmoyL0B2?y1cj^{R zAQo^y5~sXz80gF*8t8aq|51rpWv@luI44T9P%sP+8%ThA4k;<7MOem&k}9{wi@t8I zuI+h5?2-WodlIHhgiGp7Hv-qnoJMZ8O>ZWPSjHwx-p;qR7=CTnTlf0r7?T}=orFYr zcsMa9ZXgr6nlvj^R4lAK7cvm+NIBn%;$mTOzDtFaq9RQaYnZ9;--Vot?2xf2u2czU zAvzjf1a?iWSr(!1HQN@~W(J9eEQ*nE{Vt@@5Nk60z5UIJ>t&89Vs;l{*Qstb=6R6s z-y_qX9P^y$KsTV8e2_^(Ce#Dd#MxUF9^Zyf>{K7GUU!6fuZdzq%xta9;KuNE79-#v z#mpZ}L_vQ(d{drY$T)nh%Kb}hkx{9|{UpOf%(XbmM$;;qGme8O{YT+D$ig!=ogY%p z@PzrhI4_XpXvA^!&ZlC6Iyv?8wCMB+S=5{c{X)^n;Nj-^z?Lg zvLsJh{O~W`ltuH=l4-LIl0eWj~UJr z5E11Vjn~{!y$}0FrGyCeAU8J`w;$BIcObXK4V62ad0n=$vLfG?#V~tgkMzz@t5Qa{ zWXSr=E~6W;U%!6EAQ(lRhQ$~dk{~R{^v1BLT76|qkl*IoT2raSfDf|&xKcRxWcg($ zruR&QMfD@E?Pew?W0emRb0J-{Dau&{C@35em6efcdQZ?ohL2zp;|)6)`@p<&ojeww z%HdYCa7J{lJyK(4A~u$?lwCmmV9anOZ>Y$mT1zq&7c*vczT2?DIpc)Q1Wt!_ z_7XwhSg_k7#qU{@DZ5O)Jr<(2@=;F`_Sxp#duTgP#mC3L3^+W1rQkD6ZkWP`-P;Sy zKf(DT+?&v0457w)CZ3Qf`nCtZxoy znNlhV5RqZ?OEG9G&Dq9r`OP zYp>t&$1&2vnvc+h+BP(iw0!Y}+M=(`U%2AK+gv_59)wI7La1)=;(TFx5GD%`$6-IG zn1JNk->HD@#_>MvpTZ`ty!qE_D6D^e9LA$BjZdbGk3&U9tT2$@R~ENN4iuT}&T~6_ zdOifX;FV2RVrca0-uCUiYREa*FpARyiV zseJDlGoeJlDh-!AA2t%P@)~}T^xr#|syCm1T&4ZySXG1@#OvPvzG~Mo`Te!NXU%=@ zLP%)f5jl$)ljjDoxl>1DSmle1D_zx|FSI{64QPd7(V{tWO0Vwa4mUC4tiz{E^Z8LQ zX5GhfCIu8r=kga0A;|LH00J-z*k3%U+1{o{DM zh$u5M3wCS$;X$=%l9hXZr}@`q0~4u7=GB;~$w@Xpl?E>WcsV&a)~eA#sCtJ1A+C%? z{UZN}y=)%N$*=aK6{Q+Ei_7r+kL&Yz82vZ)m#vE=V=>1+WXM(<7Mm6qU0@D4*tP+H zp~^(0`_uknL4A9okAhnGy?g00cV2$aL$jp??5(u+4i8u$0lx<^YV!;N=IA+X8>ai| z`muQ_X2GDnKvc*n4o$Gs4P%5BVtgvsz|{ib!pSyc@FuQ46!m`7NAJ~ zppxs^?*Lsq6a7%|dgmjFVt|?9_FG#c&h=AD?7X~%%3E0oM5M??_5X zU3qSF3qZ!g?Ay@e?mJ!>P1ZBV@|ASrY+3f7!}{vh3s=0<)X{0GQvkkNitF0mT#{Ld zwC%A0wTl|Iefb>_M7Kg|si}LbJ)PG)03z}lWGVzf#a=`p2|ZYYQ8zv$PfnU&dK4eO z`n`HNn@3+?zk-~`y89ylv8Lu`c8-?T*2i*wOuKheebyG(IZD~FD8Eak1q=B1nVvRh zZLbfQ#qqHU`8FwzzO+70jb#1$6&~J&;Iv^;&5aJGo{*Il^~2MbpN3e5mDYNEW3q1` zxOcSt=Gfc&1cZdy?6*c3)9)7YKktEgkCX@L`S3S@k}z|b&alIo#cU~=-i~KkS_l%( z${%i12#xl+;M9D%{hSX6E?S#}mzL%9h0P18j zLW+}nEzHiN^#QB_4TV?4N+HpinVAvz>u4r-i%6Th#zaIY=Jq^6%F%Nk62Y?rH)Q_b0l4GzBzT1F{VfPt0MYC zW%6Ya?WHwLkk`+3?K0$=M3nOzdeqndlzKt;K-i=?Kl5&|mvLpOm z%G?(v(2;r;OT4%DvkPz$RZ;BHmL-EL^cx*i*xUjx=h}6857zXcy4kMBtcO|`G<8@5 z`bij-J~Vi7T$)5Q-d7lK`Go$^!;MA`M&XbMo~bCJBcnj-Ybr#gIvVm=q|REs*UI#{ z3csDTM)xweO5tU}`_dc7?VtHs_tsr|r7y=mVD)TgJHj|Z`)tXf9CV$t7ji{m_}pp?&z zZ3ssfi^LCB-q>}IHel{-S>X= z8Slxv3pLXw^y#KEE^;&dcbyg2@_g?&&l#kMG24Ehp^)DTB*$`fOQ{frDSKxTC0(fC zie2Iv!h3TD$O?^ev_?`h2?k zG`$swNue?zx$zSq^wL__fyn;i8be3&u*w|qVe&;*885bR?2n#c-cZJ;zT2x6(b!|8 zLT{SgXYVmfpyVSDx#_5iw3CFgCDXr_)r%EOuG+3lH(Lk_VKRwbv9UW8F5AaMlr&;b z)&Vf3M^p6Z7DymI6mYO&?`~xo$Z{(>T{aW7Xd+G@M|D3;=Ab%KB7LzZ=vp=nMTcoZE5$S)2IZjlo6iS*M zh>1ncU`TZXicAYnEc7O+x2S+#!uFoHQOvVaSP zNI%e|ltBdZF%owE*x%j!vbO2iO|aA&MCrqI(`otwh20iWuL~{WIJNdefyT!L{pc+s z6}{IF_;FP>5D$Nn(!;|8E=RX1Ia~YSg0(AFZ<#ayxqgmXgihMy)to?s*T6_{I7#6c zp_)Jv8=U#QOS`2*R%Hhl*e-Q*n6jM2p|3US$O#npTJyXY=)Y0 zK%~OB<*bNM1{*7JdGg)4byjH)ol)#y5m7>Tg)EywS|M;e-uLy^AYFx@KBIDu>gq9j zY{S`m)8C(sqMD-l8o2YlsGL7Nzgpq4_TvXJ1%)~>L-7u$Rb<%lBj=+G=`Z?G;A4W` zyR9IQNm_*}*Fya{ycX6>9-KP&WQ0T3 z?@x*)EXTcm#3A_I;6CFS!l&%Z5f#@{_@^b4ju7IfU`cWe7%^fG-r>TBii#>e>c|Pt zcPJO)S!zd)y|Sl&Vb?`*#3B`+P@+hI#Jx2Epj(Rg8jB(p-&5I%BJ4ajzK?xb zTH=?@Qb*sSrJWKy4?Cx@Jti?9ZEg;Tfs54KH!UqKqsDjt2ejdjr<)`GfKjI8cRR&4gDLe|u@Dv(UTMXokn7t3 zfB1xn@Zi*~CtTl4XY8pHq>EmtGV0VF931q%A~Y_ZY`^%yt-?$7dNL&$W6OOOX_R23 z&u)Qk`rEHDLstq!5wlUt;aUcofc8X!&E=H57J#S`+L^-yNi`3gg-xy=a=jl{ppD|f zxnqwcHbv*3F-KZN(w6grAY(i>{q))gxy|JXbr-sr4FfXwaLNjm>NWmeW5@PFCRn%% z7nAFSdhGfN(Om%b+;+-I^=<%0&5xE>V$h9;WmzyKXTX#~7n5-6eD7khbkD~;?WA@x zY}3j>be)u+4vV;BvaU6<+<5|%%0|?TSeN;T9yp-(4`$ z(~I@;2;S*AJw=wIla2kL3!--qGBM!`O^q|273-EEd!E#9;8}N zwrUT7c%#ZGiRi$Jf z0|;h-YjKRy*0igjoQ;jR)lya>yG=&d*J^fVXKBrhr?kAhRf8Xa-;n0IK!(-pGGOuO zh)WE9+AXVkDiv!+)=7H8Q(9U&&Fg)VFvGLl@zk40seJ}CP`073o$2;v82i4_C z{lh2QM5l4Yd@jBFj^SNBLg~40-|pE9o7Fu(L+LlydI=Dgf#c~&Cm^f^mB{pw^r4H# z)a5T@yBD1`%sZ)K4B5zfS>*6KFFJCYrapWHEfgsozd79~)#bBJ!?Z-&(D9v@KpY{# zSWR-Ne7;@dYeq16iHZSfclU4ZLU9M7OeVzXvKaiud5$zEQ>H9_;++_QkkhSZwww65 zqz9|bEGC?6cb__7-DB34vO{Q>y79K>_-@$GYKV-S1Dcg~Kqo(##6&0jA$Cn4Wcr3c zylJX8v&vKnMZgYd2bP z3p9|ua@KIht0m?^TlZq2?Ts9! za}&eA=kJ#^_lj*T8=7|@!8bNHmp?vBnr{7Mi@Zws&(mnMT&?wfQ(i8CQ1MzUA5+C)_pOybCZq1*~8BD`x~G+fs&;EFyR*H zDv7>7CW8`##ascvaGkam|McRzClGKz&OtaVx4SPYeM9^$M6x`0L>d+uKQXPX(g5nL z`~CaVtCvj$GjxF_DfijD$wi1jPJaJ>-=33$1Gp{|W8;UyW<>(~)V#zN-!m11bJK2r z?qvTApMH699v3V?)A((C9Rj4(o zO381CL_>-yhv-M4O5DGE0%9^l%Kd5E1rQLS%7X$p4&*P81k>@g@S2>Q96qEvC~k$! zQMnMebj5`<4gNI=jJoF@=Xs;9Ew4oCn70 zKC3*rdmx%^PdL8x&d(c(ibwU0`w=`p*4IO6Y(H&4<&>6`ya%-||wTs=GvVBz(T2)^ZsZQ=Lv*-bs`Z~&_b*+yZ`_UJKCJA(XF9{2o&r4cl# zqD?t-<3oc`I16n^SXlA3H(D79 z<|4G3rB?5# zLVab&qa?8zwn%RZoWf;m($)yUWG*OGYp(;8GS3+V%59+=K!zCmM@eApBk4|idwIc} zDhDEkVfk6Taa$4mjh^j zH5rwcc@Z90N#Ak7enovcjxE4MhrB4cKR3fUR*o7DBJz7UCk(g zZ~^NAWV}W}O1?*8b{sdi3UYHHKXMFW>3seCfN_1=cZj*Hp+T%P@;Kmt1lyLSw3ENk z${LUcY~tcNdB-qifPl_{(p;V2ZtNj+U=cB-*drj{)3}33 zt&hCm<>dt+qWdR>+?GPYOVUulo#zt;uhX+^Y;3el8rS(Urc`?_W7sw8WiTSQ+}&$) z1I~zX{-+E+S8gGjft-$GA=az52CLj1wzUZX9>{urKT$N9cOn;!-`gsdRn$Rg%kj|y zr`M3n-C0$sR60(Km-;Z8=X`^Hk!dY|7oS;O&Dzn{Y}Kgg>FHUAzOX+EsMRP+;axm8 z5&4M<0G(G~-Kear1Ode8Do4T!bn0$zfccA*5PH!9CIVhl%Akr&X3$ZRUaAcLp=J@i zLbd>Sfl%#(HW>l}>@)m^Hd@!pZ<3vU*?lN!K?5LQ6TOX$wqN@@m;)!qm6EDnJcF1cERNCnn4%N@$B6!4L4yDFmxJ$+ z;qp`zgE0MJaN&@qgUw6kKOP$}=3&DaV0$@CKjU;^>R}M^Be5pj--TN=FJvGtfwQkhaX8e1H*boOss!k zz))p>x;YB;7NePinO|sQ)phUMJ+y#fKQWI&G!s zKWizY7=q;V-hW*y`8|q&e*gRhixYng7*&jp9r*uf5&us>;r}`U{(t*rs~cFagS|?Q z&tQ6(C_Lx8Rg!JAqbFf={m*=oe>S?~k%Z@$Pv_$*{dPSSF+L<$SkXxZ)EMaGniX+WrzW7CcMgZ=8l-gPY8Hed!}uy}UQS z@Bf&>LizxRNXx622~<2UB`a&aeGAbUt0`^3$gIKZXZcOAXo`3roujkL7S(UehA* zFdTgo6NitS>!^FMbSrv{-piX!LY z&f<#B1x^n|O`Ck~)-=>ZcVRNiskfm~R-<)(%*|=(=}`G2MWM{Ny1T1(>~4H}|43pP zr_zoBgvt`uOPFbmk(QDIU)m~6Kw)cR;}raXkB<)~1}rXxg^g-|BwQT20Z>f&^v5!d zEXYkUk&#LVppFv!RG0>Q1G-Hm^aRk%-o1NQMWh>EfVyf1%zyaZ!f)xG;{ar1Iu{J$ zrQDbLAKU_I_W50o4{4G#5l~0L40JpK$esREXFq@WvJ21vi_*iwB~(I#f`arYSsuq* zvHr4LvWVV9;&gAY*c3#AN;=CK3EIpqG)J83_rDImIqeGml9{hx1%w${S&RFaTcG#k zxBoIy?hKRRrbadsvBXDWROMy|5ffWzTDt?NF)lDX6MuCc0*DQvyfds}Yr6n#!iyaA zANPc|qdX^P2K17qR*=R&!*p|uft8S89Y*|C>BlW#zM*M)AYKDYGFI*B?u{L+xRukU zQ;yEW#{p~bvpstBsIUww-t-(rBg`ZYcp;SAbJ5+XUqhpUp+QuTk&-e=x^ne)WymTU z1Ei}o0`y_Fy}P@+y&Vw)Ml3gw?S3(2W@QR>UOgB4P$Bm-mC_GFJ0SWOOqp8XcEaxz zE?bO1=a?zEC|v{zePeZ%nnDFyx|!M8*8zwA;0d}(!7Q%RUatB_RRm0q2Z+zG%<(G7 zkj~D_KoObL`Cgrs_ucBoVlBT8mR{66rw%~|8z=U0Z0r%~9!69&J`s5Z)bQ$RPJqXY zBs8bsDKK|2WXzFHI9AYiwC2vMtu2V-Eak9l!nKaRzS~d%+Qh7o;I%6$FOP|eO1Ls~ z;?J^1kEI0vX-DF+1>29ufS3Wbx6|>n@#fQ>>4dO_o-%K_g9*Wr50dg|kNVWZqKUIIN30-6%0(-9g+l#g@ zPO?9L7n;BSlIzi@RN44Nd9;fS^XC?47DfE4(3G%aCuI>cf95XmqUJB@ocgm!JGP;` zD6r@LoC9Ty;=gN~NHo+=$T>zk0i6P5%V^}kDxwV%=IQIuD;pP=AJDoaei6WAby5cX zSySJkZjRSTLQoYJ76LST$gBT0)jMlOHoE`M0nm^skG}SrxhJ8dtPDbKY{^U0*h_!R zY1k#)2Z%vwBqrv~{_MVZ?7to*8rhO5dP|9K*2~8S!ub0BMEq5DK{;yWUvr>H^~;VF z%7G!{)C{1ogkBkFbW>AP;k|5)xbX1s*x1+sSBl_&jSg6FeMeAeq0^?zpvn%5j~n{0 zM~;n;=NRktGI6$~{C%I_o+;&2gt7&Ev9z@G%7N^^S4QJ8n)vzNql~6Mr#+Sm%a%g= z2T*`Bwv2!55jaU}ttYL#LuLtSy4EoPXY;nFrJ#sexQCArGKWQBwrJ;|H<3r4VXA!9T!V=&i zBO)S-Z`z3W+92t8#8f#B-ldVwOp~f_S5{Pj)t|K)lD`C4mrLJ)fp$_&L4MY@ynMHFi6g|+?a-vtw^&F;c8>53VIp?xsa~@<2P`&lUHvN zk}=L$j;sSm#kY}iFouJ$TnNNgwtq5FuLdkT{u}f%j42Eq;xRZh1Wx%I@TL(nGjlay zo+mv}BFqJ+_kjciHL=R$+s@aaGl<0U^36m(1Go~{xyNT`t=7u`yMV2qMzquun#F~o zS3K8Lh$czfXyb!Ij2TJQJX)*S_ATt0DJ%nIOv{1im>~{W?&VK&<)5rx)?#jV}G+6oIO@bOl;hgnXuF2SWlc71s($M<<`=(;@AlP z>=BKMs;Wo{$s)7*qQMZbca{=}As#hUP!RW9Kes^wDhoHNFjhkef%&>jbzkB+m}S3& zb_Sv=w&|KKRvEs4_{f5^UzTMBXcznTEgYf%BM~?^wti%#r;mY?I3b7!^xnc*^kS74Xq?8mFzpUs!W zquI#ver#+UfGHJr4VkmTn>M%Gw;cvcreKx8@ScDL9#tRu0AR8JJnE#K6Cnbdt;L;x za-mTdijr2p&UvB^OzRQR(JJ1+{7P71*y|{R*ut~}=2{rpUU+ALQv0pz0{@A*B;^>d zC3a#`($&>f_$Wy)^dU>Vc~Lnzob7DAK>jSeM&O6;@9)QDh}p$oiWx@50>)_ndBqn@mf^iar z5z{~E{L>kPaX1knp#_bKaj6p^erH%AhB*!o5V9^--tyKAGhIL+F-ExGAOJsgJDKSm zWJ;jn4Cm|GAyXO%a(ZoiWmF?P)RN41j5@l2k@*acm$%~4KLNb~Y5MN=uhj*i{GZju zqud}rDHHDX#CRnhl%Ydod=@vQsyt6=Vhr^c6eJ*@F*V9)(qz9fZ8@DwH{@I$( zm@sEG%S{(d&qi0IW2eg~?A)z%HpHT5XJ@~8(|W?0ttNqPl;hDEsC-H9QZaE{dD5ZZFJe?gf?AEnMxFc7;-%X}o`3T3Bf1d~gJ;?E> z0Y}|`l~=7M!=$XgkCVaiDH5HCt^caGd{ky8n7_T<__zt-o__WooLnV^Xvk{ndxp!4 z^T2_f^Z1%9nnbDONQoQlUl%sl$3n-AYB`_sh#t;f$f4g7SPQX-46@;}Mq+rekflKX z6YcjRb)Rr&!j!_@arr-A#n+wDGE3Lw+WnO`;`g`_me4K1s(h>!i-wa{90CH*ue`V> zf3TIq3vg=nHx7{E=U;-3Od_67A{x#kK#Q7q+VDHLzLO4i`(Q_d#!_wdE*`ocAdduH z;Y3S!{`p6^h8RvNa7l4$Q7g5535Ci0d)kcNqOQQvD$no6W7=3-*om&LtI(F3n3zyN zAo-qCfesle{42l?tgPVooJY1N0`*EoNm&8`24ULT)Wmh_6vu6laDc2j{8C&GoTJpu z(Q_9rbQN5942{)jPfsayTDE?W^gvF4^H>i&VI z3T|=eV@AuJSrL;!xN*=>Q=T~SJmpCOqZ;U#fQNQey51%5Op(Du2HwZv0Efr2K4o@& zr%vR+&S*r%o&%$MAwLR5>B`v~Lb=L>Lo>f-9L)R=#iQZynii}4)?_ePn-6|qDd6c7 zMB(0Z)6>~0Pkii)}l50o+s z!N_#^fRp4au*g@QT%7C9QU<6leP=ay6s4lcf;*mS_fN>+27ro&<`8dKZg8;QFLpih1JsSogSNId=qSLEkyQ>y1ae_Bi1Pdq z25iBYTR-PJAdukX%GJv0%Mi||{OT_qz23;I^DeOh5GW84;AA{CC*!@wD=B%^n^KvW zJq3Q^=AX?NdlNedr^f(I0t*|bSHu}YnT^BCe@8r!nYhLaI1*S+5G!T)V6rOE!VHN)11#-kP1UXvy;vq=JSH3U3a4K2oWT`JIA@@uruM1W>=4}dlp~<(;Tn>* ztI&?LEsm56<4zB~6o(m8U|IQC_}-`;06iQsHW~pE0M3^w2ykI-p;;JuX$@-A@h%)M z2A~#zW8`I!)8O1FEj1j??e2la;bO)WvwkYGdsWeS2u`RN06Zb^mGORg+T+npt*s*? zBVbms0rd+opCY;rp*YELr0l$CG>B7g1)pAdu>?oirl(!^wpMVu zI6Iwbg-aIhhZER`jzH{X-rutCw-&HQLZ$)n*$C=Kz~S!1!omV@${Lus*w}7R4Y=Sh zL1||G+tzTT4(zkw`#DhzIk-?44}{n&y06U>Y6#W$CWm+FqRl??Brb z=s3LKFz6!ZuSJmgXAzPoP(aa^YF$Ces;H_;o;!z&6fOrGaQ;2Jl4LW`XpO8JgR%!7 z!U5p*uVdAQe+AXhLjb#VQFNf<-CISVew`l6VM94_%})Xwy824#*HS0`woa*^HDWU*Bpyu)pq>wOSDl^eWzkb+k#KHqx;lJ+Qrqd~ar(NVqN1%eG>h%~?110?`kZzu z!V&~_JtBg;4Gj$64SfBzv_#;7nDOGKN!v9!s)rX*4)p)`&{N<^q6sTo9zUz;^+D=9fC+p#ano>1fn zm90>eBg^}l7S4IE-s^h*{QW29n&)}$=f3an=lfaiXmz1rmenmmPYm08UJS#8$H5I4 z!lj#-^$+%Jq_q2$w7HLyW$X&?kTcVABds(TPZL~-LCsuqrDdK=> z5Pd)7{a%QfG6xPGjN1qbR8ZUP#e-6Pre5Ct1vA6mK&R$-zt2vXt_jY_@C0)4?q>yp zh6gc)73qk7J_Tg>@i+^aY!??uA>usj0cRMTH%N(+xw(L}fE=FP(HeokVo zfRNB-gUulVOZ{P3bp*q6OXLdkA7gDGxE{_6uBxer;o^VtPQ5I0O?40H#KUI|Gb2$?rd^q% zwr`7LVglpS-O+kYwx9Ut`_$MQkS?JfR>geF^Ajqwnj}YC^*Ld0K;^Ac-%R`ituJX! z6y1&F=i-cnBkccP7S+V>=w&1Mss+E{=^uRBlT2q$D#oy4zw==l92eKejjZ{*9m* zrcH9yrp17QI-YOCWCYiORdH)hi?zb zH7uGzL=;+OC#}nApaXtGz&V_`{1r6v=c6mEv87|yUe0pi7+>jFvA}3AgyS5q-Um?T zjQp4B)jN&y#H%TN??Qgw{G8$**z87FkU~;Y@^Pn#l*iv+VG06uVBrU-(TRN%VZJ}0 z+JoqNJ?;yojJqA_eEzwT+J3Zxi1V_$aSw5uL~ zNe6=vwBT*98=#b6E1$NAzBCQ}2%^n6e473vJ^b3JkzB8IU&r~6^CaAXIUJq;s}jrv&|o-(>xlfnAJy~I#rAfGu(W`1`?SpLEEj%APFJw6&8ag zVtcA}IvOp!TV+^ori=()K0cvZZftg)gM)uzi*ZD*Y7x#RvXh9>=Iv)si4dLgRt}1h zy4p`ulugsE$$iLs+1tZ|W%vv35x|B#kCzujh>V`QdS|N(@{!06Vh{{! zpz3Vw3keQpd3)>XxTO37CeUI+S(&HJvUPqaEica>E)yRMzLsSEtUrh^{?LH0zP>)% zr}VWHjsx^oWDnQpp=0pJ@<+4w2s0Wq5Ly}GJ?QqB9uS!N+Vj?_rfj_}^MMCy5Q`E- z{p{HS3lM%hsjlJIQNVUv|Gwutb4m{+GCR8%sucB<*G0~k`~m`r&one{jO;kh-eVRz z(>+TP09ygV+77Up)aQ7-x(hrq#ZJK^phJMLf7bgo^XTZl z*r`_{u%;(01Z%SWw9UX%5ZOu%4t}($HO9-$V|3>YuzgKD;$_zRtCfF}-eEJ1e6(SV zvek_$lt3fxN^pp){CQ;B0Eg`5%um5b#tIs)hm@uSD7JoUn%xoLABXo~eG(Q%SmJCt z?h0Fqw&lyaW9ydo*M;~e=>hq zf?kh~&1rgvzCFcC+!!#7b=tupjzh(?>;4`(x)cMk$;R7>4|UzBP{$3~A0U3X;?i6k z!Eh5bG5hNAXT9slmV&OwM*HS+3AhY(KM^!BDTgu~Out&j732bn7EG<8MLdza;ZsjU z!>_ib#V0l#nwmI*4iu$(Q65WIEe(~ra#G<~Nv}`)5fciN9&Di`Y78-(CE2G7S9bRH zhKL^aHq4E_*#EV#dT1~;cq}WN=NwJ~VNcXid_^i0cn+Ycw_ip#mm)H*fg=*p3w9>v zS|sQP-@})%yqf@~r|FlJciONX9BidbT1BA=_i3b&ZcFiN&}bHviw$U+9)B5vm5Gas zYk0!w=J}fd_RYOtm%Z{jSsDBg#s-jVoPt57V%{p+*v7V_Ok12VGYhLJs8_jO+b5{& zWHU=2IodX|84pWxrWL(vYg=%6ur2G9!ta-wdl#|~ll5vI)BT1DxiG6bMM-_gxa{Gd z^fB!dQtp4>XL-{?bofsvmq(o{MvF_W1PtE*oNTz;Kf;y+vIZq4AI-Y8bqn~%Rr^~y zVDy(r#Q`)+$Iq`(T21y+Raf7d%%I1|-Qubjvt8-Z;0Utl+Z(QSKD)5QJ;V&5s{j}t z%_CKfZsx~X{^@sQcu57Nm^dr8GVnvsNT#$@+|bYv>H?2egXaISx?!qoylX3Bx#Q;i z)2zdL(B~rp?|amtjrO5EFEsQp*jcpiVk`Hta4@y()&*f_FGF`vI<@O*=JCZo(rdVs zN1|7{euj&B`k<}U{qzG!q`;m8&tpizd3Nl6rwriy&0!^k^z`r+quXfMXakvbX~?nf z7IZ$HpRYrDeezA!&bfzy-a~^!pUVIM$%=ADL@zk!Tn)Hs(v;311{?mde`; zJOkl=em6G9?TXiB8wee{rTxo?+#8@WFECM`J?zv|*Wm{VH9doLKe47P5U}^$#@YGr zODmj_s>$~I`$4!Hm~6vIamk*L@kc5R+w(ap*Q;o6>)6$4o6}2ZUA>k;ExeSpcrfEv z*oNjnHRbg8*qFU^x3uEU6U$8gHw=klD?5~2O!FV_U0yAfpek}DP3L0LuRsqVWJ%)x z8{M$JwvMJM9<@B+AA}|v2R2T%3FDNG*RNGrN@(E2O1@wQe_F82+nJvGjwPuQ>X z5fs=a!nHf*meGfOhVH7-b!B366zp80?F^N6J<&d0WTd1Ye4mkZYt>zuz>~g84`c%u z*=%i;IkTwfg&9rMQrd`_yu%`-N>^&HM)k3w&OPnNYN{k|My9+QpNJ?OZJQ3;;!#_y zzFpCsVw`S4C4^HAW%xbnM~+deBPBaiKk>LTx>g_P85sLWW+dp+iGX!u5=?$CZ@(kV zB8zw$QLvEm-}X=0eRMxi`+z$&&tE`y=`AP-@Dw7*hIFc)Q~6aVSu!J0xD05eBre+X z@G7untmwx(d4d{TL<_7rx1!duwXeI^>qV{D*&>4Q!8w9;FNWVl?zfHAj8*=+BS|QU zhQ`weAg9rcj_!UB3Kj$qmM*lCwrW)qxK*5lP*zrkj=^b%*@`g0zLl`^J%1hxBNEhv zCKe=&j*7Z-=MHqH2|%gzk619^O3*iNGiz#Y4wWj4;t0qxn!RNQN*Rjaie0%8QF39p zI#jg3vOJ-gB2~8qGaQ6Mm8q-@! zB=eo?6YJ|O`=4fJW~Qa3p|G7{4=(R&N(>ILkWIETyDnr*qvj&k-Tg;lp-S67#e z37%_d&9aM6)-REnIwufvT9)iVQ&n}yYXm?rYO^jUXhE{%#XqK*#Xym)f?Jk4dLZOsuU{c27a0}xK$z7X z{26*kd@va?IRjDLK?%V68>pGXUf&**xpMq%o!kh)+@vcsT_HR~Hx4B?7G3Kou8nP5(V;jSz_exo_cFaPAqi_cN9r9xxSWrnPc2I|XCm`s@>74MsHkOY!|8;6hwC|N3 z&RC;XR^rmw_&-mQ^HdQR)zsWSZ9*ohY-b0gB8TRX-h!T2KcNnic+5M35SV=rRhhKT zVP6o~K*$sR(?DYtyhPpXI-NUN6kO^6s423IpPK`86+fBt2|i&myDVZD^n4e~ZQHhK zpUou#G=HpBQIdhQ6MgIU?Y4A!N@{AZ`)mC*62j$8lh-9Yt5nJ*oOH}BsZ7?Y#wQar zx6@0yh7m-_&d%0dWTCx@V!UY+>_bFB>c76P;fCL!mKs{MRS+@@a~n zZN>cabrx_h5GCUOF^U;VWLrgHS6A1rFW5qt&5l6#PO5PAU%fm;{LI@evKQtgbOjl7 zj@X6v*ZyuTa&~c9+rL&jZZNJr>HD5c1mp%Q^wme5P}O?eUL)vmueM>%m5eQF69?!7 z5x`hvHQ%~>Z$&;0_RgVuCL#OW&Ph~{EO3h5Oc33B#JerJ4VqM+%h|?Ou(0iJpGvRKAA1$T=7!e(C?G+W zR1$@C!J;AB%mpNk>9VLm9rH-V#j@nNq&Y;J9^IEZbItilG)kqXhc+8=LFC<=ZJmDX zReG%FElR>gbzfUj2_k+-mP`;9z7%7(dgsP04nkI4IaAVr-Yq;YD0U+epx@=tuYx~L zBykZU?&+gc(&E)q^>YGvAGaJOGs4BES8@}|9jwoA5`?TKZh@dkVk`*Kc?<%Al)e?NOzagN|%82(9HmYG)N5%qS8o9C@Bq+LpO+kq(dlOA{}R= zzc4OndjO2-uD&vMWlwBA`TWM)~#E&aGpMq)4FvFMH&3V!axP@ z5RZKaKX0+Y_|E>LerD{I&-MJs13HwetilFrF@`2JHPlt;y=NPm_`pKgRY@>E@`M z-|7j*m0%%x6kMFO@+)5$rP*}cpQG4!Sgv8ZHLr^t{C+PxV~DsnzTqi>J4cN<^EC=- zCd+W>i^kxjVIB5&OTAxfmNsbK9%K#f$925(tyj@ZQ=P{fCe8BN^^>MALc27mUNT)F zX?qhFMV3^d0dJMmL)@wsv%dR@s@ErVZqoLNQB7Yvlx8b1A`o}KpDnIx2{m~o#5Ly9 zv8k^44UX9RD1EJvW|X7jUsomzv}WEyU8J5l+A)RXMh9sXd`L!%eNRYk5>`2pqPBKi zGS2?W$%S?skqPB)J#!pSDw!!-lenQ`!R6S%0}<};DbCM6X;RNTdu5g~ zX-97Yxq{l+*~6!o*bBD?waG{36`teWx+OsHR8CsQ%VhhVw;zt)b&rLz9KLvDZ}2ps zuT#!Za}Bo>XAL{&`)7uB&-QJZUQ~7)gwjRnCK3kgXm{Q>)X;ino*I}r_3?6fefL-T z?y|)4T&jbcyZij=`4wY%!_VP&qMmLGKmA7LQg^*B5j-*HOH5=u*vkqPNbKd|fBoa^ z0Ta_urlc<}q8{V=Y^wFgQ2O!KH~wO#Dx}!fObt6dy)=Y8d1;~9mzS4U%fcGrakBBT zd?loZr|g!3TQM*ASOqdBx&xjbjALU&EHp>#D6*Vefh;gXP>_Y;2%}LA*Rwd*vra?1 zVCR2s zsE*OGp7Eb=m5(M}r@Z=Rlf~*--~7*eUq9-dpPea%tqvq-iF=lHz-OucURTs>FFQGT zD(oJaT;KL=-LD@*O-{2yVK{Zde;!5rbzbz!^l&P~zZn^V`PKeN_3h2~oRtc`m}ljkm2_M_o<;s;bQmu5Fh!_S3v z^9UKPn$uA2|EpCsJ30Hkxq4TYH^#jRfcFOhEVM6>?$iO!QO}C(tI#!ZcI+rTlnn#>*vT~sbSq> zz`3ePq^lHo0)63&^WD}$j^Kvyc^q0k%ZO7PDX^}VeXkL4oFBHOk3c z2R<>s+TrOPjY#ruatzYY%d_9Kfft&eCA<$FpsN^2`JWy3C$iT$&A#~cL$$JFxhLLp zYdVPF_sRZpF1`gbEGj;JvDx>y%4Q@Kd19ueMYy!`n{Aq`G@dg{(w8(anajA*bJxU2 zt30=WtL4QuCFioX@6lFJ?$42|-RVk;&B@Yzu4bmkG+J6(`5hKLaY*r~?U!Kd73Jh2 zA`uPlKXps=EA758JKc)k{;tevSgS%!o!3v5$o>O2j>U!p6jTByLa*G!I7bF;|C4Mu zF1W)U)HJ*OrLIMv&C(a!GpA=~eR-_$Vfv&!_16Mx1jD0r$P1FOwC6fuj8G0nJ}#1+p}bn5r?F0?X3D0bnrv# zp|nI!L(M>d7g9$krDQewKjOV%oH@HJFDn%dV9!S3*-QI zt4<6~xpv`jFxtH$=)p?gJu;2uZM3f10yD1x7#p1vGdZ7wW=TVxZhl1qU4bz(Y)8=~y*B`_*l52ggU-be7^{Qjt0%4XbHt*^{AkcnWU1-Vv8h2++_T=fZh0=ko!7?NDP8? zhw|nlI66yyQLI14IoT_S(0qhjY3*2wt5ix0ryFh=W|@-jEPtBt!H~Mn(x| z`>Qxr8WAX+m{_AyBHK(I@$d9p@n8GH^%jceR@xyYV6zwu;pN6nwMGqY zOIG0MKt#|V>r1!t%!AgXDcNDn0V>mfvgEn>Dk2>3i=8MH_EhGa!uQ7=dSyo5phR`* z-G8bXo@Lc^1Z=+QS z8h?(Hc!;Mc`$`r{hoCPh)`Z-}gTvuTY|pUJkJiSPk%;g$)e6+32x$=p2GsK|Jy}yT z9q&B1H+RD;QK_7xwkXSrZqK||PR^IP)40CAPEPpV)OGAF!57dt9~-7{X5Z;-(~srV zp20l|OMA@YME`Q*TeHU9D(t~Nm-$Af)|^b8qvf| zmiCduWJ!5O2!PM)%i~2i68G40fF**w4ql**%E$y?tn2jv=zFM^aWZ8Z*hex%a|1QJ z4kugRs@`$ZlRhwQaC>hwHWze59jf3Xsr-spMMQhQr%VU_`RpH{{)>x+eAHi<2JYms zR89$O%+xq|J}Wb6W^1*11bf4>5g^F?5F9|SRrn+SGXZ91_@`_xqxuTDNWyU}BoYa_ zZ8DbA_p8fuL5IoD?+FPAAl`Zn#*dGYtE;~^%UhLJtE`87wri&HW&T{J!nyu-rZ;L` zPG?s%S)!59MF^f0{_N?+uMt+?l6mjLwXxSs$}B@~NQLHhz}JG0zm3$?44(t%joY~K za4?l0fTVyvau)zc9JS~t=XtSyeYdNN)9LBylM^pi(=@Bo?pUhIWN z{N6(Iohoxb*@NiVEw=bG$RvG$ogX zvSY1Yf57~P(uF|-Nb+Hk#~A|zj&Zz}TKokz38Lp4v_g3n~*7SWz9}RkiVel{z z$UqV&*t9}BiSDmLPBSqS{0iQcN?zZJwI3=`vXTos8-dlTVTwvC-3IWgMK2V6g`tVw zEcYmQ`Q=a&r{Rn7{HHqg4pU{QXjmDNzPjXB0Qy#j(#fPlbAQAl3a6nr+!BCeo=s-8 z%c99S6gB332Nb(Qhn$Qo93|=gDoTaFn;*4z6eB!b=tmiuled&rKx7XNcC`nZSa>f2u= zZlNpWxs@UTtLqlwu2rYAPZ9Uz;@!V7<3MuZ|n!ra(LWxVgr!*v4G z=g*&m9YdsnU7_MNmjj%#^GqMPheSk$Aw4!Gq(ktzNd(n$6ys9!U6;Fo2*H^0+?k6^ zPUbdcezR^Ycko^*QKmE$sX+<(?3ISKV)J)RHsQ)65~4nbEY|55uX#=7N23cI?Yyk5 zt#4S0o#I|Y;PutvG+myXBi8IUz{LSB<~W06K)^~z-r~7?|Ekt$mQ-u(IaesQYMMZf zRod|aK>Nb1fc|7|T1k51cK(8<-Int*9VU56D#d3c*!LyKJw}sWuB=$5u#yl~)Bz|i zim8Xbe_mycL9xb*tzD?bsg>Ug&S@BOEqydEhqk>5pf4siHrU1JdF-A*ontm8V*4yl zt3GX#h6(B;K5E7lzrCDD*dN9f9B)7CD&uTr4r(FM#tiuI)Y(iOad~l(zi0q};OF+X(>(Oft406g zcSiQO;*?kMY~D|vV5E8FDZ~;I5!JX@4eZs|iwtt&QH#9F%xtmjBc!FJUH2ikVHOkf zX?uxM9dqIbnlpFHNIm(Hz-Q0h1s=J#W{&Oo_jo_>P$x*p@ClrOP91Tta5zI$7M1Qm zMOj%^gN%wQ{nab80>!#=TgbibSBYXC;EnGw%3OsYV5Ck6$BGQ&Yh=#Y9B3^=g!xNDiWF zYipCJzLhfX#K6v!mX>}e?%7>}?a*>4#Mnf2HS!Be^OdDA_#21)6ZH`*@?=CN+~wOR zw6ZuV;W#B8RL6zS&&h$@nK7ubx3aPtYtk>svaf-kpPw&&_9hxgsRGa)KisdM1L|od zCn+U`yy58jB1Fbpa#?VFLZCF{xxfQFT--?$*bq-y@H?FF@mJEC>ck}6CKrIpbU;y8 z0T`LqLm{@dYvHs3MW1a&CI}q>-RVEzD3f!JK}M5u1}~5!e1C6*_2)e_s4xpk)V9K2 z9-RILWr=M#1{51K`E^en$O+&HKuKVcazx(;+8ds}VTPTD@?>zuk{;iOpxN;I z0Wyj47(X@7Ma<{0=!o-1UT?X0$;ik&ClOO;#s+BU3l7venPz>c-BE7>BS|5z1QXMH zpWhoU4^=mJU#U$~lO@7Xe|9&Pi9Zxo~;*QR1&mU%LdPG7NIs8A<5ZA=dR$AOuaCEg=JN@-j{KZzp=>SlTB!a4x z=G6P?xw+kPEYCk#Vm4O~Mud{^)FZinD1xRhYgSU^X>0M^NG>Lmft3|=va72LSO~b6 z1gLfsP|%ElYR~l`7A)$<0+b)lvxKF6;(mU#4GIGiau=6+)WrKky1(6Ay(`e$B%39s ztu5d|m)_q}Y~vHkIq$2P|8}%J%gDe0mDnd0!*!${I|o{HFL8IiDST!rJu13j&4HoT zv^=+&n`XHm@G-qogRtFT5B!?Qy15%C=o{Z0OEgjLP;c)OY$f18NQ;u>#-gL4LFVoY z*y5X*dv8n>n`;v`QY7%q<)DJ2=?tX7e4_`bdND}HojZ+dg7|CZ=TSaYY>kniQ?>4Q zQ<1Rg6ag$KH)+;*`u61PEK}T5P18k{)u^5)*ZgxBnyWH}P#CAhg`A~kg;_f|W!eqS zM@&V)8;b;FZ(JT^*C<3o4uW6M^*g2+{ z+MYcZ<~LMP!J|_HR_G+!B?wnX)4dmoG4)Xo&o{rAp;6TCeCNh=GDcLTcVXi2vav<& zw1p(uzJn>&MT`SG0`*}mWtOJG1HOziGz|EU*=*_CV!L4`A#OZ5>lQSP!59Z-saz@@ z_B=?_4M`->dxXcK&hw3erY(Lt&&cEKzn}x@xxKv|%QeVy4h{%k|9keh9MWx>d%@n@ zApv~jV>{gUtO%3r*P;H%tIZ}!Je?8(!s(=NWq2b=BR6#lFDm=Zl&9~ z!*ffEe#yIpo4Jg91E`TF0~JdX#oDj1o^^=9+)&^*f?N0HG)s?4JInbv9EWPuJ<=@~ z^u(pXj}+MqXSh1|mnF{b@lGhiulEpmI%R^?`yIcAF0My}cbkthb2HHuvY7e@64`s; z0~N@F7D2Dnfu+!F0!mwL*0J|)GyG1Y3Mb4@R8%DVPAYB|(@5nvK~unf7g==-+Gm}K z0`5)(X@!*a)Zr)9bRpP+F94&6JpzB&#ssE}IgQvuEQI`l&=%V2be`rBQ|MU=T7=sY z4N0*E*@Ag*+^1+{ifT3#xKcV1k<}iE z*iYO}i!C%&glxpHt?2}YjbuLH5%k+JDrp#E55R<4fIA^X9)}is2^*HtjDHA+2^qn0 zl8;NR&Eub-BQ4g?4=mvqZIow$b+Ai`(*%} zq%Cuiu*FALCyYt~*O#85Jtp>XdR=YMye(y5)gAk|vgH&7MOsZhJVXOlO{tF8{*pX3 zY3M2|D{Bg4w(c62ru&8i&umW}JolR*^>1t}EF~qS4rGU1U-VC8(#__S=7LJEGV0x0 zUJl{?HZ^s;9RH{wacs1?xw(?BS;BLNx?~`4>Ae)1^z_Gcf<7*|1q9#`Ij6%!QBazq zqM`+N#4C~;-)c)4bj2>mj3koZCV9Xpu(Gs_Ae1>aYRtV7(W`SdF8^u9MK_F)b$Lt2 z&|8L#@a&GGiT25@eZ#EE_WaWW<9Dl=Ks)v(At$Ru+TF2XV<|jz~ zY1uq4oer>C5`h?}H-tCANFO%6N=b=0t;)^JN#TJ6U(_O`*PD`NqNnJRhyrYzQOvLqF@9MwE3rKCA9mZzwxHbo%*5O^ddRL;!N zZ~Spuflc=0$rIqizJC3h$1C^J|7^WbcSnNc&({DNk(b^LwCLfcJ1Qz_cRZ~+(66RR zkA7ts3Eo%;DN_DooInLt07ll}ibQYu4Qzy+`KE`7RY>Px4+Lkr3m9jB{$myvLDjc+ z7w^6!@Bsi2&iL}<|6pQf&ee!{1S;LUzTR~i-I!L*i~_;R((L!+Ik+}jP37n`U_UI?%=^aP$)S|(Ony0gMF2KaKtCD(FYVh@dkTE4P zO}Uw;HqSo}XA0qUjS09zm5{rn3To=w4T4V>GE+N1p*T8ncS z!CJ9);SEhpq9i95ahegRR9pgd8j$Yy`7FRVH!mSwju9dtoG;gE4Yh7Mp0>Aw0HB>v!nzYi-l|BWSXI3w!Zr{b#*EIuoKOHxE-}KIMtNAN7Wvcgp zGkxvpDFhe~dU+QFf|y4!1}#)1mPTB6juv+jY;S>tI*%MFL?mqdEmN*xowKcqfC7Z$ z;P|-b`yOx`=vE3+DgcNwDJSKt#H3*6L2@L$?RHitQHyPBOC0KRBggxoN=kV}bxuge zs32q%v(gj;1#TEHMR!b&ItizNfTZNR zIPy67;bRA{XbYBi2!yBN0|w*hxFPc-`X7R8HTLNd&Ek?RTFA9M605+CxyBvm1Z|k42sgcJh4@ zUX=7ilsjh*pYnX64o}DA9xif$f#lWptK)#DfhDl8EaUJC?gDO9gE4S zxqM`X3x0mL0-o)fHW1BZRMIDmJB~~|6~2Rdy~|xF+XdX>`y9)&Bpzyl z@MLBx4#jon;4&oYz>nzXEE(Y$w!#9s$~H5ABt>^CMSkOHCt4kiR1kuZ>Z4SB0V3br zJZ7Zhg=1{y5G673gKi2G>#ZWp`O^}BqF79bu3|>}cH6brNH7W#b`e2E*{1N=h+Mlb z&hZ4#MIJv+R&F3E{9XuuOR&%~iHDyEvk1(b5s0c}HEJ!ru+|wF#?kZazZS~lx_Zj@ zU{QA$TWRktS$2Z61r`;wOTe;TcXyYRlvoWUA?MwH4zE+jg}r)(zs(ZbK%3T*D2?>N1ZI1o|=*&)lj6 z3f#x8jy*Atjf>4Ljxqs^*26*^l*W7@4Rz9oM<{Nd;LUghu`OB}vI@x+?}2#Fp$5#8 z@TiGiTZX&uVz9ILtgz5Ovg?(xY{Y*h*D5N`ae^>Ji9YOpCa>zDTVW>MpO#;AO8?>6 z$H^j1Mu9b8Mz;?FhXPr}0PE>pY;d=M;Q$p3C<0-r#se7!#8{5mi>NyMlJN+v1TZkb z=E20o#Nh3Ps!)vj(}{gmb7ewk;!LFS4VsaWU&}9%sX)v$&CMBnm_!~q&xycTiawh| z>oriee1LSQey)?A8OuZwx9|!#@0Q}rOqWtLP2omOS7+0ETk`Sn#z^)TFl{Tlk!pE) zd5`Ux#5k%reySZ@ePJV1BOB&+J17^Imv(~!eAKZPYoj?*Qc|{-`re?=n$xJL zDkpI~ZQTjD{5>U5AL%*v109z-0#AnIGuqwWyQuJNr1?sZkj-!gt3l3_P&qhoYKhp* z1O*)S$?>NnhEdBp)H}N^MdlQ6_6f#cS4bqs(Fq9%5P$8?j&;%+d0#{}*rsp?X~K5$ zz2GO_`!AqZZQM6mGBnf1m|?yCY$;;Rn-UeB9F;cd21wQnVb}NnuyfRepCwH~OKwbs zl=!RUk?ID_Z+saqWg<9Le-KI&wf9=PS#iE4QabJ=Y(x)zo8+C%Lh!nG2mYKz665JT z*tpbo#ACT^oM$D_-y6^7d(a_fiVwp)Ik}a_B#jP9U_Bi8^$60& z4fdadX@d6*znBOpg@%RY%pLUn(vye5s{Jr@)_5HoIsT3ov>-qb_tGa2$<y^+L0QKeGb4b_Q#>6~0+d?@>eMq1@5z44iM0ULlYA z_fZjDvCj$hufhBkh-8BXHzxBgAn|g#dU|?*qmgc|IY7-Zt~jd8z{m(jmmmBe?4|Hp zR4A4rPi`Uu%S%huk3Kx|JK>?HN1>IAr;{0d%`XVBq!WsD=RL{LS6=?g418 zby>`;jbuYZNAIwKh@|O&>11UB;7H2@TBa}SiB0o?!viLqh%@4!o20?Oa5ncmX#uvz zK)Nuuaajj(pI&KG;dpvR3G z*8#}C>|w37PH!J5Z@n@w%q2IXcX6*x1@2=W{cmtS7YTa8aq4J{5vI@L$mCGhY% zatx(&*k8zb<~+6&FcnY|L$i7tB7cTK5hoN{kzw!)1X5mhUsk1AC1UqrEuH@KB9qEK zm<~>fG^&T9(A*iE;FJpwlW}Dn0@G}~N)iuy;}$>f#=bk^GQXHof$XFqA(2L*isBU0xoyeB>1GMvyC$u8?_JF$c;(^G|A zOaP(iY9cqDhR%+GVL658b7szO`JTr`L!u@nit8BgE@c5z%4?G4n|cUEVyusCnMobt zMu#H%`ua>Z`d%cwL>tYH5eV-VId+aDk@^)e9p>XoNv}r zmxtPNHcQ5#0gm z5lNOaY1Z}kme@C*->MevSI&7C&iLtZi8PV5Bkdx=jN@EA0WXht^ppGNGmRb}osqyb zyaA|(l;7E2Nat{KbQRz~uqca*!)waR6L9~bQX+eXOg}q4g$NW-viZRC0_7Iv`lxsW zADcdXV_6ivj>mxJc*nQL)Q`Y1_3C-!wMcr^5SVVr|XLpyFqWJq$%hwa_LWx3KLiMDH}fI^d4{ zfDj@NdGh$n>xpL){yU4;3+?;YYL8*nc zcZlvfZ7QBm4%e~f#2)68v1hYOThed8efh8muiNqzCnV75Mb*%QhY$0)KGJfMZ+H&|#ZJ8Y+F0e*z%Y=zsn~OY3$0t)ohlT&6-*mlgWI z{zzlrOQCOq(L~s^l0GmnsFy3q0TBi;t0nzS4CglaJUum42h0YbcCaxpvUg81U=tHd!&X;U52xY@T9ALG;=DGgT8EEdJj*L7;b80Gdq!@KU>EBHi8LWU zR^Stlz5eoFE{9QC$%v&rW_5A+MZM!@02R}HJtR?WN3;>IWbV-D@rCmNe$b5?Fn;=X zd=f$E_yTwc=3#)+YhK0@a*8_nFyaOMu{==+_Qv@rMwy$>5l+KPa&U_rkIhN)>B{5p z-_7KknkdTZMfgio+n1B^0e5(TB8A;!y`7VC+hU4` z`X2e9-NMJBNOPY2H%NuZqzs|vgm4f<0s+3bk);RN*T7@o*<>j#Vf(6rPvCPQk$M^rNaom!B`Xt?)fR|A8D4#z2?Ee_l*Lyk&$bUL_!F zt-zgq`IIt=g=hy(R|f(C=AQ7(T!mOlkS)`~-Y78ix;Swadu9TB5HR?s(@-2OD>BAI zcXzA;UIH-PWN_*nzvYrYG;o_aRJeZ=w{fIUTVuY>$8h{fWF9ywVE8`%yR^}xilg&; zd~p*DlM+U#muYS#N4loe*_8C39ugffPck?{@Sw1uKqdftD`ML8!$rM*!4_AQ;hg6WCrBFoZeFi-z!&TrV3p=QUdQL;*EvCwhfe?>U`~(~e;EoI^c9udA zl5yoNXG+c|nVoYD?yHPTlNHGO;o(&GX=pfU3F_cD$0F0v(};RO$NHXj_&>jbD`X_a z;EY4H;|lC~0#^rc@erKk_y|J;+?U$1-cN3hQfO}34Drw9?ox66_m}zwx3RK%_b5EGTZ}CJH%^o0_K0fmfhXmHO+n;1e{UbA`N7^OG|>D8(-Xg$qkSO z1G1~%inU4W?L!%zaL=Ld3iNWMpDfX9ybr1ObL>3S&ss* zz&hFA1Cwq+==aA43Ov}edL{Y^85tb9BK~JE1A`fmN=gP8Y|*Y4qlH_*Zv}Z#kh5!ev7Po}8Ia7#*x0U~N~_8% zU^8hF5i>I}Ro)CX?)NC;1cE3pNLex`OWjQa{%j4f-)`(yKyY*mo}Wb!Fzyxa?d^fr z#9T&RAol<~@(mDv*3iJ$g--)g6&&<`%rHNHZS-(ZxwEviRFN<^2vo6yf}GqTKrNGI z9}pZXE-tR#2Q3()eIoKAie!`^+YcZZutY$)g7gFHiypXP2iQh#LF!s;3O+e5e>Lzu zCV`h8VufM6r0yQrIZ_vzgGdWW7_bCzu(2IS zvr!_&Y)9#eqQgKqN=65Ex0;&+5SCP-IGXvJI0I0^9dA+iF&y(j_y)v6nMz|~EB*uKw8tR)a4Eg z1nKU=S4@jHQ6y~Se$_9EB;6D=M_Kt-rSwh`JnUkff-x|EO%Hn zQ07-xS2u%dx2FFZkf7F$!BJEU@oIUJzyQi&mEWoHriD--FtNXrahv4xPZQ#=0~tdu zu`28~2+lUQQT^jbIq56FjaZXf(YpQTpu5zAs^fRY{hwOJ|7+I)*vnbxqs{<8^q;on zI9sbar?6!AfSGw`q1o{7yOBTujQp11krWNMsQ2TTqxlzrn0kGi**#pXXFvYU&7XBW Ml~kR~NG0g?K}ugtvn&YijUpZlBH-80W`=gc{C_B_vSyqSp}Gs9mDR8&;V2KqWM z%9=+R%@=4W^O$U{9AyC^Z&@Rqy?ufoy0{{#^jy4L{G5<3_XO_-3*JW}ef)38%KAKX z@%1eII?}Z0nirGBkxa}K7%c}Xf@Cs$dPl!uG})h}`EIJC#qE67r7}6&aNGGEHR~Sqr+SwX5CixdyKKp1Ey^^^ta&M6 z>Vu!83}*ZF+3T6)nN$)&Lr2BkaGuR3Us8s~D1G^q1F_MF;Ht{y#?S1nI+MCc^fpp? zpC1ap-KJE5WT2x754uCnXEfu``wJBe>=Xg&Xlig>qK;Qh6O4*^eaT$z6a4|zIZc|k z!jGTcSID-OW4LRl=-4HcD}M*peyLS*fHV(PL$lQli1WY>ON^R!Isa*b8omU zUxVy#Xfb|#J9-qkcNy~2bhGdH#PiqgQ;z3Ikv=Cau}dpx7|%KEwF^*}OBp?az)Z~~ zt<~Q@mqkQG?CtFGN)4>7ts^2L^z`U$o&l1yK-_9UTY@>6faK(48yg!535f-2KJHj} zj?u*U_$^n_&!*}p=PaMv{K1}ebY+|?uBO34=?+0=W%r6GW&)FHtAKihk?UtvJ3|KO z+T7fnn3!0$tb-T}6ZfB8T?a4y(j#!%8C*a@n4NiP2-5GtE*ml5qosufo9RLIR3+p zqH|b)+AdM^q7VcE;l!@;{(-Wz9A(7BFkh1s60~rKn06JQ`@@Il{1FJm;^HE&;zKY5 za_gV?kM7=Hd3kx-$c~Nln*`dHrdEd=%Z7*MnT~oO~WEBMyrKN;xdF}t(oWVBK z*Gq6D;PLo=j3(vt^pp%~VCL$YW<{pBEWH}AHc`2dJfbE^YD4Ym(Iv%q*TD1PLpToZQ;sivdJ}v40v3>&&2G@8 z!LL~G8g4qq+ZH1Pt#4>hl#|0%R&t6JzY@$zOA|I?tFW%QdwTr)UKXIHl*VnaU~g~F zzTRVeZ*4MOo5%s{O;6LEp1Rb1(fP~5U@krHyVTU}j*jPrY?vr$eN7Fe>g-}}eb1bn zoQ7M**u_n*+(16=8xeXj=2dT%V?-Bs*V#G#%vwbQw>(j)GCj$|1YgC+G7^cz-$oV| z>6Mk_I``2a9QfAc*jPqZ*2YxL{7n4=yB*4&<$-*3^3UZ#ht{B);^N|pii)zb)eU0H zF%BtI^~b%El9HR7o45Do(9lpqLc+knzy`HpTZ8-PA~Uaox+oKE=HX(t1Afr^{Yh3Y zsx|oMQh&Zmc6!LsJ{g6gQdfUpT3T9EBq%9aet3BJsAD%bHI@40$Li`|e0*dQiAs9T zP_QYQODB7#a{q=G;kr1aXri<8)$7+lb(Px|XmCh2Xl^Bta=?qkm6Wo3jq+~<3>K)h zj^(Qa($Ud1G&K0>IfW9N1IVU^e9C?cEb7NpU#+U_WkICxqh zi?%WD>em%79svQCS?P8jCOf5^iindCWA?B&Qk+uw-SaJP3hEjgz1`jCuznh+U8y3X zqN4o#{BJ<+k+!S5E2F=&O7xy!YPVZ#R?Muh57)Hp}hf)a7lf|wMPJJ(Jt+}aWo z8*5{0iznn36l`p67N)0!XAYW*$^qT3IzRmde;SBS%UN`uqFsLhn1?hta=1RI7a?-P%edwB`)fab3>M zc^*;1|2-|6fpJpKqsavz3lS5eL*QBXRZ--VqhB9IEM&49d6UMd+h3iwhPPyw%yW2e zCaz7YPc<+{4D9^$uc-~Sww>um!L1plr>CQYWCjf@%gg=E=T}yEcz7<#gZsXaF+u^P z_vXy;iqW6zQ>rL;M`VAvseroDx5xzA` z#ox5cV7EG{u=^@zt7n@3m%gLIdQf9mSu&t6k%FQ)hS=y<^BX@}(9VhcrLJ!2|LpcU zLrYL5W?xAFaOL`k6L#YhRJ+P`P~c`2Pv84XTSaxq+YvW|$J>jlwOZgmbha2qiCpM8 zO63;pVcN5NssWuT5`O-fl2!@)g-eT>92^=f>Hj7s7pB9FA4;}o^g!P~T9JU(wEtgc z+V+tj6aoj|`%$ieON;uWBs~Ac1T)~Os;cbm?e8IAsv)~wL}Gs5>IYycCMJf^E!JUY+PecB8VfTEmcAaoI&j%VHKxf{*j74=`ZChj|` zT7fD0eVF6FmG(b4Q*^aL7b*I`>9ASZb&@1Anj|a0{davn{}(TBY)cIM`|AQt+=&hr zmai6?HOtvPqQRfC({f0U-A|vGn22W=XK3@wQ}(CZ@yX~~W6zk0It?9D1qiUR{Qf`Wr%F_^=nqwLJg z4sHs08XFm15+`P%3gx57Q8^T$<>e3CN#{wP?447D1S&2iyMk2z( zU0mAKP(Gl$yL;Z)n>TL~5*T*2%uq0TsK39wR0@GWprN60B&Eg0(PV&V%+1Z6J5!`( zWGI&bR-om%)wQ*@wzjza%K)vZ)Wcw6RZhZ!&*FEX_@{v{An9m6)}Bw?w+=g+OLVNj z!j_gNqWXie|<2W>rC+i zGh;PyOmt8eFr^YvFdn9i9!E+6X|dP1ftekYUzi$0`~9E$F}%6yUf!8!FGf^7P&Mnm z?_AR^%x5-N)UIO#%()&-xPI(6?l&s*7l6z^>4oI-z(1XmY1!G+cT;BF`Pner(165! zffe%gSC0a8t(1`#KPG;^TyhiCi#(b+U=TzU%705{k(iu0uFQQ$7E z_`Mz|&yn8@%k~mn>2EIYt18fCOZ>VSYZ6#^^nFU-A&91-Db>-eaYYgynNL zO!qLo#qfM;zFqtdjuMpWWx98*a#6R_KIlg;%P?`gYo3+Xo0e*GVESqSHyC25DsK=nHn6OXWCszbnVoHdPkKXCDVlNIj!z9 z1pd)o3n5j;5PoJ;_{4ySHYa1#7az8aGWicY$fvFajNGx{lAV_JmFiGYOxO6y#y)~7 zJLzT?J^G15;&U6O(6vu0dGLsrv8kOG(HA6=e4np>E|mZ6HJoShKrCB4dFu*aldD*u z-?Wr^dlVK;PEvP~Y29Vbds_Iy_fXW3^9$pS1YTx|Cd9{ekAd473?&VBEj!rpo*%{8 z5jW@O(eJJ*plnjTX}><5EB#_m>=MntBOvfrH0vvdc`7zpwEvcgMQguw+(&|n@2!K^ zm+fh-1_ez3P7v2myR^NUVNX8mx!AGkf}!I)-u&Iv{)CT7Pkb4puV{C6V8~6wV9bH4 zs%BfdLuTStPS*>am!8zcsWFxpD5kfCr1sb>Z2Ef;b6CYDIePmFg-qm z`_bG`DRZq}QXpzE%}$zSXG`>H;?;5g;j2vwjXMd4V!Z9QBP3@9O=Qk2Jq8V427PQ~ z{#Mo@+Bf*eSs>lBm^d3|B{@iJL3AJ@$c+ThtTyh;V<@PwUw7PQLp=Ymcq^4*O~P7Z zx@qRgmLD>C2hGD>$10x9Sc(s16!S=A&3coy-~TKcb_C#lx%I8PQaK*gZrD`AgL%AE zOid?M%{5EtYny@5wU*(PbmgldN%o-h|Ebmg#sZ31S1-9cI2)o0M~|?RH&}RYt%u0? zVB$X4L#FLJ$uF9lZKrsX^v?q(`3x-R6jnKA Z5gxUD7xR+4p7J85GPq@;Q>En?{SUA|d4T`` diff --git a/docs/images/ViewEventSequenceDiagram.png b/docs/images/ViewEventSequenceDiagram.png index bcb705a027ba0272f17e87aaae010032a384572e..2aa1ea5dd217786dae1230338cd93f129219264c 100644 GIT binary patch literal 21996 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%0Dc!=eRc|;WjGs{aml|!qP>tjL;W+xYP5N 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 diff --git a/docs/images/ViewParticipantSequenceDiagram.png b/docs/images/ViewParticipantSequenceDiagram.png index 4649c0f2879f019e9eb508217c2a9d6e98679b6e..c20c9236bb64f2cea888db0f321f02a1485626f0 100644 GIT binary patch literal 23580 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 b`3LpXMc%UgZ2QxAP4@^lXLrU~x_|6%IO??Q literal 24336 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 z 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 IOz+*l0g`ceH2?qr diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 952205bd79..3dc247299e 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -193,7 +193,6 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval assert commandParts[0].equalsIgnoreCase(AddCommand.COMMAND_WORD); try { String commandFlag = commandParts[1]; - String[] inputParts; switch (commandFlag) { case EVENT_FLAG: From cc22993986d440854dff84edbec29826aef4a8b5 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 2 Nov 2024 07:03:17 +0800 Subject: [PATCH 362/619] Add project portfolio page --- docs/team/jemehgoh.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 docs/team/jemehgoh.md diff --git a/docs/team/jemehgoh.md b/docs/team/jemehgoh.md new file mode 100644 index 0000000000..6f3ad047eb --- /dev/null +++ b/docs/team/jemehgoh.md @@ -0,0 +1,42 @@ +# Goh Eng Hui, Jeremy - Project Portfolio Page + +## Overview +EventManagerCLI is a desktop CLI application meant for managing small-scale events organised by one person. It is written in Java, and has around 4kLoC. + +### Summary of Contributions +* **New feature**: Added a parser for user input. + * What it does: parses user input into executable commands. + * Justification: This feature improves the product significantly as it allows the user to enter executable commands. + * Highlights: This feature was used and built upon by others as additional commands were implemented. + +* **New feature**: Added the ability to mark/unmark events as done. + * What it does: allows the user to mark events as done or not done. + * Justification: This feature improves the product significantly as it allows the user to flag out completed or past events as done. + * Highlights: This feature required the updating of multiple existing commands and methods to work. + +* **New feature**: Added the ability to mark/unmark participants as present. + * What it does: allows the user to mark event participants as present or absent. + * Justification: This feature improves the product significantly as it allows the user to track attendance for his events. + * Highlights: This feature required the creation of a new class for event participants, and significant changes were required to existing methods that modified the participant list. + +* **New feature**: Added a list of items for each event. + * What it does: allows the user to add, remove, and mark items in a list for a specified event. + * Justification: This feature improves the product significantly as it allows the user to track what materials he needs for an event. + * Highlights: This feature required the modification of multiple existing commands, and changes had to be made in several areas (like for the command parsing) to enable this feature. + +* **Code contributed**: [RepoSense link](https://nus-cs2113-ay2425s1.github.io/tp-dashboard/?search=&sort=groupTitle&sortWithin=title&timeframe=commit&mergegroup=&groupSelect=groupByRepos&breakdown=true&checkedFileTypes=docs~functional-code~test-code~other&since=2024-09-20&tabOpen=true&tabType=authorship&tabAuthor=jemehgoh&tabRepo=AY2425S1-CS2113-W13-3%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=docs~functional-code~test-code~other&authorshipIsBinaryFileTypeChecked=false&authorshipIsIgnoredFilesChecked=false) +* **Project management**: + * Managed release `v1.0` (1 release) on GitHub + +* **Enhancements to existing features**: + * Added error handling for the `view` command (Pull request [#61](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/61)) + * Fixed duplicate entry bugs for the `EventList` and `Event` commands (Pull request [#120](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/120)) + +* **Documentation** + * User Guide + * Added documentation for `menu`, `list`, `exit`, `add`, `remove`, `view` and `mark` commands. (Pull requests [#63](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/63), [#104](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/104)) + * Developer Guide + * Added design details for all components + * Added implementation details for the `mark` feature +* **Community** + * PRs reviewed (with non-trivial review comments): [#47](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/47), [#53](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/53), [#115](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/115), [#131](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/131) From b0cd6b38458bda95a2013e6fc9d4a37a8c1ce84b Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 2 Nov 2024 08:28:01 +0800 Subject: [PATCH 363/619] Update mark command section --- docs/DeveloperGuide.md | 73 +++++++++++------- docs/diagrams/MarkEventObjectDiagram1.puml | 15 ++++ docs/diagrams/MarkEventObjectDiagram2.puml | 15 ++++ docs/diagrams/MarkEventSequenceDiagram.puml | 7 +- .../MarkParticipantSequenceDiagram.puml | 36 +++++++++ docs/diagrams/StorageClassDiagram.puml | 13 ++-- docs/images/MarkEventObjectDiagram1.png | Bin 0 -> 5586 bytes docs/images/MarkEventObjectDiagram2.png | Bin 0 -> 4966 bytes docs/images/MarkEventSequenceDiagram.png | Bin 21120 -> 14374 bytes .../images/MarkParticipantSequenceDiagram.png | Bin 0 -> 34473 bytes docs/images/StorageClassDiagram.png | Bin 27330 -> 23293 bytes 11 files changed, 124 insertions(+), 35 deletions(-) create mode 100644 docs/diagrams/MarkEventObjectDiagram1.puml create mode 100644 docs/diagrams/MarkEventObjectDiagram2.puml create mode 100644 docs/diagrams/MarkParticipantSequenceDiagram.puml create mode 100644 docs/images/MarkEventObjectDiagram1.png create mode 100644 docs/images/MarkEventObjectDiagram2.png create mode 100644 docs/images/MarkParticipantSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index f0e0706278..f50f66f37d 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -58,7 +58,7 @@ The `UI` does the following: -The `Storage` component comprises a Storage class, as shown in the above **Component Diagram**. +The `Storage` component comprises a Storage class, as shown in the above **Class Diagram**. The `Storage` does the following: @@ -145,6 +145,7 @@ The above input is parsed into `Command`s by the `Parser` by the `Parser#parseCo The `Parser#parseXYZCommand` operation then does the following: * If `XYZCommand` has multiple possible operations, the `Parser`, based on the value of the first command flag, constructs the `XYZCommand` object for one of these operations. An example from `parseAddCommand` (where `commandFlag` is the first flag) is shown in the code snippet below: + ``` switch (commandFlag) { case EVENT_FLAG: @@ -166,7 +167,7 @@ The interactions between classes for the parsing of a command with parameters is -### List feature[TBD] +### List feature The `list` feature allows users to view all scheduled events in the system. It is implemented in the `ListCommand` class, which extends the base `Command` class and formats the output to display all events. @@ -210,7 +211,7 @@ The feature has three operations, namely: These three operations are invoked from `AddCommand` through `AddCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, and is invoked when the latter operation is called. -In `AddCommand#execute()`, one operation is selected based on the values stored in several members of the `RemoveCommand` instance, namely: +In `AddCommand#execute()`, one operation is selected based on the values stored in several members of the `AddCommand` instance, namely: * `participantName`, the name of the `Participant` to be added to the specified `Event`, * `itemName`, the name of the `Item` to be added to the specified `Event`, @@ -272,15 +273,7 @@ The feature has three operations, namely: These three operations are invoked from `RemoveCommand` through `RemoveCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, and is invoked when the latter operation is called. -In `RemoveCommand#execute()`, one operation is selected based on the values stored in several members of the `RemoveCommand` instance, namely: - -* `participantName`, the name of the `Participant` to be removed from the specified `Event`, -* `itemName`, the name of the `Item` to be removed from the specified `Event`, -* `eventName`, the name of the specified `Event`. - -The operation selection logic is similar to that for `AddCommand#execute()`, with `EventList#RemoveParticipantFromEvent()`, -`EventList#RemoveItemFromEvent()`, and `EventList#RemoveEvent()` in place of `EventList#AddParticipantToEvent()`, -`EventList#AddItemToEvent()`, and `EventList#AddEvent()`. For more details, refer to _Add feature_. +In `RemoveCommand#execute()`, one operation is selected using a logic similar to that for `AddCommand#execute()`. For more details, refer to _Add feature_. The interactions between components during the operation selection in `RemoveCommand#execute()` are show in the **Sequence Diagram** below: @@ -300,7 +293,7 @@ The interactions between components during the above operation are shown in the -The operation logic for `EventList#RemoveItemFromEvent()` is similar to that for `EventList#RemoveParticipantFromEvent()`, and will not be elaborated upon. +The operation logic for `EventList#RemoveItemFromEvent()` is similar to that for `EventList#RemoveParticipantFromEvent()`. The `EventList#RemoveEvent()` operation works as follows: @@ -315,9 +308,7 @@ The interactions between components during the above operation are shown in the Upon the execution of the above operations, the output message is set based on the operation's return value, to indicate if the removal was successful. -The values of `participantName`, `itemName`, and `eventName` are set through the participant, item and event parameters in the `remove` command respectively. - -The `Parser` assigns the values of the parameters directly to their respective members, depending on the first command flag in the user input in the same way as for the `add` command. +The members in `RemoveCommand` are similar to those in `AddCommand`, and are set from parameters in the `remove` command by the `Parser` in a similar way. ### View feature @@ -350,34 +341,64 @@ to false if the type parameter value is `item`, and treats any other value enter ### Mark/unmark feature -The `mark/unmark` feature allows users to mark events as done or not done. The feature comprises `MarkEventCommand`, which -extends `Command`. This class performs one operation, which marks a specified event as done or not done. +The `mark/unmark` feature allows users to mark and unmark `Event`s in the `EventList`, or `Participant`s or `Item`s stored in an `Event`. The feature comprises the abstract `MarkCommand` class, +which extends `Command`, and three child classes, `MarkEventCommand`, `MarkParticipantCommand`, and `MarkItemCommand`. -The above operation is implemented as `MarkEventCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, +The feature comprises three operations, namely: +* `MarkEventCommand#execute`, which marks an event as done or not done. +* `MarkParticipantCommand#execute`, which marks a participant as present or absent. +* `MarkItemCommand#execute`, which marks an item as accounted or unaccounted. + +The above three operations override the `Command#execute()` operation in `Command`, and is invoked when the latter operation is called. #### Feature implementation -Given below is an example usage scenario for the mark/unmark mechanism, and how it behaves at each step. +Given below is an example usage scenario for `MarkEventCommand#execute`, and how it behaves at each step. + +1. The user adds an event `Event 1` to the event list. The mark status for `Event 1` is initially `false` or not done, as shown in the **Object Diagram** below: -1. The user adds an event `Event 1` to the event list. The mark status for `Event 1` is initially `false` or not done. + 2. The user enters the command `mark -e Event 1 -s done` to mark `Event 1` as done. `MarkEventCommand` calls `MarkEventCommand#execute`, -in which it gets the event `Event 1` from the event list, and sets its mark status to `true` or done. +in which it gets the event `Event 1` from the event list, and sets its mark status to `true` or done, as shown in the **Object Diagram** below. + + 3. The user then enters the command `mark -e Event 1 -s undone` to mark `Event 1` as not done. The `MarkEventCommand` again calls `MarkEventCommand#execute`, in which it gets the event `Event 1` from the event list, and sets its mark status to `false` or not done. -The interactions between components during the execution of the `mark` command are show in the **Sequence Diagram** below: +The interactions between components during the execution of `MarkEventCommand#execute` are shown in the **Sequence Diagram** below: Upon execution of the command, the output message of `MarkEventCommand` is set to inform the user if the event has been marked done or not done, or if the operation was unsuccessful (e.g. if the event specified is not present in the event list). -The user determines if an event is to be marked done or not done through the status parameter (indicated by the `-s` flag) in the `mark` command. -The `Parser` then checks this parameter for two values, `done` or `undone`, and constructs the `MarkEventCommand` accordingly. -If the parameter value is `done`, the `MarkEventCommand` will set the event as done, and will do otherwise if the parameter value is `undone`. +The `MarkParticipantCommand#execute` operation is executed as follows: + +1. `EventList` gets the `Event` with the specified event name from its list of `Event`s. +2. The selected `Event` then gets the `Participant` with the specified participant name from its list of `Participant`s. +3. The selected `Participant` is marked present or absent. + +The operation would be unsuccessful if the specified `Event` in `EventList`, or the specified `Participant` in `Event` is not found. + +The interactions between components during the execution of `MarkParticipantCommand#execute` are shown in the **Sequence Diagram** below: + + + +The output message of `MarkParticipantCommand` is set in a similar way as `MarkEventCommand`. + +The operation logic for `MarkItemCommand#execute()` is similar to that for `MarkParticipantCommand#execute()`. + +The user determines if the `MarkCommand` is to mark or to unmark through the status parameter (indicated by the `-s` flag) in the `mark` command. +The `Parser` then checks this parameter for two possible values and constructs the `MarkCommand` object accordingly. + +These two values are as follows: +* For `MarkEventCommand`, `done` to mark, `undone` to unmark, +* For `MarkParticipantCommand`, `present` to mark, `absent` to unmark, +* For `MarkItemCommand`, `accounted` to mark, `unaccounted` to unmark. + Any other values entered for the status parameter will be treated as invalid. ## Product scope diff --git a/docs/diagrams/MarkEventObjectDiagram1.puml b/docs/diagrams/MarkEventObjectDiagram1.puml new file mode 100644 index 0000000000..ac850025b0 --- /dev/null +++ b/docs/diagrams/MarkEventObjectDiagram1.puml @@ -0,0 +1,15 @@ +@startuml +!include style.puml +hide circle +skinparam ClassAttributeIconSize 0 + +class ":EventList" + +class ":Event" { + name = "Event 1" + isDone = false +} + +":EventList" -> ":Event" : event + +@enduml diff --git a/docs/diagrams/MarkEventObjectDiagram2.puml b/docs/diagrams/MarkEventObjectDiagram2.puml new file mode 100644 index 0000000000..b5916fa5c1 --- /dev/null +++ b/docs/diagrams/MarkEventObjectDiagram2.puml @@ -0,0 +1,15 @@ +@startuml +!include style.puml +hide circle +skinparam ClassAttributeIconSize 0 + +class ":EventList" + +class ":Event" { + name = "Event 1" + isDone = true +} + +":EventList" -> ":Event" : event + +@enduml \ No newline at end of file diff --git a/docs/diagrams/MarkEventSequenceDiagram.puml b/docs/diagrams/MarkEventSequenceDiagram.puml index 11f985106b..ed1dba1813 100644 --- a/docs/diagrams/MarkEventSequenceDiagram.puml +++ b/docs/diagrams/MarkEventSequenceDiagram.puml @@ -1,5 +1,6 @@ @startuml !include style.puml +hide footbox participant ":Main" as main participant ":MarkEventCommand" as markCommand COMMAND_COLOUR @@ -7,16 +8,16 @@ participant ":EventList" as eventList EVENT_COLOUR participant ":Event" as event EVENT_COLOUR main -> markCommand : execute() -activate markCommand +activate markCommand COMMAND_COLOUR markCommand -> eventList : getEventByName(String) -activate eventList +activate eventList EVENT_COLOUR eventList --> markCommand : eventToMark : Event deactivate eventList markCommand -> event : setDone(boolean) -activate event +activate event EVENT_COLOUR event --> markCommand deactivate event diff --git a/docs/diagrams/MarkParticipantSequenceDiagram.puml b/docs/diagrams/MarkParticipantSequenceDiagram.puml new file mode 100644 index 0000000000..00b4bcb88a --- /dev/null +++ b/docs/diagrams/MarkParticipantSequenceDiagram.puml @@ -0,0 +1,36 @@ +@startuml +!include style.puml + +participant ":Main" as main +participant ":MarkParticipantCommand" as markCommand COMMAND_COLOUR +participant ":EventList" as eventList EVENT_COLOUR +participant "event:Event" as event EVENT_COLOUR +participant "participant:Participant" as participant EVENT_COLOUR + +main -> markCommand : execute() +activate markCommand COMMAND_COLOUR + +markCommand -> eventList : getEventByName(String) +activate eventList EVENT_COLOUR + +eventList --> markCommand : event : Event +deactivate eventList EVENT_COLOUR + +markCommand -> event : markParticipantByName(String) +activate event EVENT_COLOUR + +event -> event : getParticipantByName(String) +activate event EVENT_COLOUR + +return participant : Participant + +event -> participant : setPresent(boolean) +activate participant EVENT_COLOUR + +return + +return + +markCommand --> main +deactivate markCommand +@enduml \ No newline at end of file diff --git a/docs/diagrams/StorageClassDiagram.puml b/docs/diagrams/StorageClassDiagram.puml index d63735c7fe..3dd9a0f073 100644 --- a/docs/diagrams/StorageClassDiagram.puml +++ b/docs/diagrams/StorageClassDiagram.puml @@ -1,8 +1,10 @@ @startuml !include style.puml +hide circle +skinparam ClassAttributeIconSize 0 + allowmixing -package storage { class Storage { - filePath : String + Storage(filePath : String) @@ -11,13 +13,12 @@ package storage { - isValidFilePath(String filePath) : boolean - isTestEnvironment() : boolean } -} -rectangle Main -rectangle Event EVENT_COLOUR -rectangle Parser PARSER_COLOUR +class Main +class EventList +class Parser -Storage ..> Event : saves/loads > +Storage ..> EventList : saves/loads > Parser <.. Storage : < adopts Main .> Storage : invokes > diff --git a/docs/images/MarkEventObjectDiagram1.png b/docs/images/MarkEventObjectDiagram1.png new file mode 100644 index 0000000000000000000000000000000000000000..b0a814282fc7d11dc04cf86b6ae245f7ac7deb6a GIT binary patch literal 5586 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 literal 0 HcmV?d00001 diff --git a/docs/images/MarkEventObjectDiagram2.png b/docs/images/MarkEventObjectDiagram2.png new file mode 100644 index 0000000000000000000000000000000000000000..2c971680d2517b23233c5b44af24c6605298762f GIT binary patch literal 4966 zcmZ`-cT`i&wx<&zKmr1x3Be#D#RLdVdO(RZk)j|-2~DbW5Qx;!l_E_#0s@MPbZG+8 zTL9@@kS@I=@{aee@2z$3dhee(Su-bl&dlsz*%NV3>kb_aI}Hg52_05VI>pSsE1y!q6@+{xX; z(Ln^~?C9Co#SMfJd!qNy{hxjkQXr0Z`tZwsEix1&Y-{iGLgpNa`6Z}Bt`aF-$L$5O zqY1837cb8tg|zIQX-Dkk1&%S@GtFhmS&fo}wv*xzvEJf+${dfd_)|^Gk1}Z~$)Cbl!QQ%+94Ob^v(d}|oSzaigYK1hd~ zQJH!%RA(D5ngOQ)t;VV->3Ki?mEn8Opp`pJiH`J=a|k3mAc(T?9`3I76GPjihbt$xiB9Jn^=CZ0I#`2F)yyj+2yoV&EmUR z&{6Lme7uH0_+6YIZBW$%|Gb+lijb2#?>H!bAW0_q>B70;gfN}W+6;NTYK+<4-Br7( z1QrkwFjrT*ucHI49DG^$Gc+_5;lD9fnwOUs9UaY$KMq_>m-lCXw7#}h*+JC8t&fz9 zU4(Jt#|)>#ks%LcMq@XpYdOGForQ269UWX-bPjiLP!KOKZ>*YzMtNyzs;E_0waY?! zMn+UrRNTqH9c~|QZ*L!;92kCLe7uQw@eTO!VlJ3rbG$5U^R70q1%ovNJw3heBO`Z( z31AKhhw`8YrvA)n5POgHkzd~;nBu2Y_g4lM=9+?6e6sIoY0;1O$MdP*j)uWI31$k2 z#)by`3Na^&ML1sN6(2IK4;`Wmj);gbEHOJf{AIb`5qA}b!^MTae8~U;Df061wT_G& zzF~RFeEiJA13fr0GU8sP`&KLCme&Ua7@DG)EUJR;BC{WPzjJV)O2*Y%tp6_dVWmTA zef|03x-|Z`6xhYxJz3`&Jp&{SH4MSbstDOUSTQl{m z86wf&-Q3)u22a>r*S-rlfjc`o9)59OrExNB#Ghw9|I_)Hx$6Cj9tJrfA}E+(1Rnov zrQUf!Ow-HB$*^#ke8SLCN7NmI#!A+4Xdt}`l7F`fu>ldULAMdqe6^-GAH+S^aBoPN*0u*l_~qg zB41fM2v6u8rqrctB8fV`k(F&xI@-ox$I(m+WEqsO5)33s2>g@>ylVNuq_)jEmGG}@ z&ge`w#Y@}taY~Ge|9e=&;NxRCpIys;I#7wT_%p|*Aj+071_m&A>a!KCt5%l0+>=4X z>E+!7ZF$2wZxkaMjqaB}+c5E(X1;t`&%oezC4oS&wz7)hx;4_?&dinB*3ssGDbP$~;p8+nG4WsQ zfZn|M(Q&d8?$!|tmzI{!`&y{;#;k9v@k0LT+}E+OFZ1nvr9V$=ZQk*8121ICHLBY&>xYvvi|C#u3v&B$>rh|0Z zy}qwgRnA$V6H|Q;9{Yqg3=m)ME%zsQsS7Nz-GA^P?9IaRg{6e^%wJ?nb~D^Jr)QMH z-nvz5ia+6#ljEwV7ND~3eSNT$<}A@o@cX^fZt3i{+!qra?ZBeL!cZOzcdpx^5+i3i zh!?hD={l0B04w3~c=-gZlD?;#o9=f`Wopoym`%6&Xt8WoHL$2;aD|Rx$e6o`tX-AWh)Wx-Klt_XNhs&8;n| zbK}O1l~?N6#~9zE&1q04;)ISYgc@L)#Kc5PdkhBS}GMXBx9J@%~`t6&PjEu$de!b)#xTv^zZQxBi_w(OM@_&Bs z^-I~rx0#VAFRZR!irPjA2t4UYLG4E!92_+MIkhiy0O8>XU05@83ARhbFleTVhUQg( z$4hZxF)_WZQLLTq`Rd8>MV5tppk8k8xxgabw}-1k)bcz`aWZxn0BzlVc_n6rvIPA@ zVfBPOH!4i(g8$x#GXC!+AQStq|G@oHh9#Km z?jlyEJ^W;g4ZVJ_s_AWxPk;Ge#I&6pZO!UcswKY^sfzw2~E z_paNRS&S)yn;=v~O2`Si%Vbsq3Q7`-?J&&pjjHN|Qm zx%eugB_ksvZ36-N&P>!nt4Na%Rl@G4h0w1we5C)Hgv~S!p#=kfh}2U%tp-GnbxEI#zKh z;ElT>KfxLnYFb(^b`>GPhj1A7O&KqPAau^WCqTu>h&|U2?6IP&`WQ@_pPye{$e-y= zcFB{&nUGBuYg3zdEmoi!Tpquoh{2H8*JHJA$8%$=@MDfI;63$1Q3gGka%m3rPv^FVkxrX7n?JdYbSea^+)(%-Kg&vEC_ z`H6X;=*DQz&y|5USS;4Ti57BD+J41%Im4@?T{BH$e#PBqc)k0zRYz~IJVhxJ^oWom zPtMdz^f&MCN+P+F^NvQXj%`p#UDUDz^8JeUkJZ&0?;Q)#;mn(uy1F{zJwjL*#se$y zt*>wMbh+nF2XE9bGCjY|n&mNLw(s?Gb7mcibWLW=-0zBuw-Y|>tFCflWT2biCrNxY zkJ_+pt*ur|J*nzRLgpVe@z#-*+khRgRT2{uyJ_-8MKb4?8t~B?8a@5}{K6ogdr?`} zBfL|-wS}9+8N6U_`g48;04^#n)9wu+^LO*X^_S`(8k$qUdmt_S*NWaE#v#7Gz6H^U zDi=`kYKtHiFRRIV;pop^JW4xsO)LF)yMOsDG&&tPb zZ()>`V^dH#!gt20TtxFyKmdu}_{rXK3+8)?)ASc5{?GkH;=K*K)BV-4Nx-=za*2{M zYq1HDx~8dInpoQ1b#=dd%WLyhIUVWIlv{suC@uC&Lqq0FlAavh@Oo?NRqAD={fN-d zOg zm|b~yP}9oF3ZU@LAmTBNk3XryWF_56ADI*RqCsO0Pb zY^aUnbpC1l`>y(<8TG8~A6I`c-Cwc}fCCWeqV5e4A~SvTC`yx(l2T1OQ&w73^!}hc zFe@`5g~62IcQ|enUO@Ea5mDARa2ga~y-sBn=nM@JNeIfI>WO({L{vcxoG0}|{IFVMM#B_;=7A5(C9P@J0^B+z0u6+1O$ z49T#{t?v-5u0y?>}3|c8%e>0(Km(kD_j`IZ+Tc4JHan7WV+z- zDrfE>Uss0xsTwyJO;~8?dF@de31NS2Sp8%>S&^y>pgt!jrxoc3-5;~=PW&ryHm$PC z#AyLpJ_cMvx#U++P_S#!L5G@#AOLLP935lExKL?LW}hl5db_*DS|Qj52EqVxO^`qx z?%8n$k&IYl!YGCv!=UpaiTcI|z@ohXT!j+>IbXR(phtxOE^ums0LuX)7Z(>FJYp^g zaMm|4h##GiiId1^``Mkmx}TT!x4v;itC(H+FP}Ki43IGhd}@_r)kEsHqc1t#y>L{C2UI zQzRTGh&h<^^YaL!;=N-;45f8qp-4libuYVBs?Xli_{2mm_oEtDKEo@HK;$wf+;mYVo?ozT!3M#7j&M!uL$9k+O z`L&6Q8Avw+h)(-Osavcaz*~U4B zfRR^!bkQ>?r|>oQl463aNHE2Zq?8oc>#W4Y&`sq*?-pbGKtm%9QQ@w5BR1s+66Ro~ z_aKahw9^?7hGf}hE*0?4e*izYq3;p}#gvcOqRU0|fNZkq&jh3ob9%Cz_2BjPjPI5? zSojGnx8keN`Ss4NEJ6M&j8EmeM88f>J{pFkOWamL#EkU}4l<&NuNEqAIwDnw`ACcK zywcl(;3l=;o~0IVR-CbymsfN%2Rl3B#5xXuG8@jUZhmR$HcPi2T4nH|SrUsF7x)j-y|t!l@lCJ zpXWLZk(C+EJ>B;tYXJ;uU%GV5Qst0~=3f9wimMPs{sS!kTW|drjsoFTU*GqOXxZ5n z0~MJH_dnqJ|K5*?io#u_1ko!3v#_zT0T&n>v%16&Kv@plFd!R!%t4ZunVE$jRXWsU t|t3|3~wiyDN`%@tR>e6u9sr!K!Mhd{8zE`X8jEMbiKP literal 0 HcmV?d00001 diff --git a/docs/images/MarkEventSequenceDiagram.png b/docs/images/MarkEventSequenceDiagram.png index 0475326173131270d2cda0dcc90015ba7d010603..7530f59889218cb1aa13388af292e5088266a696 100644 GIT binary patch literal 14374 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 JD=jY&{{aAO!oL6j diff --git a/docs/images/MarkParticipantSequenceDiagram.png b/docs/images/MarkParticipantSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..410b4b98ef665dfa8798bd62a08babe39d7e85f0 GIT binary patch literal 34473 zcmcG$bySpF*ar%d5<^HxjC6=}2?I!%gmg=nq{JXdHv7Pju61YD5aK=0Ig^PCM}fK+y-j$h|QFqPyWGf z{9QDwF)M>~_yQqk9-ZPPHkX=6%9 zW<6GgFd;F=jTVa}k+0M+E+v+bC(h;lJ9-JmQu$1yOSs{YzP@s!tr?PSk=A=x)u0a^ zpY$EQ+hT^EziK>eM!|Lc?V+t*?iu#VE%AX(n$m$&^py4agA%*O^bJCV@4wKC;$S~0 z^y6iMNZ{}sOml29L7p1JJrgrxs#h!M&(42-$8Lr%abPu1IyKqg}{IH)jL*hC&O~o zm;vBVFOSS9&h1~QF~{G+@KMF_QDgDspntxHkq5bbL3{A1i0O!UmWZ?ZD( zD6Kmxt=aR$Q2u~^=6c;BX(}+s5?;(xEyD0r?#K#mC)D&U!Pi0V8?i_%d|T$G8wx{z zY`tSt5cXk+m;&OMdHGHBMlME>$=1?$Y&9tSg4fm-A0U;Ft8DQw;Bq4bF$8e zT@=r}7o?tZm3}?yBK-{KMS?)Rv#E`{bF893jnkE^T#W9Q#|qjw<&zQ~lDZ6sqe0oZ zAD+`GJlUFT!o&-uP2VlUeWO6+o1g}7H!uDtFRVE#!Bu9(_(&G=G(N}D?cMuF zuW2jwcvhWs;z!#j%SX*fxQZu?SC!0@Lu!=Xxka(cm;cmjbYUiwLKv2%oR-8FcTQFY zD?sy~-6-CEl;yDogd(1qFL_G!b@|2{2P$6G2SL&gajoZcUk}jA98(rHzrp#wz(0HY zWbbV1)qYbxMUVZY`GWSEMIOpb{8ftqF_+UIIFDWAaAa?5D$aK|9^X?IS zTWq2%Zeb|HYVDa)V;xV7EjB$vi%#-Olczl;nXNaK8;nJWd!1^b(g~jI#p(3&5eebM zauS1mDG{BXv=7(U8OYwkm|r=Uw`50wUXxzhMOb5jkTv+ zfOE>L@^NbTg_XnjFQ-eh(S!Jk7}J66(#S!@a5B49X8TpAhP-{^}}Z$rOJfV)Yuu9d*nqz`jDEd5{*!f>?S zi2iVbXFG0zf9W31#CKm%~i zl#~+f(3+YA&tpo}A?-LUDd<3HM5xbwx}igBgU^#QHDY6*tL4$8T=P!9FPmLYOcY0! z`6eOy(n_AXA%ECp-$^aSoQqX}m5f4;Z29DHTa^N+c4Gv>-}wv;o$CCNno%A;Jo??}-M z!P#EVCG@!)wQHQ6*xX>i-So_@k8dUQi)>!&AY#Jit+NPiBCkehnf{66{QJ*|*$_7U zy1iZI{)zXnqomqeC3AD{a){NC!PQcPW4=;ai}}}L(d*MRi|ZXUaqvt6C7 zoVi}X`J<*+pRURJgK+87GbugYiE`{tdJeh}egj&vG7OK#J{QblEIl`4aWou#$Hw#| znWClAak~qe`}j~Cm$llWTlRUCr8sx09R<ZE=5N#qE)3i zUAVZSrH8D(`gHt|w{R~JdCNm~G$Oc=>W2TkRWx;Mug}%I?#VS*V%KAT=j{)5ZO;@1 z9v5}4{t}?H8#;)EnJY^wynVCGZ2%XGBzrKN&L#<+em$nb&eJH-QP_UNUhC5F33t!2 z&%u8PvN`>|Nj%2+s6cD09eV+`?_r%ZBJT9O?*|#daKLP1m#nAD=Ei9Da(}(%2S`KV z;_IG7s}Q$ezo5Ypq-~=Np0Z>X^JqnxoAG*PaIt|03qK1>v@>D?mvn~Kv!6TpEm2f7 zur7r;v!$noE_e0NTn|p}al=mqn3HZKO&NNq2;Sx4 zsjxFh2e)bSXm&en}oqqNv z{MvCz?dy*LLZhcoS0B)!n2F+^og5k_dk^t;hvd$`=eZQl)M?$$!`j~Ea4Qg4z5WRu zBEcz9wy<5ESw1_1eNTpk;i6k9IGOQ0={|rK!5SXk$OF-nM*3~T4v+J@SU7ytYO4@gT3t*_td ziqK7x#$)~DwoUfHaBy(2#iX-4I$GJ^|FiEET-Ku?Je5y16pyjC<|XUxXC7%EwYRZO z(uor^|J0BfvqB7SXEsKgJb)0-UN%V!Xzp>>a?4W7`lx*D9p!6QVjB$qsZSGHBKc*; ztqc0JVxgcEk|6WgvihvSj4Bt`K~?X1=Z~JdLPvIb1UIQuI`js~qibUVcF~fOj2)uArhl^E00~<*CrpfW^BDu3eu1Zk#|zxnqU~k3pH*)438cK66TZG z=_bIaby6wPhCGF)^_#R$YFL8NQ0oZuyRPgFI=5TO6vJP63Mss-t--5t>TJ%IkjLXO zi~FSfxz|pEv9zJGsOf`QfNT&8e4$>X2d!Q_*u>3HlhUhF)Aq!s7pDr|spZdK-szk+ zZ=DZOq2m48)lps?_%S0zGfy4ApO?+D!%DRwIhBN`8;yOUqsT+R(2JK{i}iD^Ww9Q- zy>|55bg*x!&L~f@D<%oP=T13^?9nzDD7>GB-)Xz|;b*d*F>wxS9XAhu zSAB?juxN!Cr(0!3kD&VCXFL=(y}jW5gXVH|54%-s2lWyS0 zERZKUVJ{EY2m3El@=GE2I|Sl%mk&Ipng>&%1R4~~YXA*Md=%9v0RM8lM4_@SZ1pV>qGg{AfahX3(kI1jg>`Cxr0}eb%vED#OObg ziY05EOFx6|`pD9B=K5n1{+<5Osdu02iUk^w18l1#pcN)@_JQw+pNUW-FD|Dst$P{! zzZ1}@D^1VR6_EKctvn$bcxXJDS!#{``dy0+B2ERZyWQc%n9&qeBJNTPI{90rG$;)U zNhcFCR$~(ouR<6Gz>H-x9EZL*hbpK$MNZ+V8*{!uE-!Ubx$K)TxEeA-VH zj7Ya2+V_|CRdi(NqO>H8Ri(*IA5fb3P3#`C-|OZM#i(hwzER}*-nEMKIr2I8r=*h5 z63y@>?!6%llFK_|6|TJ)$8)UJ_0KwC;n?Bl`g^HGD944?Hf{&_kz759^|UL_`-APZ zF$qQM2FND*N{g=^I2JDr4N`XDqU1v!XhkpiI4l?tl)Oynk@otubUipQJk;G4>2%by zLOjRWyEFe0uehf#?orQj(>HXz#2!1Q8 zr8{QL2EwN`N{!e|%F8peL^4mk;^ZgRVuXsCm-v#H{>)_LZ04zO&7*)vp0$`GNf82; z2y1kq&3$-27hLYJ82gP>fG+xEL&uTRn)S;+BNbhByB-B=f--$waqz%d>RnzoEbN{- zMngbT6VsCiLdOLe8CPcqj~ijs7M62D?z>+mj6PEF*)*r5oFy5RH-hj){D@j2hQSh_ zDqZP$$R_b=VmO&1khClI`l91A90!gHY3`)}74KmuT^ee9R@1 zEguQFzOA9@lqM8Pn(HwcBB>w16q+hlzhJoNL&-FEHh)_SGM<0Mf^$}KE(fu<|vYc-*e7elyKs; z*H9nLN1){|JQvjrD&+q??&%?0Y5u}=uD{8oc*(hazMS0X$%8JHCw!s^Bqi~MFE#lE zuTXp<482vx6rt%6Ns%vc7D5-yo_~7p;<18vXlrU=`d+OOgMBJF=t$c@QIptbeJ>oG zkK(T{R|D)n%8mL}XIc^zMZ$FwYDze$i?*oLhh8tY$a*LnQDc7_%D z7c$^O3>Vqa-)tB=%zm(g)(Jmmb9BCZ{T}J)|FoN~v0eJ|ZE0DEId+>fVJ83$sotTq2T12>b?Gp9If#7R+ z;kPklmsRfCD}1AjVt2HYA{1#%vLBqF(*dU3ftvIinzmJ0bUT=#E zg8k6JF}R(QzqqpK16flnl6IKEXbP#i7Dml5dqrd({~MT;<5s_Rwh5nQy>wys;cQ+* z(et<15>49u!)l8+#VF|^q%yVy2_UK@Rh+kP?wtJ$5{UAVtWDl~Jj<254oJ)L59*(V z!#LObvLCpVX3Vam4l6}1N+d`7eaHQ8SWuTV;d+niBGJ4QwPqEp^BT;YFa_`%pe$ds zzj6y1q^4d~$`wkMwHGVESDMWY`PWA?j0|S%s zznoj6!#>*8a66}>qT*pWL}z!?K*Zdg z*Ob1=^V>M`J%{yT!&$09vsG2G1lZWq7cnndYC}Z=DEl>XA$6@os}~byCkF)E_dynEi)q}apLG4?LUsJVx+GkL9wkd%CCpBF;;^>u_bAO}LrOfI z;nvL-NU1$@y9;+i*9^)iN$mO(2ybe>lxQ*>nmZ#G1r{6jX+o19?Yh+oaCQ_HmY}?g zfu|h5=i44AML*?N_V(=bavktk8xFGRIlL?^Dc>SG_BCr@{XIgy_8ijfsq$ z6`!~&4_r(g;IVZot~cu(Ec{MIhyF_@E{Z8CN5S(R%}aTP(6taa&tv}W<$F>6=UWw9 zzqC1am=!6{b~r3U;p)wGiFta^u_GXuNJhbGJTJVU>knQ(Umm+7`(*;dT53{SiPTGBP4`Jp(c_36%kwPTjwi=9o+I9FrsT^&c?D?a zEODcm`7WX}>_yi1x5k&_`$Qrmh}Azr8XpiSkQbwv-V|$6Omb_7aZf|HRsT2!-3lkSr%W=^WW9#RZ`^jZDv z&xZnP9{Mq26!ncJQ>3*+7IaGCWYrUl8qXn|nGV0npR}pH%7+AAriQ($5$Ks=n4I{8 z(J&9E!!i2r$85D;g(9=55q~4%{1QnNQ>b&W?~`Ao zih&y)R<9dK*HIN!B&{&9^-5V)Gnd=M`o3?&*$~}3dfajGeQfM}2q}kU0_zJ5JmWJ1 zsO6xZ^@|t3mX~)Bh{WW{5}R@IKy+_+-B1MeSumP92C6iw0*L^KA^cZc%Y+VY3^UsV zF$6aO7h~dHPr>2JwQiS8qBT~KGHMh_&aOUJDjV3o)34(>seNAs53cp#C$FwNbOHBt zS~x8@Y&C23#ydD%RHd~+@-9)uo^zxKFSqWV5WzZPZp}?gXH#XQ z3~?x+uE3)c#sc@_72{B`n&Ft*p%r@)@XprkUao1^TiwxbDJ?F3L6ej-LZf*N5BqYj z0e@s|6B`rPo zEov@nN~wIvF4Dle>+!C*AGsV&2lDXO*D>*qfTtp-Xqco=MQus9AaM@{E>AD%+PlZ) z_5#oxQ9!7mRI$vnruAfhiY$WR+uAmlIqE$Py3iEF)d=gUV8fFZ8Ge?UyePKFeR9%=m zi8{|W?e`rW#iaLV64t>#p;1lOf#3c1p_xf&rTVkIPfqGx>b=dBvGgwrA!kaymwP9l z1DPfrx#yW)%X@&wudNqzB8mXWW_~M zCcU}^33rcUudnh=c$*ZI8xp(H>rq*8Wu!i}Lr#B}0Cu6{Y`gB6FMRw?0N$I9&Y?QA zUbI`%dBLO@nXhG++0$knWJ}^12;;a*N}#yMu*%i-_2}80O+JLxgcN}E61Tp;{;a zbS=_t6~k^e%Z4p)mRh}IuVjq~a!Tnc_UJ!Z?X^u5`gZ<^7R@hjam!0C#pTCjUJe<)ySowkhOQeYT0!GC^V4Ad#r@!j4GSHu@gyO>_wV2ZC#!S`*QvUB76h)E*{;+iX4PKQ1SkN$86>Lfl8jd-( z7$jEUPdG*sH1u}-s|-R#DhtAd3d4=hg3!2zlq&Pv7X_9Y-hYVme{SP{>)eIW-Yr78 z_37}>{Ko!##Y+q!cKd?Vli@^IFCsX$0|_obGyEb86^@zBV-Bx+p#U{M;z{`5FUP`& z2nsvz`YWR_6iQ-d(3HeQjb(?4L6tFG$(hBW5*s+W8FqOPX;j2ZiLCEpcMgNw9FvU}!oRj&sQ|IN^7Y=cXU|YQ3)?@zH@CL8!8U|luB@y~ z*V?vuomFX->7k(Ghz)&>W3soi8~y%W)%o&t@AK!+Iu{F{1Gz2wDh9ugj#ixI%Esu` zJBZj%^Jw|ZXymsT}$0=@EdJ=51&6Jrkr+irjG@qEQ=c7q0EQ`3DA1{`gdRZkOG znprB$zY>N;2=r9+)^^@)6#vipuAF!DetB~bXwgt2-w~0p?bAF zt@+P0VN_TSrjCA4z`(!|5)e4tnmPbWxVf0Wv9q(IM%KBQF!I&a*LR$*xl7LFydozg z)D%wq2nK_(>(zwWx4LcX*%@X_prKxavn3QSo{TVDH* z@6dQZw>DE9EZs4x4F*VQ>6f0DT&*fEeCOO!FdRvQ5nYqYa5l=iTYl6M zqa$I}p=Qh0PGoSK|IvhoMe-oQ(akq} z@@g1hxa;&{$G!k2SLXvLZR{R z&iK2`)4@57!Gqo9{Z0Q@%cUp^M3(%&pZ3~B$_P9n;eS_M&%d8~Axcz@t@Y#w&XoEE3%L*Q#$1<4RH5$XXu?p%fU-mBp*0ymxOIocjB?^e(=|wZXJn+X>75 z&Jf({>T1c_gh$%PM@O|46*?`i;X_L|T$Tg(>F9EI+HT&jdtDt(fF~d&e#rTwRF~)F zf*9*e(<=^E)`6a$0?>RwWwBn&k&e(wLBl2)NPEoDV~I60GjqH(MK`F~|K=W3PHygp zMvuV%o-2 zTCPkKSTo)FWThGCZlEV2Mn6PkNk9$Td}fO^9|idy?`=(0hhf@?+@j8P z4}#JW6=prrpj2jGWoKs#=P=RJ+s!o#($dmWQyc%DX#_a&M!VWl$*$_ z40QA*V>~GA3%7Q;0U0rIS0a;QvP!LuCMESn*zrf5%BAb83jrA>CML>>Qr+r`2yhPF zJw4jR8h1PVGjeJt%Aa?3R9W;7Gc7JI9;|<};+tu3%9RX-SU+oW+aAWT8`=jUs_(OYQzBy*nehJz(E;R$s=JKW|#oqu>S!U~Oep56Y^M?^UhC>?h38 z-kF*gaR~|IjV|l>G1(9k6B7j@>ag?kb8fTK-%UH5J60|ybh6R$?9a&$d}?s7_bztY z^!4;;^{{E-x5b>B%eKw?g8#B}W+we>R9YGZmN8jLWK`59XarfeZAD#O-4#1};`{e| z&M&XdkKmg>rhfi3YIY~kH{lS@$+g78!{fDFX!i#laQ(3`I02NF`-09ZW%~8Q^^W%;vKHTcmEw ziggww*sU;R&hSo0tx0EXg#uYnWDbGH#Qm^=byy?n)o*Xhc+_CrQ_ z_wHS?WI7D~6u$^19?fR7(Z#A9Le0Q{cJDO?MkoM-Q`6H`RDsm@cjj8si1FK6!d6i* zAd2Y%1T54J{KsLn{QUe|*H~gGps0LKG*Q63(bCcam6pJ{7^OKh;r55`FB)Fn!=|0q zpCBZ4xEYmF>9sH@v6CnObCN&U*8Lql$0``c=vI0Ra(~f z9TY;o=PLz9(=#&Co-gGVPiH|gz4q_+4@AI_sHmvi@OD9oIX*s~#A0dJa)KlIUY`|w z_+a7XC0ybHLK9S;>84jZ)mGnjM>;zLO9FLB=@Cdj3w5g*`;q@dmV`uUjvCudAggOr4lL=MP8YzN}PvWGAV+NPeKx61F%{Dlkjn5YM*5t zos91V&p>insb3DJJ*M*=OyvuB$1XRv*b$7qi$_uh&I#MrgoEeDN2AQPJV7`@rcpwkkn)*`2D6gk6+EOc0qm__6CbU9`uN;aDEp>7qub|@%03zJj*Bmja1 zA^ zXh>P5Fff)7fZ=;3)$(zSOYSMQ_Kn4z;IRV(169ZOmV2@x&6X}ME)5-kE_h_TMVC^) zUQeJ$_;E%;D`DB(;^N}1t*r?xn&A-$A?m5=HTbB!QYN!)16D8z}uw~ZwO=t`azbT26~A*C0+k0)4!y1Ki(n(xE8su zb`@)h>!v7xoP^zg*$wSzVHkjnj(M>GAv?)En)zmr?^9D}p93+3*Fnz%_@9~aED(1R zadxo2M0u3us9mPl<%^gC^&0F*&*9)z!BF%CWD)?~*C1Sw zQP5A%&Q>2y|3cdsnrU<~5xjhL4`vD4?K^EsEG$RIoyE@3+658? zAm+ijGiDuQX^`w+Ud6`8yKYT#B{tekaUW+onVXx(KhlN_p?3PMudb3n{?`riAwkH< zp3Hy(Vo-VcIo^X1kdYN#Got?YvbV5aWJ^5IHrNhG_#V^z2O!>xEhD5m8W=g4DE^Zz zp7p%icYn##@oY#){ULz-Q3B&Vl3;R=sd3&$M&cM58Ih8bdSyR(@&qg$5Ts`c3TAC> zVwN`URmD>4NaFa@egL%4z?t`7Iu@#AOEfyKo*({lIo&mJLcWE^e_>9Q8vn=fZ2CXO z$2Gmu#P8gyIsjV#@rxbp6afJN@s2!l038D~ZG9`?bc6w{%v=omzS(MDLgSp}TQNk| zgHQMbf2mO7TB7PBqyTgm1-}0K;r~R_;{ROt7j%9LD-30q`b&ZO0~Y5&5ZTxS|Hwsu z+>KfeIwna<`?u_a54)9|{&=Fl@cq9Y8eEGRaLWU3@jJl!`2Ruv|GFU{+i%CeX&eS4 z7j>pRcFfalbUOJxi~BTP#8XR8nQng)y)$4;T*Q@z_76D>)P-)9F%uwL9IOq-t*v!G z6TJdKLG(UuY)s=t<7M0l|9z5wJ$)=-9w9lmQ=REtW+A+fA1A|_z0TA=Ewz00q`<*e z!#Ela4*N@u!?|x?C~0YFd2zgrf`VdZY6@~CDE(-20*{P4i1a?6%@~kgDk}i`+t{#< z-x@3W4&IA(*`BTq3JS95PYeb>LPNi0ic+P34*km6dH>)bjn9_kBkIH*F@$p_G&}ZN4{F-`*G5ND}z{YvF&h5wvm$ zXw-X$hv}RqcQlYjCg$d@m%1V_zpbsU)jP~e_yb0Ni>3}%zQ%zD39vP@pwFc{>WeQI zF6%=nsi^=*0ujm$v~5O4Mxf>QWC*>=$;pw4ru=HNkS^e4db+!~M7dZ7GyeHe8uTJj zoz>0FCX-Hdtx~;On+kse{fJt?odK-ld;?O{T=vJ9hNeC9o&TOGwX2waNhg3OoPoY) ziJ4D9_4xY- z6@EpMpovn1-Kr{DU=+U*6b_wJ@JMB4WmHeR3X5x1FfcJn@S`XNUS_?`{NvMpz-zw=uMz-p5?e#y!AF~jTYPXN?M z8!ron0Y(xEz6t>f3ub`3BWUi)ceMYJg`TTizCiq^g>pa)j7ds&G<+xK|20#pPB(T1#-()#RUV~g_N~KxL zuMO|5#g#_-qYA~;jfrb^7+K{dfb7(TR01#kyuCo` z^~Ta|Z*8$?m2Lpc3dn?cv05l-KNJ)cJ>A{=nn)$#q#W!+1arlKL13MA$5Yi-*5i5d zaqedZ`e`MwmFW;#q<>YWzZq|H0SvHHM^MooJIuUYk;DeAZhv=CQofZN$e+Cf11oJQ z8YnjX3S79op0>3U=pqvTt!BBEFv=%h4Sng4Y^UQ#qt z%csTM2gp{rBuGmU5fNSLy^|B5N#`})ehVk4`}P9RlMKODblU%{gTH$93JyOyK4$d1 zRV{c!K%W55%XzAV3A}lrqGxm6ZYa=mIQB~*>409mLX5qcOJaTfFE$9SI3_2}*5uW~ z2q|u3l)umZUrFWQJwl8~_Uba%y5CKoS1jmc;%X_Hx0` zbyoj>lo*+cS^s&Ti>Sw*J<-rtzh}Pca$;BwrHhj}4S_TRl!jsGp%_pqkI#>6SwRSxT!7(ho#C<7t-)`o`u(?rlz!4d1hJl>wcCLfHoSy#59We@6~h8Z6B5zG4Q9n1<}T zg(^Wpjop-UcO+SWDdY+<{^%E?-Z;VhT^ZS*h6}2G2+VlLYrN*g_oqqhgQ8FUVARe{ zpFYv1S5vYTbpnaJFOluyWZoA$e3PIib0ufC$TOt@Z5PR)ye+n;W7Z;%+A^W{VV3mo9T9u~K zsM_U_^>3MuGYwo6oP=fFX6ykcIe@n4Pop&6Z)gRS{yBWC5cF^s(Z0-%mm|3TgB`gxyz$8I2f7W&_+Y+_JAx~yz$ z$Vo{yf2? z;1+Dx&*L)!UijwDr9WDL^&3J4Kq+Iy033hi#*r}_Dtk+^oG`5y!M*_~pepzy=L(4J zG7NwnN{MBNc-Cb#h@1XzSt`h0M^`udK@CunNl5CXkOP>f2O<}NIMCUgIXDZx%oEVr z(@cdxx;X`@G$I}LBR~$SaYQj4c}J(4g_lA$^heIKUABec_re|lPl6~7+I+kLiUD1I zL(?v}Wj8E3b;RF#0LWw`G?yW_sLH*KO|J&i^9y%$z;-;G==e^im}4iuvBGIiB?;{) zP<1sxGfoBI%`8O|6Dp29;&U7e@ICRZPG^bmyB~8_nC1QpuOCxbM@B$ui-73a4}eL& zVHvf0P0h|`%zlyCl1jEZ3+us$pzPBa&U~Cbjgawn3kg&6}572Xthypy2mCU{~ z+eF%hpMyV8(LUe5{CKVrcKCZ%=;6aRWi6g3?6xQ|VUx!|RJOA>HC=j3BdKx*j{erE z?91%{#1cC^e}6bkmv3$UR@C&54*dmt>Qpb!xi z6^y=UOD^Qb+P{8<4sT~{Zf?lU!er$EZB;}BY8dRe4hTGJHAs(U-^q{-nQO3HwA!~l zBx>AWDSwLlTTf{`o7r^Ko1(x#Nua&h+1qnjkP;#M+P`5@KgfNlqN4Kcy~yo8g^rDl zW%``|0xBCmflnY*70cvd2z5;vlrtF+en3lHi zU;w0SPgj=-GS^2S8VT3{5)4{9E;+B93NIXxu~K?SP_PHz4lK*L)Kt~C-4A(~bPa#N zrva9=Dv$`aHG)cKW!lmD;P-5kF7n>b2%Qi;rCUjBfjQuATvQZpTW}zHv-@5ETdp?2 zby;cYqzhFgtld+GjHUp#oAf|JQnC#gmjIT$VK5ublLv}W<;zAI%m9_(zW^L|)HuzA zMLq=RJRF+EM6CXU3n1MZV7ta4?vZbNEG-#nXMjSdlYi?gzoX-XnGxWt{AmSK6 z8;UR+izGo5gb~n9>eZO%u3Dbhy+?zmG^#uwKaLNFN-2;lqT$?Xd3MRq;dP3jX+#S1bjs&5F5aYw@EZwpcEazW6uVwhW4 zRBH29oB^#vmysw+#A{JXTH5>iY+XVbZatjkzw0*hX58PgYitqt%ba+>X}!-62})3o zo4haFt}8Lc{^6m$2rHIz2?~T?qmR40Kw7cGTr(LO@H*(2i%=qZ09KW(Fd5NHfbrUl zg|(dtc%8mHE)~y#V73F7fKUoi;V=sWKKpUcUCx)|*}aaEPnC4O1Yq+1nXHlIRnPn5UEsJiTJRKzQ7AR+geu?Q9Rq`IC|fhkh7hjP>eX0T>11bDdJ1BdlV8dh z6te5pB%`2of=cNK5@cj#2m}(x^o)dvP24skBctTu1{kI&VbX@X1N)df@F_5SAaKst z5si(41}1=}l?wauQm5{Vexz5$*s1}otW;U^D&G)_+BNSeHeZDS0}7Ej-fK=TLPA0v z`7Mi;-q^ajx(#4t{X3BR{2=n9W`$z-*&< zq+Pz^_-2jZFO}m~y#NC43YuaDSK7McXp1P|-aSEvSM%=fr@J)a^4zh3iE`Ic$T4BS zz%zdZ5dZ|aZy662Kjwfi=r1+Rdd3mRXq5}YS>m7$EeLLi9A-N^%AId#EdK`Ru|%tE z$uXzKcESN9n_VMdSzCt6*$i}abex>{hTt|PzhK18)smPwS%1v$0F_G~iY55&YfWN< z``!{z&2DAA9Y)sy(Aeoe3akV-M+*I^oKXq8b22b={rHi1rQ|g5D=;7cbQW5+=e_L{ zz|~nqAoQv&2Z3<^>fFc>7DSDO3g&O7KcV*Dx~DYH;Jtl)9nI>g`olm_Xay&RsXR*j zX$d?sDCujW5?|>&$X-?C_@iL(gVB$N4}Srnn$=~h%3}KBn*bKcWFQE+v^0Gnb!Lep z93@shfF+25B>+8!+SN~Z+@Cu6){6#6>sH;|V+1?|?GD)R17)E2q%5qhh4=yx3V0OT z^MW8(Y68^QXSbA` z(La?T8p-6x?j9bCIDpUCj};Q!cxHgFpa%@||BXU#tzK!Lna>o|xbJ@A+*;BtDl4*? z_iyEpTgmc|_dRDSFK~e*oiuZ+f{ASe=ZKsGd-@M@5=1Nfd;fZZUjFtsgJd(g|GF`- zly5J+s~h#?A7TU4tizyEnasaSDeyb)L?d-z@zxi@$w2@K#F2Z7H(&9?uGyr=+D zL|uamwg#Bc_sW#~wQa%81 zi%KJ}w)*66Acb_LwSXZU;A2*MX#&lN%HoUQsr&wlypyu{9&mB^Y=2a&0)5B#V!Iwx z)-zB$Dp}d{XBKYRy1+}ZcW26p97aG6!hXS?9rWKth*Kdz9m7ENWCg^xr?;2cKpgN0 z5S+lz-+!R)Ap#Y0yIhHTmRCZYF7yi0^mfe#mDUz$3>CY8e~*z-Qbt+=kUc#;4NB_) zXvCwqa{;x0kKEd|f`tV}Z9af?$N=jESV@&H4>we0WqW}B!$?n`m7%kCGX>ju%%zaX zTBKeOO@EL9oMuOmQKK`>G$kY2oCR6jRsY!k_YSimU}u|;oxW(2zlT{Yq*y{E@e8vEZ6hr&q>)0l5=Y?3j>3LrQ;Zt z+@ll67C{#$exzmIztIhJ?OjbEU6mTP!1ULy7y9_{;; z%254zsJC+pL~mi#!eBRGoSYTlpys^}lmLU&xdzisz#xyE2g?Etm(B{v=Ac(3tA!CukO(EQ;904Jq#YiDO3kOojiXk36l`0(LFASzmq7bi5lfAKxPOs7&p<%_6S z0npX}cBkU8#4%k2jE9`p+D{W0TW8>S-o?d%v@<~hywn7Qy%|Oh>oFlYISg3miEmQQ z|F?<=4i(1&SZTqMafK*_VDLyNX=!;G6uMq+r{-ZaRPDk}P?xs0wm|Re)_OC3E39tt zIyyQMNz$Q7t2;^ET9fJ{o*Usbk|Dqh$j%U;tV?k23CPQ%cO}r5$pD_SMgIa|AVAh9 zc0O)v5Uo_#dVqb8N%_m1Q*&X^4eJSAWX8oGyWW498g)o zB;P6?Ya*+zshyoLfEBkHb^faW=sZAK6&I_msR2Na&aDNoG+-4mq5`#ZHwG*eq!@LR zubR5*ef9tq0ExbinScumT>wY|;$V*f6`!#rCh`O$FC#mO z3i7D#1V}!M!^Ij!0dBviYq8Ng_q(nbe?Pl!57>r2KLOq~4mmI8bN|$v>kCI-vymL> zm!w`C0+&DwNYy-TySa*)NA!|{`t?ucQxQXe*@^aof@FOj_{LNOCn-LLvK7r_@`Pr>m|P4id{ zQ6EQ)Bhw^0M(92IY4#oN1X`PC%1wd9pQZf|x$L%`@cs@8PzlArdqCYz?OGX=TvR=&-sW>f$naDk z{1!H49hP@K!vdfzK&59h2xi<7)k4>u1YD`_M&bkr&aZ10@#ElMAHn+6j*Xc!K~F#c z#zzJZxB`1L9$A(I?l3+89#jfbdH|hW&sjpn;txuI`ae0(^0c<6VY{Xpz^4g{LGC z&o7-xV4B3(#KdWR2ztvJZuekbh&+(d!ongu*7SuWPXo-Dt#9TNJmTXZ-G3U}&PNE6 zc#>=Y=ro-0u$Y+J8pHt{4!&c_Cz>DSo$*b%RAs^}L?3R=H1cR;>|I>;A&|bFf;odp zJvqtOuRrNPZvkz+w4V_WoB`71g7&y(&MpFZbOGU4SNRU8n0^8__V$B`qF{U*R9?LQ zr?)SUhw^{lB{J5bg^;oDOGLIo*6d}ANTf(vLnHgX?^%oW?w{ERKC?S*X3s`?-jM`v+i5K%J zxL=DZ>gv*5K$KtJQwVOO{gvKXllW*{aUe5jYg4jQW&1+%yN9;;KL6!QW9EY8IeTmC zR>uwy#$m6W)qR45-7YFFj<1eW@V?vc`0696H{erKAJ%Vwk91I&mU<6@Oj>%npb?_? zjc*cY+4Ah(*?Vw*VPRoq@-D?5E7nO?en;6ZxPn3&K+M`I=GqUQm{I)F(a+cCdLEPf zdgnO%hxlA>6W@(q)j0{xXMr>>>o)-)O)6*d@FtF!nqG&R~ah8rp{t8Lg8nm;K z)yz+kq^`OMaC50R+8>anDJ1$#cldB1gV>i7+d@Pt2o^|9hqg=9`l<1C!p7RC%j3jS zOnJy?!1&``PILX@0@R=(g^+KmMWE{?Ku|Z%fI)1W>N>XC4|%9-uzyjePtowTgxyDb zh^qDs%e5fW7L$`6`Aqge1{?&YEx(Ec??PZXp<)4+MOCMC)Q(`4{)mhc)vpMr$ZNnl zyMzyX`;{#5(PyMup>Puw6XTM6ekiebhl_+HZ*lHAg>Bo5OaM`cTW%WMap9>7QTqh! zjUq0+JBmCfQ(rV4&wZ)+++omYj(k?JGt2Lk`+MD&mQY8uUpBCi_4xi3c$>Gv>`=?w zDsX`d%HkdFWaY8_4~f9*Ce$Ts@aFth_yd1&=De&R^p``#15N0xj*hTtxu6%SRF^GN z+b#|qyHHJy3=A-Av70?Q0?x613aW$eV6lLX4q|*H5tE1o0VaTt!s;PZ{yjY&%0@Xl zc>Uo)J`OZYJV?d*Ll5pUNc=#eWkbO?N6mIj0%$mxOOE$KH=qar@=t3oNN0Ej((6hc zxnc2G7M$(z85mn2K9^*)Aq{<))6pOoJ^t@Zp+K{F#waK5rxuMjXC8qdDF>+SuiWjS z8>STUd@ZPmrJ|o4#~; z*y@*VEVt=Esh1kxhx^Ay8XRZ<$NyBcHa8O!6N8kj{)v{x<0hrv#=oyxHwpujAte|O z!THZsQ(gUhn(9Ela<|g&nE)l|x9G9Nj3;c;pSt(*eN=eyUAV~_H6BK_x{k@$6 zqPq9>xr7@V8@T%8#QKOvi~p1j5onR)ywBB5b!b9CB_lMzml#RBIl0KU>&(q|z~$er{W1&9A8VcX9U*IQsuk7XFVC_te6_21Shak3Sm9Nl#c}|Hs`I zqJZzG3G!o+^L!3E{Y+KG4rC*+m-Spad&SF}2iye1ODRy~Kyh~QqLPreuq~tCOwU6o zfz)q_bH%+jRKN50jv)3aYzjO`0m(Tm1Uv&^p{cH~diipGpiC{T@DK`(*?{6T_vOpw zH#`se`}>0hNGT|qT)>RQEbGoHboV#}N$A{>Fg5zH0aaXYz5)Ji)jU)OVM!%l|KY`s zmrZ|fmaLn2zwjhTSpDC@G;!fk!Y<=&ER;sU@oSblN zpb*}J24xj=+km%hnp!55>Nqf7;&YDyv_ekd5iOCKy9O!zF~R{<3rSHxllHc@ko)=| zW0m@xoC2l_S|*%hvvQFH$<$0zG!%Fz?Z+YpTO<|LB%uu0iG+lnK;DF6<%}hG%!;Lh zgCzIBD*#9Y2o(h)_&zRPMrc{mWs^sR$0~(@8c9J$Mn+Ao_AVZ8YZytiSI*XjQ~vNi z_h8Y3*~nr-JG*Zz;Q7GoCbX=0=L$13b9friVrin+B6D&$tovcHfRDhgJGp`%ss%tT(8O80HCqT~e8_~b#>caq+Nzh&rk!dC*ayG?0}Y)c zuj_UK&Wy;=xHkG`@!>R#j}jk5xC0sBtvnEd3-Skd|X!*n3*lJL|w zf`TDw~_yed3?OC7Lo+? zsdOAua^Ua5bzxyK0%Z&Mkkp;DN*B>=(X3>oZ-NpLhi#937RhFWXx}s8ww`~?K!KM= zM{8^D-aQs5Sxso*r-(&Dr$`a!kEpi;olM^!A`J`9Z)!9EUWCiuUwD|Cd;ZBqTCcEI z{b0!*4YgP#T`KY~MKeje5VJShS%mko#i82Jk#({GLAzk_Ce{yYjQKbHgdOX>(ilu; zk5`t$9a3@B^dec{HU%0ZfcH|RQ$Qh6Uaze=nr;J2)e?0~-f!eYGF|a$uN*B%VPsKKHdQ5d-TAw1L*4} z=_h#CJQYUGLRYBFETj9~;AoQ};%9PGW*+^_HG=q!pT>F{fNnTR{SJ&SR&`o<8199j zfrQUQxCn6oPN{%$NZdAwRX+@}yN9P|sYo4|68-%A*rv_GU=i1Ou907P1tbL2BrQ9G zJv}a99X5`tX961v*rOjCA$WKmL3vT)-Ep&SH&o%ooAVEmza6zJdk~&;rl9O1mF~k+ zRbWG#iy{B$oL2=U|Ih#*MF%quv}wVY0Wg;G{1(8(zqv|5z}T8uE#hSd~tH zVF?@n?`Ql=XhXqks{_#FrXp@1Mar-Dk3%PtgPq*634))OmseR`1FKOOc%#9cLg!os z+X_#Ea9a-oJr91y*WAFM;rj)Zp=Y_dSw*n(o>eNxw@~WzvjmA@I_+ohRfw$ zl&2`)Pw23?gw*Kry{8QZvXFP*EPs7Q;oMU>lN6(*Lp#vLOF%>Y z!L0vabz{&asO5K9-}fDWfO&E|O6Lq^hO5Q6;!n7zfWw=nbfKn#o?G#MKMCT)*OI{6*E8=L?z?`DhVc({`2(2)6VSY))^{AU z4g?*bMXpagaVDoA=)coa7;L)rXeLYRw_xKc<{O#e8L~E#-3Nzt#!7 zO5}6-44H|~{l7`}zdrUK1h#T|)(JE}aKDUHIxANx$+X#KY98hKQ&Xynx#HzCsFe>K zH~_Uq?ziWm1+6qHY`=`Ffa4*Q;L&%nh2o7HkE5cZKy)}!qnPyy8Qh@sCoy@PN8G;O z(A3m4JdC;rc@O=ABv9lM9@ziW!bRqxi@)gIyTW$U)k!MMCoKN?;YR-&l^3%j*-C<+ z4#pN1e%skxxz4{kdLC_T%@UCvP*i&srX}xpMG|}Jb)mDZU0ZsR{ zqf%v6Rn@CkiE=cI9RFiwwLL;R^`8x|uUDw47S=dQ_^W~mM&fO>*G?HALSy&SI2Gx6 z|5QaV0SYuK=J`O!X)=`n4?Vy< zAf+b-ADg+0)dPhgCMwE&+B>{8Jo4*(D4ywhI}M;!>!-5d*!}Nn@cA<&m^xD>Z!()g zy-5ycl?!9j)7KpwcKa?|o)mm4gvQ{OfZ!{>rh)@*2+s>aY`>x35x8l&x3hWjSDRQG%(!d(NaER^@O#y(8mbM19XXgmHwRb z3n+@2npZkq0iLc{_i^tyM2^hN%>EK>Mt#^E-dO z7pP2Qh_}CezlY93V-_c`VxA;naXlhyHM2_jn~$b%!wd7oKHS zRJeh0sltAM{qYU996-^KhbCE~B>qM4!J##P`hZLF1(!242#yR5?ZB*%K1@BOlPW@} zcSQ8c&6|G9U(PgJRJMT06M9p)zMc<*=GxWy!B0^7zJs?z(;+y2v~+YjUu43vfhJ%G z5;6h;6b-cF45rW}*VEccazE?q#_~kaeqD_iVO)Xw`stb6vc>J%MKTR_(q@7H0+Pc& z?pQRYDfHNvk}8t66*X%uY?>gRcy|?25ZqD+>04$OF!Qwy+bUW_-sHkIOYSz`$TOPRnprHmdbO2%0 z0bn!oj{szcckb~X{a$n^D`=#h2^=c?{N!0dUnIrF4-ymm%dbv>aC)m#?h{y7Z)=zG z976XOlcLl)^V^lfz`386mPUPggWxsbX)f7iK)vJLelPPG#H@=hz0~LMxDr4-9!-dN z`t&Kl$7s&6(0InE9LWq2LlpDRFZ7oX8Qd0m4d$$j5rs1U@QKzkw?atez01L4iO zNHzt^b0xHl333r#4WVan3hWx!n9&wLs4vye?U%e}4qErYVZ%Ue5woZ#U?w!bJK@*O%}WM9 zgiO{>YhiCiVYx16QM+S}Vf3xG(u2dxF9vYx9q)YVB%A3S^Z z?D~;);6eG1MuN6%r>%^L3BZ8sZ}HnV3T;B-Q{v(_82M%5W3lxhEFp-Ai{D3wGTm}; z5Nc#`A0sS|eehruVq$JLmgt0_u&|D%rqUQln*D~0wcC!iwzgNVvM+?B`>hYVk>c%% znp#?VY|hTkP(Ru$bE&}tc}yl>a7w>>H>}kEfzvz$Z^}vC94|{z$P>PAYq<(X)NmF} ze;(!pJj^#Ld_tVMe=|5>DJ#_j(wZTCcpS81S*hQ>5k(k7&ZZZ{$^}>76>P~ zd3lgPDqg%W^zJCO>f8Rkf#V;K+E_&(yI@s~6|`W73&6(pc|k{`cDeO9G=f9?fg>0I zqDx*oq-0dn`Cn_&FiQbUI;Kb*`U#`hgathG! z0KTt0VWs|x|HO{@Y@&!>4K8kOu({|n@yA!%e2&NeCl()BRIu~dpp65E-}rZ=ODCqM zL(%j`mzAHNUrg*4xUuc~6gz}s{_JJ0X~K-&kgG#9Q0&stk$8e;I<~)-q|qVt{=aVd zJ9C$Y8JCkXh(1}0mF=tv>85E9yA+Ks8_b+IgubJa?fWQx-T&O|;gV6;$3;a)g~Y-+ zr&Cn_nQM+k_$rTkdv*yfjyAza3Blj{6aT>&ECojpMY_{CRH*rGY>50$Mr?<_3i3{ssBVtR`nO>}@23ln}@1utX7@$pb{5 zz|+7168Z)Po$1mXr`6astZr+S5&b8xpwamE&qG%c=!HPqii&;*utj@@HGZ`qN9cW~ z%C85A&lUAixc-h3WahCxgJopQg zUD+L3UC+;#pISb6n^Ox*!z4ndp5yvvFs=uW?{!a%vIKnh54+l1=23&cEaF2*k|xb z!<=x3Fs(*v-B|D`gHujYQc_S*kefTSvSAOxqB2flmitY?I{tRF!C?IH<2|wK2aZ8c z3Off!Vq#*%@i~1M#9(BuW5Tb!UucFIdq)X~5_}A#5s{JXj>VSn;56tvRT?l@e{S_f z6cWN4wt}CV+ZwRh;Og!%DRgnLFF(g_JMuic84O=a@~- zW^%UF)*c3gGO6|Q{${^tsKVk;jLB2@5x`AL8q zd%OAJ=h%}EC!w6f%Hl<@PRMzYvt$V1ufHe^c?mFF zp5I{qq^SNl=Vo|Xfckkh&O!~Nm?y`(0wR3RmfH0>h9rJvwIyNK3%OIoZ6Yp#&(#vq ztHgRCiKlugIsY0u{1nHl-{w>LIoa{*D2Qo4U&=*>{~8reeZ=os&15ZbN(fC0Q2G6R zKSS}e{QvQ>!N}X}|GpC9`Z*Qab3M9Zcf$Xf^oYle8jQ9ihyO2k>De{D{5r1avfpTH zjA>Oju>PfPH&?*2(sC~mx77Wb?&hW18>So#4E8hShHF2G`HCc3gJ@Tl34Lu+>? zUtUlkmGcREDYK*2wh`0Kmm&TwI5?5X=dN&t2Fjy?9*2EtBJ>ukYf#={u=~nnR<_N` zVc(It=7rIaQI*D83+?*^-y4#l*+Tb<4&OD&aY%bU6A~)CC;XJr#MXSkN@f9h z+uq%_0887b#-|$ASGbs1wdDBx{r!qa7vA%m<(?&jtQ;R6hdJD5$3H>Zj;M|Na~@L> z>$J-D15X~C^46$?mRDZQtF*Ps-%>o1o2+bo#3)f-bA#96IEovB(o7k1Fw$o-2DuiD zyvTvEDB!>pn=}ckZ}5_#+UB}QQAO6l$UJ&1(GhIWJR_Fq-tKX1P+xRc!%?^xqKFv> zhPBKO-jsF-oq9DGsU3_gw+lvE{kR#7G!j!n7(~OO1{f6670|v1>&O;TcjO_o2n3C% zklzRD4xx?TlcKawDj~R)5QE}M2+?gxB}5?uHi%CZf)LK))yIQ4rXQ2vHNS$=6`bzA-}bEU01uU##qKlI2A5_o$L^$Nu0JMKqw{v}>ePqkGPA3$ zpVp0hKA)Og5y}vba&6bm=%+)^y?Zix*OW(;Vi&qmQ%EGH`1jo*?GC7#5w(N zy}*k?9YtoIB&?8^HuW@&6O}dSeN(i*o3WbYfDL-qqud{vYTZh!Wtnz8Dp6HPgE=N> zGJhie`_zbm%AwGM*MF>O-7#;Yv@~#C_1`Yb)6~iL;zTcfC!Zf_=Xa+4#`%P5rQKZ! zCduRg>h@%BlG>`}>v%^(gKUK6goxNk$9s_)AqNM~km7(VvN0>9nRi8$JYTXMNojM> zjCmm5w3-rb@+m6_+;l@Pqk;okS}FvRJ6gN1?C+%*JQ_&}JzjD`5%KVm){kM1-~hdc z_sFk5I-wYbE7f+#7*8U;sme-r%Js^4cm}|jOx-^$`gM#lxx?caD%F})CK^6JRL&f6 zdW=Pn{6X&6$wzlT?vI|9n%Faai(;a^=68{|rg%D44y$Z)qhl*tL#b(rEygA@q;jhx z9F;8*jU<&kWnMpqbna^%>FY6=WsX2rS1VcKL?p2)=R3__ELl{ikfKrr1CXxHO$XBD z29}wISCU(=SXXD+~z|ED7=>|mvrbhhHeSNfk1v= z#(MMJ%)RF4;8*jC9R@R%!(zXa>WfjM3WOb)R&0r6NYI={(_SqHzn6*C4vf#uGnyoH zbQA8mtO~f%&Obmuzc$q?TwbcsrO?N-9&^(n_-@ALM353jVJx`fxFH&&UYYZ3>0|0! zneEDwiO(#zlVxRY>aHXuT%Te;NGG+>{(a{1O@via&GW}Q8OfP?z60+xxqT|1F5LCW z*{e=fYkCsKRKT#;Y|ok9^Q3*HY+|%G&;J0O+^L!`@dxw%`BZUGM+VAPH$lDtYb;Z>1tdP>H-L}%Xe9!2#ob^&^Qi=T}9m{UIoR(7Q zr)%1x!ASaEk&%)Khk*~@Cc-S2zHnsl`??Fy^S9~N7}%C|6Q1@`{L;oy611oxaGg!2 z^m>+m<3VG}DBk#yHrpd_qvG7S;;bjH;hc2RGWV}mi8>tU_#Wqes`~SN(LyH!Z3edy z&X+YWT~qI|$x|e1+FcDRe)V{;5I6^JWt_j-OF1vJXY*=mcAw;Zb}{c}j(U!%v#WbW zHttq8HeXb22~&KVc!FtC9!Qk2J2Sf>WFnciZtifOuO&p_W;w%1hoqHumE;O?r)3^< zcA;Vr`y$KqYz#wi`RgW`-X3~1DH+L=mNVF|KGn)xhku-1(R?oO=(f4inESg<-_f`o?miBx>hrX{mE~eHUT+`1G{A)7YJeBZchj z*RE#1x^0qdJm zPL{&&URfC7p)Ue1<7*7)Uhg^qR-U(YZYnNkuju*~CB714l5YH9eJo^%Zt-g#X8D#H zsaja0nOo(Cm&i2FnXuCWS_AgAJ9Bbv%FRp9zs?*aUDiMb95I|pVNgPFN^Mtpy+%w4 zvIIo4O*Rf2HeNU!LaptBF>Fm+f@`4%zgscfpS04#<`he4`S-vncd2!9gpyj1_CDR#Y)*<;5WGo4Sf+1aFbv_>& zoeXGFO^ff|K6^%ugfxO7F{Hh0aB{?8D)A_j9Gap+-GEAoc!}yelbD3eRbyM-QF>`&oo4RhtvWxzVR7GC`Mk@JyKVxQ|@= zrGXMQjDH!%NNT=zV30?ZPURKi3qkDrrZ-#z0H zzuB&g$f7PiIyF1kDc^lz#{6hf>wyd=rcFWep!~$314QY+S2;N%tl%-BZ4S=AMD&eV zwBOwP5jj~-3d9o2ej?iCsnMlDKb>@*ALiPSlDJo9Xoto1t~u}`?!5As&ieZUh#^8 zXlLe((Ah{NuJOhj!4;Iyq0TZ7t^>9lqKrHX^kZ`jUuMfLRJ2=bMyObGqpMds)D~;p z0#HPZaO$6|wf1JZG=+)!l`GwQyFyGTTf6I^%LZkj{r1E{l$^h|Eelj+2US#bZZGbm zUf-y*)g)<&ra;8Kk)t4ENxS%cl_?gf%u*P1O;>B^7AVVnF%4PTLXoZa~r^YZjzGU0O!KDK<6aAf>_ZhzVS$$J!$ z2H##VCru(c66S6E_mL;U>q^S>ml^|`2(70f+O|!s47@0rxFvcFNt>g*FO@P5`4cV0 z56Oj?rZVIPTaa0w*RqJzg=8ek>B@js)cL9kW`F-`SIhGiwZ#hBM^jK*RH-4Nr9Zz%RJMo8M)p`Vf&Mp=K(h0pc4RpJ z<7Xiw#Pax+AG+3CtG)SRK(77K{>KQx(}zpUF#a<3Z>vixsW1vR!vwyh%spJQ!tE>> zr?!>ehnG^ax z31=Sc(5Un&c2qc7d-NtVdMvi8$hHh|JzDzXj>`Ny3o9Z^mM8v;%AU?*o{$JdR_`H* z^8&|v=lc$0i4qTC!dFPG%^hsM(^p>UwKA}#&0O=5JQloEOh4Yxon0`^6MO#KR=AVL zgB)c&UC*8O#0^mj`m(Ip99KQwfvx7)IR>Yv_I8J=g%Qr}z425ZXVLg@+}nyIRB2R5 z;WHn%@OjQ8rrEq=ZywPVK{7n2OMk1YgCXs{K70JV2qfSa0;BNg=+@U|*X5ywd;4pm zur#{<#AV0rcbE5o=GPIIcxu3(0kWCrq!ET*)JjT6gq2nIiSK#O9D%9qpe}l}KW+8Z z7nv@f>lWOW*HhP4m}8OcG^eNfNa_RJye*7^=tRfPjx%}?XF(n!mbH*FV-8n2+Ho#b zvT5vP0Ln))dh%%CfV6BC9iPNqj?Zn=i|1#I37y@^^)bAAK0;FivIkaPuw!^X%O|VV z_j)fieHd__r+&pKC&{K=Id8tw^yG9U+a1*3?QL z(s}q!wP9DX+WkTD!|3zpt0YC+_)Fh+1=QUq<fK705mgW_n2M55 zzjr@pWo~1zuWH5(Ktoo+aXlO`qz%eJ24vl8C4Cvx?gX<6F3!$Ozk22c8}_#2<6+!L!Y@)H1sN3 zDiPxrMnk$H40SWPkCn`}J}{t*)KQ%$iej1R$ETh-KEq?s=&YvRRQA2@(Sci@?H0GI z1s;{3bUiR+T5v(i>(o+FERuY0@?Z^)2KPnIr1)~e89MZ5-@S+(LF=yv2{q>EnK2HY zlj*?;*;%J#b<3wdVN+VW2;bB14Ib%e7!Y_ZnNoLE*R5DZw$u9VW0Um}DmjWX_4JKf z=fgCci{5n+7LCo!tcA%}mtJZ5`1b7^(rMh%*F?YQ*jPCDSV)lRl;7Ur3l}~GA>uB* zq(!wx^G%bHkdR19%CpyWCqGq26d%ZIoG?9(kTp)eWbnAh!w1GeAPlJ)=tuQ7?(72@ z`tUn1R&T?cAAYntJ;ORAH+0OvX}{eGet#%yHRNDL$un_(rAs?Q-zw1}tP=u%vypm_0d ze3Ew7IMKiulUXAZN#_lH8$k^?IR#tG6OXiM*R;Q6#_}a^FflY3ccX z#1Ok@iJ_2RD#D4%mYQSy2TArK7uYe+?HeM(IGkS~iI=;&50rUdrFnFh4t`$}WpC4S zjBco%_h%}!RcD}>a&p6HERzdUz1QPUr$6ELSf#y+66K_8ZZ7WiBXDOY5LzFek#@03 zNYv)3w)jpE29M)#{qs2gpj?}SCRAKY@%C$(IYit;4ZByb?{zxTu^ghrHr31ZrGE5M z-E4SMqQHS0%b-tpzJAiQGpr(r=wlo*AIpxRUk=+$#jRWxRB*gGsK=*-hj_(hP|TyZ ztAaQo)mUxQ8@n&aU7OEpiua5~J`_Ho@S`6|?Z|u4XDkf4jDbBhXr+d=kq%R*1QL$GD*OrA4jid<7f*3faebDk=n)JEv)O zHNv0vg`+ZEo=>>J8jxi_HR%3x!%yIf z1s=7UjGvOk5;tviFwL*p-QID69~@d2zCG28D}U0*po*~kJy#2ro4zOqYH{j>R0heT zz5T1EO>KSOZj9?b#1Rl%y;E=RY6Q%F82$M)y7Mh1E3z)iH-P7H&-^7ly9&A3**<18 z&cQ~tt0DUEvh005_7}HXI$lXh1v$u#B+6)wk6AFGpcsdOlwj0vV@Yf-HKz$Ev7kUD z3;RS4wJ?AG`fKkN8VGS$Myg-k0So8oWpkR zm9(CUqjr&cTvIhD*B<8JOPo(U`MU9BR2L!hT?awjD_=_X2^WhPyDXmVAJ%=Ni>}n` zYn_xA7*xX&9!*<3m0yc`((aH$BC^f0_T9`Pe&(_RktJXH(T#8e4?8t49^$jL*}J~Y zu$@&af5;p)3r2?8Y6zom9AQWbMn8L1j%cP4*Ow70*25Sl8+D8pTLu$>J#K#`zVTf^3V&xOAaHU>=mZw zFB}UeKCf!7oyF8=2^L)6GtXmXC0lF1aGBu9h-Sqhtn~XT)b|j=Hw`CF(+2_pwS18s zV<8%dbaI({$7k8N{Y7zX*-(vo72`5#YS=~6=qjMht|r5SB`%wNVq&n2kwTwWr6aC# zFLB!skE07gaAKa{7<^~&I^T8lOT)=64%3P{nQKKC*Uu4}72RE+rF{pG_dO{(RgXRM zx|n9Lr7+JY=kd>SkJN3gZXiWlFFTf-{)83TH;qLw&?9fh!gAS(fMOa~?6YkyDOnL5 z{B>z5{PX95-L2vB8{NYfio%gUuk|+wF0+a?;8FEU*!x|3pc*)y4rt@T)3#mk{LXUWJ<1|$7R z#t!xf`dxT+jBqJFk1<%wQ(B6(i-#|DUfRDw@=+(B3&vT=JNI(stH=;HGBkYwmoknZ zkWfq7>lJ#t^5IA7*=uDu)~(Pp!Vw$mq#}#XdQvf!FNLYgx$JC1-E#HEgRuxMu}gjg z1jGUwDvIZoi5~DUFd{|h#-!fyq+x^9>%NIaQ7h2%CdxKB$!L3utW2!L9euWBUPVPG zOFaY?l=f&C$@Qy|i_>!vGp9#g+bBH%J~~R`p{Q2v6*gMcD=7y^E_oA+EN@?BMLMsw zur7>$4P?udCQ-&^NnFI2NUB|gofK6`Xn=_1N#kB)PF zsO#|+XgI2zugF;ud}-9w$A)9uJg999`{G*n-Oh7q5idBOzquE3Zq~Tf3o!&b0C~ zGW$ouzKJXU4z^=&##ENWH)k2e+RG|ts?!cB3y&45DG|{DHs6S-?{1vHYEE+K;8PQ<3W#zyBNDfhW#!Zu&$a$VeKRP90Z_X|JX&1*+)#xsY3Aen zd~1;|`+rg2R-~vl&)WY-j$9R|V7(92x;O_$qy@ku$o8M+$Wd>B#9uX`Rtod>QVT0l z?Z(D-DFQpM4P?KBo%m)>aGZWL((dDs+osF?-VnE_n(c*OVuQF`roZStf zEM>mtZd(?nbNIC8Np$u1w=-(Y(%frbK1w<%D>r?IR`duL-rlHZ4^q7^ZJS0~Sq*VB zU-taEHr?#-@c!zT`0FXOH~bU_PB^T!nLIK-%?DqGs}tusa_t=Tx7H5d`Cc36zBYZH zOrI+)3iI-kJY_;ntUtbVUk|}QPgkPOX=p(G=vd*iod&1joajhbd7bHbwXb|FX7FP| zd;_DzQ(I|I;~~u|!`IC6rH%t{K~I`*Hxf33qWzGw4VMzQ{Z}OLLQ@}=Kx~?>*7t5W zzVS(&SMu}hHqW9b7roal<027;a-cqgYzh*iI#?urYH?`R|BV!f+b4QI%_u{@6LXvZ P{%D*zr}9+EBJh6!_GI;q literal 0 HcmV?d00001 diff --git a/docs/images/StorageClassDiagram.png b/docs/images/StorageClassDiagram.png index 00d487af5c5e51443aeaa7303438d74161c4d9d6..aa21f06391d2cf9639b77d7468bd5f6ca2c6fecc 100644 GIT binary patch literal 23293 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 literal 27330 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ξ$hk{ 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≪VvcpQ`5?FZ-0 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 Date: Sat, 2 Nov 2024 10:47:29 +0800 Subject: [PATCH 364/619] Update storage to be able to save participants and items --- .gitignore | 2 + src/main/java/seedu/manager/Main.java | 11 +- .../java/seedu/manager/parser/Parser.java | 39 ------ .../seedu/manager/storage/FileParser.java | 118 ++++++++++++++++++ .../java/seedu/manager/storage/Storage.java | 89 +++++++++++-- .../seedu/manager/storage/StorageTest.java | 12 +- 6 files changed, 215 insertions(+), 56 deletions(-) create mode 100644 src/main/java/seedu/manager/storage/FileParser.java diff --git a/.gitignore b/.gitignore index d6c1ec6470..491979432a 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ bin/ text-ui-test/EXPECTED-UNIX.TXT src/main/java/META-INF/MANIFEST.MF /events.csv +items.csv +participants.csv diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 499c4d11b0..1abf32f284 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -5,6 +5,7 @@ import seedu.manager.exception.DuplicateDataException; import seedu.manager.exception.InvalidCommandException; import seedu.manager.parser.Parser; +import seedu.manager.storage.FileParser; import seedu.manager.ui.Ui; import seedu.manager.storage.Storage; @@ -13,8 +14,10 @@ public class Main { private static final Ui ui = new Ui(); private static EventList events = new EventList(); - private static final String FILE_PATH = "events.csv"; - private static final Storage storage = new Storage(FILE_PATH); + private static final String EVENT_FILE_PATH = "events.csv"; + private static final String PARTICIPANT_FILE_PATH = "participants.csv"; + private static final String ITEM_FILE_PATH = "items.csv"; + private static final Storage storage = new Storage(EVENT_FILE_PATH, PARTICIPANT_FILE_PATH, ITEM_FILE_PATH); /** * Main entry-point for the EventManagerCLI application. @@ -57,6 +60,8 @@ private static void runCommandLoop() { private static void loadData() { try { storage.loadEvents(events); + storage.loadParticipants(events); + storage.loadItems(events); ui.showMessage("Events loaded successfully."); } catch (IOException exception) { ui.showErrorMessageToUser(exception); @@ -70,6 +75,8 @@ private static void loadData() { private static void saveData() { try { storage.saveEvents(events); + storage.saveParticipants(events); + storage.saveItems(events); ui.showMessage("Events saved successfully."); } catch (IOException e) { ui.showErrorMessageToUser(e); diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 3dc247299e..dda57b9852 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -297,7 +297,6 @@ private Command parseRemoveCommand(String input, String[] commandParts) throws I assert commandParts[0].equalsIgnoreCase(RemoveCommand.COMMAND_WORD); try { String commandFlag = commandParts[1]; - String[] inputParts; switch (commandFlag) { case EVENT_FLAG: @@ -586,44 +585,6 @@ private Command parseSortCommand(String input, String[] commandParts) throws Inv } } - //@@author KuanHsienn - /** - * Parses a CSV file containing event details and loads the events into the specified EventList. - * - * This method reads each line from the specified file, expecting the format to be: - *

    -     * eventName, eventTime, eventVenue, eventPriority
    -     * 
    - * where: - * - eventName is a String representing the name of the event. - * - eventTime is a String formatted as "yyyy-MM-dd HH:mm" that will be parsed into a LocalDateTime object. - * - eventVenue is a String representing the venue of the event. - * - eventPriority is a String representing the priority level of the event. - * - * If a line does not contain exactly three parts, it is skipped. - * - * @param events The EventList where the parsed events will be added. - * @param filePath The path to the file containing the event details. - * @throws IOException If there is an error reading from the file or if the file cannot be found. - */ - public void parseFile(EventList events, String filePath) throws IOException { - try { - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); - for (String line : Files.readAllLines(Paths.get(filePath))) { - String[] parts = line.split(","); // CSV format - if (parts.length == 4) { - String eventName = parts[0].trim(); - LocalDateTime time = LocalDateTime.parse(parts[1].trim(), formatter); - String venue = parts[2].trim(); - Priority priority = Priority.valueOf(parts[3].trim().toUpperCase()); - events.addEvent(eventName, time, venue, priority); - } - } - } catch (IOException exception) { - throw new IOException("Error loading events from file: " + filePath + "."); - } - } - //@@author LTK-1606 /** * Parses the input string and command parts to create a {@code FilterCommand} object. diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java new file mode 100644 index 0000000000..a84a7c5eaf --- /dev/null +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -0,0 +1,118 @@ +package seedu.manager.storage; + +import seedu.manager.enumeration.Priority; +import seedu.manager.event.EventList; +import seedu.manager.parser.Parser; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.logging.Logger; + +import static java.util.logging.Level.INFO; +import static java.util.logging.Level.WARNING; + +/** + * Represents the file parser for EventManagerCLI + */ +public class FileParser { + private static final Logger logger = Logger.getLogger(FileParser.class.getName()); + + //@@author KuanHsienn + /** + * Parses a CSV file containing event details and loads the events into the specified EventList. + * + * This method reads each line from the specified file, expecting the format to be: + *
    +     * eventName, eventTime, eventVenue, eventPriority
    +     * 
    + * where: + * - eventName is a String representing the name of the event. + * - eventTime is a String formatted as "yyyy-MM-dd HH:mm" that will be parsed into a LocalDateTime object. + * - eventVenue is a String representing the venue of the event. + * - eventPriority is a String representing the priority level of the event. + * + * If a line does not contain exactly three parts, it is skipped. + * + * @param events The EventList where the parsed events will be added. + * @param filePath The path to the file containing the event details. + * @throws IOException If there is an error reading from the file or if the file cannot be found. + */ + public void parseEventsFile(EventList events, String filePath) throws IOException { + try { + logger.log(INFO, "Loading events from file"); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + for (String line : Files.readAllLines(Paths.get(filePath))) { + String[] parts = line.split(","); // CSV format + if (parts.length == 4) { + String eventName = parts[0].trim(); + LocalDateTime time = LocalDateTime.parse(parts[1].trim(), formatter); + String venue = parts[2].trim(); + Priority priority = Priority.valueOf(parts[3].trim().toUpperCase()); + events.addEvent(eventName, time, venue, priority); + } else { + logger.log(WARNING, "File line cannot be parsed, event not loaded"); + } + } + } catch (IOException exception) { + throw new IOException("Error loading events from file: " + filePath + "."); + } + } + + //@@author jemehgoh + /** + * Parses a CSV file containing participant details and loads the item into the corresponding Event in + * the specified EventList. + * + * @param events The EventList of Events to which the participants will be added. + * @param filePath The path to the file containing the participant details. + * @throws IOException If there is an error reading from the file or if the file cannot be found. + */ + public void parseParticipantsFile(EventList events, String filePath) throws IOException { + try { + logger.log(INFO, "Loading event participants from file"); + for (String line : Files.readAllLines(Paths.get(filePath))) { + String[] parts = line.split(","); // CSV format + if (parts.length == 4) { + String participantName = parts[0].trim(); + String number = parts[1].trim(); + String email = parts[2].trim(); + String eventName = parts[3].trim(); + events.addParticipantToEvent(participantName, number, email, eventName); + } else { + logger.log(WARNING, "File line cannot be parsed, participant not loaded"); + } + } + } catch (IOException exception) { + throw new IOException("Error loading events from file: " + filePath + "."); + } + } + + /** + * Parses a CSV file containing item details and loads the item into the corresponding Event in + * the specified EventList. + * + * @param events The EventList of Events to which the items will be added. + * @param filePath The path to the file containing the item details. + * @throws IOException If there is an error reading from the file or if the file cannot be found. + */ + public void parseItemsFile(EventList events, String filePath) throws IOException { + try { + logger.log(INFO, "Loading event items from file"); + for (String line : Files.readAllLines(Paths.get(filePath))) { + String[] parts = line.split(","); // CSV format + if (parts.length == 2) { + String itemName = parts[0].trim(); + String eventName = parts[1].trim(); + events.addItemToEvent(itemName, eventName); + } else { + logger.log(WARNING, "File line cannot be parsed, item not loaded"); + } + } + } catch (IOException exception) { + throw new IOException("Error loading events from file: " + filePath + "."); + } + } +} diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index 37668ee538..16560caac6 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -2,11 +2,13 @@ import seedu.manager.event.EventList; import seedu.manager.event.Event; -import seedu.manager.parser.Parser; +import seedu.manager.item.Item; +import seedu.manager.item.Participant; import java.io.FileWriter; import java.io.IOException; import java.time.format.DateTimeFormatter; +import java.util.ArrayList; //@@author KuanHsienn /** @@ -14,19 +16,23 @@ * */ public class Storage { - private final String filePath; + private final String eventFilePath; + private final String participantFilePath; + private final String itemFilePath; private final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); /** * Constructs a Storage object with the given file path. * - * @param filePath The path to the storage file. + * @param eventFilePath The path to the storage file. */ - public Storage(String filePath) { + public Storage(String eventFilePath, String participantFilePath, String itemFilePath) { if (!isTestEnvironment()) { - assert isValidFilePath(filePath) : "Invalid file path: " + filePath; + assert isValidFilePath(eventFilePath) : "Invalid file path: " + eventFilePath; } - this.filePath = filePath; + this.eventFilePath = eventFilePath; + this.participantFilePath = participantFilePath; + this.itemFilePath = itemFilePath; } /** @@ -36,7 +42,7 @@ public Storage(String filePath) { * @throws IOException if there's an error writing to the file. */ public void saveEvents(EventList events) throws IOException { - try (FileWriter writer = new FileWriter(filePath)) { + try (FileWriter writer = new FileWriter(eventFilePath)) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); for (Event event : events.getList()) { String eventTimeString = formatter.format(event.getEventTime()); @@ -45,20 +51,83 @@ public void saveEvents(EventList events) throws IOException { + event.getEventPriority() + "\n"); // Save event details in CSV format } } catch (IOException exception) { - throw new IOException("Error saving events to file: " + filePath); + throw new IOException("Error saving events to file: " + eventFilePath); } } + //@@author jemehgoh + /** + * Saves the participants stored in the events in the event list to the file. + * + * @param events The event list with events containing participant data. + * @throws IOException if there is an error writing to the file. + */ + public void saveParticipants(EventList events) throws IOException { + try (FileWriter writer = new FileWriter(participantFilePath)) { + for (Event event : events.getList()) { + ArrayList participants = event.getParticipantList(); + for (Participant participant : participants) { + writer.write(participant.getName() + "," + participant.getNumber() + "," + + participant.getEmail() + "," + event.getEventName() + "\n"); // Save event details in CSV format + } + } + } catch (IOException exception) { + throw new IOException("Error saving events to file: " + participantFilePath); + } + } + + /** + * Saves the items stored in the events in the event list to the file. + * + * @param events The event list with events containing item data. + * @throws IOException if there is an error writing to the file. + */ + public void saveItems(EventList events) throws IOException { + try (FileWriter writer = new FileWriter(itemFilePath)) { + for (Event event : events.getList()) { + ArrayList items = event.getItemList(); + for (Item item : items) { + writer.write(item.getName() + "," + event.getEventName() + "\n"); // Save event details in CSV format + } + } + } catch (IOException exception) { + throw new IOException("Error saving events to file: " + itemFilePath); + } + } + + //@@author KuanHsienn /** * Loads events from the file and returns an EventList. * * @throws IOException if there's an error reading from the file. */ public void loadEvents(EventList events) throws IOException { - Parser parser = new Parser(); - parser.parseFile(events, filePath); + FileParser parser = new FileParser(); + parser.parseEventsFile(events, eventFilePath); + } + + /** + * Loads participants from the file into the specified Events in EventList. + * + * @throws IOException if there is an error reading from the file. + */ + public void loadParticipants(EventList events) throws IOException { + FileParser parser = new FileParser(); + parser.parseParticipantsFile(events, participantFilePath); + } + + + /** + * Loads items from the file into the specified Events in EventList. + * + * @throws IOException if there is an error reading from the file. + */ + public void loadItems(EventList events) throws IOException { + FileParser parser = new FileParser(); + parser.parseItemsFile(events, itemFilePath); } + //@@author KuanHsienn /** * Checks if the given file path is valid and matches the expected path. * diff --git a/src/test/java/seedu/manager/storage/StorageTest.java b/src/test/java/seedu/manager/storage/StorageTest.java index 41934df9cf..0da7096997 100644 --- a/src/test/java/seedu/manager/storage/StorageTest.java +++ b/src/test/java/seedu/manager/storage/StorageTest.java @@ -20,7 +20,9 @@ public class StorageTest { - private static final String TEST_FILE_PATH = "test_events.txt"; + private static final String TEST_EVENTS_FILE_PATH = "test_events.txt"; + private static final String TEST_PARTICIPANTS_FILE_PATH = "test_participants.txt"; + private static final String TEST_ITEMS_FILE_PATH = "test_items.txt"; private static final String NON_EXISTENT_FILE_PATH = "non_existent_file.txt"; private Storage storage; private EventList eventList; @@ -28,13 +30,13 @@ public class StorageTest { @BeforeEach public void setUp() { System.setProperty("test.environment", "true"); // Set the system property for testing - storage = new Storage(TEST_FILE_PATH); + storage = new Storage(TEST_EVENTS_FILE_PATH, TEST_PARTICIPANTS_FILE_PATH, TEST_ITEMS_FILE_PATH); eventList = new EventList(); } @AfterEach public void tearDown() { - File file = new File(TEST_FILE_PATH); + File file = new File(TEST_EVENTS_FILE_PATH); // Clean up the test file after each test if (file.exists()) { file.delete(); @@ -56,7 +58,7 @@ public void testLoadEventsFileNotExists() { public void testLoadEvents() { try { java.nio.file.Files.writeString( - java.nio.file.Paths.get(TEST_FILE_PATH), + java.nio.file.Paths.get(TEST_EVENTS_FILE_PATH), "Meeting,2024-10-25 10:00,Conference Room,HIGH\n" + "Workshop,2024-10-26 14:00,Main Hall,MEDIUM\n" ); @@ -97,7 +99,7 @@ public void testSaveEvents() { fail("Exception should not be thrown when saving events: " + exception.getMessage()); } - File file = new File(TEST_FILE_PATH); + File file = new File(TEST_EVENTS_FILE_PATH); assertTrue(file.exists()); try { From 8658d29917dc2f85e8b11db84e6533e29f46c1d2 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 2 Nov 2024 10:54:55 +0800 Subject: [PATCH 365/619] Add additional user stories --- .gitignore | 2 ++ docs/DeveloperGuide.md | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index d6c1ec6470..491979432a 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ bin/ text-ui-test/EXPECTED-UNIX.TXT src/main/java/META-INF/MANIFEST.MF /events.csv +items.csv +participants.csv diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index f50f66f37d..411cfa638d 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -428,13 +428,16 @@ The user is able to organise and manage his events more quickly and efficiently | v1.0 | user | view the participant list of an event | know who is involved | | v2.0 | user | mark events as completed | easily track all past events | | v2.0 | user | mark participants present | know exactly who signed up but did not attend the event | -| v2.0 | user | save events info | can still access the information if the program terminates | -| v2.0 | user | filter events by keywords | can find relevant information efficiently | -| v2.0 | user | edit event details | can update latest changes to events | +| v2.0 | user | save events info | still access the information if the program terminates | +| v2.0 | user | filter events by keywords | find relevant information efficiently | +| v2.0 | user | edit event details | update latest changes to events | +| v2.0 | user | add items to a specific event | keep track of what I need for that event | +| v2.0 | user | mark items as accounted for | make sure I do not prepare excess items for an event | ## Non-Functional Requirements * Should work for any **mainstream OS** as long as Java 17 is installed. +* Should be able to store data for up to 1000 events without any loss in performance. ## Glossary From d250615f3c06e4083e91099137683637e74f9025 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 2 Nov 2024 11:21:01 +0800 Subject: [PATCH 366/619] Extract methods and fix checkstyle --- .../java/seedu/manager/parser/Parser.java | 4 -- .../seedu/manager/storage/FileParser.java | 1 - .../java/seedu/manager/storage/Storage.java | 50 ++++++++++++++----- .../seedu/manager/storage/StorageTest.java | 24 ++++++--- 4 files changed, 54 insertions(+), 25 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index dda57b9852..7359fe92d2 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -17,16 +17,12 @@ import seedu.manager.command.FindCommand; import seedu.manager.enumeration.Priority; import seedu.manager.exception.InvalidCommandException; -import seedu.manager.event.EventList; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.util.Set; import java.util.logging.Logger; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.io.IOException; import static java.util.logging.Level.WARNING; diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index a84a7c5eaf..2baf19b102 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -2,7 +2,6 @@ import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; -import seedu.manager.parser.Parser; import java.io.IOException; import java.nio.file.Files; diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index 16560caac6..42ac59c4f0 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -16,6 +16,9 @@ * */ public class Storage { + private static final String CSV_LINE_FORMAT = "%s,%s,%s,%s\n"; + private static final String ITEM_CSV_LINE_FORMAT = "%s,%s\n"; + private final String eventFilePath; private final String participantFilePath; private final String itemFilePath; @@ -43,12 +46,10 @@ public Storage(String eventFilePath, String participantFilePath, String itemFile */ public void saveEvents(EventList events) throws IOException { try (FileWriter writer = new FileWriter(eventFilePath)) { - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); for (Event event : events.getList()) { String eventTimeString = formatter.format(event.getEventTime()); - writer.write(event.getEventName() + "," + eventTimeString + "," - + event.getEventVenue() + "," - + event.getEventPriority() + "\n"); // Save event details in CSV format + writer.write(String.format(CSV_LINE_FORMAT, event.getEventName(), eventTimeString, + event.getEventVenue(), event.getEventPriority())); } } catch (IOException exception) { throw new IOException("Error saving events to file: " + eventFilePath); @@ -65,11 +66,7 @@ public void saveEvents(EventList events) throws IOException { public void saveParticipants(EventList events) throws IOException { try (FileWriter writer = new FileWriter(participantFilePath)) { for (Event event : events.getList()) { - ArrayList participants = event.getParticipantList(); - for (Participant participant : participants) { - writer.write(participant.getName() + "," + participant.getNumber() + "," - + participant.getEmail() + "," + event.getEventName() + "\n"); // Save event details in CSV format - } + saveEventParticipants(event, writer); } } catch (IOException exception) { throw new IOException("Error saving events to file: " + participantFilePath); @@ -85,10 +82,7 @@ public void saveParticipants(EventList events) throws IOException { public void saveItems(EventList events) throws IOException { try (FileWriter writer = new FileWriter(itemFilePath)) { for (Event event : events.getList()) { - ArrayList items = event.getItemList(); - for (Item item : items) { - writer.write(item.getName() + "," + event.getEventName() + "\n"); // Save event details in CSV format - } + saveEventItems(event, writer); } } catch (IOException exception) { throw new IOException("Error saving events to file: " + itemFilePath); @@ -147,6 +141,36 @@ private boolean isValidFilePath(String filePath) { private boolean isTestEnvironment() { return "true".equals(System.getProperty("test.environment")); } + + //@@author jemehgoh + /** + * Saves the data of the participants in a given event to a given file writer. + * + * @param event the event containing the participant data. + * @param writer the file writer. + * @throws IOException if the participant cannot be written into the file. + */ + private void saveEventParticipants(Event event, FileWriter writer) throws IOException { + ArrayList participants = event.getParticipantList(); + for (Participant participant : participants) { + writer.write(String.format(CSV_LINE_FORMAT, participant.getName(), participant.getNumber(), + participant.getEmail(), event.getEventName())); + } + } + + /** + * Saves the data of the items in a given event to a given file writer. + * + * @param event the event containing the item data. + * @param writer the file writer. + * @throws IOException if the participant cannot be written into the file. + */ + private void saveEventItems(Event event, FileWriter writer) throws IOException { + ArrayList items = event.getItemList(); + for (Item item : items) { + writer.write(String.format(ITEM_CSV_LINE_FORMAT, item.getName(), event.getEventName())); + } + } } diff --git a/src/test/java/seedu/manager/storage/StorageTest.java b/src/test/java/seedu/manager/storage/StorageTest.java index 0da7096997..4209e2e918 100644 --- a/src/test/java/seedu/manager/storage/StorageTest.java +++ b/src/test/java/seedu/manager/storage/StorageTest.java @@ -36,16 +36,28 @@ public void setUp() { @AfterEach public void tearDown() { - File file = new File(TEST_EVENTS_FILE_PATH); - // Clean up the test file after each test - if (file.exists()) { - file.delete(); + File eventsFile = new File(TEST_EVENTS_FILE_PATH); + File participantsFile = new File(TEST_PARTICIPANTS_FILE_PATH); + File itemsFile = new File(TEST_ITEMS_FILE_PATH); + + // Clean up the test files after each test + if (eventsFile.exists()) { + eventsFile.delete(); + } + + if (participantsFile.exists()) { + participantsFile.delete(); + } + + if (itemsFile.exists()) { + itemsFile.delete(); } } @Test public void testLoadEventsFileNotExists() { - Storage nonExistentFileStorage = new Storage(NON_EXISTENT_FILE_PATH); + Storage nonExistentFileStorage = new Storage(NON_EXISTENT_FILE_PATH, NON_EXISTENT_FILE_PATH, + NON_EXISTENT_FILE_PATH); IOException exception = assertThrows(IOException.class, () -> { nonExistentFileStorage.loadEvents(eventList); @@ -111,8 +123,6 @@ public void testSaveEvents() { fail("Exception should not be thrown when reading the saved file: " + exception.getMessage()); } } - - } From f66d1b66e4a261f4c51f1d9553db231ae4edcebe Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 2 Nov 2024 16:21:13 +0800 Subject: [PATCH 367/619] Update Storage to load mark status --- src/main/java/seedu/manager/Main.java | 1 - src/main/java/seedu/manager/event/Event.java | 51 ++++---- .../java/seedu/manager/event/EventList.java | 42 ++++++- .../exception/InvalidCommandException.java | 4 +- src/main/java/seedu/manager/item/Item.java | 16 ++- .../java/seedu/manager/item/Participant.java | 30 ++--- .../seedu/manager/storage/FileParser.java | 115 +++++++++++++----- .../java/seedu/manager/storage/Storage.java | 13 +- .../seedu/manager/item/ParticipantTest.java | 9 +- .../seedu/manager/storage/StorageTest.java | 8 +- 10 files changed, 196 insertions(+), 93 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 1abf32f284..a285b94a22 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -5,7 +5,6 @@ import seedu.manager.exception.DuplicateDataException; import seedu.manager.exception.InvalidCommandException; import seedu.manager.parser.Parser; -import seedu.manager.storage.FileParser; import seedu.manager.ui.Ui; import seedu.manager.storage.Storage; diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 716325061f..d3daaddb12 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -27,49 +27,43 @@ public class Event { private boolean isDone; private Priority eventPriority; + //@@author LTK-1606 /** - * Constructs an Event with the specified name. - * - * @param eventName the name of the event - */ - public Event(String eventName) { - this.eventName = eventName; - this.participantList = new ArrayList<>(); - } - - /** - * Constructs an Event with the specified name, time, and venue. + * Constructs an Event with the specified name, time, venue and priority. * * @param eventName the name of the event * @param eventTime the time duration of the event * @param eventVenue the venue of the event + * @param eventPriority the priority level of the event */ - public Event(String eventName, LocalDateTime eventTime, String eventVenue) { + public Event(String eventName, LocalDateTime eventTime, String eventVenue, Priority eventPriority) { this.eventName = eventName; this.eventTime = eventTime; this.eventVenue = eventVenue; + this.eventPriority = eventPriority; this.participantList = new ArrayList<>(); this.itemList = new ArrayList<>(); this.isDone = false; } - //@@author LTK-1606 /** - * Constructs an Event with the specified name, time, venue and priority. + * Constructs an Event with the specified name, time, venue, priority and whether it is marked done. * - * @param eventName the name of the event - * @param eventTime the time duration of the event - * @param eventVenue the venue of the event - * @param eventPriority the priority level of the event + * @param eventName the name of the event. + * @param eventTime the time duration of the event. + * @param eventVenue the venue of the event. + * @param eventPriority the priority level of the event. + * @param isDone {@code true} if the event is marked done, {@code false otherwise}. */ - public Event(String eventName, LocalDateTime eventTime, String eventVenue, Priority eventPriority) { + public Event(String eventName, LocalDateTime eventTime, String eventVenue, Priority eventPriority, + boolean isDone) { this.eventName = eventName; this.eventTime = eventTime; this.eventVenue = eventVenue; this.eventPriority = eventPriority; this.participantList = new ArrayList<>(); this.itemList = new ArrayList<>(); - this.isDone = false; + this.isDone = isDone; } //@@author LTK-1606 @@ -77,15 +71,16 @@ public Event(String eventName, LocalDateTime eventTime, String eventVenue, Prior * Adds a participant to the participant list for the event. * * @param participantName the name of the participant to be added to the list. + * @param isPresent {@code true} if the participant is to be present, {@code false} otherwise. * @throws DuplicateDataException if a participant with the same name exists in the list. */ - public void addParticipant(String participantName, String participantNumber, String participantEmail) - throws DuplicateDataException { + public void addParticipant(String participantName, String participantNumber, String participantEmail, + boolean isPresent) throws DuplicateDataException { if (getParticipantByName(participantName).isPresent()) { throw new DuplicateDataException(DUPLICATE_PARTICIPANT_MESSAGE); } - Participant participant = new Participant(participantName, participantNumber, participantEmail); + Participant participant = new Participant(participantName, participantNumber, participantEmail, isPresent); this.participantList.add(participant); } @@ -161,12 +156,12 @@ public int getParticipantCount() { * @param itemName the name of the item to be added. * @throws DuplicateDataException if an item with the same name is already in the list. */ - public void addItem(String itemName) throws DuplicateDataException { + public void addItem(String itemName, boolean isPresent) throws DuplicateDataException { if (getItemByName(itemName).isPresent()) { throw new DuplicateDataException(DUPLICATE_ITEM_MESSAGE); } - Item item = new Item(itemName); + Item item = new Item(itemName, isPresent); itemList.add(item); } @@ -392,6 +387,12 @@ private boolean markParticipant(Optional participant, boolean isPre return true; } + /** + * Returns the {@code Item} with the given name in the item list. + * + * @param itemName the given item name + * @return the {@code Item} with name itemName, or null if the item is not founc + */ private Optional getItemByName(String itemName) { for (Item item : itemList) { if (item.getName().equalsIgnoreCase(itemName)) { diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index fed8871bbb..3a76899591 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -62,11 +62,16 @@ public ArrayList getList() { * @throws DuplicateDataException if an event with eventName is present in the event list. */ public void addEvent(String eventName, LocalDateTime time, - String venue, Priority priority) throws DuplicateDataException { + String venue, Priority priority) throws DuplicateDataException { + addEvent(eventName, time, venue, priority, false); + } + + public void addEvent(String eventName, LocalDateTime time, String venue, + Priority priority, boolean isDone) throws DuplicateDataException { if (getEventByName(eventName).isPresent()) { throw new DuplicateDataException(DUPLICATE_EVENT_MESSAGE); } - Event newEvent = new Event(eventName, time, venue, priority); + Event newEvent = new Event(eventName, time, venue, priority, isDone); eventList.add(newEvent); } @@ -134,9 +139,25 @@ public boolean removeEvent(String eventName) { * @return {@code true} if the participant can be added to the event, {@code false} otherwise. */ public boolean addParticipantToEvent(String name, String number, String email, String eventName) { + return addParticipantToEvent(name, number, email, false, eventName); + } + + /** + * Returns true if a participant can be added to a specified event, + * returns false otherwise. + * + * @param name the name of the participant to be added. + * @param number the contact number of the participant. + * @param email the email address of the participant. + * @param isPresent {@code true} if the participant is to be marked present, {@code false} otherwise. + * @param eventName the name of the event to which the participant will be added. + * @return {@code true} if the participant can be added to the event, {@code false} otherwise. + */ + public boolean addParticipantToEvent(String name, String number, String email, boolean isPresent, + String eventName) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { - event.addParticipant(name, number, email); + event.addParticipant(name, number, email, isPresent); return true; } } @@ -225,8 +246,6 @@ public boolean editEvent(String eventName, String eventNewName, LocalDateTime ev return false; } - - /** * Returns true if an item with a given name is successfully added to a given event, returns false otherwise. * @@ -235,10 +254,21 @@ public boolean editEvent(String eventName, String eventNewName, LocalDateTime ev * @return {@code true} if the item is successfully added to the event, {@code false} otherwise. */ public boolean addItemToEvent(String itemName, String eventName) { + return addItemToEvent(itemName, false, eventName); + } + + /** + * Returns true if an item with a given name is successfully added to a given event, returns false otherwise. + * + * @param itemName the name of the item to be added. + * @param eventName the name of the event the item is to be added to. + * @return {@code true} if the item is successfully added to the event, {@code false} otherwise. + */ + public boolean addItemToEvent(String itemName, boolean isPresent, String eventName) { assert itemName != null : "Item name should not be null"; Optional event = getEventByName(eventName); if (event.isPresent()) { - event.get().addItem(itemName); + event.get().addItem(itemName, isPresent); } return event.isPresent(); } diff --git a/src/main/java/seedu/manager/exception/InvalidCommandException.java b/src/main/java/seedu/manager/exception/InvalidCommandException.java index 5013a38b65..bb97ac3205 100644 --- a/src/main/java/seedu/manager/exception/InvalidCommandException.java +++ b/src/main/java/seedu/manager/exception/InvalidCommandException.java @@ -2,12 +2,12 @@ //@@author jemehgoh /** - * Signals that an entered command is invalid + * Signals that an entered command is invalid. */ public class InvalidCommandException extends RuntimeException { /** - * @param message contains information on how the command is invalid + * @param message contains information on how the command is invalid. */ public InvalidCommandException(String message) { super(message); diff --git a/src/main/java/seedu/manager/item/Item.java b/src/main/java/seedu/manager/item/Item.java index ee6a27a93a..6b2395fa58 100644 --- a/src/main/java/seedu/manager/item/Item.java +++ b/src/main/java/seedu/manager/item/Item.java @@ -10,13 +10,14 @@ public class Item { protected boolean isPresent; /** - * Constructs a new Item with a given name. + * Constructs a new Item with a given name and if the item is to be accounted. * * @param name the given name. + * @param isPresent {@code true} if the item is accounted for, {@code false} otherwise. */ - public Item(String name) { + public Item(String name, boolean isPresent) { this.name = name; - this.isPresent = false; + this.isPresent = isPresent; } /** @@ -46,6 +47,15 @@ public String markIfPresent() { return (this.isPresent) ? "X" : " "; } + /** + * Returns "Y" if isPresent is true, "N" otherwise. For saving the item's mark status to files. + * + * @return "Y" if isPresent is true, "N" otherwise. + */ + public String markFileLineIfPresent() { + return (this.isPresent) ? "Y" : "N"; + } + /** * Returns a formatted string of the item * diff --git a/src/main/java/seedu/manager/item/Participant.java b/src/main/java/seedu/manager/item/Participant.java index c3677e1873..627bba882b 100644 --- a/src/main/java/seedu/manager/item/Participant.java +++ b/src/main/java/seedu/manager/item/Participant.java @@ -11,12 +11,12 @@ public class Participant extends Item { private String email; /** - * Constructs a new Participant with a given name + * Constructs a new Participant with a given name. * - * @param name the given name + * @param name the given name. */ - public Participant(String name, String number, String email) { - super(name); + public Participant(String name, String number, String email, boolean isPresent) { + super(name, isPresent); this.number = number; this.email = email; } @@ -25,7 +25,7 @@ public Participant(String name, String number, String email) { /** * Returns the name of the participant. * - * @return the name of the participant + * @return the name of the participant. */ public String getName() { return name; @@ -33,9 +33,9 @@ public String getName() { //@@author KuanHsienn /** - * Returns the contact number of the participant + * Returns the contact number of the participant. * - * @return the contact number of the participant + * @return the contact number of the participant. */ public String getNumber() { return this.number; @@ -43,9 +43,9 @@ public String getNumber() { //@@author KuanHsienn /** - * Returns the contact email of the participant + * Returns the contact email of the participant. * - * @return the contact email of the participant + * @return the contact email of the participant. */ public String getEmail() { return this.email; @@ -53,9 +53,9 @@ public String getEmail() { //@@author KuanHsienn /** - * Sets the contact number of the participant + * Sets the contact number of the participant. * - * @param newNumber the new contact number of the participant + * @param newNumber the new contact number of the participant. */ public void setNumber(String newNumber) { this.number = newNumber; @@ -63,9 +63,9 @@ public void setNumber(String newNumber) { //@@author KuanHsienn /** - * Sets the contact email of the participant + * Sets the contact email of the participant. * - * @param newEmail the new contact email of the participant + * @param newEmail the new contact email of the participant. */ public void setEmail(String newEmail) { this.email = newEmail; @@ -73,9 +73,9 @@ public void setEmail(String newEmail) { //@@author glenn-chew /** - * Returns a formatted string of the participant + * Returns a formatted string of the participant. * - * @return a formatted string of the participant + * @return a formatted string of the participant. */ @Override public String toString() { diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index 2baf19b102..09113877e0 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -8,6 +8,7 @@ import java.nio.file.Paths; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; import java.util.logging.Logger; import static java.util.logging.Level.INFO; @@ -44,16 +45,7 @@ public void parseEventsFile(EventList events, String filePath) throws IOExceptio logger.log(INFO, "Loading events from file"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); for (String line : Files.readAllLines(Paths.get(filePath))) { - String[] parts = line.split(","); // CSV format - if (parts.length == 4) { - String eventName = parts[0].trim(); - LocalDateTime time = LocalDateTime.parse(parts[1].trim(), formatter); - String venue = parts[2].trim(); - Priority priority = Priority.valueOf(parts[3].trim().toUpperCase()); - events.addEvent(eventName, time, venue, priority); - } else { - logger.log(WARNING, "File line cannot be parsed, event not loaded"); - } + parseEventFileLine(events, line, formatter); } } catch (IOException exception) { throw new IOException("Error loading events from file: " + filePath + "."); @@ -73,16 +65,7 @@ public void parseParticipantsFile(EventList events, String filePath) throws IOEx try { logger.log(INFO, "Loading event participants from file"); for (String line : Files.readAllLines(Paths.get(filePath))) { - String[] parts = line.split(","); // CSV format - if (parts.length == 4) { - String participantName = parts[0].trim(); - String number = parts[1].trim(); - String email = parts[2].trim(); - String eventName = parts[3].trim(); - events.addParticipantToEvent(participantName, number, email, eventName); - } else { - logger.log(WARNING, "File line cannot be parsed, participant not loaded"); - } + parseParticipantFileLine(events, line); } } catch (IOException exception) { throw new IOException("Error loading events from file: " + filePath + "."); @@ -101,17 +84,93 @@ public void parseItemsFile(EventList events, String filePath) throws IOException try { logger.log(INFO, "Loading event items from file"); for (String line : Files.readAllLines(Paths.get(filePath))) { - String[] parts = line.split(","); // CSV format - if (parts.length == 2) { - String itemName = parts[0].trim(); - String eventName = parts[1].trim(); - events.addItemToEvent(itemName, eventName); - } else { - logger.log(WARNING, "File line cannot be parsed, item not loaded"); - } + parseItemFileLine(events, line); } } catch (IOException exception) { throw new IOException("Error loading events from file: " + filePath + "."); } } + + //@@author KuanHsienn + /** + * Parses one line of the CSV file containing event details into a {@code Event} in the given event list. + * + * @param events the given event list. + * @param line the line of the CSV file being parsed. + * @param formatter the given date-time formatter (to parse event date and time). + * @throws IOException if line cannot be parsed successfully. + */ + private void parseEventFileLine(EventList events, String line, DateTimeFormatter formatter) throws IOException { + String[] parts = line.split(","); + try { + String eventName = parts[0].trim(); + LocalDateTime time = LocalDateTime.parse(parts[1].trim(), formatter); + String venue = parts[2].trim(); + Priority priority = Priority.valueOf(parts[3].trim().toUpperCase()); + boolean isDone = getIsMarked(parts[4].trim()); + events.addEvent(eventName, time, venue, priority, isDone); + } catch (DateTimeParseException | IndexOutOfBoundsException | NullPointerException exception) { + logger.log(WARNING, "File line cannot be parsed, event not loaded"); + } + } + + //@@author jemehgoh + /** + * Parses one line of the CSV file containing participant details into a {@code Participant} in an + * {@code Event} in the given event list. + * + * @param events the given event list. + * @param line the line of the CSV file being parsed. + * @throws IOException if line cannot be parsed successfully. + */ + private void parseParticipantFileLine(EventList events, String line) throws IOException { + String[] parts = line.split(","); + try { + String participantName = parts[0].trim(); + String number = parts[1].trim(); + String email = parts[2].trim(); + boolean isPresent = getIsMarked(parts[3].trim()); + String eventName = parts[4].trim(); + events.addParticipantToEvent(participantName, number, email, isPresent, eventName); + } catch (IndexOutOfBoundsException | NullPointerException exception) { + logger.log(WARNING, "File line cannot be parsed, participant not loaded"); + } + } + + /** + * Parses one line of the CSV file containing item details into a {@code Item} in an + * {@code Event} in the given event list. + * + * @param events the given event list. + * @param line the line of the CSV file being parsed. + * @throws IOException if line cannot be parsed successfully. + */ + private void parseItemFileLine(EventList events, String line) throws IOException { + String[] parts = line.split(","); + try { + String itemName = parts[0].trim(); + boolean isPresent = getIsMarked(parts[1].trim()); + String eventName = parts[2].trim(); + events.addItemToEvent(itemName, isPresent, eventName); + } catch (IndexOutOfBoundsException | NullPointerException exception) { + logger.log(WARNING, "File line cannot be parsed, item not loaded"); + } + } + + /** + * Returns true if the given mark status is "Y", returns false otherwise. + * + * @param markStatus the given mark status. + * @return {@code true} if the markStatus is "Y", {@code false} otherwise. + */ + private boolean getIsMarked(String markStatus) { + if (markStatus.equalsIgnoreCase("Y")) { + return true; + } else if (markStatus.equalsIgnoreCase("N")) { + return false; + } else { + logger.log(WARNING, "Cannot parse mark status, setting to false"); + return false; + } + } } diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index 42ac59c4f0..e9ac21eb6d 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -16,8 +16,8 @@ * */ public class Storage { - private static final String CSV_LINE_FORMAT = "%s,%s,%s,%s\n"; - private static final String ITEM_CSV_LINE_FORMAT = "%s,%s\n"; + private static final String CSV_LINE_FORMAT = "%s,%s,%s,%s,%s\n"; + private static final String ITEM_CSV_LINE_FORMAT = "%s,%s,%s\n"; private final String eventFilePath; private final String participantFilePath; @@ -49,7 +49,7 @@ public void saveEvents(EventList events) throws IOException { for (Event event : events.getList()) { String eventTimeString = formatter.format(event.getEventTime()); writer.write(String.format(CSV_LINE_FORMAT, event.getEventName(), eventTimeString, - event.getEventVenue(), event.getEventPriority())); + event.getEventVenue(), event.getEventPriority(), event.markIfDone())); } } catch (IOException exception) { throw new IOException("Error saving events to file: " + eventFilePath); @@ -100,6 +100,7 @@ public void loadEvents(EventList events) throws IOException { parser.parseEventsFile(events, eventFilePath); } + //@@author jemehgoh /** * Loads participants from the file into the specified Events in EventList. * @@ -110,7 +111,6 @@ public void loadParticipants(EventList events) throws IOException { parser.parseParticipantsFile(events, participantFilePath); } - /** * Loads items from the file into the specified Events in EventList. * @@ -154,7 +154,7 @@ private void saveEventParticipants(Event event, FileWriter writer) throws IOExce ArrayList participants = event.getParticipantList(); for (Participant participant : participants) { writer.write(String.format(CSV_LINE_FORMAT, participant.getName(), participant.getNumber(), - participant.getEmail(), event.getEventName())); + participant.getEmail(), participant.markFileLineIfPresent(), event.getEventName())); } } @@ -168,7 +168,8 @@ private void saveEventParticipants(Event event, FileWriter writer) throws IOExce private void saveEventItems(Event event, FileWriter writer) throws IOException { ArrayList items = event.getItemList(); for (Item item : items) { - writer.write(String.format(ITEM_CSV_LINE_FORMAT, item.getName(), event.getEventName())); + writer.write(String.format(ITEM_CSV_LINE_FORMAT, item.getName(), item.markFileLineIfPresent(), + event.getEventName())); } } } diff --git a/src/test/java/seedu/manager/item/ParticipantTest.java b/src/test/java/seedu/manager/item/ParticipantTest.java index 7fdd124f21..3825a17859 100644 --- a/src/test/java/seedu/manager/item/ParticipantTest.java +++ b/src/test/java/seedu/manager/item/ParticipantTest.java @@ -8,21 +8,24 @@ class ParticipantTest { @Test public void setPresent_setTrue_present() { - Participant participant = new Participant("Participant", "89521252", "example@gmail.com"); + Participant participant = new Participant("Participant", "89521252", "example@gmail.com", + false); participant.setPresent(true); assertEquals("X", participant.markIfPresent()); } @Test public void setPresent_setFalse_notPresent() { - Participant participant = new Participant("Participant", "89521252", "example@gmail.com"); + Participant participant = new Participant("Participant", "89521252", "example@gmail.com", + false); participant.setPresent(false); assertEquals(" ", participant.markIfPresent()); } @Test public void toString_setTrue_present() { - Participant participant = new Participant("Participant", "89521252", "example@gmail.com"); + Participant participant = new Participant("Participant", "89521252", "example@gmail.com", + false); participant.setPresent(true); assertEquals("Name: Participant / Number: 89521252 / Email: example@gmail.com [X]", participant.toString()); diff --git a/src/test/java/seedu/manager/storage/StorageTest.java b/src/test/java/seedu/manager/storage/StorageTest.java index 4209e2e918..801513f3e5 100644 --- a/src/test/java/seedu/manager/storage/StorageTest.java +++ b/src/test/java/seedu/manager/storage/StorageTest.java @@ -71,8 +71,8 @@ public void testLoadEvents() { try { java.nio.file.Files.writeString( java.nio.file.Paths.get(TEST_EVENTS_FILE_PATH), - "Meeting,2024-10-25 10:00,Conference Room,HIGH\n" + - "Workshop,2024-10-26 14:00,Main Hall,MEDIUM\n" + "Meeting,2024-10-25 10:00,Conference Room,HIGH,Y\n" + + "Workshop,2024-10-26 14:00,Main Hall,MEDIUM,N\n" ); } catch (IOException exception) { fail("Failed to set up the test data file: " + exception.getMessage()); @@ -116,8 +116,8 @@ public void testSaveEvents() { try { String content = new String(java.nio.file.Files.readAllBytes(file.toPath())); - String expectedContent = "Meeting,2024-10-25 10:00,Conference Room,HIGH\n" - + "Workshop,2024-10-26 14:00,Main Hall,MEDIUM\n"; + String expectedContent = "Meeting,2024-10-25 10:00,Conference Room,HIGH,N\n" + + "Workshop,2024-10-26 14:00,Main Hall,MEDIUM,N\n"; assertEquals(expectedContent, content, "The file content does not match the expected output."); } catch (IOException exception) { fail("Exception should not be thrown when reading the saved file: " + exception.getMessage()); From c9a540a2cd9ad9baac91db7739da097755107bc3 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 2 Nov 2024 17:05:16 +0800 Subject: [PATCH 368/619] Add Javadocs, assertions and integration tests --- .../java/seedu/manager/command/Command.java | 3 +- src/main/java/seedu/manager/event/Event.java | 1 - .../java/seedu/manager/event/EventList.java | 11 +++ .../manager/parser/ParserIntegrationTest.java | 78 +++++++++++++++++++ 4 files changed, 91 insertions(+), 2 deletions(-) create mode 100644 src/test/java/seedu/manager/parser/ParserIntegrationTest.java diff --git a/src/main/java/seedu/manager/command/Command.java b/src/main/java/seedu/manager/command/Command.java index f1dedd51b6..e880399a4a 100644 --- a/src/main/java/seedu/manager/command/Command.java +++ b/src/main/java/seedu/manager/command/Command.java @@ -42,7 +42,8 @@ public void setData(EventList events) { * @return the command's message */ public String getMessage() { - return this.message; + assert message != null : "Output message must be set before being retrieved"; + return message; } /** diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index d3daaddb12..beb5e28ddf 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -139,7 +139,6 @@ public void updateEvent(String eventNewName, LocalDateTime eventTime, String eve this.eventPriority = eventPriority; } - /** * Retrieves the number of participants in the participant list. * diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 3a76899591..0b6a02da51 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -66,6 +66,16 @@ public void addEvent(String eventName, LocalDateTime time, addEvent(eventName, time, venue, priority, false); } + /** + * Adds a new {@code Event} with the given parameters and adds it to the event list. + * + * @param eventName the name of the event to be added. + * @param time the time of the event. + * @param venue the venue where the event will take place. + * @param priority the priority level of the event. + * @param isDone {@code true} if the event is marked done, {@code false otherwise}. + * @throws DuplicateDataException if an event with eventName is present in the event list. + */ public void addEvent(String eventName, LocalDateTime time, String venue, Priority priority, boolean isDone) throws DuplicateDataException { if (getEventByName(eventName).isPresent()) { @@ -246,6 +256,7 @@ public boolean editEvent(String eventName, String eventNewName, LocalDateTime ev return false; } + //@@author jemehgoh /** * Returns true if an item with a given name is successfully added to a given event, returns false otherwise. * diff --git a/src/test/java/seedu/manager/parser/ParserIntegrationTest.java b/src/test/java/seedu/manager/parser/ParserIntegrationTest.java new file mode 100644 index 0000000000..b2d68e19ba --- /dev/null +++ b/src/test/java/seedu/manager/parser/ParserIntegrationTest.java @@ -0,0 +1,78 @@ +package seedu.manager.parser; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import seedu.manager.command.Command; +import seedu.manager.enumeration.Priority; +import seedu.manager.event.EventList; +import seedu.manager.exception.DuplicateDataException; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +import static org.junit.jupiter.api.Assertions.*; +class ParserIntegrationTest { + private EventList events; + private Parser parser; + private DateTimeFormatter formatter; + + @BeforeEach + void setUp() { + events = new EventList(); + parser = new Parser(); + formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + + events.addEvent("Event 1", LocalDateTime.parse("2024-10-21 16:00", formatter), + "Venue 1", Priority.HIGH, false); + } + + @Test + void parseCommand_addCommandAddEvent_success() { + String commandString = "add -e Event 2 -t 2024-10-21 16:00 -v Venue 1 -u HIGH"; + Command command = parser.parseCommand(commandString); + command.setData(events); + command.execute(); + + assertEquals(2, events.getListSize()); + } + + @Test + void parseCommand_addCommandDuplicateEvent_throwsException() { + String commandString = "add -e Event 1 -t 2024-10-21 16:00 -v Venue 1 -u HIGH"; + Command command = parser.parseCommand(commandString); + command.setData(events); + + assertThrows(DuplicateDataException.class, () -> { + command.execute();}); + } + + @Test + void parseCommand_addCommandAddParticipant_success() { + String commandString = "add -p John Doe -n 9213 8961 -email johndoe@gmail.com -e Event 1"; + Command command = parser.parseCommand(commandString); + command.setData(events); + command.execute(); + + assertEquals(1, events.getEventByName("Event 1").get().getParticipantCount()); + } + + @Test + void parseCommand_removeCommandRemoveEvent_success() { + String commandString = "remove -e Event 1"; + Command command = parser.parseCommand(commandString); + command.setData(events); + command.execute(); + + assertEquals(0, events.getListSize()); + } + + @Test + void parseCommand_markCommandMarkEvent_success() { + String commandString = "mark -e Event 1 -s done"; + Command command = parser.parseCommand(commandString); + command.setData(events); + command.execute(); + + assertEquals('Y', events.getEventByName("Event 1").get().markIfDone()); + } +} \ No newline at end of file From 7b5385da1c9d48ae080003beaf2be0d80f0e169a Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 2 Nov 2024 21:39:13 +0800 Subject: [PATCH 369/619] Update developer guide with storage functionality --- docs/DeveloperGuide.md | 86 ++++++++++++++++-- docs/diagrams/LoadingSequenceDiagram.puml | 17 ++++ docs/diagrams/SavingSequenceDiagram.puml | 17 ++++ docs/diagrams/StorageClassDiagram.puml | 30 +++--- .../StorageEventLoadingSequenceDiagram.puml | 42 +++++++++ ...=> StorageEventSavingSequenceDiagram.puml} | 9 +- ...rageParticipantLoadingSequenceDiagram.puml | 42 +++++++++ ...orageParticipantSavingSequenceDiagram.puml | 34 +++++++ docs/images/LoadingSequenceDiagram.png | Bin 0 -> 9166 bytes docs/images/SavingSequenceDiagram.png | Bin 0 -> 9527 bytes docs/images/StorageClassDiagram.png | Bin 23293 -> 58504 bytes .../StorageEventLoadingSequenceDiagram.png | Bin 0 -> 23812 bytes .../StorageEventSavingSequenceDiagram.png | Bin 0 -> 12085 bytes ...orageParticipantLoadingSequenceDiagram.png | Bin 0 -> 26075 bytes ...torageParticipantSavingSequenceDiagram.png | Bin 0 -> 26293 bytes 15 files changed, 255 insertions(+), 22 deletions(-) create mode 100644 docs/diagrams/LoadingSequenceDiagram.puml create mode 100644 docs/diagrams/SavingSequenceDiagram.puml create mode 100644 docs/diagrams/StorageEventLoadingSequenceDiagram.puml rename docs/diagrams/{StorageSavingSequenceDiagram.puml => StorageEventSavingSequenceDiagram.puml} (71%) create mode 100644 docs/diagrams/StorageParticipantLoadingSequenceDiagram.puml create mode 100644 docs/diagrams/StorageParticipantSavingSequenceDiagram.puml create mode 100644 docs/images/LoadingSequenceDiagram.png create mode 100644 docs/images/SavingSequenceDiagram.png create mode 100644 docs/images/StorageEventLoadingSequenceDiagram.png create mode 100644 docs/images/StorageEventSavingSequenceDiagram.png create mode 100644 docs/images/StorageParticipantLoadingSequenceDiagram.png create mode 100644 docs/images/StorageParticipantSavingSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index f50f66f37d..d1f735997a 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -58,12 +58,18 @@ The `UI` does the following: -The `Storage` component comprises a Storage class, as shown in the above **Class Diagram**. +The `Storage` component's component classes are shown in the above **Class Diagram**. -The `Storage` does the following: +These are: -* Load events and participants information from a text file and save it to `EventList` list. -* Save events from `EventList` list to a text file +* A `Storage` class that handles the loading and saving of event data into files. +* A `FileParser` that parses through the file contents when loading event data. + +The `Storage` component does the following: +* Load event data from several `.csv` files into `EventList` upon program startup. +* Save events data from `EventList` into the aforementioned `.csv` files each time a command is executed. + +Additional details on the implementation of the above operations can be found in the _Saving and loading of data_ section. ### Parser component @@ -122,8 +128,8 @@ The `Event` component and its component classes are shown in the below **Class D The `Event` component does the following: -* Handle the addition, removal and marking of events stored in `EventList`. -* Add, remove and mark participants for a specific `Event` in `EventList`. +* Handle the addition, removal and marking of `Event`s stored in `EventList`. +* Add, remove and mark `Participant`s for a specific `Event` in `EventList`. ## Implementation @@ -401,6 +407,70 @@ These two values are as follows: Any other values entered for the status parameter will be treated as invalid. +### Saving and loading of data + +As mentioned in the _Storage component_ section, the program automatically saves any stored data in `EventList` into several `.csv` files, and loads +the data from these files when it is run. + +There are three `.csv` files used for storing data, for `Event`s, `Participant`s and `Item`s respectively. Within each file, each +object (like an `Event` in the `Event`s) file is stored in one line in the following format, + +``` +FIELD,FIELD,... +``` + +where `FIELD` represents a value for a member of the object (like the name of an `Event`). + +This functionality is implemented by the `Storage` and `FileParser` classes, and has two operations, namely: + +* `Main#loadData()`, which loads the data from the `.csv` files into the `EventList` amd its `Events`, +* `Main#saveData()`, which saves the data stored in `EventList` and its `Event`s into the `.csv` files. + +The `Main#loadData()` operation works as follows: + +1. `Storage` loads the data for the `Event`s from the `.csv` file into `EventList`. +2. `Storage` then loads the data for the `Event`s' `Participant`s into `EventList`. +3. `Storage` then loads the data for the `Event`s' `Item`s into `EventList`. + +The interactions between classes during the `Main#loadData()` operation is shown in the **Sequence Diagram** below. + + + +The logic for the loading of `Event`s is as follows: + +1. `Storage` creates a `FileParser`, and passes the event file's filepath to `FileParser`. +2. `FileParser` adds a new `Event` to `EventList` with the fields in each line of the event file. +3. If a line in the file has insufficient or invalid fields, the `FileParser` skips past the line. + +If a line has more fields than required, `FileParser` will ignore the additional fields. + +The interactions between classes during the loading of `Event`s is shown in the **Sequence Diagram** below. + + + +The logic for the loading of `Participant`s and `Item`s is similar to that for `Event`s. + +The `Main#saveData()` operation saves data in the same order as `Main#loadData()`. The interactions between classes during the operation is shown in the **Sequence Diagram** below: + + + +For the saving of `Event`s, `Storage` gets the list of `Event`s from `EventList`, and writes a line of event data into the `.csv` file for each `Event`. + +The interactions between classes during the saving of `Event`s is shown in the **Sequence Diagram** below. + + + +The logic for the saving of `Participant`s is as follows: +1. `Storage` gets a list of `Event`s from `EventList`. +2. For each `Event` in the list of `Event`s, `Storage` gets its list of `Participant`s. +3. `Storage` then writes the `Participant` data for each participant into a line in the participant `.csv` file. + +The interactions between classes during the saving of `Participant`s is shown in the **Sequence Diagram** below. + + + +The logic for the loading of `Item`s is similar to that for `Participant`s. + ## Product scope ### Target user profile @@ -438,7 +508,9 @@ The user is able to organise and manage his events more quickly and efficiently ## Glossary -* *glossary item* - Definition +* _Command_ - an action that is carried out in the program as a result of user input. +* _List_ - a container class that stores multiple instances of an object. +* _Parameter_ - a value in the user command input that is used for the parsing of a command. ## Instructions for manual testing diff --git a/docs/diagrams/LoadingSequenceDiagram.puml b/docs/diagrams/LoadingSequenceDiagram.puml new file mode 100644 index 0000000000..97420cc95b --- /dev/null +++ b/docs/diagrams/LoadingSequenceDiagram.puml @@ -0,0 +1,17 @@ +@startuml +!include style.puml +hide footbox + +Participant ":Main" as main +Participant ":Storage" as storage STORAGE_COLOUR + +main -> main : loadData() +activate main + +ref over main, storage : Loading of event data +ref over main, storage : Loading of participant data +ref over main, storage : Loading of item data + +return + +@enduml \ No newline at end of file diff --git a/docs/diagrams/SavingSequenceDiagram.puml b/docs/diagrams/SavingSequenceDiagram.puml new file mode 100644 index 0000000000..10554b2390 --- /dev/null +++ b/docs/diagrams/SavingSequenceDiagram.puml @@ -0,0 +1,17 @@ +@startuml +!include style.puml +hide footbox + +Participant ":Main" as main +Participant ":Storage" as storage STORAGE_COLOUR + +main -> main : saveData() +activate main + +ref over main, storage : Saving of event data +ref over main, storage : Saving of participant data +ref over main, storage : Saving of item data + +return + +@enduml \ No newline at end of file diff --git a/docs/diagrams/StorageClassDiagram.puml b/docs/diagrams/StorageClassDiagram.puml index 3dd9a0f073..6466dfef3a 100644 --- a/docs/diagrams/StorageClassDiagram.puml +++ b/docs/diagrams/StorageClassDiagram.puml @@ -3,23 +3,31 @@ hide circle skinparam ClassAttributeIconSize 0 -allowmixing - - class Storage { - - filePath : String - + Storage(filePath : String) - + void saveEvents(EventList events) throws IOException - + loadEvents(EventList events) : void - - isValidFilePath(String filePath) : boolean +class Storage { + - eventFilePath : String + - participantFilePath : String + - itemFilePath : String + + Storage(eventFilePath : String, participantFilePath : String, itemFilePath : String) : Storage + + saveEvents(events : EventList) : void + + saveParticipants(events : EventList) : void + + saveItems(events : EventList) : void + + loadEvents(events : EventList) : void + + loadParticipants(events : EventList) : void + + loadItems(events : EventList) : void + - isValidFilePath(filePath : String) : boolean - isTestEnvironment() : boolean - } +} class Main class EventList -class Parser +class FileParser { + +parseEventsFile(events : EventList, filePath : String) : void + +parseParticipantsFile(events : EventList, filePath : String) : void + +parseItemsFile(events : EventList, filePath : String) : void +} Storage ..> EventList : saves/loads > -Parser <.. Storage : < adopts +FileParser <.. Storage : < invokes Main .> Storage : invokes > @enduml diff --git a/docs/diagrams/StorageEventLoadingSequenceDiagram.puml b/docs/diagrams/StorageEventLoadingSequenceDiagram.puml new file mode 100644 index 0000000000..2add2fbbd3 --- /dev/null +++ b/docs/diagrams/StorageEventLoadingSequenceDiagram.puml @@ -0,0 +1,42 @@ +@startuml +!include style.puml +hide footbox + +Participant ":Main" as main +Participant ":Storage" as storage STORAGE_COLOUR +Participant ":FileParser" as parser PARSER_COLOUR +Participant ":EventList" as events EVENT_COLOUR + + +group sd Loading of event data +main -> storage : loadEvents(EventList) +activate storage STORAGE_COLOUR + +create parser +storage -> parser : FileParser() +activate parser PARSER_COLOUR +return + +storage -> parser : parseEventFile(String) +activate parser PARSER_COLOUR + +loop for line in file +parser -> parser : parseEventFileLine(...) +activate parser PARSER_COLOUR + +parser -> events : addEvent(...) +activate events EVENT_COLOUR + +return + +return + +end + +return + +return + +end + +@enduml \ No newline at end of file diff --git a/docs/diagrams/StorageSavingSequenceDiagram.puml b/docs/diagrams/StorageEventSavingSequenceDiagram.puml similarity index 71% rename from docs/diagrams/StorageSavingSequenceDiagram.puml rename to docs/diagrams/StorageEventSavingSequenceDiagram.puml index 233f747cc9..75a3471836 100644 --- a/docs/diagrams/StorageSavingSequenceDiagram.puml +++ b/docs/diagrams/StorageEventSavingSequenceDiagram.puml @@ -4,17 +4,18 @@ hide footbox Participant ":Main" as main Participant ":Storage" as storage STORAGE_COLOUR -Participant ":Parser" as parser PARSER_COLOUR Participant ":EventList" as event EVENT_COLOUR -main -> storage : saveEvents(events) +group sd Saving of event data +main -> storage : saveEvents(EventList) activate storage STORAGE_COLOUR storage -> event : getList() activate event EVENT_COLOUR -event --> storage -deactivate event +return :ArrayList + storage --> main deactivate storage +end @enduml \ No newline at end of file diff --git a/docs/diagrams/StorageParticipantLoadingSequenceDiagram.puml b/docs/diagrams/StorageParticipantLoadingSequenceDiagram.puml new file mode 100644 index 0000000000..31fdd2f857 --- /dev/null +++ b/docs/diagrams/StorageParticipantLoadingSequenceDiagram.puml @@ -0,0 +1,42 @@ +@startuml +!include style.puml +hide footbox + +Participant ":Main" as main +Participant ":Storage" as storage STORAGE_COLOUR +Participant ":FileParser" as parser PARSER_COLOUR +Participant ":EventList" as events EVENT_COLOUR + + +group sd Loading of event data +main -> storage : loadParticipants(EventList) +activate storage STORAGE_COLOUR + +create parser +storage -> parser : FileParser() +activate parser PARSER_COLOUR +return + +storage -> parser : parseParticipantsFile(String) +activate parser PARSER_COLOUR + +loop for line in file +parser -> parser : parseParticipantFileLine(...) +activate parser PARSER_COLOUR + +parser -> events : addParticipantToEvent(...) +activate events EVENT_COLOUR + +return + +return + +end + +return + +return + +end + +@enduml \ No newline at end of file diff --git a/docs/diagrams/StorageParticipantSavingSequenceDiagram.puml b/docs/diagrams/StorageParticipantSavingSequenceDiagram.puml new file mode 100644 index 0000000000..de348991cc --- /dev/null +++ b/docs/diagrams/StorageParticipantSavingSequenceDiagram.puml @@ -0,0 +1,34 @@ +@startuml +!include style.puml +hide footbox + +Participant ":Main" as main +Participant ":Storage" as storage STORAGE_COLOUR +Participant ":EventList" as eventList EVENT_COLOUR +Participant "event:Event" as event EVENT_COLOUR + +group sd Saving of participant data +main -> storage : saveParticipants(EventList) +activate storage STORAGE_COLOUR +storage -> eventList : getList() +activate eventList EVENT_COLOUR +return :ArrayList + +loop for event in event list + +storage -> storage : saveEventParticipants(...) +activate storage STORAGE_COLOUR + +storage -> event : getParticipantsList() +activate event EVENT_COLOUR +return :ArrayList + +return + +end + +return + +end + +@enduml \ No newline at end of file diff --git a/docs/images/LoadingSequenceDiagram.png b/docs/images/LoadingSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..abfc2e99fdafcf0cf116535e8b111686deb6af06 GIT binary patch literal 9166 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 Y4+@URg$Lt==_f?HRTL^(b83?dI z&qU?%ENJ+B)hv7+JiP+pPR_m%4JQvL?+3n4j%*JD*&g}&dilr-3wyyIc=$ebhYLA) zy8Dd{v4SBUxSCk_{`Y$b6pRy)w`icN-*bZ#woH`b>8NUnQMopzPJ zo08>}>To>G3S1lanIU}cR28Tc1yOH8r8v5G~yekH5hKPAG_XZPuf%*vFR7^-x%xYJySSD=RF%6$;mmC z`TgwsN2FXJj*ziHQhWHY%_>4yhz#}PZzHpObd=E2@^QL!G*^sk4CVgwOUv^MvH>A| zpT(}w&>zK7?r)b|C*8u*Jlx-Iay>t9yzDQ~A`6(U2;3YmD=Bf3?P+ozZEbY>I#gv~ zts7@80ej-Cle+xHdee|kQ$R6o=@qXG43+3zNV>4P>O2fCB4uvACu29(()aQ;N7o%g zZzMW#$WY2FKIt`2o3gv4V}&N9>--$+tRrp}Ap=vnLxvhk#BLHKLoI{Gdkt|r9$PA4 z4N>jQVw%L9KU7_gx{O zGh*6u`YUIh)is8cp!?O43WuSlEDtwz9gu1-Xc!fO(;Mnc%caf^=?(DPAF3T(VU~Dz zOrGK@1^~+1F zn!5t}{Ks&Tqyh3ngBZ&&jjewH8dr+O(G0f$+LrxmARn zN8ixbM@+gN3yQvvaF@8x4%%o1Z9ZHa5oa?-#ha^^o5P;b(|^sxm_1;Xj@Ft{iO<;Y zu8q=e%{qRU_;!nC=H`i-=gf^`p*_p8cF(mdV)1nIn+|fzYoCSlrJv*s-6L+>{le#s zs!1`KZgAyY5XQa>Lr#3}xGG%lPLGg5BzLMP}t>TS5vaxDN|BC1%H|Q_GC8Fg)3X?9`)ZBOVCRfS4 z9A(Zuicxg0 zt0lATv}4@^TD5DYomy0tr{P@TbUufAQioJPQyIh zRfYw;qoNT1oB&libzJ|vXldf(QHTSs8XKO=*m1WB8ciHe2{m^+A~NkEg7SHGhI?%w ze;+EV&JA_HtG4I}H2C~}7lp{I#cA=**XtWL?el=Y)qK0qfS;i3=s5mH#oleA@QL?9 zsRSX6m38R~Ry@#5Am<(6uZ+aSnp=dd_5AOPX`D!FQKBIDKH)9>n`Z~zA zHn<<`iWf;VnT9TFM9&gCa%-tM#NSWQMjl!<;~nY0M^?e2ze3Q0(%5zufKi;Eu8o>F zBUS>2Gs+Q(%A9x%LjFCG%?6M)6iSpK{L?4$={zD49qNYj+d3K_M<+;QqhXC5n>P4g zV&h^ccaiUl2<4W4$tKLnJ(_!sg3d-82&g9v+t?m9hPrF$m?1}lZVQ++2rB!g*Y+#M zm8oXMt1U`;Ue(-ko4hp^uRti0htH(aM#-l?_UD)UCrk9@PrIAA7Cl1U(U}up zEP25k`x?6m6gv?DO z<8|axeTc!eEcFxbqwsH2x$oY)l#GAMmLP2#xw>YiVm&E%p17dt_o@Tx)+j>*!!*(3 zKTn8pXd$g3-@8y)K%_TI-o%Gnl3_7OS#=#IP|-f7;WsJ`_oTLJf9(cnWY`e$t^Ely zvk!U`G-e)5HBL{Ec%Do(8Lt`U3mW|MYCg*#AT1pqV1BsZEJe8AQFA0KIX%zt@Cg z&)W8r;o?`cB`_1!LpuZZSDg*5o8WUD&rb9eF`P@isVs^ig4IJG@X1+%kLS{StIEwP z&o6#=t&e^Xd(3-32r9*2mo4RPRr|0nTy5r^A%}fu@bimfQ;pQ*O zfodo{un)zo@9jN5+!(EBlddAcYxi2|3HtN11KmR`Dk^&NYf)v?vkN2TvCyKPc;oE+ z-0$a??V${T>#GaTuT{4C`Lb#;NJ8wv>#LKlrO@l=J&}Y@e|~YDDki+k(>MfCVGTwr zy*DbEARMv}-dFqllKH`$G>1}O*!oaLxn0M(-0yad*x7{-rUH4goScr}|6h8SyCc?C zS1n>xV#xBvoQN*Amc^*hS@t28jgM!BvxJvgp1cJc&>Kyv;sl4o+x+&bY}+z3Gx4fm zaYITGc!@V8U%bqfe)6y@1Y;2U;)U|gOu2ayt0I~5>)?Yp7@ivE-mdYBtKF$2C0>%jW>>+6y%yP|Gg zUERHz@~osJ@}Eldo#}p6mi6344;kbydB|}16TBJYE-@HfZA2I5*qS1IQzLM$&WZG< zl%Q>^#B9`RU;OlIxEQif+7AFY063C=@|L^$+K_qg3^&>=^@@D^>7SHi*B2} z6>^JKR%9d$*q$m;Qc{vwxG4okqtOt!VA{7PcWTvVM5Lr#Z8WO-#Gz!`9U&N5g&y0B zvopgQY!XqH#O}s`fLTRL=yk|00x2gdnvzeiu~M7; zJh-%ikqG0+38PwIV}D@5Ssr+bzV-2uTO{q|`8vf$yoJ>b(G)Lr?~kX1(6|6+^#q=--4&u?MY~rwRwx0gAoOVmoezGV#gf918ooRpOwf;n(qUu^4 zGStx&v6mWt+U2=-;t|%a!78FL3jmu=KbDjqFTj=E`mlfd(y+z<2O{76^NgGXT==fR z7Vc?a23TWWUd42lD!AFKA6o$gRxBk4h(U5z1wqg0`%E>^@WCpJT6Rv(Pm7C--@aKZ zwqoJKT~Y?kDywV|}MR9!>kSzutTQc`Rz0SQS%1n$l91+46hm3I*l5pho*J$kpzxG9U| zbe_oIH?14jf~R})!MGWGH^=gyJ|~kh+aRp_VM_JBnMgJ?E#uWXFXE#w6+Ybi36h&0 z;CMi?llS`ZXU^&203;tDAI3fN)vH(STI_$!tQ!DyVqR9R^u`RA`U91JXe)%IN>$GdYovz2Lg9`U$9;p4)xyEp-Zsa#tkp;wn6H4dcqK0yVX zc#zn5B==(E{C1P?JSqdRdwO=ZBACuKo3gG0ikg;*BDHu%apwlt=~BPF`SY2QRL%lQ>2)z;RY67=2{Bywum z@m+-Yw2r4sA>I}hZLI-13rn(aFbMrIkOGLpwmm@9mKB*-B{_xX1#)+bgQB&iO0%jx`0ND1vRnEfNW3ti?Zo|jd%ERA3`)6+Hg!a*MSvmoy-;?dr=GO^=I2`Yaf zBKz{%HlsBGzoKF^?8~)?S;x$Rn8JY3?8d#H1T)qj8&avb@ZtP?pyV$7-)?I>z9n~7 zAWPaWAX?mJEA;YZJ1!4~2?+_OzTQ!wM$-e{oYY_)baS6b<SVZ?FbTPtFq(z@=!lV%xSjL+J6@%suXOwmBOKc8YT)o-{#SA*}d*1S6p7(U;BK0 zx<+2pZCdM3@X#gu6u{`@t&WF!rEfKoJQiCsIxK@`KA3+0{(Y)G*{kTbbyM)kqW{tU z!bhL&?QN6ji#PNP#H-pLEIq>mgn8}T1D*hhbM$L^WMt$Db8)iw?c_6SXz}y=zWFWQ zB;42}#^0MgSv^>%^#TRQ1l$`9wbFB;(TQeNHi78nZZ=M4GwGkQPk++zn>^Y@)q()^ z?D&((*2x(F!m&Zc!h*rW^Xl>}0*|!kGoZodN0V5X<#%MvvIgY3xe~6RdP=^f5*{Az zSnU_pwgct}CS(8nkEyV5HIQ*f$9vxZ(t&!9N!E7@tPfS7si`UHHp_I!!v>6L7m9hR z6#PJ>!-6hX#>W{B7bF5P>80k-pYYzS@u+^V+7h%NE@uO;E(2`{`4z8D z9cHhAtV$e4K3!G6yu2hp1OEibuNVPFDL8|N`*?x;l*8oDm6coWP95tyTIp6;{Y;V8 z{S@iEhFG09j>Cdl9MF{2`O%(npP+GF^VQN^3Z}YR0UvJ{>O5HD{Mu{G4gnj2t zz&xQbBhnH4xi?j!P0Md`PoS#Ot|RCRdFl2*3Ws69;piPF4?0m*KrQb{cy#<<;0nmd z#8}Z->uzi`BM-IfH3ck=nSycom zS$Z3ARPkpkc%$0iD8ds75OF2_MX?bjNw^EW_!LL&HH^dXbE*`!! zPsND@zyIaqntBouR1%AP?(@i;9v@yPtE?{p*=3O`BO~KG`-Vr9cNNt$uMjLdTrAMy zwg+Lz#_o6{#fl1?grs|FPJ-7s3|U`m9;hVrt`BDcNan|e*UtQthz!&e#CtrigR$^= zV{55aEf|=7y#dPAaj8a4>R0T;pRq+r{D?`~il6<7H!bEbjPDg-3Ay!~PxO4JiEME=*FxS;g{Tjd}m8wXK$jMXb1hn6~^I;zm4Ta1@z7%G+|ITMEypj5?ec?SQjx@oC?T>Wo2uf8hED9a#iismE z4;Vtuw#Dlfa}^dt6j;i|`MFuO9dkE*h>^f_0;BlC;v%K&Ey3^-qSd2RDBULwch$gv zklrzZ_ZIT(b%3{zDfK0@xd?W==718X=QJpBiaf$4rehL;LF5c5Zc`~yWAU~?u}F3z zJplnR%SL*7&V0x?vS@f%=vdiwKh8)SX@cNe9*kL~p%Nr-zV+;3tsQ}+D7#7YqV`hL z7)~>ky39+{Hd|DL9#l{(MuQIqZq^ZDlG{>$c1Pd`9Hh*$Ek88QjAM>ZHkiwG08mJd zD*9qQ6ZMBMY0`pY>Dh02lqj)WzS@wm>`@w32{nXHwclrREXrQ3MZnW1;2*UB_ujXs z_jcvx8oI`ZJ4}5BSu$MCY2>*+rIjhZxJM85$x-)40%?yAr-T2)A_7@WsV=W(RDYIN z1eJeu8fVkyBeU?II~3J?&w~h5_Ok7x4)<}bz^-G9hsbSQXXR5ItTyh;ext&+_bc(^N)%HNG%%|0C*bGTm;s&0gcM@1k46}8@YJExND6=7a znJ>TCwk(~bNhVNMDj37~ zqn{@Yy<-4CY`RQ;4QX7aH%Yb?3SbSya#@=LUxl!3YkE#j+}Px&ex}R#pa8Iu~zM zVya0m8$^CkC zjJm#rPieKawOOZ`S!GJgy8OFL3kqfjzqmrz7%(d>eKJLb2#>crU8%ET2 za?PybrudPZ@o|Mby1A-xg@j(TDxnWqu_qp0|*VG01(8?Dr;e`n0#T$V~8%f}Z7FadV!mFfhJ zMUv`7ILi8b+FTe$Fk4~C(I$nLO`1q0k|$L{K>ukg>;NH-{Bi3Y^$1lw##%?qZS&tf zC%LXjCCEJvyDf&KqgJxUsnBG9q_j)Q!h-vWBO4zHhLKezV#uE!5JR@;AtEa$=DU2i zjrf*N(~GT$7?SW>I18N+qJD+3)VI(|d0}&cxJ);05WS96LK5Ll{WIoy!_?5HNtycs zm8!0^u+%=)3Bl^R^R%iyGZ4Phz8{~RR7p@CiTfxxuumnV6S>J89_v677+At^J8%(4 zBUd>UIs)#ZPmT^jNEZc@A%E7zCJ#O=H;XGQ=~N=8gaua449#>2ec_~(U}-K+>dPg5 zK=XVpMSS1>^py=$&EVg3e2InX&qMrVd^2M`S{WIM6PV#qmq*~!0wby3}JAqH{(K%AWK3|>~((VUOYFUQp zup_CN4_J|=5-BdN#*e!Cgk_~+wtdh|gE1`BDL_zUX$s~qXhjd`Ap$!ey>;Y4-nDNq ztfLhfr_aZhF;4C~RNK5ac9i|;pB5iHG(<>-6;>d8{_#gJxMgcI^$^z*+|xS*5D8o@ z_tFnR)}vB&v(>K<%6HW1#Ip6>!QH|98^;irjo|K5Ty!6HGlNo26lC;N0sY zXogSOwEw~shsj?Y*Ggxqd0(vho_IO*8sq=x=M1nMc2Koz)}9?|n(sL;K4@}<`HVGy z+yuhD@AK#S8<_;M_=Gt#jSin*KHZrebbHNz`}SyVgZ5w2qDLZt|Frny#}A-~kM_Pb z1N8%RRq}2*cLvUwOj=gfSD;Qo35R@a!M?@B>1g(KBuBh{n1-kU=)z3rgDDlQ^j666 z$%%_*)EiKo0md;t16JQF;P=g&K| z6M5!kVqieQOw<8S3=5&}Z;cClSK>B~e@#tgWiL74Fx(JxB=CrwQWq;JEe#3?fK@ekF0r`qAklVc zYw&{lRzw!${C^>>VaZ^%33F`jeYSea#l?<$VOVUDfiKLm2|SXL zfie0U6ih(w)zko?Zd}@vE9u5U-v=3<67Kz?l_{ushV$TjONrMSI?AEi&9YrV^6qXBmBp9w5Ja;Aqw;cQ=e-6zWNO(6A=BVOX}^9^s%F8v9N7B_Iqp$+%PoI`VF`0++l4F+pCkcg&W~~|?8Cr|w4*^J!hbbM607cO6o-SZc z))Y@mQ<>e4zK@QKH9J4rUfbNnH!j6+aBw{EGBJY+#@b&zXk}9dE(M>-JBnG``LOiV z)NovK?x=V83d#JYe`f=W&_3ATS3*Ty@%?$1fvEky_M{7xQegjjdtLjNGoNsw#03Q_ zfD8qeeG^-!Bt%+Nn$B7>g{njdp^5GdXn(`QI2#0#j!BWYhpWP}K6*$5x5iL`yW8O2 z;%a%DpjPe(Ba}@@*sZOx2a8kAHJaCzv?@_Pg72R}ULs12JR6O?u7JvliL0<`e8FP% zY&d0T=%aaEGN~bDGgZilh1)OVhNq@zi^%l}3%2ODm{^*aH zkJ~AF<$!2_!A_DXTT`y5+XN*s-HFy*UE)v z4x-vp2T}2&$Gab~YHG#&c)f994#NGY`W;*pYCxIW;VbN)LmqIB<33=qPK5ku*$){T z7`U&eH@1KMSfRQF_nSUAvA8Mb7~9pQxGqtflwcc?m|=%-O2O5U0_LE!bc+$Fyaddf zcx<~L5lguw_x00o%RQQ4yY~nDq0#RQ-$v(e-w<*r%d$g&LyrN+a?^6WDz8*vd#X=L z`o$*7w+SJD*|GWSSHYk1trx&9`Q35y9jnh17_+5G>VsgmSQZqw1BTN1L@Whcain>9 zdD+;I6vV*C#2H~Hw(tR{{lh5rw!(O@3{ literal 0 HcmV?d00001 diff --git a/docs/images/StorageClassDiagram.png b/docs/images/StorageClassDiagram.png index aa21f06391d2cf9639b77d7468bd5f6ca2c6fecc..09ac22e54e3b23ac43224106ed9efa477ce6cde2 100644 GIT binary patch literal 58504 zcmbrmbzIc_7A>rFHv%$r3Me5WL-&9vp_J04sB}noBPpq*fHVk*bO{J3ID#O8lr)lx zAV|J@)aRUY-}~Ns&;7iAJkR)nVdk4_uf6u#zep_&6e-bJqEn|%k*cXGT|adSYY_fJ z5n#bj#*#A0;Dygs*}&D(!O_#!`nKySl(oIJv$?Ca6|03OtBtFxql<)~prft1y{ns@ z?FCB*y9emEET>ML{&`o&!1bS>pE?bnD6 z((_5~mm8kxF-cZus!rCNw60RHrdOBPKA%5_mfp>nvs}_Bo9j+)u-Xi{V*QxSV3%E3 z;INKIepM$;hyBHS1=@*khzicSpNTFiQb}Zm#d?u@u|ie?JG819Vm>k7g5`gZoZ{En z&{H*X+{K|ZkJef}6Ht_?s{G0{oG|>?^eT_xdXC}qlai}#=`H$gA8XFD_3<}4EH3E$XuLRBb~&m$_in|k+KhgBfKOGYKa0frdTq^9 zn>#;EmE59F+U3TlkFCu;8aAIcwu$^~k>wyxElYl-Ouymxj^Kh^(G}S|YZ-agN5197 zT9WBGZx1=m5+`%S$wKF}e*Z7$X=QxP*ntNb?OFbsAZ-r`DQV&!`3@#dgLX%fytu(- zsk1R`4TeF2y9N}Rsb+3>uZKhL?D8*9xoY#6+(Pk?vxB6wwmUiWMUbHx!2p^73scGHw??*bNWLw!eP7mu38!F*oke7V2{Nt&`k=(E6F7$EfSi~D1y-m)PFWuDUiYh#;I|3mZ%n8 z<+XE9wOv#8$STb}>%sbGw~2bEu&)TmAn`<)XMd(7o!CHyv7}E@Mg|EJ(rqQl_Ws&v z)g!W{fTS|RIz}3S-9mzI!v__+*H9-Rn1QuyG|M zB;0f1Qcr;c^2}UsFPL0LE0kK{-``weYDh>*TCSa^A{Y~hjequMMLF*m>ThxE%2C6` zH}D@k z>DSi6moHyZO}yT~N5h8l=~ql7^XpgoY|X!Uo6O(0KtG8@XG(@!SXx+A`oN09_Qo(t zp6Q!xbX$c<-oDM9!p0CvL@VLDUjyGG_U}s*x{5vxSHKizeyA?Ch1ZA4~Pmf6`lgm#$xJ^(G)7fQsu198Gz9UbSo20FL;#I(1+R z^YZezE@lQBQ&*bBM~MwJDN^Kh!)ym_(pC17l8ljIH-+E0 ztd5*lb3#W_^9=KCM8AB=J#v*C+x2WC`pJs3zr<2UC^4M)PtQ&DliTj_R~p|fo4hrd z=$*2eQC3zq*ArKmpI<-v^I(-rhicN|ny-iW3J&UP9NFI>vhfwcqnWi`-81&$PWjEv zhj4@88qxyly+ZtrdQlqWD-uG8J zZv$K#*4e)-SPW}k`&N9TFn872@7Uq2s7(NKZNU`oC8J8Sz)P2SM(?Y(-Un`b*#UDAR}L{oJ01$W7cR7ELSo5%ND+ukRgxD;`yIA-G-8|`6+ zP@UrIToMwuWEy=Be)d1U=)eE9FysCq<5J5!4k8?Gd|iPI$+lo9daA`c;kZw*&ENye zxxY6)LlR|VH1YEOr?TQWX2QTy{pT_%iQ$**6db)~BYDb-&-QB7JDT^62-i;4J6S@2 z(62BOHgY8EDu?sFIa<}Z|EjYbyy_ z2jKS2n>SZDNS+7_3&ZvxXH%|Bzr0U}w{YqH2*594@Z`?wCpZ*sHiPUmxpBU5Y3XMZ zNac;MbK<<+yMG#+K}Pq)!bn3^HQsvMSx-& z4RvBWS}AW$y{1QQsN+2*^ux@w_azUa=3ACv+u`+{lH+Hm?w~VXjW|){;z;y7C&uu! z24^x4JeBc#A4^CXMCOYNvmoX-lK4kFq_2nA8|`}aPPWh1oAk>LXBS;7|F8lD4H83` z#r>fI(%YrFB|2XR^TLxN2PZy#s?*GtF=%mKcd^zj^JB{%k~*FIS3v4 z8Pbn(VuujN6o=)_Y=(;{MK~z)#DcUQi&*24o*i!ScIUL8Zk=>oLp*q1Zf2`Ym}a%R z`sumr*AMiLTt8mCmyx{tf%E0Ymsi2U&zZy>%^V#a`%=zp(*z0E=3aQn+6ZBQURS{j zI0OY-JcHdU8dH%RY)QA3kg%K*AU41aIjMNArfHQK2+#M}c<-#}Hf5FtzY#6iO6h7| zb3~z^R-Db*l9!iP3@3Ztj0mTmmB{roGh@9a>a*v#de5DZn7A`Rug>0hUb{)novevg zYz>J5#F)<@>OejjsB@S;jg4n^T35vRLA^NY;hFQFYwd_Fzy17aQf(D!LK8q?(2By6 zB1sQ3S>Cvi6K3$tvM1Kb$!YXpuj1*Vc#RpdBz29Mn(E##CO zFKxc>GpVy@y50C_Y5VICkgVRw_<*OR*pKu5fhLL6s1d*^Gru2GW!W>!L1M?tauL~? zp-U%VK+*Xu&pE&2QS2CV?jE2_bVlKRy69bYMIMjMmR&2kR7q@!yUi!Z2VvMta`YYt z>vhj?c!{w-G`K7c$O7LwgoK2XDN(~CGWs}85EzFp`>xA->B2^`$%u%E&`&1bq{3Ix zp{ylOr-8NIPcz5+Dl(~L8=TWiqnEi-H~wbpIo1t>@u4rCV>9SXj*Ayx$OU3Kqw%B% z+Wb#|F`NYukY78QPt+u_yL@iRQ3oz%>?c!yX*5ocm{^Feg{9?p%G?4GRizutPu6Jq zUea2p%*@O*W)l)LE}OVj%WL+0!as^UikQlh@~oD4muG4y@9W4q!!cH~fvCmD-qI;E z(Dp5MivEf|ofwevb?GAs{zt{Cf$C@Ksc+jVtvpI-jyIY%udv6iLn4zY?xe6IcBMk6 z_)#?NDSWZaxlf^(T&W37$-wX{moO|E*rNIA;A(RfnrJ1yamXyNu&}It0WC`#w4bOK zW@pFhoZjDAC3Uem{t`^iiQUajvY*z-)?P|Xk=Dkp@VuUwFZjF#p8y+0#SeT^9G#oQ z%p8|F+1o|!J`bxQ4Z1TlN3ej}DH>gN4wH+Ht~@QOB}*JbLV!0U%DDp3{@y*l>jRee zRwF3*^(&M-^pMv4@6s>pd;X@_39-zI^zqX-_YMx!+sspBZAXQY8HP3>Fn<*4jBcd< zu{@Z^djcpMb_Q$xK{fxpb-1KEnNri|m-q9O2e6JBKVVCQ=Mga$xO~a0<^~iA6jf4I zE*5c8MIfE6K9=atvWx80iHA#Ai`+pYY*KE0qSeB8CF^G%Z1ng(+w@>v#5Mz4QfJ{) zX6H|{_&$cW=Mo=1Y8G7zcr#-SSPm5Jug38!K9expO7>rVxRPcX!TAkHe&bgr6nG$d@Su#)9>G-{K;u#Zqpr~ zzh$XPL`)p~GG`Q0;Ggj8p+Zd*VT*GRVPoQrqf^!vv!S?Gb?>};5{ipj$mzH@<&efh zs}gh8dY&YZz1&>B-8gLGw^I)6wm84Wx+WuvqpaqCD?{-ymjn^ZS1xfZz8~v#)3F+(~?(~`TqCtgmQ*DS`Q|4jz^^8Y%nCvI|kd^1% zaB<{`&kEZNunNS{3(v}DbZUo^_Mq8TOQxUOk5#{3t#BzK^QTziHLCwcXX^8m$8UQO z6?67dhr+E}Pjtq6pSeIR$0K&OCW^q}U5clst#yAPkqg1{;vIBI+uO{->-F~p`n#v6 z{f`fSmDDMV438{mQ2qna=uB+v)%Ty7j`{mbcc{oHr?9ZGts{B{f@eMm-C3vRzABdm zso7a%Cbs2eJoo3;q2Y@vdkJ=PZgOHdLp;`(+acw zZmnQ3A2%OAvl*|o%a-vq)9DS~#Qg_=m(b>?DRJ|x zfHU@`3Yyl~41W9O_*k5M+k!dz4U5Ga05;)`-k95sE@ovYzp_y6=LS_41j-__o1b42 zk7)^DSpleWA+8YAD2IM4H>{gAbqg=}eUNd)8ukMoPiIMc!vOUvjF9soD!rOGE(?f= zjb-ZXQ*T53iXS`GN8Y025HI*l-<5DtR8&Xyd2DZ#NAdCN_!x?ZL^-kvHz#vec>B$^ zdqjd_@-#-Awwh=SnU%vkkphMZwWT%^4pUMMxqi5ZIV8Fi%)(5;eHa;QYdFQqPvmoV3R?eIM*(`aK@yoybmIBr^^|D2hQ z?#}$-byh{t7Y5F($xkWnmtq7!lzpZmI}x5!Ul)Ok%+==$Jk=WQykTnRxieF?YidN5 z?2j0*cf(f~+Ea!NqT8dtgs3!B=W=|Z;FWLtd~~!st%%+>#mPBLN}_3Uxnfw!-Z=a- zJn4aaY6&TFWghkF$Zby=)}iMaL4?UlAIa zT6f1!uhmsq%E^K}WhHH_){ZeljY!^(t?R)gd!3oAguj8LSO05CT^0~gerG%z?~xG? zffe2PKKpt^XUj~$xG||^B_by$2Q*056?k9KwRACTJd*fr;G1vCbK)-l{Y&Qs1f-#) zgoITER6QAz?iFwXYHt`QFjH!gHtaLd(~CRLt2Ts$b5vUQrL5?e#eu&1`zzrOLnvm^ z{}x#On=Iab6*1wx*JV__H*X$GgC=wB>ebx(DrWauGM{c4>Cdg|1J=O< zMYp|;$tLaU@^IwzYl6G5kHeLhmuY;X&N-8@Ba2+x>1Eu10{#b zXzQ^45{SOUX9VJ{kBUtjtYLBnOpH4}e_k-CWF@2B(V<866#g)A#@e5UDEP8Kh7<9z z1a9*_^$N}3N&QaFGgck$ctk|F0P&qkdvknrVCwhFnj~|pQBZ%tl&|*QN4}kWRYQuR zHL_Q`F~{AP47-rIxw-jwu@>{f^r-bSu<^JzvAy$`Cq1Uykr;WirR58oO!ZZ_dX6Q> z)`vTEB}fZU-eMRpr`)h#addu-1l2yj1=NMt7yfFxWxqtX^~WabTtGj5<AHalhro_|%7dFzK8{tJ!I z$SLm*;CSAv5BRvC>=gFvgLsXwn3$e%WP8>%5PvV`UA6iU_qb{*Ms=*gg{L;?(Yg#1 zt+_V@ff1b{UyYf|sLKy)RgKK5GPSx7HC$&xjz=Cnw4=o9e5U1M$F}I-^qr6&Dc^uP@B_lZT z*AEL#o2?f&B=Bov%MHj>amB(ngSfP(77AozEJ0d*_3D*4-}XkM(;VKd5POttr@D^d zm^6I|NJ6ciQWX4^8nJrPtlf=TeHiQp1ykkD&C4mXKw>~CN#{bc zQ{1|lf2HU=2*4FkCbCCWWMF3no-TztN?NJ(&hQP;UQYMHMZ{ofRwbuwKxPEzp;NX6fw3T%HoDNvz9L ziRrinNXR7PBmOy}gXIfA@TS`loAbDUgz`Vznvi+GO zxArgapv}GQaG%mCKkWeKth8iCC4g)@Irg^IZYi9yXA!$UvevRYl}HkC!TN2|&87$C z=B?%BKEJkjDddX)WoLOuUqs~C5POmM9~~Z2oM`#CFls*oEPtvPZqXg*SLs{7gHgg_ zt2xicW@5{q4K1ae^_#cck! zm>@B-!7TsSpcJzFt)CQzTAr?C6MfF&kb2gn+h)#Xx=$tiP^wF6T-YE7vL2 zUPGR}+4)xdi)47@zq= z-K)c^9yydYvFkB(wSv3yrnKj-D`hseOP!v+zr7MCdmKTglvs7&(I?lit4gQ5(rx>^ z4v1V+MY1EgE)%~iJ8Kd>P(9#zVy5c#Yaz9YHSa~UzTQS@`(Ds@4U(LegYw}4kVElmh{_1su-{1VDLLCYV2eRQ$mFq8Q6;$z2` zi9kq!gr1?m#f;X|iQh=RjW;I<=eA{096dJo1NsA@wH35>vxifpL0XJCNwPN?;w9M} zM^Ls0p|b@=5}jj_%O~I@o6~J=W%Yozp3~_h+aOR)Draujx{>9ZQ9Fxa*`YdLGZtuO zS4Ja&@UqI|hTKKtrUy(QMLD^@zrtpNt8#MgMgjfjm$dx? zl#2^%Sa0Q<=0i&*mJyy$D{ygm#EtHg?uD4^ozk{~WA})ZjPpC;fqKh`JpfolLR$4h zmm*i!1R9HaM>}P=vP9|G!_P$A-&?$P9$6b=HkcyaY2vMLG{Yg3OR5T$aG02MQttEH z#bSo(v-S|i(Nk+zL*dsib z{39lq=&y$UAd^ExWJ{Uar%HI(Vg|I(%l)qic%&Tdt92X%QY#J$s=jI`vnhqZ3)QB*Edr+hjl!z5=h6 zdlBYga{XbHU$xEPc933_u+Y+zb*@@P(1%v-oY0teOK~iDlJ(#CSeSN~lv&CkWxbY+ zO@7k!+@^GRG5zPX*n}#xS3w}!MMXtjPmQt4>Cuv0zW}W9QJifi2QRM;$W0~wfLuE( zrO(eU9%y{T`K--iQHBcN9D9N9SxL=RV^-F4Rol9|4P@oZ{nCaY$)BUxUj0OVNwmgZ z$@C-C_^t&HjfS0BVqJUME^7kBSVQU~&IJ%d9= z#zar4@RhdJnA?&gFr+RdVx3#*hG~_^f~Y6nZ((7f;{`?4B$oh?MJ$zfo>LE4`Md-boUHTP z?rv(>!LMImpUv>InyTpX*Keho`kl+pz1v(nON6Q5jk=MAroMZb97f7m;xBwR<>3&0 zEd?6*Pt0SY+qnd8&aF>VeqQi~%#7*G8SYKda7CjQFIq*uE6d5${mFLE%XujdDb78l zImcdDozSM1$Q{POw6mK&?nXv(v@cB&w1EJW`Z&bZFMcmGFEz4Mcv5I{TZxTclTybj zD82MPzd;o+S}$-O&@b*#(mqD)u*oQ#L^E8(I}R-GD;)>HlJeY6hDh~u$8Tg_EsTOj z^#KFGc#Vfy?A(w1Oi-WnNQRWyPV;&~m3RxU`siRc&!^vJ=Zb}%o#%ZiFJ`xRYsg0( zoBuBL_%T%2!V#chn zRL_H1+4&J9lspS7K3l|IAiDnI_O+{PoJ>P>BrLV)?{jgoC2D*Y*xV9OMp6tkh^H6=X;=b< z)^2)W$1sEmPF*^k%_mO4#CjdUTwsL67Yo$TV;BgeV(X4$IqARnUNtvQMzr5lS+C5% z33OeM+)_0MRor-D%)@-f&OPXie(Gkaq7v5V1AZDb>=*uzOt_S!doP$w}daMtD|W73nWoM7Z;*K`LAY(S3#j3@*6GpEWJ{_YnRS^ zN$0)8pj*z$aBo$-+5E0+thWNtjc}Kx_R)L|c}91^?YG~E!rS{*EF#<5PEahqR%sX0 z2&uVQ-@~HEWS}XTn2e!N;}kkPJS<}UwyUd)^^v)2XT8f3nu+8g=&2bPZg~9TZ5RxVdd4BsMPqOO#kZ_i3UvI>D zI6Tag=xldDaefI;ZE43iuupB>296%>H0{X<<1pHVVF?Q>&>**66tEiAD_$A4`+3gA zTqavodVKnG(AnI_D~$$VYZ2;6=D9huC*PJSU@ zbzYQtqw}jE+}HBD z6apC^%tO@yzrhYk7(xndbI6W#_~2gTjJBYnqnt}1echp8MlPa&bRz2t#+3PQ$5Arm z@q~HXo((R3jT9nytDFIq(PGxXvGciPD*+j_{CY{k>h7_i44Pv_Q5aNPsp-0)%3bCW z^aE8BFYdetXk!!0t0Fios+4JP9YhLcD^l=X&nFOzktmYn6~46l^QT^$PR)3DhxcYn z_|KKu2>Q6UIWfFKpqVH%~7D>e=;kul2LZR;nT8SXzaGYf2=793P z;CaeDr|73%qoNiUZ9mp~A9rGOKDwpKZ%}^wy+x;<%vnz*9Wg9tg|5{k&SO6X4qFSw%&>Zr(Am z>zjHsqm(N$HUX2O7F`6}Y!4(JkPgd#&@DF$0gsOg9)b!=E|n}2J<=G16h|GJEtry9 zbfqc`tKb^cNmq`=QLOD|5;l@?N_$HARR=g&O=c-RGab11?`eEd^eWReb5%V0SavHg zkT#ETq=VPi^El*T`Hh^w6&^f-6r1XGK{6x!Rg2XWzMYN91NXLr%&b{27IsZ2m0FWa zC~T?}t5s}RH9N2>j$T`NlHjsU*2eQ-m%vMr(_$+EHce-N+Kg83pKOJ$jQk`NNA9t)abmt_c4cfgw~Jr z??=qPMb_F+o~5D!&wx=xbaVz_@THG2kHwvG8ztm=^SGf>ygcv}$_lT#<{sb4N;uFb z`N81(K+xro@2`^5n+%4C2+4mtivF*C6B8pysOK)c&EsaKu;r5E*_wzQ=iU!;fehS^ zrC~j6w3bdP*AHF0D`{fe_wx;J11=Xr*6$F+&+GVaq}{1yeB*!0>$FcbD5iv*e9ZzS@YjzAcub5O_zY${Iw^d z=L{;%0K$ejzV8}ir)Ks!g1KTUlR^xi_b!t!XLg zxs^Y;n~U7!;(=K3{jX>;oZ1nTr{8@1&(eb2098%$)r5!!Wn}pAy`gZj3`+?6J)-m4 z0|bw$BsUrQNq*=)+al{ny@e5r_kfG7ypC>E=FHF5h9!QJ8`rM`hTK-u=^d)KGaY{# zZ26(52bHDJ1Z8T=#i0Qh@fQSKlMhpQs5pyMU5J#u@oXbLXT8Fw>s;F7zg&j89eC1Y^d^?6kw&vCak;j|HFSYrlRh?XHcv0NV#) z14LZ~|Ne`3O=)Rq?`2OAH$;xblqpxXbblZ}TZKIMQHmO7u zGcNk1$yvH}N?D!&<>oj6XMxV`=&&N%C@4f$G^devUeKGaG!On9KUvP9qLC?~o16zO z!$)C;K{tJT4gtBK8o5J^579pkSn)|NdXG*RJ3;X}=qsgd9oWK`*x2M#?8aj?x(k=z z^HM+F9{<@1f>;$DrZl>%Hb2@0$!J+|tm$_zFnd9qS-yj&G@g&)(~$51CH%+I`{^pn z@NJ&|a5sQ)#K;`7n|q${7X<6ec50EavE8=-h}~RE<|Z0kMopoNg+KplBmUZQ(;NFx zJ5ygOO3FaXt0@kXjiJ6#!T9M=gG|SSxw0=g3aGJ`q=0wD?oW6Jcx)1q&VlLgg19)n zag6aa;5#@Pe0C?@FWXPFhXLgd>clh2^?I}MiWS3KCwE@cnVO+k`GRLDW1kcJeR_je}+*xSY`gI9F#1I zy8lu+NPnvw4{_MNR!7R!llek3=rx5M>+TNWRh>@IY|-{bXCT1^L_ql4#$Z9xZM@XZ zJ65F4VI}8B5*vX-dRDaks?(SDz}~Vc>aa(^dcSK!6|1GC1zdSFP=Pr;`TqUpLaM1) z|LM;gBTWC{-INlGNgJ%TR<8=#Y&&VS8O+`4)(9AEyZTsUeY|cHbT&+VM!J-s6Rd9s znuB41<#CLc(T)QTT%DoTq$O23E~JJjxvP%%UghC^VMT{27(t~MA+KiiR8 zJv^^vuLwY}NQf$&oTY+}Yt(o0EE!eJMkt+00LLvEg?2I$k}hWXyUs!Qre|Ey0jIHl zD_SH!oaPKDbvw?KrWNTo=RT}lwR32$G?Y&IHs!tfMx+@ZpH|=uF?bnOa4YW*Bm!Jf zKG!uRvSspp$P{S1Y=_`;CEE@8Q!WoA+*YEF4vrWzh>vI8tnSI55aLmze?5O~8Nfj= zPYBOf$v4u3o{KVlp6%kYuobE(vRW>OkPq~DRRjmzdGjk`NpcJ2*?j7 z=sQgO_#72g@K+MytbjaRN@~J!{WDQVx`eFxDwNcs7r{!&hPHxgwL6#XbaoY7-l0~xXYBKuo**( zJG)8N)dQLE@gJ4X@h>iXdAZdFiR|x^#+n2QEa?xq>92toG&B?}7?VOMxqb&7vHn_Y z@HjAFQ`|PAf5*YjP7#Q4sHagbg9$gDghwNzotONgT%`^jlh8*+9TO)y9X!LN#1_yv z{>TJ;{-D5``0nU-k`RIxktmhcR+2~rVNM~CAm%}xecGiE|Eojs<*;Y7!rTw;4eizW z9qp^4Ds`xBNLEc2`3H5yYAit7*dy5By3Faf^@axy$R$J_Qy*l%$yoAjen)1fRM39y zBW!Y`=fDw!uKah6uPOMLeuRa)GK{e-C0cS)Xv+IYMmE*T?5OWuymMG>t zhltR1d@di1rwnF?)hpy1n5|-s>8vgzo>1I2bm{zgID>Y)q<*Yb)3bMx%O*sE{^SGrKVf!t69W~Pcq2O>u5U_&@TR!*i{{$gOWNPa3AU4`->MsGKUA74 z?g*-=FdPZ%S>yvoixxaeTd<^oOg__GB?sf4I0Ww?_#is>LM92a3*lL>NDl-`c2f%`KC(jYb#x#g;l=iu3@|-r`VvcQO=hZA)!#y9zAp z!-1)?n-}Rh-vSkD219>I3ph-bxa{6DjN%66UZ5kYs;V;Zg&P|d<5J{(&UL9$n%+^W z^hTrt=<{w%1SBLi2QKtYUxb)1-X^i4^PT~ORfXEJbgL3yCx|nkG+@qsd8d|c7*u&b zApZ!g&Z`JGRX0+j3a_Pe|5h3Lxw)9At)sR6s0`gbJ$)irR0YF-bOx=<#pbQ0+#7F^ zLgXXier__ILYvD;=KEP_bN5vh`wVQ$mPX<(A7!6k7@n=)f0N#qTvu3R&751w7`OO`!?$T!HL{BvA|25K6%>R`>rnCETcU`I#yt zQ4oBLU1K3anV4Mlg24bO;`jl!St#u=|Mrzcy7V##>>LQBL8`jY-Xyz}Cgtg@r4{ez zj{8&mQ00PFET{@H8Q8>HK5kCu`T3!KWdS)kG&pG7XuyhX1VJHJ)HNudgi-A3W+|k( zIvRIM1aUbP?U+ykWVRCF{|E?jhXelV)g8@^0+tfF;srOT+M%i-yT8oQnZd7_CUn|! zJ_uB+!NEb0@{=XM0EP)m#zjWTb9To^5rm6JRe3-La4$d)9r)NCLhF05%4~y=3}grO zGN_xecI$c8c1Z)W!Lby_kGg)r4X(|XFJ=v?xZkNli)fp`zyXyA&u!|@CPi9oZlD;S!`qU3G$NY%@@v)4~y4_aoC8t*9F-&obu|7$!m$+%q#WGQyPC z#HOI0?!!k`(n_=0dT=3D_v>lZWV+2INBzI`!!try7BnhKf?yI}ya()B^1Otc}-^ zC-RXDDM!(~3aeCht6PL!7#uNnC+i%32mog8+Fby|N?AbYZ;~G}V7A&DAffpBi-h~b z!`7xPw{x2mbUHY53+4Ty%MAY{#x2-KM1qSiVpv<-O32Ne3@s@_w;B?%Ad= zj?<;8n6$qk>dq_e9g-hnRz8=u$6jMx!b!Y=iyXdt-)3?HR@4Li*#?%a5Ho-B{y*m* zW0Fvj>(3p2L4$kME-^82Cw*%z=quA=PA&OUg?^Qql!k)y@p!&+N=C10w+n;oBl60d z$nHfv&VIHIwCQ+q)32~l4mF^>(irKIQD=S=1V%l#;PFq)|2%Z8QQ_#l$XnU^ypDnzv~zC-S49<_4VRAUj#+Z z+&<->>~G%b+&O?9WE>#lv}G-C2*la)+R@9uJzGxxXn9w%C*-NFgF+DxSr;K&+LW1f z@-u@u1KriUdNt%sNO(9t9$r)(6tGKR55Li`68-w8eXPMb7Rr!eAt44gB0c3%#!Rg9 z+KE|NVB8zv(=9P0`vyX3?-4(%fIz?Rh5vn0zXzA0+|o!U43i*06d#)k)FfbI#t*9o zlJ~FPHveCJrrg(_D6O-`o%L)NV~Zmov4ESfVS2K!ze=AP2Z^FP&h&>+V!Gq3cvN@2 z(_D#O`92ug3}sp8*#hO)9Q+T`-CX;oF)eYw65u507GJjp{dR;Lnl(tElY(;^8jG|W zoEO^L+aXYF4PR#S#DiwIN1FuDxn=bMs-s|!H<0BHkvfZMr8|6`eR8-I5OB&V7FNe? zV`A(HG;exR55X*VDxZ}p`}i{d z-&VzWx-)_%Wg&B>Ph1ZBhRIs#g5y!YKi5=MU47`}W9FQxST>acGni}?RApYz!rcG- zUh^^1rQlK|#TGBDK6E~E3SuVz-@b00J1iGq^MuYtibt9=7he&)vBWH^4^d`tyc8S; zf;WY*SO4V?ztvTT%!4Hd(~3Ed`@ehrb=iM^D7#Dz77xCOLgDzDl~q1w5?Yu^Y@OS8 zuyz0gOs-O-?8&e9pO@f$e}*`iP52Y+!Cuf!DDEhCaM*S@eR4Dn!eUu*!xB`CV#VZD z{eJIm;WAnqHWMng@6&`8;hp)1O1t>5WGtsCr7(2S7GZ@FZTIEx7=^qM#3z$SNgp5 z-f)pN>@W0Agm+CJE?$PjAvNPSHPd!Ux(z zK-%bJgm!}M=S}GEOR^^n=M=+85?pvd#la{ag2s)m(1r+C>NV6FssQ`jPL4KVOBx{F zL%Y%)E33mgu@Db|-=|SIV-5`0&>A$009k-)>-;i0Fcj?2s$Q_p;62?dlszi8dh_Vq zxpS(X-(S-eYGg)*R$KQe&~X}ic}a}y!xjC4fXyNzBn-TB*mkmea%`O?{tC5s;GX!r zb-x6tzAC6EJ3z{O7W)|lER|KGX_O;Sf7WBZuDb2lI|n845Max??SxrxwVfQa`T6;Q6Ka2s=1jvxeq4E6K-cTZ?Af)mCar0{nK?gs@0xh@U(_vcoMhhNc0I{{vU(;0k>3b)cT5yN@rpZm+Ei6;mO8yULG=@IWyAc z@4t+j0u0><7S{jnZhRIfyda%`LX0_oDD7K1(NIG9< zX8;?-ev(^wc(m!Ssj2xMjUJ&U{PPY4f;YsNcm92i_lY_-xv8MajA`MXzp-{KkV3Jw z{2SV#D@cK2(2*o41|C`reG{<@=|KQ=b$7X*} zPE`ivG*#w5hY-g78~XmwKio6C`Dg4f(Jd^P!+-nAnf>n>{GySej{et(r0_8i-suaC z${3wr17_$!LtsK+K2oHz1bz@j?Su7O>Na^U_2)2`x?D0I7W_K` zOdPN7=2m{AhvoQPV1{B02ogX9!gekyL@>(z{gpWw+K!KpO-xLnY4F>RAL-zvfXha5 zL+Lg;;}e+C+$7#Y(uGtZxc6c$uKnh$OJ zEBpq;*Fkxy0ha}&b1X7Gd-e$@w;}5mN(U}x3U)v!m+~=v2zG6`st|GhpP`94Oc~|K z1wzgQkZLHiGSP4`Bkxbg5)5^DvdJA9fV2FMe@VElh~E96wABU;hnmtmNzb1WO#AtM9J{Q`h> zS*-@a;NN*?1PH2vH^ZD6`py`oy|$qrip#jIR>WnoAHX*1PP;6$@LzOY)`B*>GLT5d z*4EbM=dD!VK;~+-1D#5>_dlV9-uvwB?X69>nT~`SM!1wgqZ^2?&QuHVK!Cs2pfYuW zs(&_e2^<(>HFt+##Iy(m$*=b1+w-omu*eF6I>*qiq*GxuCX|U;5I!a-EO2vjvSNRL z;y_dq1`t6i)nR~gJO^6XXYU($s-Yd{xZJd@^{vXkW`(Ho-nH*D&Q0Xe{JFE!0w-w$ z0UMGH829#tc_$t;OF)Mbor#A$6@&;}2j1)Xst|VY$PlBTx&XYf9!}%YvyXRSgvEY&cBXykdMrH{aSQXL%%8gu7)=i6^yLDB_Yn4H2x z03A@#bWd8L0}eQd_6hW~@NjW~m+M>zh2bBJi8rO>RR(uhioi`QCeUNc;eig|cC>$| zMBqg92avW_tDy=8@fIp%Py=mjJDA*@_q`B8@#(+AE_kTN*+1h3TRFsGDZGE$*V($T zZ$j4xe9ae64AK4HLg4@WF~8v+V(sr!0Vw_dLe-5q1T>Dnsg<8vjlq4BcLo8Z;QUQW z;*s}8U$Pb?F_xYGL{#sbM?OwSwh$>+fTNjDZkWdhK=;YbWAK1A+wOHj=Qo&^EoVln zEWx7ox`SNyF#bg}BI&%LUb!Kl7P$X%eU_Yjfw#h{zwUrs&suQ=Q6UWN5&r)EV-?xi z)6gem-9(W9q~#cs@6eLufiP>6b14}fu4119k)W-@rTt=-$1LGXBY2F1B{I+vBK+SD zY^OmaG~uwXLfT>jl8cOt4EW3|7l(>;OEEMu2HzzXE{ZL|=Y-_sP@?BIUv$ISg0f2| zs*)7-(FF3WBfD6LDM7Gc^~(rwu4rp(gWXtNO)Vh_Qh4asxNa?X6^zUA3jk#yo?XWD z!TA}o{><6XxTW&AH=o5?1N=BZctD13^*fTt$Wu*VFOgGz@IXw2HN`Nav-S!+jw9tF zJ}8%~A4^jO@^I#}p%M>px4_v2ZhPn_#N4s2E~NzoNTZmB=Okr86eT0$LuY|V$W}FF ze&uHc6@-R{{<{mgTti)5vF&LGwB%@9yB1oks@)UEg1U1IqV#edgyOua5(MXkTQxQS z)oq7c#QU#amx=)^@y9G^g*d+J)BmC3MTwOVAwCIB2g!xtYk_J-ClH5G^?0uqz(H0d&kOLUt!hMNyVHE}0ZoC>S4i9j?LJ3(Oiy~Q=_;UXc zJudMXDW5%|np0#|cZay&9L|KZKyooEl!^WQ`Ul|~&uK|3T#zt7KGnb>`>+2$bb zNY`}ZEW{J&w!`-FAn3-)u1BAvCSFwAPfBz)2kN-Tf({q?JU>4_$G%9m1pkt@ zB*7IF=CMNAc27uSt%%B>FM|-CM7BT=g511O>l8?;t10}t$-8PBHD$wh|YZYB`OpWtM}kD zBgV9K?tO9zf>%XiKAoZ*vF{Tu@7dm-6+_R=zNF>Rt%hQP9I194n4$&-v}~EUpk)0K zM(B2f=T>;!HdRLDf5!FD1%nK1?))vt9A&h>F7t02*xHuW)zwiY5z}435YVnOa6HUb z5ob85O8Ifk;0~yQ|F4m~478oI74cbF_GzEAAmezJ<$T&Wew>*JiFw|LuXuPOAJUoZ z=4E*7#PMXc^+V@aNU3G(U1}VrO*ZIt*CraMpFMpD!aZ~?fjSpV3yh4*2`)N@;8ukK z?m)*5$&W%7;1qBB`$hXzjf%9M!mRsH;6%bSCP$?bR7Ir1I;Ti|xesbO*aX4!{$L&f zRW?53#%(AE#rL=^2_f{~B)A}?y=YcDuq&fqR#v2X4&tBS;p6{p4OCu&;usn-Qh`Xw zowtAf1aK2kI-Oa0|5F8oF_8J_7dP)~2?(J4(&wPB?kPYzaAuXq@azz%zdeH#=r=8W zMZ2W>`_V9^KrsOuj*gB#j$y%L3G{F}99n;=JY$_;*XiU0r{4`woC)8@W?lCiBhxs_pe{T zXgPqjM1G1^>x*yCppotyAx$LoMt0ZgK^dKVwSlg(2t30L_ws_TL2fzzXc;klk(*mZ zy3`W($FX4I48-3!X$XC<+?H59HMO(`(u6I)sKJf9H&pNrP^}CO4(IeAlD9#klLsq_ z0U;6+XrIoXXoElhhoJq>q4@tR!BI4k=mEvm*1xc%-VR(RaQ05XP zLxUkvB$0Wnj3r4jheT9TsE9(Qj3tE>LM5a^;;g5>Z=Zek-sg{VUFW~9u6lW&=Qpf- z-D|BI`nNi{47(}sioF%tm#TLh{h$3=&Uh{pJHI>syTCiI{uu>ecL<~9!B1`e&re-( ze1|LHM)rb7I}Bo9V_*K(54)GS&DhY8uMZ1Fxk{?$1ECYTI}7pR>#}_|c-unyvG(6R zro8KYKDD;BMUH}nKKLk*Rru80`==;m7H5YYwd~|d?xkG3c=y;FMK3A*yrh4xmqH~x z91_UtGv6m6f-qU9U5Ag%8Nd+QhxD|6iC@B#NI+3jP&fggoZ;)Hj`s2oR2{f7OsjEE zA0MnFlb!_uZVg_&Fa;fapndYNJ2iwt=Za{hy52OFiL>~{q?49`0RcbZfVzi}lpjV_ zQ&aAN&Am6w!W5q>I^?xkl}Jr@Mf5&_1*+;Z$T2DLtfrIPTZM)5!A9LZ3&Le^a1i^` z^#TG)ws+7Z&v+BE939qeiPp}3>9bT*0=7a%v# zI;x)i65FxMV=1DULOd^I!4-0y~S6QM7F0^XIn(#>|u|r-UfR z$^mCHDww&IN`UtX=|SEB$1Td99IwzGn3)@Ex@C7OwsGPWCGGi~oP$^%Gz?tfF)-_J zpFT+a7T*TI>AsHt6Qgxpz=e{;-63GcDO;mH+V$cQlS%<_lg#m`#t*Jwc{kW zh=@o5sGhkEwy?GyahDU_@H6)TUr2m%_Y4a0&F9=Rozl7qPtx;?OTe6*(tExT@|Ng* zTAA`L(+P}YS_YhGhOOIN!dc6m_ZTJHizp&a;g!T9U)0${Q!3aO2rP#4M=Qjpq z-8c(Uf|j^PFLd?bEW)yI-6Hg^rR5XcMmke^w)#^SHBeR(erXqVnn;1k53!`*uPfwA zHfXy(i^qX!8j+F4DQQh9WOF(REO7gD9KNu=DXNCZ!_jje3|F5lyk-lipODF1flGqBOf3(q!i8SsKc(2e9b)IOvoT*^v#)_V+z6ub3QgOjSAm z*hRY5PcQ_GuYL38F>6H3DRfNcvXA@IbH{7o{E3g#!+JS(or2X&SUSb#Py7|&A-gTG zz9YR$uKnuOs~b0N^o<0Efz*V4c?ucw(v_a*1D|v#uWJTZi*grba*cN<~A1tUNbBoxa(~V;4tXkw9~z2UGn) z7SwDIh*ZYyCa{-3EZf*fdiH@xe9Lyp5cdH^?)^N% z-ue_&fY#cQ8|@`r=IVT|CzxuoUEP1BgI}Az_mKdbi;k6pb>Mx=Q{p-sekU8B}-O50hN zz57(RY5axI7VOVc(_k@~3Ggte9w!rjWw79G!qpJqwp>Bf>UOF$;rPAZoML(yQ|_k( zLhDa_zkKJ9{>S-;0=2F?Ja4mMK&)7N1^r(%H|FAc(07coO4yTwP&t@#iipKq8PsE?fLgY;(>b#0b)(>a`<;rzzld(~JX@D?}c>j_Y zD1Kn&PZ6q`Kw%ksreY`InmEoT-i4J=4=GJaun6ex@skN70eiCuyC=-~-atz;-zrA8wxtEZ+n1Q=u+UXR-gniYk8 z#$8yNp$N7z>hhAtql%i)IgTUb=5aCPR<%gU^Ypu*uFc47X>L|O$WdF?JlC>EfO_a4e&q z4mvLb$FcVM>OGV%q01AT<{!KTdJ=QvyW{V(=qg0L);6`U(Ds{57>;usq*}hN-SduB zo>}SD-BaSZ)#zxa`!T2c*Ll}7cc%k*silkYEgb#Lo)HXjzqp0r_Ks$~$?<1wz)HOT zKv!jvmf|x~+0F4hMeuhxJYkd8yA0no%+=rY_XD-_{VQl&aQXf?s;A)z8wQcgxJ!)r z^5Wtm&eA>D6{yY$dCp%zmQ721x950!(JT;M{lD-e|0i%3CEZ1^C9eg}ov^U9t!A`- zGSsd4An^B3@Alf757`r=m*Ad3&4-Z7&on;?{3eE`g#5o>FfPdc(~C>u2xxNtqju%& z;U`~4BGW2VY;i}ONsJdEq~8@zP~gHb-x@W@m$!FKH(Twl*K66bq{N`$VEn&IpV24a zCl-2ewg2EOmh2bVvk|BWF{%9c&F&C}%!fetI-Sd^%$kSdUonVq%8YFqogK(OSdC4h1G#*sMxAGzsfztINKN(kU;Hn8(%m>C0vkJR`*tsyZ&N0WJrBBdmXbWz?`>ob3G4>ly!d`CkvK9KMu8twJrsnWT2PkhERl0GN&_s3n} zD)MX4{udaQ&M5gwrwSq?Zy*{Mx?MmZe-ps|kB|jWUpg-QuCwFG15JP|)uPW4ocqW! zPp{gCCxT}1v973!N;TS`?pqybmb-K4DsGpzYDxnzZ}0eRcj}YQ3b<8<@135$lGD;k z#qdd=tfgXH{BUhzqtLU%|6xDa%(l@iboo0H<>(K^gY5MmWU+#XwxwEJZ9;FUo%H;M zIfz3bEN_{;k%DL-UL>7t)=%-0E4C^ z+7YaC-&F9Oha3q{?nho!NUPFMBr@L@E6MkdkO3)fm#4a;|Hpc(^K7Jh>*hla``)B(yWl?nFZ0AvQdXI zN?N+1+r`hCn_Yh(YnO|3y#UOGRPrpZyy)emX8^{!3;i#+@_;0WgYE?DKR8q^v58B; zH9Fe6eVL&W_sfN?%&$p;G=PsbThJlPqm8xsRD#?Yh!Lb-Ha!H{*|9TA-)}&wOl|Wuo7wn2(J~g)Z_kZVN^{shXV1(KD_YMdkeSKT2Qq8 z%{?NRJ4>2le{fymD%=6%yuCe_(g&iap!Cm!m=gQH-|5Z7mHzA$7MK3*zmd)|`yW>3 zt+Q5k_5M5kCB(U(hZOMH{3@#2ZWgndGr~SX%x)P z&6OzZj4FI)c`oy?=F8O)SvNCeMTdR5=jiXwPJV3U^e){nDI;Mev4+}CsVo#!B zSq4%OC##D$AQluLa`zM%n&efSJI9m;3rM!JBabgEIjvp0cI`rUj?)H7ty~RoS5sy@ zKf|+H z)EJXInTpi7kS2%H6*1<0eSIwnTWkRM^k_L_T{4cczvA6Z;gxi;0R<~+K48_k&PCemA2RQ*ngy{||qi=bMR~!|%vpsHv%05eOAuSXcnnS70Hd;`=a; zIwd{_S8w6l$`7yx)rRopH!RRU%iDdnEYCuQEceIaPCAQG(><$X%^Q-k)6)ZRYeFaT zIc$4DYfFRvwUAE|Dna98mndE^N_Q7liKr~rztN4Dc-!2=FZpgmcq)j6zT%;$K*L?x zn%AIhi;vo@T1LvEHdbySs&Zw|@ed!Yppe zn}&2nQ6Ruq(Loqo!!^2};VhIiOE*zSRE>T6whlFh;of*t(8m44pa4{Y7N^kCnf@+` zlhXx_=Bh-eT#8MRdj22KQ~Uuz&d!{b9YSx%!0qeF9BbY6hR?83z=HvK@y~Ea(#Y7A zrq$K$*ex(^5_(M`_viHiR=&nkpit^`LN@c;bE)3@^%zHvxBgmr!Z+ zL@biNG?g0nTNM{{H|-D=6(y1O<#;k4GKH+^+BKdd4EAW?cS6P2ZK2ZfTgHW0*{^sZ zRv~cfDyKSU-v=OP-vF1A8-<0?kq8P4M}~$#TzBkc<#Wmpr?j=}v$A;qFdNeCmLj>h z1o)jgrFluf+`WJB}-4#M;>BwJN4xnG{`LWu>Z$n_|ne{@}TM) zFe7V6ZeC&Qc0=xUrOYOyCwjb#Tzn`HV zz3Y3Z8L?fem1(H^!d6?tTEmk0cEqLu?_FKMr9n+a_4L%3xY`RA>lTLm7j@AkI>U?nnfPT9mT1epiFYiR2LT95(fdlff#Kx5FrdcqThFr!NAjLz$V*%H<+ zg^uH(O|MXuI?w9dFbEBc>IFU`Z%-D`mi22Koys@L8sz8auS#SO#-oOISd5#jFQt11 ze>Z}Ixr6h=x%!BLMk`CczG*jz91bO%zkWSl#dt?|~G9Ri^$!es4^)yI+xyU0Pj1QgWkAvQ&G3PLnk$ zEis6lx^*ONm@I7LmCDoKoXkJZi7iUI@J2sZpiU6kwHoT?j9riVbFU4HUH#7?FFhXq zlMGY4?Mc+wn!zv!XBBew;-#g3mE+w)araw-P29Xvu~pnda>n>{W5MXQ*}*#$k44`0 z5&OVDv#H8Bm*lT_8=M^)ae3bGekNYYq-ffPG$qvz(WIa8>NEbD!p512{C6_VSUrwG z?RrGS_lZa{_fa;kQ-CtoHrV%(sgeuV#H(J70Olo?I2mKG0t+_{-+9@B0R4{*wpABr z4$4yrQFK`*DA^jfN%k$<(BNQvD%2SvnTs}C#iIqf*oPNChh-=prVI7#E!^nwoygW$ zcQr+h+L_s!PwwZR6^3UtU{^nVhZ<4g{k!2|yrcIAgWg6rAo9Xr#iJ#hB=G z`RZ0C-h8kCK>H92I6Mwg?oEwc1UUu7@6dU?@k_0Gk&5UC27m?m4x=nnQsUYq(tXaX zEq}TbVMBkpk(G5pnCcSiBf+h85FQSc?IW67df!!1x)5QysD7+=nD$55Q$}RU_H^wo zoTEw%pVg;%@p%Tvj^RLeGSJ?$gZ{i4(cRH}$D($Y?A^s!b@BGujmjr+pIOo_e9Y~S z@|D818?&L&S;wk`b6H4f2!wldSkJC0tv5_FKbB#vJ`)s_ud0xr!tQA#F&r`3I3}MZ zpA0H$xgc3f*vy>9B{i9>FLi5Zy~2k2NK@U>hAW>#ty{upqc6L?M`9D=5@ohc57((S z9$e&<42)|I|FUDa-z6y1t)GgL@_kjzZ(}dCRmuMhfGj8!+@2&|rW`l@c+)L@1y82_ zG}&!enKlgsa;t!*ZO(`=10}Ku3Zg%s);QQeb*7&`Riv}jxNOpT4m-E)*0qbs2&o&- z`M!}>u!>;UET0Z zl;QQjiSFHW@YrZgsIKsI^k+m(jVW?4aXvxsH*cB8obnuZJOk8X=je9lXz^*oDzkPGwFE_hW$}CqRNuK;dYIia+C35vVzW!%U^Rnlb}pT zCR=Y3m-ZBG>OsGTEtW6beHm0{O#5{0$K4wI3(t+7V#qz$U8rVZMVk~ewQo(7SRHoC zG^;dcjGw)8R~nS#<)!c(eIep-eNt&=N}{`M5WT*;-DQnWaza;bR?f28bh-?P%$0Ga z_lx)rx_f`ov$;BL$r>9hJvWhd6u}q1`Bmi~+>@t_t`CWnPRjp`AJ}iYF3i>>TN@Yo z4Z1HJW*;T=)Vm^qDr#$M^)w&-8VO#oPW0rb+|s;VnSO|U!sbHWIq1Rk`*!GYbVP`< zKZU(~S9vt)&C8d`{2s<*v4u}T!qZt^sIno}pII+hOG8p}8o@8k z`w}nlvNPUj_hYVebDS);`2)bB<{~ds${g+Ho1=b;PAj?VD=~dwoYM4F5Bc;&ta9UCe)bh4r=7P5))yz$x?xcuCmRXy#=gwNeAIE z=QiZ(I-3=GZ_~Jk^P(z{GLP2ThZ=N^sYDK*JG;`ho23y_&PKnH_FPzJDDrVUT0n0q z>KM-T&D3GrF-2skXpf?iiHbxe`^_gANsuc(#+>M<(XWP*)%A!$4~Olg-cZHjYn$sM&yb(Z^*Y?JchFvomtU^YoBIk zZ~s&~)CPlA%qs(~LB#{^zZhLcaJcw7)kDi>g5dV3wUjMTg&Slxd9L+8&1~|JAK+!X zvikasyyq#49U|m9**I?KC*J7~(#dT5j$$xw!CCEtQu=g8+lf;Bx5#^@|HQEH?nwv_ zRU=i~C8-@du640@l()VU*PgSRg72ye!t#3T zr&R7FUcYYg!|+9#@c^&&IGJevH5|?4&)X|~!^Og^VR*M3xE?*d z$PVgxgEQSs*7Hr-*Z}#(Qvn+to}hDL(sIsX?@~NEcNZrsGqq0L}C}Sk5F1+=hl{xqXLkIRAAyO$WY<^xU&TxHwA?6k?>K@YB`45JiV$Oz-%sy@0 zErkAMZR6IeGtt>`jRv4;4x1MGIXyN_;Ig7S)0&Ioqd`9CWSi8z%k>f3HZRZiz1hXJ zn%K=tp(lHltYD$g zG-@f*9`~i2K7$t!J>mt_V0$n=0sQebPo_6az1N-fo*7wNvmI`b(4%k-#H(qZr%h8x z7t}4IcIinXyY=_>Wnp8}dnsjjrZE76n^dD*6vDMN*%vPla*qKf8e7NO0pY5yRMBD*8dsGc|7eVnr-@!4|&%Svxb)M8hj{G2}$fi%1yKmpqWvX-M zw2Jwe;E!_gM5CZ^7;3v|ji)tn6uN4kJPxj%OGprHId|t)wh4|7V=K`Y3T@B^h{v3T zN+vm(St*WVt>|j`YA1^H)TA0}rUuUdcIq&ZDpgir%i82{OMXTZi}W{hs%S2&-G~WD zc82;xP4>VNlKyxb>1SAjS3A*TMX%NIMuBwrm~ z66I4?ED|+83d-**2n&I)1L25zJ&id8S}Yrk&0brb%G9rpnt2f9k$bw^9RpSJq`gZg z!#Rt$2Eja|z-DQD>wjF6J`A}M@fsx-S%=l`;f(4>=2TYk;w@eZkP^U6L#G$w_Y|M$ z@nmut7TJR%sf6}<;11=ug8#fo7lkX<*%kF`wXkNL|0DS9^9cC1V7_8nS>ZKPWuqi5-$igFxl){IiX#w;#Hhv(-O;!cS2xAsUWN1F1tO_~ zUwp5IoO012qMLuZfj2q?P}{5hp@F;4{1{6{*P-(sN2J32XX9~$)#w9A(v6IYf^Rx@5mbZld!01FFW*&*EL!P*tM^!Sl8LFF z_+a3_iy)R{Y6-c8UR_y!fVysCLI`VrzB-qXzvDPsP3zyQ^*b}Cg8UhcXlG;@{=LfX zYal6~rA6zDkc)8UdotP5P39FSjEvvoE{dvbZ3&+?VXyzprL!z?m3qTjiVmF;9qkti z?@K0q-5E+kig)uB6`x7Pw&TBp{ptGe9U2P-8StHA!eg$nb?5AmmwR!5_SUaG{2GDb z+2#9d6tBi5V(IODa!saFe>L2-hu+;TYiNe^VButVeq(ghL4_cp*MgGH{8SoH(&@i- zJ;ux>zu^u|^R>!s?NfudNV)OTPfJ{>J_&J8L7?6vkbPpmA4^I;OP9a0HPy$RA(LCg ztLHb@(X~ZTUvb;({<2fop#7I+?g8KITdL%ig6Hi{KXv~+T=!sguX_aTk2O=nIj&fYsW0&K)`AAf^N(?^*Q=-!RwS)+i z{|RJnUhC9uI&rh{&3%v5e5;JhVok>~+c|FWOFk>Pr*NgwK|-dWx{{Gw3WS`p@_^b_ zyYKQ^3dg-wX?I&^{r045I$0u+G?z2p$UMG)m%yF#Y7pqK5>vK{P6{{GCV9B2oL{fAtjW zm``}n&Tz@CyxbHWKH&rVYa#y$N_#S13B5JQEEop_P97q9y6sm^o3OpPMH;{0R8MAf zE#shB;bg;f56T*p`fgp^I|9m99#w5ZK9Ve#|8iBKLQ2#-P_X#Gp zH2V||HBXK1^GmZd&7E{6D9PUnE2m%aigCQ+1-qDFsxzY4i67kFD=1gw+ug_W6q4=%d*M9)unlTiliqzKNlfYUdtPn z>-v*4c zWo=AOs=)mQR=)Cg*!r(9x8H<~5oI<=fRV8E5RUk?_3vS8FVV}!n~h$CNPqqF!S#z1 zI}A4V@Pc?aKh*z>2p(FdYezdXUG_k!MJFQC=wt*O%E0@Tcv*9hudG~R?fYiU5t)^h z1(vXfnEU1Nd@tXEn?X@YIUgV2pZc7${*PMkC>DUtP@7)7$uuuhRKF^j+SbOZ;8R5|=wqCnK&rzo1MsDEV(A3u|M%TUw<-GDe5s^x07a19q zojzGAw?M5fp&%s%!e{5;)X3uTz*&N^W%GbT)AzrjxdQX6*+3-itj8Jhht1$<1es#z7xua{Ih@dsE12L# zPq&_bM*u@PBbhGeU|(-9WC36qgAgK_SDtYn0t-Y^h>3~4ke-vEYuueKQuREV&}Idt z%E_^r&B?{KAeG)@Ow7j2*4O{z0DUhnJTbNYdFA_ZWy2Snn6;hFdsVo}HY3d2Ds**; zXdZ3K6xm14vy{z_wCUp$tk?*3J^g@ zozMG*?D<=nx|?*l!WprPzni-(ehctO0$Q7%EJ9=8VQuZuE8dKEUu*2Wt6uP%cs{JF z)Atl)Q8i^eS4w)XC&4;$82foJ+}#}kCn~vnAs>oLgdnRyzkPV@#Ms(SLgK?^{Oo5% zCaq}24Lv?`t9;!ZK8lNr7o&L% zJu!AG9&nju9yzbneohDTpY&&iR#>|zrjhxSXP1C>w8tg^mvR!XOfi~=Q(H@v5_nZr zAD}#-`$~VB_CC5cq?6;VIBWYDB`H6cOuxA&{x#n8@$cEXDn?920a3(B*aVjF&zBs%#6!mEFJB%ezoSoe;O*=r!SQUH+6)AMiDEXee!qVm>a4<_oFKL;I8$ zfXTWW-DMdx7Tb}@X_CKlI|53qD$p}GG%yfk4Zbt!oN<(hhJO$fKy3<&n-x=KW5JAmv;b82}|fSK${JwaI@L@wQ|}QPAZ= zGZwLr__T>JV3^`}#gG&YhD@x7Tb??SnnzU5`SSkbYFb*MKz4eLIV?`5p%DUa(TL_8 znmO3}8U4S!Cwg@f@Wz?%WqO~(V&OAXwbMP5;%lF*cGX;l{zQX}&~^Uc{dZic&N7FD z>~s3M{`0NRgsT;#BrYy4Rn{9;41;chv~J>J3y{Eo)Z^nd7oM@5@p<0Qwz8LeuPMEJ zY06}Hm(AN5Gz~TnQC!0_E!y-0s(8Bl=WRa1P2A0b>nwK|v=Lc|pi*bVNeRB{r#D-k zJ)`|STb^?7WoIXvJsbz_>C!tN>u$VOyJH_3G28FnUF@Qb;4clMzG4x3H|OzPXK?2It6kjeNsce)E&gHsNpHOFer0*h4}4*|QX5ubl9;{O4_Xq}H&K zl-H+Acmso$S4CvBcX@3$l?z;3J(G|H{u<%~%g|t+**Av!)+n@?*(^6Fg?Zec5WZvJ z$z)^pB|?cNI(KM~rTn57jEz$diM%Jw5SFNF*H9}jjF~#Y>AmInvAUX?7p`a=G7HG@ z;tAG6#Azim#bsyBm6QE+`QaYNsk=JnJa2}FukSGwmlr~)fW1T}1vjfW#~-?hr@!`a zOgNL1;b9Ll;gUZ%<9Ot52w^|=@IbzdeojVz> z*SJ6V=GC=7Ft;m1UE6WlcXtXame3#N^#yHSODStjL?X#-fzAaQhhaxnrt|{Y2`Wai-yXxZ1N7iH7ckyL|JujbK%Kn~1+o^K zYp5ZW&}%AIu4)OEe!3C|SPyoooBCV(o zAh6F*zT;k0PyO3lBrMY>EDrA&!V-LqJ((K0EN*4$A5hq$d$G3kQcuyv255RuexKYG zoV@|Z#X5ozWrla$!N%}IM?Ld{1WK1yK8FVz+vHSKHrE#w74_PYEeDw)No1!V?N`kg zu-Oy3Tdg9B2ZX$0X!Fqa@WqY-#!ew#$(FW0Q1F?L-eaq#Tva4)O5sy5SNZ-FrIF;L z*cnnwZkJxC@mQ=ozK~=tvmABPqIaLo2W;uoN%l8+1%4)oD2H%Phtj~_j{d-rY%O(um*0e_6AX&3*QZp%X|UGKm^bi0Y&y?^u2Asac7 zo#tNR9o)+pjS;n&_sLc;0|Ga*_T8qP3f@CXw&#yG3*DpFe)&}XC7aRu@rp^7p#&17 z`b#Qwd4-de=Zp9G4Za6bBKot%J?nFnZ!`5GSp@ zJ6f1)`=Zu!u0-+Y7X}CIZCSE;Vqnd^@G5+3b}t(()3La?ILCeYu4nJ*+lR56dlsPp zcsPE#7D8G*H@%%YZ-7iPG#+1`3^&Mqs|g2R)MPhb%#7^yKZy9((9p0v9Zi>)m$&G2 z>zKFHmWBA^zoz8N`SQHRfd!NJHMtWRn!4qP?zq1PH3#z~;~|7p5EItzZf*X1GYGA_ z-`%jmm42szt}Si}8l@J9BfZ?a|D61La=qfMCc(~(*`b-NLig8HX_RTmM$b848EF*E z^?)t<>sel1_fYQUDW`2xluVZ?>cyy}%?&r5Jb7}w0;vKe@TNORCR8OPFnp{NEmAwQ zF-e;FP*vel_y%~7mHx2AGx?XyZgJtU9G)ggof{fr@m@Ui!X{Gjgy8*Tf9FF$vsO86 z@*M(v1!1Rk{4@gRHjr(J*^diu&%BaX5_!ZIP=QSOKQRG(<9yDFjgV4{z@~&MqKvk= zT8zqjlN<9%-F1p4d2?2PMk+6+U|*%|JqkmM=45Zk%Bi1Ee*VnE#TEaGaN>m??#xTM ze0iYS+i}^I!$$NG8qjC2MY&|SKA#%BVC1L4Xml-Gd1`Ar%oE=VA`-z!5d+s((p`z# z_0!X-(Xg;i1+b3`_od*W?S8xXxx%FX)9-@uFPJP_Q6cAzv`(FXevI!7jZXZltx39A zLP}84^n#{?GP3FA%L=5@qhN%_)bXLOP)Ni1zyFG(Ana)8{0@qzRw(`c zK36pe@y&Od2BMB$%|44+q)4=cyBvkOM$lr(3Oio13s>{azlC)@56tbyU_ga#6AkE+ z_3~%#NpQVtpN-TMNU2O*?Rp?t9VWB&q@N!u=`stMGx!XXfavk*;Ad%ZNBHLL^>aL_ zhwd#s@rsnXC2e5(MK#$aW0c|VulL)sYE(!@3*kw{p1d+(@44IL_aF-m~Xej=#Z??Mhb-+T3wCu>P*G5QOk*0_G{S{;Z0!n@K_y!vDbVkCqTP+z$RQw^Rj zk`8udYb--FB_Y6C*^!=^38v>R-hXeVaz@ii4b8_1fp!^-Ehh!AQ zU7X$rC5iqgXTBdn@&>tU+L>=7nuQR+1|U2T7|FVxY6R-fFT(4)V3QuJ%z7f1v`5d; z>LZK$7Kf}o?(_qV8cG$9*jX6FC$`SWi`t8J(YCIb-YuD>MmL@TA5x( zdtA?w4uxZVSHF%qCPtVCs!7rOZaXQsPmtWCtzo#4u}?o~QSKbYO{w=U37}xsOA%Os zBYaxP82#)QCwU)0Q5GLER`0T@f8*C5DDf^8L>9LsRlQPJWjSPHZl2H@W?X=054Urn zH>Hp;i;~^p`+mbFSzWUt*mBrnib&8Y_w6Rjws)u25dyJ(@vbgK&&5g>mXneP+_$NH z1Kr%qs~7?n&o;jDidTFctH=sRR$oy2b8{zV-nZ? z)I3p5OICLGgV`xahmq4xKYC8b7n{Q*!hddY@zLpT{O__KJop8ikQ)C!81jCvoNnBi z4!m5MO#=h>@o_=4SD3YybY?OhJ<>4$CE*LcrPavrX|PbTQbP&p2^J){pmqj-5uIWZ zGWE7?@5foAqLN-cR?YepiS^_{KZx>7$s#$$;fRqvvx4Y?7n8e431yWXIN1 z-3JH#GMH2fCc|Y@KkII$HIULg^83xv9IFS7ff=IP8~D@0P>kLrA$&!!?r>~nr97A_ zo8JGiwuMe8XuL!d%Sg@e^y$-qe6>tusw{A<%EiaCuWgEu6SmD8ruv16^3kq%mm0X$z z_VyH8A6+#I)zrmTNd@ZcH|mL=9ft0?QHVKJ%ST|JniQ5(7Jie`Fofk3@{|lCrY$<;D|d ziUs(uDAB|xB^hz4`@Yv9?P~hf0l{u{%+GL9%~wbD{U|9ZA0bC;QEdh!0@|l;r6fT) z|4fQ5=2=s%pc>qoL`-inNnUDdZ+~lFA3Gc6n6jpj?lb~2Z+mw}NMvb*piKb__O#G5 z6yZW@vFn?MG$Wzb>2s2xG)~?6l-4Zj`%z8pL_ikkbp_)Bku3)mhZIy%aX(w#zeH+4E))CWO^ z<@fO-jMjf&D}T3QcUd=kcUr#(J*7bED{fU-XeBh7j3kEMJ6p zXVqXdv@(xG&@JXCe z1gt$ADoi3>&HmL-)=9>heNo^hgC(bZyh`e5`wXb{ck++fqh}jZOe`!Od zSTjc(rDQhwSL#YQR}fl?I#Mp$s?Fzfdypb^(@Yes>UpWwr?Ii+);HSF^N0yZ71_2e zf&WQrCWU(Mz`zgCj8#ZD^7!vgHtT#k`e`ZTPC3aRCk`J|8QLLpN%5~Goi&k`yNhw@ z8?Zp)mhD?HaC$a!bz!4vp5}M8+u)7z2z%dVI{Bx-lu z88xNM6M!%uUi@IT!MZ)C6qkeo)09}f(E<0G41?nh+`Z{fUA}&Om-bHcQAZ(&rif zptkm-qA@>DQsz4@tGh=yk7A;7-#4R-$iEhf`{XBe@0&)-9|%3IOO?bj%W|Z^cR23$ zoeMpe_C?H?<;^Y4yM6hM21LmyeKN|1$Btx2H~M(LRDGT*E+W#@A1YER*55jFRPQ`< zypZj_k?nUA?NqP2@*dL*o{p7eav{$XH_PVtkL!;y3WfF+H-1Ja<8_oeC_|5STIoqf zPcAj-Wa{TQFyPTc0N=3tO2^>Fq3!bW-AgA>ab+tftX)?&-Z-)E6)$j4QgZU^;?2y+ z_+FUZU?ZBVIeO+3Ux-wb{7e3SH}S%@zjfLqGX`ngo0Q0_{M!%B;{ID!{M0b|wMe)M zppC!0HplRrY!zJXL_g8Jc0ku)x@Vj*M|M*&D#_PI7L?e;m+W zn`izLu_ci$p9FJ7=siwWKR>_3oce7Mxw`IDJ1)D{$}V+(xz7E2#{>)q$WiGp-psn^ zh{mh#Vnv4UU&g{GokI_r#!nKlL*ouYaGBd20%Rm4TGyDX)S@qML1j4p(ocaw1R6%x zYGq?r*Zln^H|(vHTRvCR%W@h@pCs~w5Lyu8X;mQmV2^t)sc850psm_fB|)i{?@xL` zVGreSub8QSdwB@P*;g(3rn()bCY}*3p_TRS9CNkbtFmK9Ffj1k%^B+(AohlEKfq7` z#qib3m&K|MZ-YGLhSQ3X$*zO%Ljh=@K_gnFviD?_Vd{1W3=D(`3e9X2Z6T_wd7H*L zRnW9sL1x|4-;JA|vX$gNdh`eajBSq93~M{niGVgR5JVf{&*r1}?LK_?FkVkIJ?kZm zX9Hoqb_hrcx42=ELGNXTTKl7t#FX(>EDqXEkfQGUSZvHh)t+JB{J8n5y__^uox-v7 z1NmUM3c&~$*KJ>V{qm&`rrp5~T;0n%^%=bU3-1H<$mXIB&TF~(YU&qSV_UTE9(UNm zlbDs6d0w%nb)oN8>6VfoD4MKN5qWi&SYU)>Nv)8yJ6mJ=e=nIrqW{;D$=A)73*W2Q z?3dnm1)^p$A!??LGVI?zf0pK4NXev_tw%}h`#{7v=~+EUKfMUFpkOiGzJNX%z4y~p z*ie83eogn$1mAb>aYcv)PInzT#U>9S=GEi4oj{8AB1S{>VxRhn57DqtJ)+v69jAfl z6HutekKJ#|KXl0SF@@A%ho8eBppIp#XyDlwRi=!NcA{362}AO&*oEPpT(M1MRg+x}6&SMIYL^TS+D z_)s~q>~@fCXZl8EC!}P-+|)XNn2619=Unva-jTmFmAVCmjB*M8Q`!V8yX02X1QKHB4}InS0f zDLYRz?$c<3$lKVCm~HP)02a!vGwTjuaU!G`tdQH${3^p#z2z+#$QNAHBnj>zJIgmp1BN+O5~fmaBDd zztpzy56j2p5JGB;@WxUYmaPV>o^^I6(otej#gVftE63dw`?;Yrg1p|+9z(+aj9b3d z^J}GXsK=N~`%vV_jKxpNe?1NCzcuA^%jWnysXd(XJCB5GN~}Xl-Am;8NjP5>0(Kxy z-bm#*c9&9;sBG*f5)LogO&?}wlYFn9I%q@cMPPevAG8NN{j44l#0$~^$8`FQyq$z#% zBqUhP?BUt-OCXD-a&{B5yOMCA+R_&v!xm?vqiZz6(0U5@Fx$*$9V?ng@ zco?)vWA)HN>Nu^&jXqC8sdghQCSX21>%{KeyJ4PwKht(a&LU>e?VKgiUg5QCX=4ip zo{bjq_PRkr|L!ZQ7+A+5KHH@)bc!&Krx(}?xkvpag4kdaZq<`?w2o#&~{l!S^7B>c|9;; z2;O4h#V`#Hp1CVC1HVy!H2FXXLnrga=+yWn8i-tf%+IH)x_-H1Ad!gxfsyuhX=!Qt zGv+c@J9qCcYT0{A$Il#-@WiyOw+xO}@5#gzA&IS95eK)Ukc5fVdHl50W=DO7zOm2^ zLL7Bq@izFvEG^|R7|#_m?=_e=g)1bjs2aZPP4G9lxu!731>0T;C9=PLg}-^YaR zR(emgmd-m1s|9#6y*yESHB2P`59~YRb`61tafLeWpFe$yli#b=c+)cpWnbg{hCEju zCTc0NHJ*_YJR3Z7wjsMXa%E#{Yik6!K^zvFg=2kDYO9`~n$+qI!gtWhy#0MCvRPq@ z)}Pi3{>||mS$t{aGOXt(!-sUPN)YLpMG!(fc_Xy#$;PdtMyvr3%F!};-w=S97!M{s zNMSE`jZ}@s{KcwUW7ilN7@`OBz0cWwjov4Ma0STNYTcy=1t3^vzFPVq5YLW&d#2&7x7Not`UcKCXw7BIW#;|!9yUo)Xk7>nb*g5p)0x(rm{Si%%+=QIXt>^Bd*g$-N``|ZV*SB z3)iG7VdtGI^I*!;43YfCByZS=`$0Y6ORMy41%~f+4R8tsQvXGU-;HrZ{eLtBzfYNj z>`nUOH{sU3b^@6G*xlf>zS2a*FsCm)I6BQ>fz^5VM+x7)15?`=)f1*)^-j@WK)v&w&9Oi-*FX=Y|<10G0mJ) z@uQI(Fdo_P9zG3s`@UPO z78aOwxFu@Q1-*cm+x|(;n;;UqtKONKmPV;viv#UPX29{|v*?Bs7Gm@nZykL91crRL zf1vwY1(v*-SzwW)rI+GDnt;Ig@g#E?q*U?(_TnfC!!{ToJQL19@ z7wWxQgS=syh?qlcWWnx+`|`?V>khqOyPphA%6VBG)#n~5jdg!p1B*~;T|wqYtl|K# z1X+EXmL}NCnIwH1x_*m)usBaeLLam_B7CJzU*YmPT9*nGmE>eok(q0Km$L7~bNP<# z=(`oe;!PpsV_-nJzaQeM_YMdyC9~M7N5sKksu zkcSbO6tXPK6P>itl?3k8`-?l1h;kW`0yXdV!KjJ%x!6cAhiI&(&Q5Qf+Io)9?xQ{@ zpxz^>szfZ%Heij%2?DY^yUGn3%2CV>9#WBc)GC7xNg*WZNf(OrKM;nx9i?fKHb-D1 zuQibFBtr@`2^9N~(Q8}8nIOwS&+#F`wq`2jB_v89I;>i2M^FPY99@LC$- zv_eGYm>7IDSB?wvq3X0p!GPFmpx=T5kP+4BqNAgb=Z!heJC}PZxkQ)Gcgw%(DosTW zZ1iTMOZnxNtPE1Uz6&Gg2OhdYSwd`C*pQGI&0ij|^DI#9px|o><(5b)`dk^4qYW>f zUg;B_1SQ@((U6)Zdw@HMa{g9wa;h;{ZM?((}59B&cmb?niPSB|iO za@=itsk@ls7vrd>u4%bZWbBUn9fdQ-AK^5+>~#qgbzDqL&xb>EA5I>yxz%{#)kXN~ zn7HJ_O)n%T3t)1X_pQRBB5ofS9lr+0&qH*YF*)zUAr_M0X^U2nKL+^k?pT{Z7Az>T z6{<9)&awRR{c=@LqHG928t~3BHB$s4I6PMWPHGyxQ!t7ME{r;|4k?Sm>GJVjNzwi7 z-s41lsic&~O~Rdb10p+fjUHZ==1r)cIf$+HU$`lMjwmd6aPo4VpQL4G-pgrctnL~z zWF&h2;TgPq^iCsNh98~Tu0+`u@iLd8HduOG+qQLAKIKvd48l(*0)vAKctwS)3E%mU zc$N3tpPj0s9GS&eUTTNJ7$LEajj1=kh}<+|77QJ2!O48&&>_p+?pwD!d@J$DT?R24 zhata;W7tBZF>z+!r*UVp{l9v9^LVQFw|z84Bw?8{tTLsHnPtc;qCw_45u%hz=FmWrqQSX7YVYTJo^xKW-}9V5&i-e=_D;)MpY?vCE>_5fp^X`2qAvMyvn8)7dJoU%z%MCTh`hYvVkaMN?{Ow0a0H z=E)Nxm&Z*7rYlEXqobWd|?e<&mZ0byfmMgV-PSpYD*0?_v1CZh(tw zHeA*@1(lW1?Af4Cfg~$D2gQDb@J~!NP`<|;8Q3K%zq=|=Wye$j!$(;}xIH4A!62lATxmIrLyuyZe4?K|yJ>Q$Zd)Zr;+^{6%fQOSEss>Hn*$A3izlB^ z`p9rmVWO7f@)&@;=G)&TEWDh&+^##B;)AtpRdzwK(7@jA?7ABn zZ3m%!6HOn}qOv%Oba%b=;eNruz@T;CB)NN#X+Stvj2 zKusI;5~cg(jSgL|o~S~djU-IY`J`|C^MPhz|@_;z4m0J!Fx>QMg8nK;OKV+^ZS89h2z z@sei$hfkmO!s~s)2IF;DRBqScQ~AukgYEehjejdd5KnJn?`EZ4T575tl!!3=cj7ZQ z+FN-~d^g8U5yHO_LxaE}bYd6>Jqh^c40js80v)=v6$V{poEgpQ04H^>Mguc59&dep zK77uFfk}YJ`GyJxcYl~XoyR)KKGTzC@tYOt@0!Ue3M9FsW9bk1;q8Uhu!SfvkJJRi z`vIfti}Z;p&v&IL&VcazZfc69QdGgr>aLev5J_J{*Hf{OJ2EhP$!O&{S+(bwJINdv z4o^rgLOz7(erNc2iLgtZ7<_y!D{Fua2*$?J$4rPBdLep~<@*iyFjY*~t)8Jy?`OC+ zT0Onl#|wal!Mt)OCLdyNTD$ApUDdX3C2tPIh*XAiZxI3TmiWnHgqc+`eg7<6M`qJn+1E$g}zue)^$mE z01<$&d0e9bX%U(Z_mzWAgUs&MQrc=YY+vs;(l%J@>o-A>_Ej_G^YozZ5B`HU%DW$K zXS*L<4hat`?q__Ih?VX`T1tI+xkSj_#fVfscmOn;(>QZod^tNvB^aoqD|&Ci6X_gH z^T&%OKR+KGQ`+7XXGVJ7JIIkUQr57laf$d}7oPv=Tf=-H4g*Dd?-8*~ll`Dg^Rryl zdYrU2ZMpY(`d?C+9mgguwy!T)YdM=5&Cs35e{kHQ9oslcKAo4@M!mpeJ;79;L`y_V zJi)JO*CWQj%9uHxfFxz1>2HUDA;$51YgO-Q!=n&Gt)gOVd-(b#O||E+2iK}4%8CT0 zA#bosW9awpXaC44j?yM&%$=g`-*dIhw8lZ&w&-M4a?tl_=kCO}LGPuG(($kJJb0}c zJ78xP_qy4pcKyp+0hOJACvm@X3%jhyX_!5HINO9Z71d~qpynVJOIDv#JW}}_D+3_E zoCpo6Lz2Kc@DK56#j)j#w>XjOpxTerD9i0C7_(9uhdD;Asac4$Tz;Dq!C2w>2OKRflq71@P&knsdZvQ56V|?iAQXqQSZFea zKqdqYfOmhz{KKg#3&p6-`FhF{HYSQvlNgSml|23UWw9&$NDQ_RKnsBS^)kv$tZ=j2 z<>@KTd=G1E?A>U&gf#R80iR~X!a*1p?$+A^c;ApFmmeqrGL#wu@5lQihyqf3$~l_O z^8hJ58y6P>Ukph40f zi`b_~0YQnTCcplji{QXQ2F_jdW)ut+Rql&~QVbALU^W2=A{TK@ku7vy73-}{ImvQr( zwW-*aEn954+1SisfT+AH@GxBv9pAL=w2-o@f0PMZ-?Jb89lsrsdyAExxR-!K_h9Jq&^7);?#{#VG zbhqNUBG|S`XV);0Y-7g$8kKNFc5)?XtKh;vm=Y@nFB|fufs@a!eLSh+L5Z;&Eyh zuMZ2_ggU}7Lx`ij7*kn>gejSE3#TZ>BU|cu{HdFnNBy^r+!AzAn@=uPv-A;(7`?B{gi={2xNoq195;ux^Dwc zo)*<{2v`@lGlXW{E4P(f)o0f{V-FXi(eTbp5$DV=Bj)Atbn%Dm?Cg5(F40I>Me3>ue7F7= z_PNBfbSF->BIbBErmz`($iYk~qqwJ|wajt;Wnny5j)d*>Sm?JIe_J}akZ`Gcp! z{C+lNg>RILkCN-GR&D?M%*GM+OMCWZ@X@HY`+`NWps23CZgEI-cIqzyMLOcXKOqqK zG7A>nVyOG7!H*x;REuy(Q)ggf>bx?k0T11MmtMyavmc0*wGy{aEbk-JZ)*twDcmCg zeuE?0YTcyFQuJIR^22XY$Yb;Z7I4XREd))wkW7JXuh8-#DuofA7PEEW3J&xo@SoP> zofsS}#x@DhS2)j|aj?lyQHb_2rDRma@8&)XbLS&cb^wO6bWZ1rS*QGYa^P@lc|T?X z@er7Jc0=7?lZLf1$0ewagIR71KsHJKtEEOF?#<22Fs@m%ts>^Z`oh(F$)lZ@12P-O z;TLjZrn1SToqPo{nu8e@LiOaC?m0T{Tv~(%E~X=+t<*{!ikHu*(6=r z%;U=5GS;Y*F`V<2PS~A7Hiy-d8SGJG(OyUCp~jbEYP+nqcJBj|5P@UU-2g9|WBKTR z(Hskz>=Db{BLEJX4Mpf&(Otb0kv%<$%Zo9O(7Jj-%7IG+)0VJ{(EynBeQl1#0m}+pG5w81(yiru*hOh#|07)@c)b)V955ejZ#!A!eLystY z9;&I%2!*{0I~1F7B4I3sbB^&h*pu0vg(hdQ{0k>u=YY2n(8fO)v%?xEg0HcXiCaJ( z#JDrWpnK^8L09wo!Ge**O%*nFc9PuFFSI^~4X^XO{9D-f$uBan5AMMMi3&Y^`m~_* zfV-e#`LU@(=f;Y}jdKXUZsl;0ehjdXa= zAEjNWgp3YPaNfBPS-$)9E%EF!_I-cOP`pNq&v>U`U!=?u*Ou!~<&vp;!iLMt6=ave zC^XOnBkpL#L@z1|7z#E^)8!1I*+eK)Y|=sAIQ^+5OJF=WpI5v9fmJJjuE?4N&X)y6YD+ zKZ#BPat60nyV7ZsI5#h^@su^OhYflD$P(?MnP{aDX1X~;2n`XvDKvm_B63`Pgz-n{~+xo;poDcobo(QMyX_CnRWFl zB{=Hz@K&A_B&4SVm&JuJ^uyrSPhecn@7532uP8`hQ8_}%5Jz=cu`l3w_e!N`^Dvqj zXWa{6A$3~?aZaoqEcUbcj-`9l$(riCGfG+^6ZKBZcHHzQmh5={^^ypU(x4 zt_x%h<@>mWPQ#&}Q_kKzSc~b`bUn+=l>~3owQ8FDabDxRN%=}ieSM}Y2(G`2>Pf54 zJXW{6)i*n2+NPNQ^cPX`Suu?<7l1Fb@N4Y8+PZZeD?d1VP3JJ5`O-#2)PUy-#G(&i z6;hg)?eYcA;vC+&EPYPKpICc23frB+o(nq#^00BXJoi*?r#LgqD6ZiHRz zeJ8;&{hVM+G}?HFM($1)HQTP03{LSlg@ZI{&~FK|^ha0Uxp3=#7;6;-n3%FsptHJZ5$yAFeM4xV)lly4=&^z8b z_;P!@FDB@4eS{O@;~N7wOQ26MhHgAe#YQ2{A9Vyv;-N0n=;-K2`13X9y?sTLJpQjy z)o;ah@0Ea+C5RYb#u*Jh#QmI1u7f5a1O{1s8j!>Sjp^}3*5Rt&Tkf|iB17LV15Qz} z-4|9cm^I;ls)V8Ty-Fyb3F>*L!Mb9Zywfxa z;7*MaE5cy62{w%)*H2# z#7qhYpSR@_>(|U-PK`Z?ZI`yNEMn(aElnF32h1nGDHYP9AO?g{@HEQ;KZ7E@QpNcRZY%j*-fn&3@ z8V0v~BCacRXrE)t(d^XQw~rskSZiGCD9Abme%k7PN#g(ICwPDvJ&B@D7}zP>q^}** zm>*%^vr6aT0koL=ev0Q#fS`f+esQFd(@l%h6E1g582bUxB7*!`0%oYSq)0keZM9#~ z@4f_gha%?z?jDeSw53L*=34y&7nJRu==v-fPEGwS+_m%m6z+=sfHrGZ*F9);e>r&R z(E}ZdlfjXrK>i!&&VAsC&BT{ikC%I)_Ekgk6$xKGmrZm6Nl{N)zi=KpA(tP;t-2{S0Ftb|&sg7FB2` z=qCP*o$NaD%NP$JJteKt*^g1ei<738;Hf8qr8z7^0umB23Q;@wWnE}FT{ntE zl`h&#F}Q@qZTj4w3K(`8Wqcm3)&mW)>{9drVTV|en=06fYKvyC{9)3?iz`1b-B(T` z8Qvs@+fQ!sPH!g8M-yxoBC=GV(+ZfN+jBALl*Dd(zW90p%s4ck#*{Sz4V z82@8?r@)LOA5m@FCZ+*eSzc$e56kCW|KsEs?w0&iAm9-f7k6<2RNig*(xu7|G33QQ zTgc@YN(P;X9d_V>Ws!p#v_00Y#BdM;(>mX|M<{Bi58j`%ct z7Z&Sp)-}jvg3C>3(71UxKf@lxq_+Tqp0xl{u#=LQiXU4By9T{5)VUt)TId)+I56Y*;o3mDh- zUAp>T?B>4ZpVC1Mnwe+~gD*x*%(Y2dI~NvESOH4B!A%T4aboaN(}qHk^E5mqQ%Pn z9skK>TC}-uyYQ9D%94D=)f<*wjn+G|qQAc%ZpN9Ndlj_27~jF#UG*m)nfw}4to#0k zv0zJF@{B`Z!^#6pook%yUuM(*CZw*opN_zoSp#YTc3xXP!RR$SJ3!TMd>T`b)gM(% z1Hbm?`DDJ~JcR~ZV@98;b<@l6kAx+89acy%9Be1?^G}VA(#gxo%kTWdw0NfurbSIe z&WM5ditiz|4DEu|$q{qmd{5fj8|R1xMp!$KHFq~uh!qaAAScy|KP7kSPlk0em{ZQK zQ@e{;INLLc3}h-7ZM8k44g=4_`3$_?kQSBeIX_=|FmdQ{h3ip|dprc0i(plm{WV}- zLcH_9L*aP>O8^4#9tr!m;x$$L&x+R^2_WHZeSQ5Tk2wSLbzzStC34$p>565Gd;S)t z+rBSXq*o&BJah-fm8}UdI`sh_7`z2dcR8CWgHP&bX>h@A`ty}5SEdtkaj=QH^#F73 z8U+R>_!Xqw6cPVJ6;>onSR}0Tb5-|@^I7tb4R&@0W2`_jDGcRSjOsjOb>HLM$@sC( zun;h-m2{;Bea3|qPE}}%Y-jC@V9&kv;e*$Lk;_6qqqCP=ck%TQb}!U&GAk-sQFs3- zS?hEE+UKc4BYZaA{@a5*eAm}++~|@hQH2J~BiP-NZd;c(^YY(J%+IYtLru9xguT{Ex*wfmz~W;jh%5m^YarIqb7EZK=COWdoS-YZS|!1DC=Fm zm+Nt`f!OZkSCwET-||^Q-B|L5S(WjGz&a(>IOh~iHlh|hu3!MJ+DLNV(ctM?dR)cw zN9t;74^jF-X<)%_rGJ+DGZsKZ|9pJrrX_rJ{1@STKI_=(=Nl#q@%#Chxy$WnAs&u6 z{;oGfvoczR^T)`*kb+#~eHes2t(fPN8sj%zks@b*b>mwloOjDUK||)X*>0x#|YN&CYXRtmd@U8@t(B@*EjQP~5y&M-S*&p$(47$)g4xf0!Uof4*F#|5~5H z9JaCUY=%kMK9niwrFwEysp=~r>eXEN_u~ZzS6t|BY-7$TL#d!iaDkpn5yr)KUbaT#yN45nqcc^>3B?d1orpbFj^}1Hds=^RqBEHU^IZ z`l0dOUdPZkJsVyYEN~=|R&Ac!LcTz}=6o zdYc$R2S4cOiycyW;3*6aAK?4F@2}x^mfM3Ezb3*c=>2n{{UFO#@G4oho58H0HDd;3 zOYm+uaw$>_&u_9S8>aH4>At(^LdJ)hG4&SMi0xIua2~s<0&N%{ zAK$GI3OkSfx%E<|?$$8-U3JO%DRI;;ZGT3V;cjKxnGpexyzM0ltMtH z;x)057}*N;I$sbZXlj{P>lD?`X>Zof>MLy}=E$c%;yEhcu&1tgbmYvAt!}$&_U*<{9g_s$?geQ>p(X>mJwI?$k`AAe zb!4h}`Z;spyj4|HME*Kb>ZX0nG0r>2Om}f*oB~gv43QUGaBBPS1_UsQhgVjrN5^vW zgf=)rPYN!J@sVxXmEf9-&ApKg0hgwMV(ZsYfY1p39tI5j$6wi|U%tF&FjaTz0cTS5 zk-ROY0Wt}CGmrY*--JPA1i97|p$ zFT#5>zYm00k$H2bHm(cn>%Xs6zgJe~jYXaqHQ<+K3}kje!;YH5cIRlAcX=wYZhc4w z>-&_l_>L?qx5RY8%b8Zd>lOGiuH372%nZhA9ME!2b!M(0))zjz!#1mNaE$|t#0ykr zkT`qx>sW#HVDPBeZUz!ghCE!dwk{ZMt@!Ngb@}Jd)9W_tV>M% zS5u^vNJ`0{GNmiu)c<^(BsTp1eM|=(AI+zr>CQ;-lR_~(MINNoJNOsL5Er%qxpVlNA#hwn%C2t_9n4@cz(@ZG9v$m8!IF>D+vGKeb?_vFlb1D=4=BT(eR63-c7v*t9H@qP0!kbd@71o--T zM~}U3MYL#82G0jTX5z@Eu4}HX34F8GDjJ!WREpB5k}gkD1jWBW%p;;g$uN(ObN+S$ z$T^i6bNoh!7w!gclMF_kZA%Y6DaeS6eu>n1AKNX{HWeGqtP-d^K56?)+$zuMSv(V~ z2BtOH6*tlyNU6i193+jH?7pnh8D}j0=&Ht%lgjxK&$OSd1VVdoM_SP!fL`?>-DD3&l36YJ*qR|@ZPS1)HW+Bg?3dIl&M_Y=@ZiCj z5_%-4Db~!VkgA(*l3>{z@4|@{b@KsA<{-q?-Pqt5ar$+3>BIZ?aXN5YWiw|=Sh?49 zi%S=`7t_ds;E{1fQ0XutNJF5|QJ>E3=77-Wm>FMc!=M)Jl9XEU&cOK^?nc|v@g4kgehI7(`LKZsTWfay; zXPEZrM!Q7b+c1Cqtoe@{Iqu9Hj}bL;)gq0hC)Dm`)ihy0fMB#^WzbiMA7nZ}^)XUS z)wR2g5%xjj!-CVb2MVJMjg9L@5IrvV$&4Z;J zoIVZ@rmm1M2d=YtwW}McMjPsJIg~9Wq9YM*%t^XEyGCao#mBQIs9=rE6-~-nuwXD3 zp1dVtdMDv9!H|8_d;E7;TNusA_EFsm?1jb(zMfRVCTU2t*FsECw<2BP0Nbgx7%Qqj zyNV;W4h3G|SR2n*`tS{AnL2bE>TtcdByBUQtX;unX(Q`#MdNdGUsZu=3yHU(mO@Jf zd1(zita#`fze9_nv&T$R8qRBkecU6P-N4s|O{$f%3ofY;69!9dGdVL-%+11gGIA8d zncHSX!xEo-B7P@{nh~S*#KAUSK=eB#3XN+mQ@Es&2|u&_c!@99U{E1R#q?H>V%2n; zEbgj}O)rcvnLxQ->tM8-YHv73rBXfmD;^y2roCICyzUMvOH5RU?$m5l+(;4N^L|mJ z-A!$e&~Ta{2I~2>{^Q*_EQ|#$4#-M`;OFl2oqcie!@K|RVb1mIyDI{UkzyMydnp<9 ztg_XY>mNVfzWYjgN{Yw9gAez$^D;sBh?QW!!It4} z%88VuGH?AFLv(*5BO5+No;unxZ!$_p) zx@*|XG-dclmqli_;X4m^SzO=PR9`O)O2RFHLaA*NbzbP<*0?hRZg9XypIm(gPL^Ynt_crm}o-7TWmg_^Wv^(zpa|z0bKqjx44Z9A>2Zbj_I#rVv?NW zp2?cIWEH+lO-+rSK5BnE8BrSV87oB7@7$5s@UZmTA=G4KXlQzMv)TB^^<$1OUkQmY>BWKR+2_C*}g%i!yWaGHjj)CJlkSh;|tE8ta;<01T zb0e_Jx=!cl;X`3**MG>fDh5A>j5)_!afg@cXwGJn2&Y@?`%Hl$Ab;DzXr>5rSMU6b)X_Y)m!O1FT`NL4{wkFALYSGTjX6ZOBaIM!A?c=#~JE&k%g zv55(>Cns1*l|J}Dr&EUm0aq2Gh3d0Dcmc*iSf~y*E9N(Mp_|!VE%fMKKimFRDs}Hl zRCKj%+Io6ivABdX6joBgHrKHtZd^+}w=VqhmGbl?lAXf;?Z>#!tIT})vgXa)vX94R zyH0pM_&oc>;x*@FDo0Cc!9FoX#jkO}y=z8)bLp46&Uza%I&1SqQw`T5_RDOfh;Dh_ z!?|{C&g;kK-k1jVnXQI27rly`>{fVVeEbm2`DJD%=ty*q#i1jfhvN7(3q$%|BG2jS z>Wa)?^nmGA`4$>^z1PB44@}1SvtLVJpti6PN8eSh8P_xEQs_aa-k;PRTLru^g&n%_ zsX%IVPRMR?xhPC6Q_c;sybd~uk?CY}dK$}UZ9!tNDNs?>p|HZ~d)2?ZA&;*3Z;=^tPsUX z49c6!^84e)D%$WqI&)vn1igBex*~R*O|=5J^xK?-DN>csU>&F*POro__01lV6%t}6 zPDv9!*lR{{3pBx?6-Mm&f{%ZTW#4!^8DcL#fB#RI7HetMU}>1h6}D4Bz=s|no0WP# zYwhn3K{blF3Cg)r+a@`5h!`02}+*Nt6E zcd&yBPQTDJvkp$X1ob_98D={eocn$3<9u@*g1c?SdfNdD$ZS-#E^&JV&YEM;?q1x~ zsCy7ybrr+$#u?k}diNe*<8CWyIh7Uy>;NXIfHzafQ$qzme+KV3#f7^9^~%|9KwTKE zQd1cq^ZdSe?NAu@d0r2mpGnj2+R}CxWH^Gq`Lr7PE@8S&W1F6W*av(-H*m& zH5VK9$KERvf-(T9pMAB?^_uKY|8z3aCp~%}Hd3iO&i=`Mpd%l0b)|rxXVlL}Obi1U zD>5#r{GRU!6>^~Jl5)!sl(|*?L?g{6O}{rPBeilK(5D=_0jWl<3065@nf)&I4zOMF z2xIi5GGzZoA>VUE2W4PL@j2K0=va*n%SQr^^ff+3VS6vpXeMvqlza%gDg!j+R4Yzd!>u$ticwuM|fwnqqeu%JuW0DY$T- zG4&F%tqNAL);oLcSj?F&Jch_W#ZS`to#)QHyA;zF_H+n|>azU@%0cD|qJlO)f`?dr zf=L=PvuH>_RJg!);}LmoZq8BND4n)8xJdI?z$&72WsBUP`Hl9O`le0vmv7^| zfHZJplf1zhHjyO9Dkqb5Qms2oeTyBWA8}efh$H+IY%k+VQp*eTZA?vBk0f$mQT7#T zz3UdRGeHG13o-qbe#rmsiQ<%upRQvDS1PPmhB2v|-QyNofR0V}Guw)QKs>(bX`fNn zhz&V3Ha0d)+@3aa2E^U?_NgGB!P>v(B#nz(usJ=;dc8$iddY2Dk6KT0{aAd!PD*9` z?}hQR2N%F(h~<{e0`i%=Id_Y3+4))bI3$jsz`!ya(v5Xx{HwQ>-7PEI_MP?k)3i3T zmIs_4f+eI$Vy3+!^Cz_dW|@*?x2#>emL%Pi3hBwt9j9cA_fpkbcNFQv`Zr;OQQVq6 zenpXLviqbh3}3c_|1W!%rXq>yw%9`U??I-ZxZm6J+6WD08~M^M9)rXVb)=hH4osvI z7OfQlfe=o1cA9>jiX zHtB|u^34z^K)R3JaxsIT89F#PeE7V5rFgDvYJF!KZ!7sviJ5x;35S*Ai7fi~`lJ{I zP7r^r3v*4WRp4t1N=r{65@Cw7ZA6D4Tw;XWP$p~`#Xu2?;=#cr9J2T9+0!ULUR+x& z3y4{IR~q%;F@&N1>qhJq9M$<<4;ve{3kjWfCL;ZQW+u3^Y$v-C%VkhlE^NAtFEKH6 zYG8bPd}zq!@Zqr>0}~PyF!5dP6MCIx0ze6NBRIV~_+srmkF3cBEW0MkA&_65?gZA{I?F$Y8!N zqwEE%9bh8Z&>R+wEiOWZEEh&%bULY=a4OuOuca?}ea|B@oX%QwU&vv}jS$Fj92S{T z+;8#EQvF&85+_boVwlv%y=!w^J3AUG$H>AX6H_g z3mp1g!25nwXQn2)qUNpL_#O-0B0pcAG5F=6E52~(Lw_aT=W)B^5$A^C*OI31HFAEF z3A#AGmxZkS#bduEY^5bn9UBl3l5c2pmc61#>0JE{$u7omxh|#`Xj`uaU!_tR>+y#v zDtjNmtQK=48~{XlMc8bfa}X8^+PGBOou*PHdGVf|#<1HmrU`$6z;_Py?L@)mYg$+J zd*R^D1FmB-78w3Hz^E2}Oi`Z+24U4x)b4b7TCU{mbpfcL%$_uh4k>6zRXeYGa$Wn+x&gZs7MKU!JDs zbI8*tocV8W@n?bL(*Glo62yo~_W%5^gbPE5-Ov1e#i>>L|C8VH|MDPk$#y1QXA?2z zuqZAo`_&Qp``Wr^;n*x!iLVcpy5oHx?H~Pj2y-PgS)~PfxAFE#c8ajuIy&Zajh{n3?DRy4f_0W< zD4(cuDf=N}_HuKF&7hzM(_ zdw1?Ue)2?r7_Kwt0DoziyA!-`-M2Z<23qi+q5oSs`8K&wIZq zfA;caAWC@6R^+rO{gGuP4#K~uL*qw2M*rOKn3y7VN6-@ANcqEuATqJb(oveKt6T8g zdWxKN&+=ff3^qTSQYUWT!Fz8*>b3BDS;)%Mh8I*o+&O0|RGx6*LWG^O8|`HTpDeoV zwL+Z%2xcP}G=EK)xU@yF@LT7a(xk4alrqa|086@yMq%vTyBHF6?<(Ss`wMYpC{=@d z(D%)affiw2JEcY$2bSyWZ%mNkL`L|abjH_HKYd+5)Mo+$dOW3G@fpTsn z<8*q$)vMLP^GEjYe+T&tcC}tZ(dMEssvLFg+A!{|-Y^W>!pD73;sGFp%`MSrQSSRq zB({*@Z3HEXRAY)j;XAEUwWp?M&<4R0$53;UR`+j6>G?*>C*!nC{2L$<%c(`II_ZByT2XfLa|E0Y4$0VuF_KNk<3E3K+Q& z>ChFd2>Wy&Z7wmpk`YLYy6)rsyUctgqZ1Z~90!+2_<^gxzkf&IE0(Nx1U_JGd|4%) z1vj4Q%^Icy#PSkDHbe_w3WdFz{Y*^EanQD~LkcwyNWl0sB86X0!jA@CIy$L8LAb!z zk!OA*`r*Ul9v->(t=2B5aWO!Mkk#G5B)ME3?CAA3bF8{b|!9UKeZlv zqz=f^9~~B+SLg&2(T@+YE?-Y5%O+y!@BzZOS0#{@9KMu?u73W1WR0YSdnI~q%l~J& z?{Aj;|04w^lo8mG(oK%vn@Q@L#Es{|c;FTMQ|?+t`d8fY7Rg$R>`u+!ws-H9>gwu4 zAGB8YeJ;$tOx-I<{In2exZmdHxQcauT65K-<_3ZPX`Hd1G%u0O5|Ag*Y@kNdTf;Qq z$O4(OO)n&<9tL>XSmI?{uuNv`VWTG@U3NEv-oPm$e zG*GV6!|Yv;myYc_^nGZ*(ca?(Vtq{5oVQSr3h`3BIGc6gs^IVSZK00ea3&H^Dae{| zxa_At+p<*b@8IO%XlQB*nR~h4!Z8kYyyvC8w0_F)AWhuxae>uN9nVG1BKI|N&Us1J z^7cDQdga86@7M{5$e~TD8J<3wd-#QJHRC|;!^6#`62C_t6^&&BYLtXjR9NCJOMeB4 zoRfgV-LmnY(cDX~jQ`xmgvXL9c66+zqoexTFam9!_+p*YlfI2c;_(L@)}ZcsikH*d zhZ_nYIeH>RGqftNRWli>7IXdeD?qPnP6vdQ!!sxyI{z37u4@M@1>$yGQu>Hu+;}xA zsm)8j3?m|tT7^wopFFYF57>nnCKmZ6Fzsh9jWNwy`*dYC^ioMr>)N!h$KdO1OWH^Y zMha`)z70lXDD-D$aA`4TXzS=`_OZ6MMyrO`2L>tC-ws%N$BqhA82Ax%RIp}s?y3Up zgh;W5UxO@#N*@D!LS!Ean}Je58ldB4nw1jn;}%l3MOrF7_&WdoUfI-PNdE5JyH^dB zLjVsuJEGA#CIKoz=T}fr5E9Blr*6pYQ4u^Zm#B^D5P&~eg?hNUo*q9rhjs-A2n(X+ zm6V>Fj+s6wAl8n_fB2&slzj%RQM7&=y9LVb0Q_B-U_6^WOJ9pZYJGRNye(azPU3B; zqeqYKDRK(qmJ$%q+S<)Y;{wi8mM_u(13fS{A&Tfn>_xhga>lLU0jCHBiphL@`Yd0> zDNIP&Ito~MqW(Ta6w1Lj@_2b8X;O@sXHpL z77>q^mB+WRX+cllcPoGQ19P`Hqyy?I(r%<}!N}MSGGxV!ZJo8XG^G77s$j#>@Lf8a zJgF)I%E|!{E#NYNK$WoG@m?|X!S3O>p?fa!w35LG*54OL>|q%-oZ-BQ@qbebwlTm2 z56{lz&jCHJqVaROzS6`zk;bz+CT6u<)b~clQhZrP=Qmg$Qb}Q zL|qCxr-)oLP}66t;Z;(YsDkBUzc8TkeKv`+B)h*&3Em49-mmY=f;ZR}pL!ZNGw#dH zoPPFvVmR;yCz9|6gG+JicXYXjVLc0?!YMRjLZrkEs7s(^`iS zDR7k$DfTgE2}KfT>wo`CvS)t(^D;MYZhfL{S^B?{jA#+%BZgvMd?t1p95U-1oaoNE_NDKuU`Y^8$^WTgT%_Nc`Sa6Gh3f2O_{V75 LF1r&IqIY&lYg literal 23293 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 diff --git a/docs/images/StorageEventLoadingSequenceDiagram.png b/docs/images/StorageEventLoadingSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..fdb9581dd7c1634ba8249e2ca32ee91223d0b5ff GIT binary patch literal 23812 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 literal 0 HcmV?d00001 diff --git a/docs/images/StorageEventSavingSequenceDiagram.png b/docs/images/StorageEventSavingSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..945397f583a9f0faab17d1f2ee804f385d1ed49d GIT binary patch literal 12085 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 nf>AY!eLuiv5z_JeVeY&&D|%`$|15` literal 0 HcmV?d00001 diff --git a/docs/images/StorageParticipantSavingSequenceDiagram.png b/docs/images/StorageParticipantSavingSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..ce3fd2f85bbc4eee3d46850fc8b1301a305d17e0 GIT binary patch literal 26293 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 XFQUWGvVHOY$B<0dZ>C?S*#-X(uDV3X literal 0 HcmV?d00001 From 30f0749c82b1e6e577eda6a3094666c09364e021 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 2 Nov 2024 22:05:10 +0800 Subject: [PATCH 370/619] Update user guide with storage details --- docs/UserGuide.md | 55 ++++++++++++++++++- .../seedu/manager/storage/FileParser.java | 3 +- .../manager/parser/ParserIntegrationTest.java | 6 +- 3 files changed, 60 insertions(+), 4 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index fa9a4dfcff..3382d6fa2c 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -23,7 +23,6 @@ Enter a command: * Words in `UPPER_CASE` represent parameters that are to be supplied by the user. * Parameters listed have to be entered in the specified order. * Extraneous parameters for commands that do not take in parameters (e.g. `list`) will be ignored. -* Events information and participants information are saved after each user command ### Viewing the command list: `menu` @@ -204,6 +203,60 @@ Exits the program. Format: `exit` +### Saving of program data + +The program saves its stored data into three `.csv` files in the same directory as the application `.JAR`. + +These files are as follows: + +* `events.csv`, which stores data on the `Event`s stored in the program, +* `participants.csv`, which stores data on the `Participant`s for all `Event`s, +* `items.csv`, which stores data on the `Item`s for all `Event`s, + +The data is saved after the execution of every command and upon program startup. + +### Loading of program data + +The saved program data in the aforementioned three files is loaded into the program upon program startup. + +If any one of the files do not exist in the directory, the file will be created when the data is saved. + +### Editing of saved program data + +Experienced users may feel free to edit the saved data in the `.csv` files. + +The program data is stored in the following format: + +For `events.csv`: + +``` +EVENT,TIME,VENUE,PRIORITY,STATUS +``` + +* `TIME` must be in the format `yyyy-mm-dd hh:mm`. +* `PRIORITY` must be either `HIGH`, `MEDIUM`, or `LOW`. +* `STATUS` must be either `Y` or `N` + +For `participants.csv`: + +``` +PARTICIPANT,NUMBER,EMAIL,STATUS,EVENT +``` + +* `STATUS` must be either `Y` or `N` +* An entry for the `Event` corresponding to `EVENT` must be present in `events.csv`. + +For `items.csv`: + +``` +ITEM,STATUS,EVENT +``` + +* `STATUS` must be either `Y` or `N` +* An entry for the `Event` corresponding to `EVENT` must be present in `events.csv`. + +If the above format or parameter constraints are not followed, the `Event`, `Participant` or `Item` corresponding to the file line will not be loaded upon program startup. + ## Command Summary * List all events: `list` diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index 09113877e0..43534101e0 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -109,7 +109,8 @@ private void parseEventFileLine(EventList events, String line, DateTimeFormatter Priority priority = Priority.valueOf(parts[3].trim().toUpperCase()); boolean isDone = getIsMarked(parts[4].trim()); events.addEvent(eventName, time, venue, priority, isDone); - } catch (DateTimeParseException | IndexOutOfBoundsException | NullPointerException exception) { + } catch (DateTimeParseException | IndexOutOfBoundsException | NullPointerException + | IllegalArgumentException exception) { logger.log(WARNING, "File line cannot be parsed, event not loaded"); } } diff --git a/src/test/java/seedu/manager/parser/ParserIntegrationTest.java b/src/test/java/seedu/manager/parser/ParserIntegrationTest.java index b2d68e19ba..47d61be567 100644 --- a/src/test/java/seedu/manager/parser/ParserIntegrationTest.java +++ b/src/test/java/seedu/manager/parser/ParserIntegrationTest.java @@ -10,7 +10,9 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + class ParserIntegrationTest { private EventList events; private Parser parser; @@ -75,4 +77,4 @@ void parseCommand_markCommandMarkEvent_success() { assertEquals('Y', events.getEventByName("Event 1").get().markIfDone()); } -} \ No newline at end of file +} From a2e19f4cfe9c88efcb22189dbaa1727fe3225533 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 2 Nov 2024 22:26:24 +0800 Subject: [PATCH 371/619] Add JUnit tests --- .../seedu/manager/storage/StorageTest.java | 119 +++++++++++++++++- 1 file changed, 117 insertions(+), 2 deletions(-) diff --git a/src/test/java/seedu/manager/storage/StorageTest.java b/src/test/java/seedu/manager/storage/StorageTest.java index 801513f3e5..413c698a2d 100644 --- a/src/test/java/seedu/manager/storage/StorageTest.java +++ b/src/test/java/seedu/manager/storage/StorageTest.java @@ -18,20 +18,23 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; - +//@@author KuanHsienn public class StorageTest { private static final String TEST_EVENTS_FILE_PATH = "test_events.txt"; private static final String TEST_PARTICIPANTS_FILE_PATH = "test_participants.txt"; private static final String TEST_ITEMS_FILE_PATH = "test_items.txt"; private static final String NON_EXISTENT_FILE_PATH = "non_existent_file.txt"; + private Storage storage; private EventList eventList; + private DateTimeFormatter formatter; @BeforeEach public void setUp() { System.setProperty("test.environment", "true"); // Set the system property for testing storage = new Storage(TEST_EVENTS_FILE_PATH, TEST_PARTICIPANTS_FILE_PATH, TEST_ITEMS_FILE_PATH); eventList = new EventList(); + formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); } @AfterEach @@ -99,7 +102,6 @@ public void testLoadEvents() { @Test public void testSaveEvents() { - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); eventList.addEvent("Meeting", LocalDateTime.parse("2024-10-25 10:00", formatter), "Conference Room", Priority.HIGH); eventList.addEvent("Workshop", LocalDateTime.parse("2024-10-26 14:00", formatter), @@ -123,6 +125,119 @@ public void testSaveEvents() { fail("Exception should not be thrown when reading the saved file: " + exception.getMessage()); } } + + //@@author jemehgoh + @Test + public void loadParticipants_validEntry_success() { + try { + java.nio.file.Files.writeString(java.nio.file.Paths.get(TEST_PARTICIPANTS_FILE_PATH), + "John Doe,9451 3230,jdoe@gmail.com,N,Meeting\n"); + } catch (IOException exception) { + fail("Failed to set up the test data file: " + exception.getMessage()); + } + + eventList.addEvent("Meeting", LocalDateTime.parse("2024-10-25 10:00", formatter), + "Conference Room", Priority.HIGH); + + try { + storage.loadParticipants(eventList); + } catch (IOException exception) { + fail("Exception should not be thrown when loading events: " + exception.getMessage()); + } + + assertEquals(1, eventList.getEventByName("Meeting").get().getParticipantCount()); + } + + @Test + public void loadParticipants_invalidEntry_failure() { + try { + java.nio.file.Files.writeString(java.nio.file.Paths.get(TEST_PARTICIPANTS_FILE_PATH), + "John Doe,,,jb,\n"); + } catch (IOException exception) { + fail("Failed to set up the test data file: " + exception.getMessage()); + } + + eventList.addEvent("Meeting", LocalDateTime.parse("2024-10-25 10:00", formatter), + "Conference Room", Priority.HIGH); + + try { + storage.loadParticipants(eventList); + } catch (IOException exception) { + fail("Exception should not be thrown when loading events: " + exception.getMessage()); + } + + assertEquals(0, eventList.getEventByName("Meeting").get().getParticipantCount()); + } + + @Test + public void loadItems_validEntry_success() { + try { + java.nio.file.Files.writeString(java.nio.file.Paths.get(TEST_ITEMS_FILE_PATH), + "Black pens,N,Meeting\n"); + } catch (IOException exception) { + fail("Failed to set up the test data file: " + exception.getMessage()); + } + + eventList.addEvent("Meeting", LocalDateTime.parse("2024-10-25 10:00", formatter), + "Conference Room", Priority.HIGH); + + try { + storage.loadItems(eventList); + } catch (IOException exception) { + fail("Exception should not be thrown when loading events: " + exception.getMessage()); + } + + assertEquals(1, eventList.getEventByName("Meeting").get().getItemCount()); + } + + @Test + public void saveParticipants_validItem_success() { + eventList.addEvent("Meeting", LocalDateTime.parse("2024-10-25 10:00", formatter), + "Conference Room", Priority.HIGH); + eventList.addParticipantToEvent("John Doe", "9451 3230", "jdoe@gmail.com", "Meeting"); + + try { + storage.saveParticipants(eventList); + } catch (IOException exception) { + fail("Exception should not be thrown when saving events: " + exception.getMessage()); + } + + File file = new File(TEST_PARTICIPANTS_FILE_PATH); + assertTrue(file.exists()); + + try { + String content = new String(java.nio.file.Files.readAllBytes(file.toPath())); + String expectedContent = "John Doe,9451 3230,jdoe@gmail.com,N,Meeting\n"; + assertEquals(expectedContent, content, "The file content does not match the expected output."); + } catch (IOException exception) { + fail("Exception should not be thrown when reading the saved file: " + exception.getMessage()); + } + } + + @Test + public void saveItems_validItem_success() { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + eventList.addEvent("Meeting", LocalDateTime.parse("2024-10-25 10:00", formatter), + "Conference Room", Priority.HIGH); + eventList.addItemToEvent("Black pens", "Meeting"); + + try { + storage.saveItems(eventList); + } catch (IOException exception) { + fail("Exception should not be thrown when saving events: " + exception.getMessage()); + } + + File file = new File(TEST_ITEMS_FILE_PATH); + assertTrue(file.exists()); + + try { + String content = new String(java.nio.file.Files.readAllBytes(file.toPath())); + String expectedContent = "Black pens,N,Meeting\n"; + assertEquals(expectedContent, content, "The file content does not match the expected output."); + } catch (IOException exception) { + fail("Exception should not be thrown when reading the saved file: " + exception.getMessage()); + } + } } From 0659954936831b2012e34470ff490d80531e50ee Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 2 Nov 2024 22:36:11 +0800 Subject: [PATCH 372/619] Add logging for invalid event errors --- .../java/seedu/manager/storage/FileParser.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index 43534101e0..6f3ac90d8d 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -132,7 +132,9 @@ private void parseParticipantFileLine(EventList events, String line) throws IOEx String email = parts[2].trim(); boolean isPresent = getIsMarked(parts[3].trim()); String eventName = parts[4].trim(); - events.addParticipantToEvent(participantName, number, email, isPresent, eventName); + boolean isLoaded = events.addParticipantToEvent(participantName, number, email, + isPresent, eventName); + logOnUnsuccessfulLoad(isLoaded); } catch (IndexOutOfBoundsException | NullPointerException exception) { logger.log(WARNING, "File line cannot be parsed, participant not loaded"); } @@ -152,7 +154,8 @@ private void parseItemFileLine(EventList events, String line) throws IOException String itemName = parts[0].trim(); boolean isPresent = getIsMarked(parts[1].trim()); String eventName = parts[2].trim(); - events.addItemToEvent(itemName, isPresent, eventName); + boolean isLoaded = events.addItemToEvent(itemName, isPresent, eventName); + logOnUnsuccessfulLoad(isLoaded); } catch (IndexOutOfBoundsException | NullPointerException exception) { logger.log(WARNING, "File line cannot be parsed, item not loaded"); } @@ -174,4 +177,15 @@ private boolean getIsMarked(String markStatus) { return false; } } + + /** + * Logs a warning message if a file entry was not loaded. + * + * @param isLoaded {@code true} if the entry was loaded, {@code false} otherwise. + */ + private void logOnUnsuccessfulLoad(boolean isLoaded) { + if (!isLoaded) { + logger.log(WARNING, "Associated event not found, entry not loaded"); + } + } } From 7fbfa54b432959b4e3812ead9cdac4e7dfee4194 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sun, 3 Nov 2024 14:31:32 +0800 Subject: [PATCH 373/619] Add copy feature to DG --- docs/DeveloperGuide.md | 27 ++++++++++++++++++- docs/diagrams/AddEventSequenceDiagram.puml | 2 +- .../AddParticipantSequenceDiagram.puml | 2 +- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 9d938c3cf6..67f99863c8 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -240,9 +240,34 @@ The `Parser` then checks this parameter for two values, `done` or `undone`, and If the parameter value is `done`, the `MarkEventCommand` will set the event as done, and will do otherwise if the parameter value is `undone`. Any other values entered for the status parameter will be treated as invalid. +### Copy Feature + +The copy feature allows users to copy the list of participants from one event to another. This feature is implemented in the `CopyCommand` class, which extends `Command`, +The `CopyCommand` copies participants from a source event to a destination event if both events exist in the event list. + +The main operations for `copy` feature include: +* Checking if both source and destination events exists in `EventList` +* Verifying that the source event contains a non-empty participant list +* Copying the participant list from the source event to the destination event +* Displaying an appropriate message based on the outcome of the operation + +The above operation is implemented as `CopyCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, +and is invoked when the latter operation is called. + +#### Feature Implementation + +Given below is an example usage scenario and the behaviour of the `copy` feature at each step: +1. The user enters the command `copy EventA > EventB` to copy participants from EventA to EventB. +2. `CopyCommand` calls `CopyCommand#execute`, where it attempts to get the participant list from EventA, and copy the participant list over to EventB if there are existing participants. +The interactions between components of `CopyCommand#execute` are shown in the **Sequence Diagram** below: + + + +3. Upon execution of the command, the output message of `CopyCommand` is set to inform the user if the participants list has been copied, + or if the operation was unsuccessful (e.g. if the participant list that is meant to be copied is empty). + ## Product scope ### Target user profile - The target user: * has a need to organise a large number of events diff --git a/docs/diagrams/AddEventSequenceDiagram.puml b/docs/diagrams/AddEventSequenceDiagram.puml index 2cc903f8c6..769ca8c83d 100644 --- a/docs/diagrams/AddEventSequenceDiagram.puml +++ b/docs/diagrams/AddEventSequenceDiagram.puml @@ -1,6 +1,6 @@ @startuml -Main -> Parser: add n/Meeting t/2023-11-10T14:00 v/Room 101 p/HIGH +Main -> Parser: add -e Meeting -t 2023-11-10T14:00 -v Room 101 -p HIGH activate Parser Parser -> AddCommand: new AddCommand("Meeting", time, "Room 101", Priority.HIGH) activate AddCommand diff --git a/docs/diagrams/AddParticipantSequenceDiagram.puml b/docs/diagrams/AddParticipantSequenceDiagram.puml index 24c975d042..80470c7821 100644 --- a/docs/diagrams/AddParticipantSequenceDiagram.puml +++ b/docs/diagrams/AddParticipantSequenceDiagram.puml @@ -1,6 +1,6 @@ @startuml -Main -> Parser: add p/John Doe n/Meeting e/johndoe@example.com p/12345678 +Main -> Parser: add -p John Doe -e Meeting -n 92561352 -email johndoe@example.com activate Parser Parser -> AddCommand: new AddCommand("John Doe", "12345678", "johndoe@example.com", "Meeting") activate AddCommand From 8f8b4926a77389e61e961c8fa2e35aef1777048c Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sun, 3 Nov 2024 20:14:29 +0800 Subject: [PATCH 374/619] Add sort feature to DG --- docs/DeveloperGuide.md | 46 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 67f99863c8..8100d35452 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -266,6 +266,41 @@ The interactions between components of `CopyCommand#execute` are shown in the ** 3. Upon execution of the command, the output message of `CopyCommand` is set to inform the user if the participants list has been copied, or if the operation was unsuccessful (e.g. if the participant list that is meant to be copied is empty). +### Sort feature + +The `sort` feature allows users to organize events in a chosen order based on different attributes, such as name, time, or priority. +This feature is implemented in the `SortCommand` class, which extends the `Command` base class and utilises a keyword to determine the sorting criterion. + +The `SortCommand` supports the following sorting options: +* **By Name:** Alphabetically sorts the events by name +* **By Time:** Orders events bases on scheduled time +* **By Priority:** Organises events by priority level, with the highest priority appearing first + +The above operation is implemented as `SortCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, +and is invoked when the latter operation is called. + +#### Feature Implementation + +The `SortCommand` class is constructed with a specified sorting keyword and performs sorting operations based on this keyword. +Given below is an example usage scenario and the behaviour of the `sort` feature at each step: +1. The user enters the command sort followed by a keyword (name, time, or priority) e.g. `sort -by name` to specify the sorting criterion +2. `SortCommand` calls `SortCommand#execute`, which based on the keyword invokes one of the following 3 methods + * `sortByName()` - Sort events alphabetically by name + * `sortByTime()` - Sort events chronologically by time + * `sortByPriority` - Sort events by priority level + + After sorting, a success message is appended to `outputMessage` which indicates the sorting criterion used +3. The final sorted list is then formatted and appended to `outputMessage`, + which is subsequently stored in `this.message` and displayed to the user. + +The interactions between components of `SortCommand#execute` are shown in the **Sequence Diagram** below: + + + +### Filter feature + +### Find feature + ## Product scope ### Target user profile The target user: @@ -291,10 +326,13 @@ The user is able to organise and manage his events more quickly and efficiently | v1.0 | user | remove participants who are no longer coming to specific events | efficiently keep the participant list for that event up-to-date and relevant | | v1.0 | user | view the participant list of an event | know who is involved | | v2.0 | user | mark events as completed | easily track all past events | -| v2.0 | user | mark participants present | know exactly who signed up but did not attend the event | -| v2.0 | user | save events info | can still access the information if the program terminates | -| v2.0 | user | filter events by keywords | can find relevant information efficiently | -| v2.0 | user | edit event details | can update latest changes to events | +| v2.0 | user | mark participants present | exactly know who signed up but did not attend the event | +| v2.0 | user | save events info | still access the information if the program terminates | +| v2.0 | user | filter events by keywords | find relevant information efficiently | +| v2.0 | user | edit event details | update latest changes to events | +| v2.0 | user | copy participant details across events | update events with the same participants efficiently | +| v2.0 | user | sort events by certain order (e.g. Priority) | visually view events in a certain order | +| v2.0 | user | find if a person is in a certain event | quickly confirm a participant’s involvement in an event | ## Non-Functional Requirements From 05a25eabfed3dedbc83e54cd8c1cc1d0ccc1e28a Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sun, 3 Nov 2024 20:49:25 +0800 Subject: [PATCH 375/619] Add find feature to DG --- docs/DeveloperGuide.md | 28 +++++++++++++++++++ .../seedu/manager/command/MenuCommand.java | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 8100d35452..d96724bef6 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -299,8 +299,36 @@ The interactions between components of `SortCommand#execute` are shown in the ** ### Filter feature +The `filter` feature allows users to filter events from the event list based on specified criteria. +This feature is implemented in the `FilterCommand` class, which extends the `Command` base class and uses flags to determine the filtering criteria. + +#### Feature Implementation + ### Find feature +The `find` feature allows users to locate participants within a specified event by their name. +This feature is implemented in the `FindCommand` class, which extends the `Command` base class. +The feature provides detailed feedback, informing the user whether the event or participant was found. + +The above operation is implemented as `FindCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, +and is invoked when the latter operation is called. + +#### Feature Implementation + +The `FindCommand` class performs a finding operation within an event of a specified participant. +Given below is an example usage scenario and the behaviour of the `find` feature at each step: + +1. The user enters the command `find -e EVENT -p PARTICIPANT` to find participants in the specified event given a specified name +2. The `FindCommand` searches for the specified event within the eventList by calling `getEventByName(eventName)`, which returns an `Optional` +3. If the event exists, the method `findParticipants(personName)` is invoked on the retrieved event to get a list of participants matching `personName` + * If participants are found, `outputMessage` is appended with a success message followed by a formatted list of found participants + * Otherwise, if either the event is not found or participants is not found, a corresponding failure message is appended to `outputMessage` +4. The final `outputMessage` is subsequently stored in `this.message` and displayed to the user. + +The interactions between components of `FindCommand#execute` are shown in the **Sequence Diagram** below: + + + ## Product scope ### Target user profile The target user: diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index a7d05e1f44..22f1c5c99f 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -23,7 +23,7 @@ public class MenuCommand extends Command { copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. sort -by KEYWORD: Sorts events by name/time/priority. filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. - find -e EVENT -p NAME: Finds all participants with specified name in an event. + find -e EVENT -p PARTICIPANT: Finds all participants with specified name in an event. exit: Exit program"""; /** From 17f189546c82643ca8f1dea8d6a1790953ee4c88 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sun, 3 Nov 2024 20:54:53 +0800 Subject: [PATCH 376/619] Update EXPECTED.TXT file --- text-ui-test/EXPECTED.TXT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 8762e887af..bf8d513710 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -19,7 +19,7 @@ mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. sort -by KEYWORD: Sorts events by name/time/priority. filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. -find -e EVENT -p NAME: Finds all participants with specified name in an event. +find -e EVENT -p PARTICIPANT: Finds all participants with specified name in an event. exit: Exit program ------------------------ Events saved successfully. From 63097f2a92ea67f23d486654195798faa32050ea Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 3 Nov 2024 23:28:07 +0800 Subject: [PATCH 377/619] Update storage functionality to use OpenCSV --- build.gradle | 1 + docs/DeveloperGuide.md | 6 +- docs/UserGuide.md | 2 + src/main/java/seedu/manager/event/Event.java | 13 +++- .../seedu/manager/storage/FileParser.java | 78 ++++++++++++------- .../java/seedu/manager/storage/Storage.java | 63 ++++++++++++--- .../manager/parser/ParserIntegrationTest.java | 2 +- .../seedu/manager/storage/StorageTest.java | 14 ++-- 8 files changed, 125 insertions(+), 54 deletions(-) diff --git a/build.gradle b/build.gradle index 000d437b3e..d43eab3686 100644 --- a/build.gradle +++ b/build.gradle @@ -12,6 +12,7 @@ repositories { dependencies { testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.10.0' testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.10.0' + implementation group: 'com.opencsv', name: 'opencsv', version: '5.9' } test { diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d1f735997a..18ccb7040d 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -2,7 +2,11 @@ ## Acknowledgements -{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} +This application uses the following dependencies: + +* [OpenCSV 5.9](https://mvnrepository.com/artifact/com.opencsv/opencsv/5.9) to read and write to `.csv` files. +* [JUnit Jupiter API 5.10.0](https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api/5.10.0) for unit testing. +* [JUnit Jupiter Engine 5.10.0](https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine/5.10.0) for unit testing. ## Design diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 3382d6fa2c..5a040b18a0 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -255,6 +255,8 @@ ITEM,STATUS,EVENT * `STATUS` must be either `Y` or `N` * An entry for the `Event` corresponding to `EVENT` must be present in `events.csv`. +All fields added to the `.csv` files must also be enclosed within double quotation marks (`" "`) to be properly parsed. + If the above format or parameter constraints are not followed, the `Event`, `Participant` or `Item` corresponding to the file line will not be loaded upon program startup. ## Command Summary diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index beb5e28ddf..4d5dea2272 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -230,6 +230,13 @@ public Priority getEventPriority() { return eventPriority; } + /** + * @return a String of the event priority. + */ + public String getEventPriorityString() { + return String.format("%s", eventPriority); + } + /** * @return true if the event is marked done, false otherwise */ @@ -286,8 +293,8 @@ public void setDone(boolean isDone) { /** * @return 'Y' if event is marked done, 'N' otherwise */ - public char markIfDone() { - return (this.isDone) ? 'Y' : 'N'; + public String markIfDone() { + return (this.isDone) ? "Y" : "N"; } /** @@ -346,7 +353,7 @@ public String getEventTimeString() { @Override public String toString(){ String eventTimeString = getEventTimeString(); - return String.format("Event name: %s / Event time: %s / Event venue: %s / Event Priority: %s / Done: %c", + return String.format("Event name: %s / Event time: %s / Event venue: %s / Event Priority: %s / Done: %s", eventName, eventTimeString, eventVenue, eventPriority, markIfDone()); } diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index 6f3ac90d8d..7bb29a5d6d 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -1,14 +1,17 @@ package seedu.manager.storage; +import com.opencsv.CSVReader; +import com.opencsv.CSVReaderBuilder; +import com.opencsv.exceptions.CsvException; import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; +import java.io.FileReader; import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; +import java.util.List; import java.util.logging.Logger; import static java.util.logging.Level.INFO; @@ -44,10 +47,11 @@ public void parseEventsFile(EventList events, String filePath) throws IOExceptio try { logger.log(INFO, "Loading events from file"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); - for (String line : Files.readAllLines(Paths.get(filePath))) { + List lines = getFileLines(filePath); + for (String[] line : lines) { parseEventFileLine(events, line, formatter); } - } catch (IOException exception) { + } catch (IOException | CsvException exception) { throw new IOException("Error loading events from file: " + filePath + "."); } } @@ -64,10 +68,11 @@ public void parseEventsFile(EventList events, String filePath) throws IOExceptio public void parseParticipantsFile(EventList events, String filePath) throws IOException { try { logger.log(INFO, "Loading event participants from file"); - for (String line : Files.readAllLines(Paths.get(filePath))) { + List lines = getFileLines(filePath); + for (String[] line : lines) { parseParticipantFileLine(events, line); } - } catch (IOException exception) { + } catch (IOException | CsvException exception) { throw new IOException("Error loading events from file: " + filePath + "."); } } @@ -83,10 +88,11 @@ public void parseParticipantsFile(EventList events, String filePath) throws IOEx public void parseItemsFile(EventList events, String filePath) throws IOException { try { logger.log(INFO, "Loading event items from file"); - for (String line : Files.readAllLines(Paths.get(filePath))) { + List lines = getFileLines(filePath); + for (String[] line : lines) { parseItemFileLine(events, line); } - } catch (IOException exception) { + } catch (IOException | CsvException exception) { throw new IOException("Error loading events from file: " + filePath + "."); } } @@ -96,18 +102,17 @@ public void parseItemsFile(EventList events, String filePath) throws IOException * Parses one line of the CSV file containing event details into a {@code Event} in the given event list. * * @param events the given event list. - * @param line the line of the CSV file being parsed. + * @param fields the fields of the line of the CSV file being parsed. * @param formatter the given date-time formatter (to parse event date and time). * @throws IOException if line cannot be parsed successfully. */ - private void parseEventFileLine(EventList events, String line, DateTimeFormatter formatter) throws IOException { - String[] parts = line.split(","); + private void parseEventFileLine(EventList events, String[] fields, DateTimeFormatter formatter) throws IOException { try { - String eventName = parts[0].trim(); - LocalDateTime time = LocalDateTime.parse(parts[1].trim(), formatter); - String venue = parts[2].trim(); - Priority priority = Priority.valueOf(parts[3].trim().toUpperCase()); - boolean isDone = getIsMarked(parts[4].trim()); + String eventName = fields[0].trim(); + LocalDateTime time = LocalDateTime.parse(fields[1].trim(), formatter); + String venue = fields[2].trim(); + Priority priority = Priority.valueOf(fields[3].trim().toUpperCase()); + boolean isDone = getIsMarked(fields[4].trim()); events.addEvent(eventName, time, venue, priority, isDone); } catch (DateTimeParseException | IndexOutOfBoundsException | NullPointerException | IllegalArgumentException exception) { @@ -121,17 +126,16 @@ private void parseEventFileLine(EventList events, String line, DateTimeFormatter * {@code Event} in the given event list. * * @param events the given event list. - * @param line the line of the CSV file being parsed. + * @param fields the fields in the line of the CSV file being parsed. * @throws IOException if line cannot be parsed successfully. */ - private void parseParticipantFileLine(EventList events, String line) throws IOException { - String[] parts = line.split(","); + private void parseParticipantFileLine(EventList events, String[] fields) throws IOException { try { - String participantName = parts[0].trim(); - String number = parts[1].trim(); - String email = parts[2].trim(); - boolean isPresent = getIsMarked(parts[3].trim()); - String eventName = parts[4].trim(); + String participantName = fields[0].trim(); + String number = fields[1].trim(); + String email = fields[2].trim(); + boolean isPresent = getIsMarked(fields[3].trim()); + String eventName = fields[4].trim(); boolean isLoaded = events.addParticipantToEvent(participantName, number, email, isPresent, eventName); logOnUnsuccessfulLoad(isLoaded); @@ -145,15 +149,14 @@ private void parseParticipantFileLine(EventList events, String line) throws IOEx * {@code Event} in the given event list. * * @param events the given event list. - * @param line the line of the CSV file being parsed. + * @param fields the fields in the line of the CSV file being parsed. * @throws IOException if line cannot be parsed successfully. */ - private void parseItemFileLine(EventList events, String line) throws IOException { - String[] parts = line.split(","); + private void parseItemFileLine(EventList events, String[] fields) throws IOException { try { - String itemName = parts[0].trim(); - boolean isPresent = getIsMarked(parts[1].trim()); - String eventName = parts[2].trim(); + String itemName = fields[0].trim(); + boolean isPresent = getIsMarked(fields[1].trim()); + String eventName = fields[2].trim(); boolean isLoaded = events.addItemToEvent(itemName, isPresent, eventName); logOnUnsuccessfulLoad(isLoaded); } catch (IndexOutOfBoundsException | NullPointerException exception) { @@ -161,6 +164,21 @@ private void parseItemFileLine(EventList events, String line) throws IOException } } + /** + * Returns a list of fields for each line of a {@code .csv} file at a given file path. + * + * @param filePath the file path of the {@code .csv} file. + * @return a list of fields for each line of the file at filePath. + * @throws IOException if the file at the specified file path could not be read. + * @throws CsvException if the reader could not read the file. + */ + private List getFileLines(String filePath) throws IOException, CsvException { + CSVReader reader = new CSVReaderBuilder(new FileReader(filePath)).build(); + List lines = reader.readAll(); + reader.close(); + return lines; + } + /** * Returns true if the given mark status is "Y", returns false otherwise. * diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index e9ac21eb6d..05dcc3c6ce 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -1,5 +1,6 @@ package seedu.manager.storage; +import com.opencsv.CSVWriter; import seedu.manager.event.EventList; import seedu.manager.event.Event; import seedu.manager.item.Item; @@ -9,6 +10,7 @@ import java.io.IOException; import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.List; //@@author KuanHsienn /** @@ -45,11 +47,10 @@ public Storage(String eventFilePath, String participantFilePath, String itemFile * @throws IOException if there's an error writing to the file. */ public void saveEvents(EventList events) throws IOException { - try (FileWriter writer = new FileWriter(eventFilePath)) { + try (CSVWriter writer = new CSVWriter(new FileWriter(eventFilePath))) { for (Event event : events.getList()) { - String eventTimeString = formatter.format(event.getEventTime()); - writer.write(String.format(CSV_LINE_FORMAT, event.getEventName(), eventTimeString, - event.getEventVenue(), event.getEventPriority(), event.markIfDone())); + String[] fields = getEventFields(event); + writer.writeNext(fields); } } catch (IOException exception) { throw new IOException("Error saving events to file: " + eventFilePath); @@ -64,7 +65,7 @@ public void saveEvents(EventList events) throws IOException { * @throws IOException if there is an error writing to the file. */ public void saveParticipants(EventList events) throws IOException { - try (FileWriter writer = new FileWriter(participantFilePath)) { + try (CSVWriter writer = new CSVWriter(new FileWriter(participantFilePath))) { for (Event event : events.getList()) { saveEventParticipants(event, writer); } @@ -80,7 +81,7 @@ public void saveParticipants(EventList events) throws IOException { * @throws IOException if there is an error writing to the file. */ public void saveItems(EventList events) throws IOException { - try (FileWriter writer = new FileWriter(itemFilePath)) { + try (CSVWriter writer = new CSVWriter(new FileWriter(itemFilePath))) { for (Event event : events.getList()) { saveEventItems(event, writer); } @@ -150,11 +151,11 @@ private boolean isTestEnvironment() { * @param writer the file writer. * @throws IOException if the participant cannot be written into the file. */ - private void saveEventParticipants(Event event, FileWriter writer) throws IOException { + private void saveEventParticipants(Event event, CSVWriter writer) throws IOException { ArrayList participants = event.getParticipantList(); for (Participant participant : participants) { - writer.write(String.format(CSV_LINE_FORMAT, participant.getName(), participant.getNumber(), - participant.getEmail(), participant.markFileLineIfPresent(), event.getEventName())); + String[] fields = getParticipantFields(participant, event); + writer.writeNext(fields); } } @@ -165,13 +166,51 @@ private void saveEventParticipants(Event event, FileWriter writer) throws IOExce * @param writer the file writer. * @throws IOException if the participant cannot be written into the file. */ - private void saveEventItems(Event event, FileWriter writer) throws IOException { + private void saveEventItems(Event event, CSVWriter writer) throws IOException { ArrayList items = event.getItemList(); for (Item item : items) { - writer.write(String.format(ITEM_CSV_LINE_FORMAT, item.getName(), item.markFileLineIfPresent(), - event.getEventName())); + String[] fields = getItemFields(event, item); + writer.writeNext(fields); } } + + /** + * Returns an array of the fields for a given {@link Event}. + * + * @param event the given {@link Event}. + * @return an array of the fields of `event`. + */ + private static String[] getEventFields(Event event) { + List fieldsList = List.of(event.getEventName(), event.getEventTimeString(), + event.getEventVenue(), event.getEventPriorityString(), event.markIfDone()); + return fieldsList.toArray(new String[5]); + } + + /** + * Returns an array of the fields for a given {@link Participant} in a given {@link Event}. + * + * @param participant the given {@link Participant}. + * @param event the given {@link Event}. + * @return an array of the fields of `event`. + */ + private String[] getParticipantFields(Participant participant, Event event) { + List fieldsList = List.of(participant.getName(), participant.getNumber(), + participant.getEmail(), participant.markFileLineIfPresent(), event.getEventName()); + return fieldsList.toArray(new String[5]); + } + + /** + * Returns an array of the fields for a given {@link Item} in a given {@link Event}. + * + * @param item the given {@link Item}. + * @param event the given {@link Event}. + * @return an array of the fields of `event`. + */ + private String[] getItemFields(Event event, Item item) { + List fieldsList = List.of(item.getName(), item.markFileLineIfPresent(), + event.getEventName()); + return fieldsList.toArray(new String[3]); + } } diff --git a/src/test/java/seedu/manager/parser/ParserIntegrationTest.java b/src/test/java/seedu/manager/parser/ParserIntegrationTest.java index 47d61be567..7f9550b0eb 100644 --- a/src/test/java/seedu/manager/parser/ParserIntegrationTest.java +++ b/src/test/java/seedu/manager/parser/ParserIntegrationTest.java @@ -75,6 +75,6 @@ void parseCommand_markCommandMarkEvent_success() { command.setData(events); command.execute(); - assertEquals('Y', events.getEventByName("Event 1").get().markIfDone()); + assertEquals("Y", events.getEventByName("Event 1").get().markIfDone()); } } diff --git a/src/test/java/seedu/manager/storage/StorageTest.java b/src/test/java/seedu/manager/storage/StorageTest.java index 413c698a2d..b170911a93 100644 --- a/src/test/java/seedu/manager/storage/StorageTest.java +++ b/src/test/java/seedu/manager/storage/StorageTest.java @@ -20,9 +20,9 @@ //@@author KuanHsienn public class StorageTest { - private static final String TEST_EVENTS_FILE_PATH = "test_events.txt"; - private static final String TEST_PARTICIPANTS_FILE_PATH = "test_participants.txt"; - private static final String TEST_ITEMS_FILE_PATH = "test_items.txt"; + private static final String TEST_EVENTS_FILE_PATH = "test_events.csv"; + private static final String TEST_PARTICIPANTS_FILE_PATH = "test_participants.csv"; + private static final String TEST_ITEMS_FILE_PATH = "test_items.csv"; private static final String NON_EXISTENT_FILE_PATH = "non_existent_file.txt"; private Storage storage; @@ -118,8 +118,8 @@ public void testSaveEvents() { try { String content = new String(java.nio.file.Files.readAllBytes(file.toPath())); - String expectedContent = "Meeting,2024-10-25 10:00,Conference Room,HIGH,N\n" - + "Workshop,2024-10-26 14:00,Main Hall,MEDIUM,N\n"; + String expectedContent = "\"Meeting\",\"2024-10-25 10:00\",\"Conference Room\",\"HIGH\",\"N\"\n" + + "\"Workshop\",\"2024-10-26 14:00\",\"Main Hall\",\"MEDIUM\",\"N\"\n"; assertEquals(expectedContent, content, "The file content does not match the expected output."); } catch (IOException exception) { fail("Exception should not be thrown when reading the saved file: " + exception.getMessage()); @@ -207,7 +207,7 @@ public void saveParticipants_validItem_success() { try { String content = new String(java.nio.file.Files.readAllBytes(file.toPath())); - String expectedContent = "John Doe,9451 3230,jdoe@gmail.com,N,Meeting\n"; + String expectedContent = "\"John Doe\",\"9451 3230\",\"jdoe@gmail.com\",\"N\",\"Meeting\"\n"; assertEquals(expectedContent, content, "The file content does not match the expected output."); } catch (IOException exception) { fail("Exception should not be thrown when reading the saved file: " + exception.getMessage()); @@ -232,7 +232,7 @@ public void saveItems_validItem_success() { try { String content = new String(java.nio.file.Files.readAllBytes(file.toPath())); - String expectedContent = "Black pens,N,Meeting\n"; + String expectedContent = "\"Black pens\",\"N\",\"Meeting\"\n"; assertEquals(expectedContent, content, "The file content does not match the expected output."); } catch (IOException exception) { fail("Exception should not be thrown when reading the saved file: " + exception.getMessage()); From 5e1e793ca698d9f7c7b40bfcc0f4d888c8b20b3e Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 3 Nov 2024 23:42:22 +0800 Subject: [PATCH 378/619] Update developer guide with details on how OpenCSV is used --- docs/DeveloperGuide.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 18ccb7040d..501ea905a6 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -475,6 +475,14 @@ The interactions between classes during the saving of `Participant`s is shown in The logic for the loading of `Item`s is similar to that for `Participant`s. + +Reading and writing from and to the `.csv` storage files is done through operations from the **OpenCSV** library, namely: + +* `CSVReader#readAll()`, which is invoked by `FileParser` when loading data, to convert the file into a list of arrays of `String` to be parsed. +* `CSVWriter#writeNext()`, which is invoked when saving data, to save the fields for an `Event`, `Participant`, or `Item` into the file. + + + ## Product scope ### Target user profile From 530782ce58d535103af0cc129231e93814b4aec3 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Mon, 4 Nov 2024 03:06:16 +0800 Subject: [PATCH 379/619] edit the item --- src/main/java/seedu/manager/Main.java | 1 - .../manager/command/EditEventCommand.java | 3 +- .../manager/command/EditItemCommand.java | 35 ++++++ .../command/EditParticipantCommand.java | 4 +- .../seedu/manager/command/MenuCommand.java | 6 +- src/main/java/seedu/manager/event/Event.java | 17 +++ .../java/seedu/manager/event/EventList.java | 24 ++++ src/main/java/seedu/manager/item/Item.java | 10 +- .../java/seedu/manager/parser/Parser.java | 34 ++++-- .../manager/command/EditEventCommandTest.java | 2 +- .../manager/command/EditItemCommandTest.java | 108 ++++++++++++++++++ text-ui-test/EXPECTED.TXT | 53 ++++----- text-ui-test/input.txt | 5 + 13 files changed, 253 insertions(+), 49 deletions(-) create mode 100644 src/main/java/seedu/manager/command/EditItemCommand.java create mode 100644 src/test/java/seedu/manager/command/EditItemCommandTest.java diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 499c4d11b0..fae7b1860e 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -70,7 +70,6 @@ private static void loadData() { private static void saveData() { try { storage.saveEvents(events); - ui.showMessage("Events saved successfully."); } catch (IOException e) { ui.showErrorMessageToUser(e); } diff --git a/src/main/java/seedu/manager/command/EditEventCommand.java b/src/main/java/seedu/manager/command/EditEventCommand.java index 0a9ee12ca9..5abfc12dfc 100644 --- a/src/main/java/seedu/manager/command/EditEventCommand.java +++ b/src/main/java/seedu/manager/command/EditEventCommand.java @@ -21,8 +21,7 @@ public class EditEventCommand extends Command{ //@@author MatchaRRR /** - * Constructs an EditCommand object with the specified participant name, participant number, - * participant email, and event name. + * Constructs an EditEventCommand object with the specified event name, event time, event venue and event priority. * * @param eventName The name of the event to be edited. * @param eventNewName The new name of the event. diff --git a/src/main/java/seedu/manager/command/EditItemCommand.java b/src/main/java/seedu/manager/command/EditItemCommand.java new file mode 100644 index 0000000000..48846d1c13 --- /dev/null +++ b/src/main/java/seedu/manager/command/EditItemCommand.java @@ -0,0 +1,35 @@ +package seedu.manager.command; + +/** + * Represents a command to edit an item for an event. + * The edit command will store the event's name, the item to be edited. + */ +public class EditItemCommand extends Command { + public static final String COMMAND_WORD = "edit"; + private static final String EDIT_ITEM_MESSAGE = "Item successfully updated"; + private static final String EDIT_FAILURE_MESSAGE = "Event/Item not found!"; + protected String itemName; + protected String itemNewName; + protected String eventName; + + //@@author MatchaRRR + /** + * Constructs an EditItemCommand object with the specified event name and item name, + * + * @param itemName The name of the original item. + * @param itemNewName The name of the new item. + * @param eventName The name of the event associated with the participant. + */ + public EditItemCommand(String itemName, String itemNewName, String eventName) { + super(false); + this.itemName = itemName; + this.itemNewName = itemNewName; + this.eventName = eventName; + } + + @Override + public void execute() { + boolean isEdited = this.eventList.editItem(itemName, itemNewName, eventName); + this.message = (isEdited) ? EDIT_ITEM_MESSAGE : EDIT_FAILURE_MESSAGE; + } +} diff --git a/src/main/java/seedu/manager/command/EditParticipantCommand.java b/src/main/java/seedu/manager/command/EditParticipantCommand.java index 36d7a3993b..aea7d21090 100644 --- a/src/main/java/seedu/manager/command/EditParticipantCommand.java +++ b/src/main/java/seedu/manager/command/EditParticipantCommand.java @@ -2,7 +2,7 @@ /** * Represents a command to edit an event to the event list. - * The edit command will store the event's name, time, and venue. + * The edit command will store the event's name, the participant's information. */ public class EditParticipantCommand extends Command{ public static final String COMMAND_WORD = "edit"; @@ -16,7 +16,7 @@ public class EditParticipantCommand extends Command{ //@@author KuanHsienn /** - * Constructs an EditCommand object with the specified participant name, participant number, + * Constructs an EditParticipantCommand object with the specified participant name, participant number, * participant email, and event name. * * @param participantName The name of the participant. diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index a7d05e1f44..c11e437d13 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -12,19 +12,21 @@ public class MenuCommand extends Command { list: List events. view -e EVENT -y TYPE: View the list of participants or items of an event. add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. + add -m ITEM -e EVENT: Add an item to an even. add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. - edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. + edit -m ITEM > NEW_ITEM -e EVENT: Edit an item in an event. + edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. sort -by KEYWORD: Sorts events by name/time/priority. filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. find -e EVENT -p NAME: Finds all participants with specified name in an event. - exit: Exit program"""; + exit: Exit program."""; /** * Constructs a new MenuCommand diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 716325061f..df4e2f1051 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -144,6 +144,23 @@ public void updateEvent(String eventNewName, LocalDateTime eventTime, String eve this.eventPriority = eventPriority; } + //@@author MatchaRRR + /** + * Updates the details of an event. + * + * @param itemName The name of original item. + * @param itemNewName The name of the new item. + */ + public boolean updateItem(String itemName, String itemNewName) { + for (Item item : this.itemList) { + if (item.getName().equalsIgnoreCase(itemName)) { + item.setName(itemNewName); + item.setPresent(false); + return true; + } + } + return false; + } /** * Retrieves the number of participants in the participant list. diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index fed8871bbb..6026bb8cdb 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -225,6 +225,30 @@ public boolean editEvent(String eventName, String eventNewName, LocalDateTime ev return false; } + //@@author MatchaRRR + /** + * Edits the details of an event in a specified event. + * + *

    + * This method searches for the event with the given name in the event list and update the event's information. + * If the event is found and the participant is successfully updated, it returns {@code true}. + * If the event does not exist, it returns {@code false}. + *

    + * + * @param itemName The name of original item. + * @param itemNewName The name of the new item. + * @return {@code true} if the item was successfully edited; + * {@code false} if the item does not exist. + */ + public boolean editItem(String itemName, String itemNewName, String eventName) { + for (Event event : eventList) { + if (event.getEventName().equals(eventName)) { + return event.updateItem(itemName, itemNewName); + } + } + return false; + } + /** diff --git a/src/main/java/seedu/manager/item/Item.java b/src/main/java/seedu/manager/item/Item.java index ee6a27a93a..a510534796 100644 --- a/src/main/java/seedu/manager/item/Item.java +++ b/src/main/java/seedu/manager/item/Item.java @@ -6,7 +6,7 @@ * Represents an item, in an item list of an {@link Event}. */ public class Item { - protected final String name; + protected String name; protected boolean isPresent; /** @@ -28,6 +28,14 @@ public String getName() { return name; } + /** + * set the name of the item + */ + public void setName(String itemNewName) { + this.name = itemNewName; + } + + /** * Sets the item as present or not present. * diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 3fb577370f..5789461a5e 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -13,6 +13,7 @@ import seedu.manager.command.RemoveCommand; import seedu.manager.command.EditParticipantCommand; import seedu.manager.command.EditEventCommand; +import seedu.manager.command.EditItemCommand; import seedu.manager.command.SortCommand; import seedu.manager.command.ViewCommand; import seedu.manager.command.FindCommand; @@ -54,7 +55,9 @@ public class Parser { private static final String INVALID_EDIT_MESSAGE = """ Invalid command! Please enter your commands in the following format: - edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT + edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. + edit -m ITEM -e EVENT: Edit an item from an event. + edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. """; private static final String INVALID_VIEW_MESSAGE = """ Invalid command! @@ -123,6 +126,7 @@ public class Parser { """; private static final String SPACE = " "; + private static final String ARROW = ">"; private static final String EVENT_REGEX = "(-e|-t|-v|-u)"; private static final String EVENT_ATTRIBUTE_REGEX ="(-e|-name|-t|-v|-u)"; @@ -198,7 +202,6 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval assert commandParts[0].equalsIgnoreCase(AddCommand.COMMAND_WORD); try { String commandFlag = commandParts[1]; - String[] inputParts; switch (commandFlag) { case EVENT_FLAG: @@ -303,7 +306,6 @@ private Command parseRemoveCommand(String input, String[] commandParts) throws I assert commandParts[0].equalsIgnoreCase(RemoveCommand.COMMAND_WORD); try { String commandFlag = commandParts[1]; - String[] inputParts; switch (commandFlag) { case EVENT_FLAG: @@ -387,9 +389,11 @@ private Command parseEditCommand(String input, String[] commandParts) throws Inv return getEditEventCommand(input); case PARTICIPANT_FLAG: return getEditParticipantCommand(input); + case ITEM_FLAG: + return getEditItemCommand(input); default: logger.log(WARNING, "Invalid command format"); - throw new InvalidCommandException(INVALID_REMOVE_MESSAGE); + throw new InvalidCommandException(INVALID_EDIT_MESSAGE); } } catch (IndexOutOfBoundsException exception) { logger.log(WARNING, "Invalid command format"); @@ -422,10 +426,10 @@ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsE //@@author MatcahRRR /** - * Returns an {@link EditParticipantCommand} that edits an event with fields parsed from a given user input. + * Returns an {@link EditEventCommand} that edits an event with fields parsed from a given user input. * * @param input the given user input. - * @return an {@link EditParticipantCommand} that edits an event with fields parsed from input. + * @return an {@link EditEventCommand} that edits an event with fields parsed from input. * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getEditEventCommand(String input) throws IndexOutOfBoundsException, DateTimeParseException, @@ -443,6 +447,22 @@ private Command getEditEventCommand(String input) throws IndexOutOfBoundsExcepti return new EditEventCommand(eventName, eventNewName, eventTime, eventVenue, eventPriority); } + //@@author MatcahRRR + /** + * Returns an {@link EditItemCommand} that edits an event with fields parsed from a given user input. + * + * @param input the given user input. + * @return an {@link EditEventCommand} that edits an event with fields parsed from input. + * @throws IndexOutOfBoundsException if not all fields are present. + */ + private Command getEditItemCommand(String input){ + String[] inputParts = input.split(ITEM_REGEX); + String ItemName = inputParts[1].split(ARROW)[0].trim(); + String ItemNewName = inputParts[1].split(ARROW)[1].trim(); + String eventName = inputParts[2].trim(); + return new EditItemCommand(ItemName, ItemNewName, eventName); + } + //@@author glenn-chew /** @@ -709,7 +729,7 @@ private Command parseCopyCommand(String input, String[] commandParts) throws Inv try { String commandInput = input.replaceFirst("^" + commandParts[0] + "\\s*", ""); - String[] inputParts = commandInput.split(">"); + String[] inputParts = commandInput.split(ARROW); if (inputParts.length != 2) { throw new InvalidCommandException(INVALID_COPY_MESSAGE); diff --git a/src/test/java/seedu/manager/command/EditEventCommandTest.java b/src/test/java/seedu/manager/command/EditEventCommandTest.java index 4fd3f318dd..508bb7c642 100644 --- a/src/test/java/seedu/manager/command/EditEventCommandTest.java +++ b/src/test/java/seedu/manager/command/EditEventCommandTest.java @@ -21,7 +21,7 @@ public void testSetUp() { } @Test - public void editEventsuccess() { + public void editEventSuccess() { eventList.addEvent( "Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), diff --git a/src/test/java/seedu/manager/command/EditItemCommandTest.java b/src/test/java/seedu/manager/command/EditItemCommandTest.java new file mode 100644 index 0000000000..7128aa8e9e --- /dev/null +++ b/src/test/java/seedu/manager/command/EditItemCommandTest.java @@ -0,0 +1,108 @@ +package seedu.manager.command; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import seedu.manager.enumeration.Priority; +import seedu.manager.event.EventList; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class EditItemCommandTest { + private EventList eventList; + private DateTimeFormatter formatter; + + @BeforeEach + public void testSetUp() { + eventList = new EventList(); + formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + } + + @Test + public void edit_item_success() { + eventList.addEvent( + "Event 1", + LocalDateTime.parse("2024-10-20 21:00", formatter), + "Venue A", + Priority.HIGH + ); + eventList.addItemToEvent( + "table", + "Event 1" + ); + eventList.addItemToEvent( + "Foolscap", + "Event 1" + ); + + EditItemCommand editItemCommand = new EditItemCommand( + "Foolscap", + "origami paper", + "Event 1" + ); + editItemCommand.setData(eventList); + editItemCommand.execute(); + + assertEquals("origami paper", eventList.getEvent(0).getItemList().get(1).getName()); + } + + @Test + public void editItem_InvalidEvent_failure() { + eventList.addEvent( + "Event 1", + LocalDateTime.parse("2024-10-20 21:00", formatter), + "Venue A", + Priority.HIGH + ); + eventList.addItemToEvent( + "table", + "Event 1" + ); + eventList.addItemToEvent( + "Foolscap", + "Event 1" + ); + + EditItemCommand editItemCommand = new EditItemCommand( + "Foolscap", + "origami paper", + "Event 2" + ); + editItemCommand.setData(eventList); + editItemCommand.execute(); + + String expectedMessage = "Event/Item not found!"; + assertEquals(expectedMessage, editItemCommand.getMessage()); + } + + @Test + public void editItem_InvalidItem_failure() { + eventList.addEvent( + "Event 1", + LocalDateTime.parse("2024-10-20 21:00", formatter), + "Venue A", + Priority.HIGH + ); + eventList.addItemToEvent( + "table", + "Event 1" + ); + eventList.addItemToEvent( + "Foolscap", + "Event 1" + ); + + EditItemCommand editItemCommand = new EditItemCommand( + "chair", + "origami paper", + "Event 1" + ); + editItemCommand.setData(eventList); + editItemCommand.execute(); + + String expectedMessage = "Event/Item not found!"; + assertEquals(expectedMessage, editItemCommand.getMessage()); + } +} diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 8762e887af..8bda37b39e 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -8,26 +8,24 @@ Enter a command: Here are the possible commands: list: List events. view -e EVENT -y TYPE: View the list of participants or items of an event. add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. +add -m ITEM -e EVENT: Add an item to an even. add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. -edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. +edit -m ITEM > NEW_ITEM -e EVENT: Edit an item in an event. +edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. sort -by KEYWORD: Sorts events by name/time/priority. filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. find -e EVENT -p NAME: Finds all participants with specified name in an event. -exit: Exit program ------------------------- -Events saved successfully. +exit: Exit program. ------------------------ Enter a command: There are 0 events in your list! Here are your scheduled events: ------------------------- -Events saved successfully. ------------------------ Enter a command: Invalid command! Please enter your commands in the following format: @@ -38,42 +36,26 @@ add -m ITEM -e EVENT ------------------------ Enter a command: Event added successfully ------------------------ -Events saved successfully. ------------------------- Enter a command: There are 1 events in your list! Here are your scheduled events: 1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: N ------------------------- -Events saved successfully. ------------------------ Enter a command: Event marked as done ------------------------ -Events saved successfully. ------------------------- Enter a command: There are 1 events in your list! Here are your scheduled events: 1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y ------------------------- -Events saved successfully. ------------------------ Enter a command: Event not found! ------------------------ -Events saved successfully. ------------------------- Enter a command: Event information successfully updated ------------------------ -Events saved successfully. ------------------------- Enter a command: There are 1 events in your list! Here are your scheduled events: 1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y ------------------------- -Events saved successfully. ------------------------ Enter a command: Participant added successfully ------------------------ -Events saved successfully. ------------------------- Enter a command: Invalid command! Please enter your commands in the following format: view -e EVENT -y TYPE @@ -81,33 +63,38 @@ view -e EVENT -y TYPE ------------------------ Enter a command: Participant contact information successfully updated ------------------------ -Events saved successfully. ------------------------- Enter a command: There are 1 participants in dinner party! Here are your participants: 1. Name: Mary / Number: 98624759 / Email: Mary@gmail.com [ ] ------------------------- -Events saved successfully. ------------------------ Enter a command: Event added successfully ------------------------ -Events saved successfully. ------------------------- Enter a command: Events successfully sorted by name! 1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N 2. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y ------------------------- -Events saved successfully. ------------------------ Enter a command: Events successfully sorted by time! 1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y 2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ -Events saved successfully. +Enter a command: There are 2 events in your list! Here are your scheduled events: +1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N + ------------------------ -Enter a command: Thank you for using EventManagerCLI. Goodbye! +Enter a command: Item added successfully ------------------------ -Events saved successfully. +Enter a command: There are 1 items in anniversary celebration! Here are your items: +1. balloon [ ] + +------------------------ +Enter a command: Item successfully updated +------------------------ +Enter a command: There are 1 items in anniversary celebration! Here are your items: +1. cake [ ] + +------------------------ +Enter a command: Thank you for using EventManagerCLI. Goodbye! ------------------------ diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index cc554fb443..bddbfbffc8 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -16,4 +16,9 @@ view -e dinner party -y participant add -e anniversary celebration -t 2024-10-23 12:34 -v hotel -u medium sort -by name sort -by time +list +add -m balloon -e anniversary celebration +view -e anniversary celebration -y item +edit -m balloon > cake -e anniversary celebration +view -e anniversary celebration -y item exit From a76558fe6ec365a165ed839928ef022d87caacb7 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Mon, 4 Nov 2024 03:19:04 +0800 Subject: [PATCH 380/619] Edited sequence diagrams for copy, find, filter and sort commands --- docs/diagrams/CopyCommandSequenceDiagram.puml | 43 ++++++++----------- .../FilterCommandSequenceDiagram.puml | 42 ++++++++++-------- docs/diagrams/FindCommandSequenceDiagram.puml | 33 +++++--------- docs/diagrams/SortCommandSequenceDiagram.puml | 41 +++++++++++------- 4 files changed, 78 insertions(+), 81 deletions(-) diff --git a/docs/diagrams/CopyCommandSequenceDiagram.puml b/docs/diagrams/CopyCommandSequenceDiagram.puml index 47d3717513..ed38e57eb0 100644 --- a/docs/diagrams/CopyCommandSequenceDiagram.puml +++ b/docs/diagrams/CopyCommandSequenceDiagram.puml @@ -1,44 +1,39 @@ @startuml -actor User -participant "CopyCommand" as CC -participant "EventList" as EL -participant "Event (source)" as SourceEvent -participant "Event (destination)" as DestEvent -participant "Participant" as P - -User -> CC: execute() +participant ":Main" as Main +participant ":CopyCommand" as CC +participant ":EventList" as EL +participant "eventFrom :Event" as SourceEvent +participant "eventTo :Event" as DestEvent + +Main -> CC: execute() activate CC -CC -> EL: getEventByName(copyFrom) +CC -> EL: getEventByName(copyTo) activate EL -EL --> CC: return SourceEvent (Optional) +EL --> CC: return eventTo deactivate EL -CC -> EL: getEventByName(copyTo) +CC -> EL: getEventByName(copyFrom) activate EL -EL --> CC: return DestEvent (Optional) +EL --> CC: return eventFrom deactivate EL -alt Both Events Found +opt Both Events Found CC -> SourceEvent: getParticipantList() activate SourceEvent - SourceEvent --> CC: return participants (ArrayList) + SourceEvent --> CC: return participantList deactivate SourceEvent - alt Participant List Not Empty - CC -> DestEvent: setParticipantList(participants) + opt Participant List Not Empty + CC -> DestEvent: setParticipantList(participantList) activate DestEvent + DestEvent --> CC deactivate DestEvent - CC -> CC: Append COPY_SUCCESSFUL - else Participant List Empty - CC -> CC: Append PARTICIPANT_NOT_FOUND - end alt + end opt -else Event(s) Not Found - CC -> CC: Append EVENT_NOT_FOUND -end alt +end opt -CC --> User: Display copy result message +CC --> Main: Display copy result message deactivate CC @enduml \ No newline at end of file diff --git a/docs/diagrams/FilterCommandSequenceDiagram.puml b/docs/diagrams/FilterCommandSequenceDiagram.puml index 535367e54d..c0086254a4 100644 --- a/docs/diagrams/FilterCommandSequenceDiagram.puml +++ b/docs/diagrams/FilterCommandSequenceDiagram.puml @@ -1,29 +1,35 @@ @startuml -actor User -participant "FilterCommand" as FC -participant "EventList" as EL -participant "FilteredEventList" as FEL +participant ":Main" as Main +participant ":FilterCommand" as FC -User -> FC: execute() +Main -> FC: execute() + +create participant "FilteredEventList :EventList" as FEL activate FC -FC -> FEL: new EventList() // create empty list for filtered events +FC -> FEL: new EventList() activate FEL +FEL --> FC deactivate FEL -alt Filter by priority (-u) - FC -> EL: filterByPriority(priority) - activate EL - EL --> FC: return filteredEvents - deactivate EL - FC -> FC: Append FILTER_BY_PRIORITY_MESSAGE +alt filter by name + FC -> FEL: filterByName() + activate FEL + FEL --> FC: return filtered list + deactivate FEL +else filter by time + FC -> FEL: filterByTime() + activate FEL + FEL --> FC: return filtered list + deactivate FEL +else filter by priority + FC -> FEL: filterByPriority(...) + activate FEL + FEL --> FC: return filtered list + deactivate FEL end alt -loop each event in filteredEvents - FC -> FEL: getEvent(i) - FEL --> FC: Event.toString() -end loop - -FC --> User: Display filtered event list +FC --> Main: Display FilteredEventList and filter result message deactivate FC +destroy FEL @enduml \ No newline at end of file diff --git a/docs/diagrams/FindCommandSequenceDiagram.puml b/docs/diagrams/FindCommandSequenceDiagram.puml index 1350746f94..5cdc057077 100644 --- a/docs/diagrams/FindCommandSequenceDiagram.puml +++ b/docs/diagrams/FindCommandSequenceDiagram.puml @@ -1,38 +1,25 @@ @startuml -actor User -participant "FindCommand" as FC -participant "EventList" as EL -participant "Event" as E -participant "Participant" as P +participant ":Main" as Main +participant ":FindCommand" as FC +participant ":EventList" as EL +participant "event :Event" as E -User -> FC: execute() +Main -> FC: execute() activate FC FC -> EL: getEventByName(eventName) activate EL -EL --> FC: return event (Optional) +EL --> FC: return event deactivate EL -alt Event Found +opt Event found FC -> E: findParticipants(personName) activate E - E --> FC: return participantsFound (ArrayList) + E --> FC: return participantList deactivate E - alt Participants Found - FC -> FC: Append FIND_SUCCESS_MESSAGE - loop each participant - FC -> P: toString() - P --> FC: participant details - end loop - else No Participants Found - FC -> FC: Append FIND_FAILURE_MESSAGE - end alt +end opt -else Event Not Found - FC -> FC: Append FIND_EVENT_FAILURE_MESSAGE -end alt - -FC --> User: Display search results +FC --> Main: Display participantList and search result message deactivate FC @enduml \ No newline at end of file diff --git a/docs/diagrams/SortCommandSequenceDiagram.puml b/docs/diagrams/SortCommandSequenceDiagram.puml index 6d0ef3bae6..e3e48a92e3 100644 --- a/docs/diagrams/SortCommandSequenceDiagram.puml +++ b/docs/diagrams/SortCommandSequenceDiagram.puml @@ -1,27 +1,36 @@ @startuml -actor User -participant "SortCommand" as SC -participant "EventList" as EL -participant "SortedEventList" as SEL +participant ":Main" as Main +participant ":SortCommand" as SC -User -> SC: execute() +Main -> SC: execute() activate SC -SC -> EL: new EventList(eventList) // deep copy -activate EL -EL --> SC: return sortedEventList -deactivate EL -SC -> SEL: sortByName() / sortByTime() / sortByPriority() +create participant "SortedEventList :EventList" as SEL +SC -> SEL : new EventList(eventList) activate SEL -SEL --> SC: sorted list +SEL --> SC: deactivate SEL -loop each event in sortedEventList - SC -> SEL: getEvent(i) - SEL --> SC: Event.toString() -end loop +alt sort by name + SC -> SEL: sortByName() + activate SEL + SEL --> SC: return sorted list + deactivate SEL +else sort by time + SC -> SEL: sortByTime() + activate SEL + SEL --> SC: return sorted list + deactivate SEL +else sort by priority + SC -> SEL: sortByPriority() + activate SEL + SEL --> SC: return sorted list + deactivate SEL -SC --> User: Display sorted event list +end alt + +SC --> Main: Display SortedEventList and sort result message deactivate SC +destroy SEL @enduml \ No newline at end of file From 6a20c51f1221a884ebcc07707f9a70eb732ac72c Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Mon, 4 Nov 2024 03:19:58 +0800 Subject: [PATCH 381/619] . --- src/test/java/seedu/manager/command/EditEventCommandTest.java | 2 +- src/test/java/seedu/manager/command/EditItemCommandTest.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/seedu/manager/command/EditEventCommandTest.java b/src/test/java/seedu/manager/command/EditEventCommandTest.java index 508bb7c642..547e93cd64 100644 --- a/src/test/java/seedu/manager/command/EditEventCommandTest.java +++ b/src/test/java/seedu/manager/command/EditEventCommandTest.java @@ -21,7 +21,7 @@ public void testSetUp() { } @Test - public void editEventSuccess() { + public void edit_event_success() { eventList.addEvent( "Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), diff --git a/src/test/java/seedu/manager/command/EditItemCommandTest.java b/src/test/java/seedu/manager/command/EditItemCommandTest.java index 7128aa8e9e..8ed5d6a966 100644 --- a/src/test/java/seedu/manager/command/EditItemCommandTest.java +++ b/src/test/java/seedu/manager/command/EditItemCommandTest.java @@ -49,7 +49,7 @@ public void edit_item_success() { } @Test - public void editItem_InvalidEvent_failure() { + public void editItem_invalidEvent_failure() { eventList.addEvent( "Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), @@ -78,7 +78,7 @@ public void editItem_InvalidEvent_failure() { } @Test - public void editItem_InvalidItem_failure() { + public void editItem_invalidItem_failure() { eventList.addEvent( "Event 1", LocalDateTime.parse("2024-10-20 21:00", formatter), From ffcaf6ef00c81d3b2b0c39c763b2803d7f67ee6d Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Mon, 4 Nov 2024 03:29:14 +0800 Subject: [PATCH 382/619] Convert puml diagrams into png image format --- docs/images/CopyCommandSequenceDiagram.png | Bin 0 -> 42246 bytes docs/images/FilterCommandSequenceDiagram.png | Bin 0 -> 35941 bytes docs/images/FindCommandSequenceDiagram.png | Bin 0 -> 27386 bytes docs/images/SortCommandSequenceDiagram.png | Bin 0 -> 37684 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/CopyCommandSequenceDiagram.png create mode 100644 docs/images/FilterCommandSequenceDiagram.png create mode 100644 docs/images/FindCommandSequenceDiagram.png create mode 100644 docs/images/SortCommandSequenceDiagram.png diff --git a/docs/images/CopyCommandSequenceDiagram.png b/docs/images/CopyCommandSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..21b8e4f3c4e5f20b99539de026ea0c930b63d41d GIT binary patch literal 42246 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 Vu`?#J+wu?mqpMBPD$uYC{6E?=m=^#5 literal 0 HcmV?d00001 diff --git a/docs/images/FilterCommandSequenceDiagram.png b/docs/images/FilterCommandSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..c72041dcde20030d391365729aced064b92244a0 GIT binary patch literal 35941 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 literal 0 HcmV?d00001 diff --git a/docs/images/SortCommandSequenceDiagram.png b/docs/images/SortCommandSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..4c5b12a4a4a53ba0a531827ee835805bbe272bf4 GIT binary patch literal 37684 zcmcG$cRZGD_&Fx)j9=l;S*II8gl%_K4&eTeH5Ue z6E{41MWrhDB2P@Mup@a`&4UPw;()O*0-WV`v`zHHi1S@H?eNZ~(W$hq#e0gWLn|l? zpTvQ>f}x#^*DUP~!p-MBh3lK6d-3N2R{MI)2>CYCdg5?pteL~KwM6{<%IGk@_fQ|x zbXeaXH|k2DWXuSjBjbH`(oKClK-9;Uae+;#^YoE7>$C4p#iNaMPbTP45?s+I-^-yP z5z^OQ!r7LkV&Cpt?Ywa`g2XssF-m35%y7QlCQWwDCN1Df@s;X>!L5Cqz3caBIFtmh z5cY)j<)QFr8n2{&z4u_gKx!c)LWdP6tLa)*QqF|<>QrUU_u{(ptB-OXe^)s@$0eUf zw;1BrL3Ky`s^ANqs841L#|2X_rjt`Cklw#d{zL9?ccJz_Nun`co=j@mXu>XU2RExs? z&`0IrVSh&9En;^H;!9$YPgs}_DWk&nxA)TH9zx&7<%M=H-aFXG@%wrx!5t;!zPr}Z zk3?jggMS|+T%1@Ug*k@fpb<1NUILYF4+RhjcJS{;+<88wif}PC z;>AOrR=AiI%yA6Dv&ESdU3Twt-NwQuQETQ!LBWPRooWNow_^2nA`b;T&-u(@Y`5*~ zZoK=JEZOnmI>)orfdNW9;+JLibDZ_T_@wgWjV6THk|>)<ijB)XDHh|V67#t4&6CW%i79qh`Q&C1LP&VOk~AMCCjHa>qo zkebhabs)cNu4jf_yF|h^nGA!lJJ+~K%fZ3L@7mMgU&>5Em27%2`1v5P zCnICPyywe4W|%KaSZt$TFH&WXfZSU8yI-K7Vt`y6zvae!&f>{7*dMb}nKMOXSDN^m zRa{+L{KytE>tIj79&IX*vOs!y5owp~KAmnxnH3~>m}3kWLKzQAjazxtyasVHC45O3 z7Cu_`CW?_WGDhN)v2~#_nvT} zHEY~WU+a`(7O%-{bJpy>Xl&ZuZspKZP*AZ^qjkQaj4jX;_LI&lXUJ0EtmOm4j;}O44{0V zJn`^o>*y$}TF(4%k-6;Il%mKW!TC?i2ZG_JSk#_c(J2clEcE4Qzy9E> z#0$|eF}nWx`cNW^RRn(5N_snUPo}B{3%}dWSqEPePp#s^^Szld*B@Bh5j&c#cMT4P z6SueLRK9w39X8WBzf6qn?p8xolq{Pfx3bx6OJB}#Pb!kt`Ct#1mewFdVEyZ8jb(ov z+l_uc=hZ0#q}en^DO>X%4`cUZg|SNKfOfY$yx`9lO^_O|>3dT7a}wATy&3eXU3qx6 z&3&nOtmrG)CC%SHGN(UnWv?_nRE#qaB8Snp)P9zgUvaWKl;EsRk(zA1>T@Y|vv0Sn zTnN5Py}BZe)66&MJ$3Hn$@k11Pq-gvOjEmWF~j6D8T0dbnGV)EYLsG)Tl-Yvc7&bZ zNJ;gMV_+)@TDo>6*`96f6)-`1K=o*exoITdTi)PA{;eYevEIotU4$U0F8zeYrn< zA?V>z0uJ3beBT_p99H4NR=kihsl{jY3r08^vsAIZd|Fe!8ja>J|$dSwJ-6MEtM4vY^M!5fLp$U61x%*oC13|%$%su7zdADaN zc&#txwELbzuLQf_S5B5_FS&cYS$nwZx?kV&xVyF_v2uykwYd(K#UY1BEl6s?SawY9 zS0kyKD-7NzhjHdaU#TypNHj%2Vw+NuE5_5>pR@3tWvIn`vB!}$)Gp~J39l}?6;`OO4lbul+EtB>))4$*QQ(hOP3Q!898p(xCd$3-e*;` zyf6B;9+IP@BZEZX?(;0=>4bzdclTnF4IBCDDuKn}2hVs$@(fIq_D$7`BzL4FjoMJ^ zxnrU}ji^o~LB%+J$jx?4X+z$VyyR^tv$&))!D$rg9D_KzBxDeUUI)y+$b7K8?=as> zb!lq&#sE$p@v}kiU0(9bjyoIQlgyNdbzGRZomP0e^pcq#;*NZ*y~}uYxn2* zkJo*1F~al0l(=}jrqmkQntG{z4cIpkT#yvnbPBYy5Lu!XDh|bgTXCMV=|iC`sUB5 zc$0pW3|e2iVbUK^3spp@akL?a{)QuuuN~74mpN zBx?U}d?jg)1RU6GOMl>R-V$c+hdP{KXEx2vANssaCiDUpk6n>LNAWwm=;$N?qSH{( z9C!oSh2;mR~S{j0^x9{MUwq!Tvz3 zL1>2mYWdlWkxuLch>s5^jw768;kPYm3Pje?AGZdqna6jL{}96FIN-}yIRE&gZ|dTq zT;oFtT0cI5{SA9bt)u_A!(~fkbaZsfd7R0~$)u#DI01Bt-L#A`A@;)(d0_&(6}iTv z<@eJ8t+jObJ8#V26c(;+kKtt=&o_K8=0nVEiAYf1ABFLCA|eWWJT@5((iLJ^R8pQ6 ztUI{xZS;$H z-ac*&pwuh3dn_Kqb618TOvq`4W;)Yk^XsV1cy&9EkjK93aLHZPn^`v!Kfe!BZ3d*Q zo}<-}bn@iMc#nN&35h2)H6Dl?l#{keMSt1$bIxq3qE z>^YE{_1w1^!e3sy-`LmZSpS4b?LLfsY;5e*-uLC2)^OJMJjmn66Wikj-G*RO!Kk8( z70)Ucn#i|U4Hl#VA~&L+o142o^I>CUh2|qnKmwqQxt`j@;$UHeKY3&gC70E}#S%-z zW#j{=!wAp0N>#LGxm{{{y6KS6`r_dI_1P{p1rjBgNNugKkdTn0O#&>=-uKN&i#HV& z%VSk&n68?u+7}f34dZ!@ImT(-Fz8tzO}HH$?LSK*^6M+c)hXEUl=4JB2u*5Y6-d0 z9`F?GgoA@G>ra-%P{3dsr9G}%w~1E zb()v3iHwAlH1o?lU(#FBQc_PRs_@Y0?*eE{o~w(?4va*a`84P4#pUG={4;8+``?#a zWwE=sb~<*bzSy!KFm4fg)4C-+B}EN@+lQCe`1a69`4^WH#jEapZiMwq56R2Bh==Es zl0x6|{@uHQfq{38jop%V4MYDjLn&>40&zYN=YUF4YtE9@b#|y>Z zt#(|}8mhGTm{o+~)Gm1@1BhHDQS_)q`{1DSK%PMxs)@{u95x6aBqwh?z4KtD!ZLbNVsNyr?{Bl@rx2xo)ihK=qn7=TuNo zSlmB?xb`$7gQd*SLk_`Lg!4ZiSAH z&N(V7%FAXaNJ#Fqj<)S2y8}6db5_tEhZ9fPAM6$LXC4#9JrcV7{`7 ziqOkVHatuxzI$B-_U#FlDyYk=AZ~wgMRmkVi3Wpn?-T+-h)sp6TzfY1etW{_jv^3Z zkXFs8^QoUE!{T9wW+Q(%0rk$ECJ;gcEu5v@JEVw>AKx|$feKyj#d;4Mp5Wlq96DR` zA6ciFL&zWz6$N1jlpsKi;y-m7gT6CKM^7&UDIUtq=Y9v9MiDTaPQg1uCnUWv6xSV9 zuzbVKBh417a&4(c2~M*po}&HjD(<`YLMC>+jHc&i;?tSn->_Nj%5hJZACoHrPN(_e z-tL;(wD0*J3!sGjd1X%lnll$5)d~Cl9F0Cw>IrZj2&MDb*_$B;a6$}#9zldX#ZG<* z2jgiJ)q4l&WJ&UKikH!Y1;(w7{l3qhsj0irUE=1x^`+JeM=F;kdL2H>&(CksGTWaUUl6k0>GyrmG(Mldc)OLerV`cfu+X>kp4vn0)TOT@<*GIA zZgZa@DB|GYa9_G)bh987_HamxlF8P}#NDAH3lR>iOGZbS*w!H0X#EXz4C}Vn0!j6f$ytEnqaOeCm=yEZ@x(sgrYtGaq6-4)z}0 z;*VjzUAYAT+CgFw8+8Q)bd{MzHqzx|8dnQV+RyUY&o10k_4;k8pNV_yZ_hw(c>tLT z(jOI{{nMZz(`h^;%4(=66B5hM{3_2N;Igj2Icz>{*_G4)bJ2t%U|2?*s|;fciGN6D zN30xpH59iAp)m;wiQx7W=@2Bg_LP`i$OgAct#$WyHma(sYPKf*$vJPo+U6rJ&8^*yjAUb&Dinl$Y6p9jzwtT?D||!%BlVReIS2`h>5EoETfjXK79DPy*6XT zT2Hq(;X@7KuQAC!kJ@d$D^)gtA&JW{JyXJWu zxU-~e2tp=;$TwK=fU_TE_A0k}M<%_d;-Y>nf|HZe!tw2+JScCF)w`ySNU``+MID7d~ZVWI!It^Et`I#r5IC2R{w`CKSZ}a?!@=*2v6C2>wNM z>OK+owV2Jf?HwGbc&*PZJ+)8#1EgexhN?nBlDg2Okug(br7B-Qq?KsC)PE))4>L6h zSytTtbn4@mHzok4FtT^f=`}Fvl&wI}Y{LE07Txp4!LsD|rc`Eqb#-<2+d!)8Bcr2p z2-tM8en5>dkSKn$kuokf^n>Lw1?8{I;GKP}ax15zQo<{nGJ1Gv&>DMl>CsQ7 zpRiM0C?3EWdvQcq;Ky@f$|>t^J@QIDCyBtaWqoNlQipbl+H8BI3eBs_)pPTbxOx6E z%%{PR?3R0Hf=B^opS%E1Ywe-2)##h>7Dk1a5MCr(g5^37EBY@$Ix%;MbnGoOReY1( zKeyx+VcU0h!)WDG9Up0&&PDVVtiQQ<{I&aEa?& zN8{^$>+yTtQ&T6bE)oqF^zrd2wD=3XHRB9y3hx3pSmc*C>Km^kg%OTWN>`w|L~pSM zTWLM_>jon^-=2uu=IDcN$sR5fB#^Nwj!T~2c!sk(;eC~-*|j2BXKbfs3Jl~8Gw(FC zaGUH}Xj-#1FVSAiqh%jky}@Hx)*O=x=OnCeRU4Fz z`j>pl?~`A@R-RYMg+6xtIO(zA%A@rur_l%qs)p{h7f+`)%=u8e>pQ>E!F>CcD5s=! zBBwajh)ws+I)tR6sh&!0m^whL2)0|71O=-B&p$yjmnm{Q1srC9=}MNgZy&9AV8e1o z$lY~+cYFH!d{26if(>$!86ncYE~g|{gx3Obta*4i#>6=!3S#u!?NXn<9Bsv@i(b>^ zk}}f}mf-ZA+9sk}h1w9(2CxODrlyR!(!@7V@IZ0;dh30V=0Ok!d!nt7LDWKDyOQzP zU#rExd=l;R7BxEnB=Y^a-QazWbN9?cq}D zuz9PIvY0IP+m$SAR`n%!PX-1m;NTLD)d;;1=d~HT?lAxIDgMv+ilScD#tf``pgZNByXHcpUpSC*OT6%U1HUqD(j&R_<@2*fe&P<{74dt#q)8O;D9Dvseq^t zRSu-#-MRGmCR$CYKrS>5Kro5c`;YO-25e5ww8xNBP%w#`&jD=CgvSXbTz01pI-y$G z$6<$B0(k@i`R=?s7QyS7k|O!_>sLUcj8*!yXf%2*!HgW%l|D82 zz-5wX(Tisrj+b<61{V6-FOTV(>LYu#9fcZoAl~F?9r~E{5g6?B3Clx8D2*(&hWh$K z5Drph1|Q6JK4yPqFRq|X#;QK@@uS8E$`j7k%B5QZr_QM+NPQdp`Ph2n3mj_zmk;u*nAKe^JcH!0uVpV^}6Zs;92CWHHzuqON7jBsWdIby}@)e_3 z;TUkC56-D--0R9rS8R1fhpAQb-phKpXaMwom< zm6)sdcBWeoHV2YG1zE1qi`Siuzk2Vvy%$G2=>|rawRGJj!5%Gi*`6Wi_Tro9J{zsP zL6^a-o7XL(qu+ZRP>OyJS@fC@ecD9I?sO_?x^uMZ@IvF;$E>sS(HP@ww*tI*%8DUD zmvuJwCCmQ(=Vot137Sz69J=xq`i~_8UmnM|kkMH3ZH(6mM&{2@wV_;Hvzn0;g&nvT z_LuK^3aw2wi{VCO)D#DE>Q#f>1(@w9Uw!>so;=6ueHXcpS=GKS=mba2Yl9@x!@ww$ z%A@UQ2XStFN|EN)q%9|BeHTiA@O1u}(fU!dSuRse&!Hgym~|5fliuC!wOfzBZ!Y)9 zweO!j#J+oZ@1Dn|6ef7VA>+~GS-uLR=8$f0oY*nOpGB$swA*)#v5@i95RUnwZTtHPR7ld480(qM547ZSolm8XrHV19`?Co($e$k7}6ACEi5g+ zFAj2JzSVi-rO5Zv+y_yQ_}X3})<=@_Jtm8`~akx`tWTLAtXepDYSlQ^f^zAHXM zPZfwA_HbEQtNzylz&A+~(8{jo%aC!hq%-KbToomz^{}f`7j(X3Cv3^B%Vh(Ra#cR2 zWO4jJR^+=85)O03j%t>gIZ5D+`->Bw>L_;ZjC<4^%Bh~BRyk^jpH2NUhLx@n>Ch~^Qx|AlXw;1m=2uY|bAw=z3}Jv#QZ=LsCpKk-sTXkdg{^H#EOyc0B!+hohk|VY3hONBbRWvF&&fJk@nBBxmne-_0Q5i zfBEv<>C+deo+4fgfa>V*F{^zw&dK_;gP5yinHK2B&A1xuGM7yV=D zJ~y_TJ0~~XmTBW@a#zpRaP-_yeR+WH3*}xsR5Jir4O5B0Idenn?t}9&KKjcMy4#tkC}sV%_Bil$6fm zQfv2gZDSkR~^{`uZWw291ds@BnpM3#m;98`2sJ6;?**g5<5G? zL0Que63sB|EnBZSJ&3CJI)A@19V+b+=x3O?>by%D@!Y{9L2 zH&mjt!4hP~qK7K>19{Jjbn+QDi<-K~mR6^07|#yi+*P>3sk`G}(h|eVSz$v>iS}+8 zd?;YlR65 z)#N^Po$uack`Z!khLcq}X$pV{>Ba-S*|%<8Nh>!76Qu(RFFUWYIbMG>h?CRlmmKUa zCsHl$L*o$S`tS{}?I$HZKD(y?HoAGm4#*%MOG#;dn{@2GnI(q#G&@T_POz<-v^XX< z-4X{m?#^;Cpd>Uayk(H8eD=s2}M^k!<)g zu)i`QTofQ=WHi;1xi#AoZuG`Aec=lb23=%@>peJ+1uoJaBequ926bIUUW;??Ma8|( zU%-DL*Ly$_a$4CUT`jX)L`2@4{9(;$@c>zNBo$v0$Ti(ER@rWbm^`~_3Cft=opG{* zTmdG>8?t3a$f8N8giMP#O-=jXJ|@+tiZLJbX#?VMwVm|7Cu+maG-cS_Hk@;&#Eqb0R;rOcNjGZnvxgj&EQ zVpKFT9Xu0M0xlnHweN@KW6FK`Jibldt+%s&V>@wLx4kF7iD23%B4BQ+xpnGp+V0~y zkR)68q+d$8Bqeu9iZ`@qpDs!`jjq)W{lSb#SrT@F6Gd=6*T?5Q6c`Oa%*0BwW0@P| zbU^{0@yVtMHm#zjx;n4@);HzlSAhKhbVGFZG86<{(_=Ux4u8=;!JqZ#KYjk(lYOfY zDjVe4%T4b#QNh{Qew%9p@V&9Iu~bx4)4Y_YYEi*|of4)dksIRT&d$zf#;lYOpgYM~ zhPC2P&6JH~c~_Uo;G+@!5hh*_=i- zj>vTCdB4Q%XT(vsf2@7$+_FGhywG?@N030CK4=0bH{rPHUxv@%P^mgg}1_ z&%!~&QmBUzwI|?$s0)Yw;(&kgvOqT<0n!`uBT9NcsT0HS;{N{opQ99h1+oTli}}FN z(Ee&GC&*&~pOis@&_m?O3>90ZvmKU@l9LPTc!b@zMfmKEF$s zJM;AEvFW_t!8ObzC_*W@d93z-kD<8YOT0 z%GI|I+MwhZStq0x)H#ELpg4qe>jmp#h4-c1m3m~@c*TR<`1o;P1;WA$e0lSHOxj;4 zN0wNRW)Vh7Kz)J6N;ZS}hIkvamoBN?-U^gfR7|J4v`Cq!wGupf3Wjfl6OrcwJ_ME9 zcQL|wu2ND`-nc}-)$DE0#0!BcBm;HQ_l*Tf2B4t>0|HV*qN1We(zb1UcIMEbLv#|) zm^AYe3Jcdjy-&f77Lbd&NDJrU<}3Ad#drmI`MufXAYf~5bOB3eTF*m3(CM>(-`N4D432C#Gc3Jl=b@ZcTug9O)Bw=EEH|?N*?2`v z0Y#J6wCE*a0@g7m#f5R;Uc)F&@fMc_IuGaaQwZEa(_Blq3p`*YD9C(|#@)ZO)6pes z6+uusuM10*oj4UO z07_IT&=z6ose!Na!YOO6*yk$*00>ZXraz!5@mc849Ud6yyfY3DMm~n;IbUb-p(|3C zM3l8^qO~txJBCD>#;Ce|4fVe}T%sJe{%{rGiDh4QBH?j-_JfpTpt7sDnIP4?RzWjP z7R*}(1sJGP&Z}3WlJ4ERw;oRi^>FViSa6kQ0DqYZKu7NG?gA%$g8|E~7h90It%Z5) zZsikW5Jt5qxgUFZ1sB|)tJqR)v`c^??;-L5e*YKs^O^Yjd{C z`;q61^F9NGrby!wn{kCi;OK*qZU=jta>OYG!Q_{9l%#O>cd1$@8g`jYZ-G^Q&}o>Juz zkasNRoe6ab9%T=fG3h;sFYL4Wj_U(n)YC6lw z5r+5YXlrCOe;TTXoyaVP+m|X!?gtvfZGB`|;+RT&=1Y6i<`9N#V+epIf5b<>a*S}J zQkktmfe#3~1tOYn?B~Mzm%RGsbauw+I#sep_5+kE7iu?fj$5nkPd#+nS)YT*V|0&7 z_dO#cW8o`j4q!P$Yu?j{$XB^;tL#Xri0j4*c~ocnJ%yvokH*N|VtM3pew+>haiLQ> z#?wby_*Il8@?DB_=oT#q>EuaVuS08)z}6ovs)+-wZ|ax7kEL`J+&9a!>Riwg)RIZ zaJ6M+SB*2bDYCpjJf)VhO(y5ix$3e$3r>nmLL=7v{CqGCq>1aE$s+_UT5?0D%H`&- z*uG+dS+V}~^P3=6%g6yzNSC~tK~1lk)HkmE)km7Mx>FD-kpEDJ2tC+QgDG) zZS%e!tcC@(UA)3OdY0JSkQ@i$Mp8ne+UeWmhF|VIFfssV(=0ptIhxyaieaz;VsRDd zhb>rU{^Ki+mWz33^VFhYIxrsLS*$_i=g@m~nn(n{FLFoZ-YQJ<_b1p}n3iP0(_6b+atylnnbXEFxsCe;{i?P zIjjWxMRdFa)PknfDWdh~(>*;snUxSI5A-%1no#(s*#-)XWi#K2Voev|hqw~qvAvr5 z>XoIP-Ri>()iqO1JMkXK->Rjga79FDNY3E-*Sy z(7a>-N-(wSiU_dU8AFhvGp9g#0ES(=+O<3=2)Seic@pbu(JIcWsj2DBhf~XQcc{0g zrx3mQ74*CTNGHCej0OB%H690$#&7Q&1H|La44VV??Uy<#DVFz9)EA$LL;e9gF$D~s z&2R}jBnw#I6ia)p(ad1=uOQ=L1%J?()e51M1PZNY52JnK#yfD)m_;i}Np;RGO?(a# zA|@hYDBS`t%FEc;Ae2B>&p~`+)a?_n5x}%wrQoq_0L-ls4hS=fGBVxGiv|FvK*obH zR>N>11b}5CJT6YbE|gPGa46zZ3ROu-32@w%kT^@n-NDQvuN`~s{u6v&s{!G$i;jz$ zEON54t!-^ZrKLf>zS}k4y>mP^V{D^-h(26YLCo)m<=OV3dd+@B%N zsj%-Yw)hyr0+b>8Q>_i$UUdUMDbUI(iQ-dZlx4f*ECKnCP9TuT`lQ+N(9xs5F zaHgh?2WS86em-7Hk@e^s;L-V_1>U`X|Gu$Nz(hXl&ds&RI|DJ}PoA`MZz~!6c9`V%&Ky6+^>(?ynJC~5RsKzss zo;szLBK2J567X+lNlELINU(9e4F{or?C%le$FhcTEHqQ7sHlJqY-wqUoL%ek{V#3M zG9yLy1W7#xc_(%Zm7+m(1OtYj8+ugVg?v?2L7q%I4al}JDMa7|u!>B#E1i1M# zx2GckdJ1^#^KZ;R#bAfl-zdj)W~!!h88+sL#_rpKtl7W=TeMv5gUsz}SLSd8V(K3o zx~yw`eI2~w*}4@GtLEnBK(rkrBC2xwb_Za=UK@OuR_u7ZpW8Nf|RRpgDw26n#AKnW7OabE6|8DM1Lt(cgk9I9wj(&%$YL zMrNt!%+JmaB#Pl-O5>mgF|e`eK%IYv5_s`3Y`7kXIcWl*>Fiz5O&dsYzf!0iG1qC1|1>*&u2hAn=z z9{-Vwlx6dP8HV8Z!+ztWp;PJfe6KEJqTc5-Qr-fWVC$~paek^@ra6k@}0 zXZ*#fKkxFBCi)30eq2IW_GyRXy5QNuA(# zm~%hrD!ymLuUY;t_Xo?`e~;}KaQTh&D%ScPIsL|a{l_Y>)Bd@Fw^~puee{1oC>Y&N zgpr8}i~rcQv`qu3l7Ki`4S|FzDK4&j0fuYQ0lnD*>2 zwqV4^Kq8-GRJBe){*>Rh}LvvHab?mTq=fsnQ9K zPY~;mYl!G$o!20euLhqh#2nri|L+IU7jv1dAF=;tr*kMzKph9ZXvG4Ovu9bBaY{qMd%&!oJpgS%8DH`Y>N5;~ zisrMjaBD6#et|}k3_= z42NP_rWxwU%nwJVyO$OA|)cFFl z>os#UUKv`&EDp&)5XqUPR5g_zWx0V>0I=BrTeap$C*1r|qW+;2(CU`4?jK90g^SBb zNzo_=lXsVN#}L6$Fs&(aHOwdmTOrf_*S8Q9fmveaRHnfmJusGcBd^NSva<)ARX*nr zi%|S)5&o(cA$>iSkd%C|(AVD66S`Myg0SOzSg0F$^GBNdZLuyt>o#5ohQ-azjq2Pv z9bMf-VqtEIxFx%H|4O!~fWW}7L&dNB{ry8jNi)TO!AKw$mW>iT?Rn&H`R=@UY77xj zPt)sH`S?Jgz%<#hG5LEwm+nx(c$Qx9`dKW;kuu99)uxENZEl|H*Yk)KbmN;IRLlsL zyiMuM#ix(>v1oY*Y6!DGvVH!`{V|Y5rDFLUpb=tne!eBG3y71?V>k%U-(bP5A@8st z7%7;Pfs!&ma^x@~f&0>5upw<2N9+yR1k~h{lZU;a=?6I|@AcdFpST02FfKj6vWdc~ z7smJ_*l{BgaeiX8TBQ9gafb^BInvM+{a-~o@GAcW&d%au^x;zfH&%j({tkGM*Prj- z^oZN_)DGldZK8`eu7>igd@TAW%V1H~a&lZ3t9AUpa3LyC)sBpe0FylZI4v|R40K2> z=N}w-9c;2zf}?-~o;-dGY-!}`!FGp-R;e|6kl&uC_~z2^Oxg_8S{i)_;pD#qZg4rR zt*s5ead=hPY2OmbIS$@V=VtK8nsGjV{(M#R5TNYz9cbA|*!3f0g{~(J=iXE3G9WIn zH1~60ELpH^QvX2LDJCvVYfx|I*6a_Bj|*MAsPrQ0r&yo?1}nht*jiN@ya2$5T!nrb zPft&XF%UF5q00js&b-@D7v!Q&oI5uHA)qH+ky^<8B@b92(q`cxGkGiyaH($t-hdRB zz5_ig($dnPXj1aoGlgUQ;E-igJRs#!r=*E1$dHO+2 zNFJX4O(4Wz3jwY|U{MwQU_EdR;BmkTLqi%UzH9Wa~p6XCP^$l4vx--$SS$aUkYMIZ!V zMTrVUEOpFs3wo*)4(vVI$K;5iEFSzqk2k_d4&7zR{OAPX9C)ii9)x4SXJAS4+eu7J zEZ=vwqb>D;wx$*=+noe-X$rsjdjJPbHW`mjnL+_Kb=uwC9T?<1LC_j%f5CleY%h&t zC-|^R^i|z~01E@-dWFJ)jyK0TG)SQ@;6W*9MQVr<9#+{8653DLh0d}4-8IFQwwKpJ z_eV=@;w!<7Vb+rt@Rb@}W;czG&CHMZBpBjdSDO<=yz$97c1ItK&tYf&_mYPm9mQ({ z2xJ55L+BEV1=0wLbbcT{I5r{px&qq;4%<+H&PS@H?=)AT@N;b-%XFaF)TccnS)afLExKfWS&qxT91CLdU9EW@NV z3XN)wEv9WzBGZ7`LM$#pn_|;NvvkOr+zluu*u&?B92EdJDkJ$j z;M+h$q4!?^vcHM`6ffb_2($%obF1FU>Jb1+9#UWTdu-Pd2Fn563O}H`a%BT}IQ58m zE{wnYd}ST0xzPG~vjEHCY=DG- zVET)X1&-Vn+7`e{ta>|Y>Bfy4=dRh^u*IpTNE@gJfhK6)z$1?YVTt%huug-zO#N5{ z%O70nF{3?sAl49aKXG~HM=#DL#7@&HgaWm=>4Qm2I5S`p4vXx3GIH=e!?)69qouul z3BvdtYM4g_M8y7Ah=rp+k|8#){#q=D^v9z?b5KO-RZ*;UHR6VH&1m%eW0Jo>1n})3ru8E}!F$&{Cx=BZHad)=1;PooG z*(UH37RGqjNl;bYt~)MLuo4mwB=5`SfMA>j&8^*%`ta@=Y=Hk&mo@Hs8nDT{TAXSQ z1*y0OICQ9x#w(qnE6r|^fjXuumaBmn+6+`AWj(Lhu}qLFvpwI@fLH}fqd zIuOEN_YBvA#IKo{zlpNnNymkPz6MI3=~saIvD`6A*uP3m(h3Q>fX1l;S0ke-Xo$-E zrg8~3x0tfFw)Wg{0&iFGOGt!p#LwXPr{MJC3A-%xv0r);78bU$Vhi205dGUcY0P;_H169}GpTXrA=s)WrFaF;+uGVdOy3@Z z79=s^bvWLIK@j%_!9SP6)QJmJ7BJhOV5{L49R5e@I4sm@OjdjZqyyA-M>h6(Xlzk$ zWUB@8d0>IOsL{#U8IBc;rRPgUHMKD4zXt3Kd`>vmXZ_4eAf)}yh+++@3|RFI_$3Hf zDTJC&phP63xJW}sX9yxSbkeIn@lvN@bpYkh)^=rWEe1qo=F;>3nV_0Pf`vg%?_plb zVr`sRWUu03speZ9e^iNq&_=V}API}O#{xl?pbK!*5<4{EZlV2@_ z5o0SkRj*ARAZ!{mc9RDKvuoQC|Fg8;Oaq&A)##w0|Q$p!r(vKs)rm8HhjpfmpT^ zp2t7N`qNGLNA->PtM)#H_=^ht719661piv^|F3N8|8jrmqy2ql{u@Fap2`kHqLVQJr^~#Q^u2@Khx3CP17DtTRyt$|2s+WHx{m% z2u`WMy~#%f>!WwnsiCwk05Z_I8N3VFmZa#;&Q8#|TEy(yh6uLEPyYFk{z6sQrE{b7 zBjGVK?^ilw4{1Om2FtEeLmXg$9ni(iES5;K( z_&QnvENYC*6Jn|t(C`8MN{i4w1KAJWFk(cRmXZS86?nM#xw!IyYKG!YaB_dwbPb zQl{gF7JD;EZ+-<*v=@&mH}r%QynXO&cDiK0%|WDntxT=p<-0^ zamc04bk$A}{qHT_xCJ^D5K%x;@>mVnerY=cX{V(#gddn#t^JBrb=1Ei@U zTvCs{4RSXxHK&QUM?r`Kdx#mdb*l}6nNuR*EFgRTXU|eN*uha!T>-|Xo7tM*x>IGL zmDU2fl06UMWY~hr3Zy;OY38!Qk~0mBz%PY70KRWatBZ<>O#|Jx3Rn^h`r3K=hd!R; zv7&Hji^4WqHQ8KHjB^EL7vM}+p!NK7%=z)t87KZc-hVL{K>25InPq;3ilnuN!TonF zm~U{;6)Lr8K&I*n7Dnxj&po}JK|la|I3H}Q;5po zYC_H8$4z@beCT(ISw*H1RtNmmV({udsBxe@s2(iZx7?e8X+eIvQDaH``Qir^!Zgs2F>A9I!2Uy^&vnKE3{i z24m2(vk&ro{yr*Bo?k>)gR)_;K<7~NDo|HvxlNv(0=oUQ?)wEJOBUTpU`C?EVUM#x zUqD^Ax)HY5kIlvm`?3`v!x?<8I1V35tWsk!dFqZ|Nx2iTiX=x{qYuWHek;@x-5A-_juK09}<0Ei6i z8$;~S!N9)L4@zJw-5_@8sejJ;Y7^Dn)6*KpTnKa%i?pmPwmT}kb@Q-V;Ga+NA7Q}` zO~aVbF#O@eYcNO}9WQb(Tm|UV^8jAqkPTgN-F~+-lxR&&X8?qeGbz>TplNKN{3l}X z25Sf88#t!vZvg|9m~}nefo}J0Ae!Q@KTv>nM-}R44tC!r8{pMZ>#M8ygoNwgzMUNQ zRyc?uCV2`(kqR%oA)xk=#E}30e4^h$Jv#SR_nRaI5%!foz~lHntPCy*AG0d+I1v1v zI!!5-18wbM-yV>|yOdl(opJU(>`Yzue|r1!cq-SnZSyi^AtA%ENJtV9QcK2CiIAz3 zv8a?Gl_~Q~D7F-tw+v;7il_{g24k63C`Fpv3*{dPQQMTZ184-e$u zFHu*mYTX~ah2(v7`2J`h{ST}(a0madXnW6N&X)+4FY!}_i!1j0N_x5< z@2%A((oN8GJkmRS6KJYX$T`9Jx_fv8YtqqqZjt(1=;P^YtAA4hO_)Hb#kuJ$m3~80 z6{i_D1jB!K8g*Ro-B~EJ|4l!`z2d8dri57unmpAPKaTOJR>mCd5TEbhyP zU^txo!U}LTzx~h;U;r5YCIg1QbpdpNe>D6HE2ECKH#9dl_xJDJ@2n2U5*WZA=K&l9 z3T^VAudJCoBfc3;C0Q(}I`d+e_k`5E1xZ*r%d=`M&j~68$O<+0{{6`R7v#2HHGF;$ z&MrV#y`dyq2k%ys<}Y8qfGvO=aX0Be?&ZtR>V!@T2c|Jw#04?@i+3-$Kza-^_Z5gp zpjkwC8Ew(>@bEzFh4dSKStF2_$bxwN3XwU`D;{oc1q5M`iRv3S8eLeYcQ~Q9A(U-t za7f7B>xWOER6~4!CWX1dM>+LD$&_2bK%(L5V?vm6XIM3p=+js4ROB zn^AhZ_LK&xcrVOv_yeAZvNAIHKyoV@D=L()5eg2{INFP-d$TpZ%*{Qm^EkCr9B!}e z|DM~Qqco*csx^ZcXv{H4;>(vufWSggLgSS@G(YpL>4Cw8@2~HlO%mRbJKMdx53(Vi_czqYg!mroE8zE zCS8MCg)-0WT2C3cR*4k%Vind7B z`UjlScq><3p6I)@xcB+D`IfY_Dy4Fz@^Yot&lxXntA72w8O@16c5Z#zMU*)X82jF4 zIHo)dhQ>!{X=ZM=M(W_jOjQ4JJel<%c@?O&OT8a~wUnq&w`NV1qH5-z)Ti`>w2hwi zA+t7e%S#rMYLVUYBz;EQ;&=54) z^!rT|jfwSn+bG-xq9(){va(MuiM3ualq0Gr0tqt`=RTJkNa||C;)T|aAxI)ispLScBDotVIRn)~UpXS`wS&!%_aBgfeh+-ZX+J-Z2M;(_ zukD~M3S8N4DEct{WXBR?pjMJuTSRb9q~?3+S&uU9rwO53TCK){m_&yPSq09`JYt3j{w0Fy`mgLW z?|1Ru5@y*0-RS4}ug6apX3tMGiuILP#gQmNSK&M696iryN{j?7P-_`KHJeH1@*t2V>+^3dCJt9I4b>+UUBk=AlYPiqTPtOM|3Cr37vJMV8#l91 zjz_N^QiC>~CtC~tW7hqzFZ(<^M%2#PIu=A0(Wy+3i?bGcc$_WR?f5^Q#Qn4H8NKDT zxR1rPjc(XMX={+IH{+3)j9Jl5_+%YSelGIw7rrfUG3N~GvJx{ZZ0^vu(45FU>dtG@ zn|mQgL}hl{|NE^wp^vd4t6vQkA7yYzl}lv z$AG<;aq9uwpb=wHU~<2)kr04Z{oSRuTChNPy*T>{tCPT7m=EVr6~rh&sbzN(vb}tL zq2nGi)swRJU^A;Q5eRMBa2A@P`;^jyE($o7g*{z< zLu{t&kC>mn5e_@0LQqL^3!hsz!?<+njbHr%af<^O{1G{-W^mlU9-`F;l%^P=eJHq5 zUnA3vUJ1tj=8^7}*47eWjPq5Ru*ie$1h#DWEN)I}O;vS8p_g>NlTlE`#S+>C%darz zE5C<*rsnJ0R2X30G^7M#@j`q4;9&U)xb#961Zf^X?NOArA~o3y!k)?k+}yjs7XeKy z)uBDEN=VrmA)4l^nAj}_`4Q>~-R;S8kG?UwokW!~ zzXB5%OvcZN%W9!Vn^_k$Y*XHJ6`FA@P*KDqY(7p9*Ri&K4#5ga>9BhcmNhIz=SJ9f zhgJq=c63kCJeT5QV@1{<-i_-(rdXIimW6!EZK92zR%1Yi3Q#T7(`EWX4IOajL;W|d z+E>oPaD|shjEBYv`6YZt??8Y9)ygPifCqhh+nv+Ce6{=k#10EPMIDKYI>dGnM?!!{ znOy^m=Q4ZNh@2LifbYwqfcl{to`nOHJ3Cy5I$pL4s=1Lp*%tLH6>>@Azt0WDX9Ujj z=P=8|eWCqv^;i+(WQp2))t6o&0;Avw;X1%)Myb7CuKOY}2IAep*Qu^|tUw}w8_-!w z{*KKV1N;pWgNMk<8hFZLHcCtQrjjJ6C!S zsPorv-&Pm;Xl7VRSP=W9AyBS>4V|0>66q_}RqG^1y%9RBx7j9iS zfvOYrYfEFJ6Ff)ol)-j812FLlf;btEf46aG18&VK8$IuX(3~|Th&OlY*>3w_>Sy}7Faq=i-S)NKMw2O}Tn;=_&x zbP%j_YH8XZ&4iWW=tNJgUCmP%fdD_;oO%i-URKu}?FQ!O-=?}EtUmBqu3uoB6Rr|Q ze!l#lTXNGhy-o^8BjA(;pr7RQgoIsX_IhfsA!V?OX??k`wAV$3&MvFw3JE|9OjdiZ zGUP`|o=X5gm-OaII6To)8fevw=O!jC$@a zitg5}2x<#Jw4L6;BS{8z5f)QVBMS0Yx|V5E&`#X}ZrjHf?B?`y7bi*a&|;O9NS4N6 z${Twf;>|rbT&y5cf@Gm=z-Ld5mpf`}n|VW1SNtnAdh{yg9b>qpKspo;MabQsNon}bG#xB2 zJ4Fi9becSKClmykFRo~AH=*jp`{ZI@?KY={=mTg5GrVxyrA`n*AM4CYWP~G#p|0*Y z+xw71v`xT2D#{|}??fdG=OWbew-PI(HpeeIqK=j@vjKT})8VD8W&iGQUDXKxKMFrX(e8`6t&dwKqC zl_Pi`bYiQ&z6y3WuqT`@V3~drqM-OIF-3}SG#ihW>5`ak}M3#{b*b(6H*lWe_g zNc)&T)Uzhu+sfhced+IS{GBrYUwkCJyo2%f`fYz@b3bmY zIMnaPljAS=e{3t6t}eVk*J~ARtV36eXH0yuzNzj5Ca^f_|wuj~X9MRkMchv#1r zvgSGh1R~}JM@DYKjQQwe8Y`fDDEJ|&br94!%}-zLTCK}2@$1qtyIKEA8Zm;;hZ7(| z!Ri|`UEC)!7NSepguWMS|9x_6xUOsGl7Bstf8N+dMZ5Y?R8iO_ZXSBZB1SVBfFuBU zHGoMfR+|2DnB0PrL-RI*H^ii>eqY>94k8(XJ?@wD{*YH+=gmtXfk z&n+eOljA7};H9OdKs7<_%VJqZ)~<|SuEg?TGiW$@d9EnHJKxbuQblAzWpe+DWHNaW=Fo`u z!E3jkPf!Ca#kqW)<`tyLn*9Vj>40w&H=((K=Y!Zv0+&c++=T+d!Z5=e+R}%ACUV+3 z?y@z@CdxvY&;G}i+09uwhIf{$-S~n$Zo5}dNy$f}&EIpKKa8Xn5OiUfW~JWIfFj*W z9B#uy)7O#F&oY-4C~aS84)m$zO23Z?m4V^d zBy{K7hmH5Ss0m1UoLbY%Jo6(EoXfrdIedE4)rQ}xb{o7Avw-=~h8lg5_@6j=S1U%< zd-?PbMtc{{66j47?ZS|lRv;0naf1Mi*Nix-G6o9jQha;`boUR`)xW$_lu8q4<1qaL{S9Qu7XDxFwUe6UYsY^pX23^#)TRO%}*~GEr@E|(L>-oKwLCq ztbvOyGa(ib{__^v+*TL?XdE)iNvKOAu}pA6%rs)+7Lk?{m}HUgedqH14mDTpccQS0 z9NQTEei#}&9yfaoQ-&-BiH~=_9YdOuVzL}gCZOE1@62YJ5osf(ebn)BQq<{Q51OGn zukXhp3@gwOn=*T56Ceb#=2s#;kFE~A|DWfU0AfE~vBj*?_B~X(opd8Kh6cZ@wX!y# zd>Rrq+bi&ogU; zh#MH52aS!N*ShuTfK8BXzZ7$0S^YKrgVpCO|5LbikQbr3%wRVwy$#pUp|wi9x`!Lp z`maCy6xJXP}tb-)Os?3=sAzKu{% z)%RR8n#j8JH^kt%l*COai@xlI-*TRCAZUaZcfcx<<=rVVhVI>wPmEa^{~3|*6uXb~46q)zwu#^z`17Cmc~=awN&D z!9Ssolc|wpYa%UR&lC~DXUv(Dnb=r=+keTLnNSVTQYP7 z1FOExA}_3zRWbvP!!%@`;6sjdv@7quV{jC2|DZysnqy?Gr_dy+8c_=Lc}7RrfE0$l zUlCBQ^%n|cw2qe5Q2#<)LU|B>c|DozM1SH$Om_E>q}*ZA;qKDkNZ=qon@Be~g zSXcb^=}Lv^1j-{^18eu+aMJd5KX0U7{cpf%+XGtW!}^~51J7}@)2B!-r{OJgzr7`# zc4HbIr^(2R1j0$zq@pq%|%#}PBiFw%Mz??Beqmu`n7f6>kV~Ns=;>h>qe(z}^ofci-N!x+KYCn53QE%c z3;b)-nUQqZK&5kNe$^whID2=o`RocpKmTS^?}CaX$HE9$+)Tgkjt>||F}!P6f|Shz z$hr^)i;dQ6U8cdS(<{&I#M*_eWMN7Xf%AIrOdsv%E%HeoZ=1Za&zv4B3Mq=P*vPOd z?8ng5hi$u9B*8aQ5RuEKe${7J$HoWf%nkawMI;Z$W9j|MWRM&k2560{IKcx=S0Lp9 zR~JD~IXN{R6lP8VA;EZt#neiY#1_6V1OyXCQil>t2Dr zaa#icI6O;-ZckutU>Hc&)1vg=613Mw+J@3^}6 z6x6{U)KbXQA^7_gua-b{1cZSfeX#1UtnhJ+`xh9Mw2O?TDLHZRwmYNR1zNQMV6_r8 zFvox4tCJoz32=A4jGY_i*r`|d*e0r+FKj#|AD$2P1*aqcayK^EL!ce3F>>h?P-{4= z3+Tp?>nsiInuyY7*E#>Y`1 zhJ`y+LA(Z!c635eQqIsBF0Vq>Sm&J;g()~BWS5}WtiW}JHlfbM#I*~eE(h6lHhAf~ z7u7f6#`2VgId)6}KLvGm#xPs& zA=&CTFo+iIo2v57iulvM8QP|D!z5G#|zfYUqaOt%TtMUna-I})H zGjfXrJP>mchFM4#cUET5kTPc5Uf>+a1`Zvq27u9MjG!8JDn2rjX4!3}?q`Q%HrnXb zqA(ibKzf{6-!ZfE1?tRU@eKJxy2AV{0AzVCuvgOFMMQ7g9L|r|Jl~l}a*1h(6i)#o z1KKq`Gt*T_h)lUJgqR-c(>8)%0?sBl+KEYFbV>aW;PA-dYFEV}O(rp4V|*Q$7)-#6 za%0=h%ZpwN3<+)0j>)expp;4rs5K+*z2;8aLsK-53{F&x)Cc(iu&N{Hv>=0e`zVpH zu)jy0U8nW-;=;E|c3ibqwjo7O*lc$gA2&B$>ynb#7AP2aqJU~Os154!%UK4-#65$X z@0u30N5qUV}panO>)qKSx_}NMJC%H3lExbL#j4;Y(yYsQZg6@X=pqZb4M2cGHjELa7x#0rpH?U1$pJ8xzQ=CikjwyPwpDWTcd5 zcx(v%vZ!nhSgE95MOL(nH+s&6A=OaVyx1B&9tX@dIYb^{i$pCK;#2x9v_$(AEUwua zTc2cJ1cI6;?{l6IAkCPTKpx7==gWd(&_C+J+)IIly z@0>=*so-|#GjMNG`DxF31E1T2QWw~rItr?qX4Uv%wTU#!M>)$8SoZu5QV7ihrq#v4m z-)5R#))Ae%DUygy2r_r<*VUwWVUs#|)wboeXC|phDuw4KE>rlnWZ;9?sKTqMi2(ld zJW5pZ=IC8lN=SpR(Rq{Y+`)L#Ycf-zu_vRf|L)}8o{TA-(iQi(jJ^%y*dRW0VGUp$ z+k0viMd<|UMd&Wtu3dJxE^n7`M9agZRZC~4&?Ts6q4#vCe_2TPPE=!tG+-&01B&FhYK4&ch#E#Pi5ACHLFM&!PdqeWd z9sHgo_LM`+&Q`IKhRYKZDN#$g)|$9ITvRQQab_OVQmgY?zUD`U5V?DaZtXSYpuLRh zY<~t$if_zieEd3}(KWtfglBDOg-_tkmgF_UN(I&w+sn-N>7H<8M4ui;jWTp-kh5}N z0=x(21ooxv58(!u#_l`A*<9Dbc*943pz65vm8uWlqI=$r)yU0jg>x=Pn@iA9doUYb z*p1ML&4*Dm4Qts>t8U|hH61RhJ zu7<9^YTaV7;Z+Pf5tvZfuKM<%e(bV!ZR>)^73%<}h^M!iWi6WT{s>Vf>zgp? z2ZNJyxL^Yc%}D^|o`Hi_nYeL#8b=AgG6LCM6LrUj3Cd%M%y#e9wgRQZc4}fA(94kO zaLI>TC3>n(&+hJwBCsKBK6({=h?R*}Sg8LQ74z{;k52vF?)i@_0m^xWU5UcG~x(jgHWt!=7h&t-tC)@qOL#I4Vp*5o1248Oihe7%Jl)ErxOgYI%QfpAz?|X7f9x<$l>vXVN#;fs z0%r|$heb8u1KjpOClG$QqmUpvx~Awe`mYZus~#kW51O|#$wur5cQWg6&B;~#;;Q$( zPY-1th)PUm{x5oO!hCA=ZyfGqzZ}k}cw@YobE3*kLPDZV=GGalK>47LbwdZQ!e*E6 zJn#8DNPs|9wb9lEM*UdVmF0!_yEC|)UZTOf4jl}_)0%`>kqI+yuCt{ZrfZOdRbH&z z0yiuyrXf}=QSuW@ofO~7IRgWmTb`@PWIE~lcNUJL*In=X1A=S>*Onnfa#^W{qWq7M zgOd=>IJ9K4XxgMU^~f~*zHv9wP3w{AFO zyD`RnaDZ?&u%*Y;z_^6tM*X~1h`pKs%VC{o=dzv!_bFK4nyBV?$f2uOl$SS5&1T%X zZOoAtvqbvrZI-N;5TW;_6+jA8o|kG0Uha98S9&P#lHr3PJ^BS1rq5Ma6Mas8^=x^1 zKcl|TLuRIJgst1?soW&eOSBq{KLTTs-@1eM*1i%-Z9ymyGG^v8Vw?A8Y~}7^OoUh6 z_<-N%W*|SXtgt}0`o=e8ouA*ePLP?YdaeFbaW=KLo)eAvq|$HmtpN+BsO()*(W5(4 zm>ZIPtmeyW$8Ya?%3g!N6nK=vZ-(;_S0`~XX-P)^d>r@N*dwiUwkCS&3!y%ZetVGd*%G>b zsdHRRQy+iUwr-TlK+CtrmwtX-4>mBcE4F{s)YMe^OioRGh5j14sBksk3N80&(|Mc7 zyXk`LT9wP=?d40FESEl|4_G`kld)ElhigcVnwjrEG^CC9wvR zS?i6zRC7I1>QMN`&m!I!H5RmV*|JXHf1}|La)G)@3>uhpmZhT6g9 z9U)UUrQk9RQVl^0Z;4E*uiV5|zf-}#q5jKy!+H_`@E!*X@p1EetLJYMg2^J<*YNLQ zirWb+Y>|=)3}ZoO(*`a|vPx`_yoGHJf+$XhZ zWqz=m>0brD7I$c>w$ao%PKZcoHzm^WLw)n(OYmrx(y;#&UGC(tWN9t#N1-$XK(t~L zTd=+q4P}_fe6x+4(98=6fY21H9GO+CB#v9In_wTs<}B1sx(zjeiigv-r}fAlohM#~7Ij7+5ch8(gBmVF@ zVUX@3zR{?TU5k3-$@Ega==~HpPPJRQvWK%Rm3rr+&&}^tAIkmOAa8J2t>75#6Smcd zM2@o`qqT+SXULe~ZpvGw1Xu5@~}F#Plg@08;s4gD_mVkP7_&cx7l{7tx~ld9~lyVnxxY zva;DT@A?>V-j}Vxc_tI0ZefEz66?dHIqd(s9Zl8lU37pDC9H8xROA;WIiRer|p(hFT z+kvK(RS*VPsxfo;;5?gSa#CzN&KIM^Ua?qt>_wcc8H2GI(l%qK_g$j?U*8l?$?OQ5 zqoz*3Q>sllwt_n7*woQ5^?Kxe*U=Pn=Hmt0VUPQ7OsMiFGQFrUP_9k&Tl_Ao+gIVe z@eF;Hj=RkG3t#)bie3CArk8`t4qg$c5M1tk&r6OYDqZMeTSnma-MeGU+<3JOny&M# zcu=%$f^4-w@UZj^PvjiaFsf*Z585jE>XjMtc(Q&iB7wC zA3;TXm-J0vaSSrca-OA2RUIGZ0}DC&;#RBWQ#o|K_7jhf_`jZ* zXn1vSOzX!Dg_L(RbY1lgn0rT#dF^xaaOca$%dD+v>E4cF6J=)WS~kvC^9qk$Vs%3uWH{u7Nmb7rGOwPj6)Z*r= zW<{hfj>Sql9VUa$YX^iY-vt@>-25o{)Q+L+O7Dj^Z8b|D#hV@wzpg$Q+t}73;lBI(ILChbF?Xjf6?kP zfta4IenQ@06T5AJKeh9eOu)?eiI@D(Ic3?{E`(iLUVQ|HE~06xeByF;iNBZRz^Xv+ z-5GYG=v-Kb&UU*zQt2AtLE?+7ipV|O1p{Vy1o*nS1U#Q4Q)-&}u5Zo~%;T48&D(jl z@6aLBqYFu^j#oVE$@77X(^b)lyS*^t!I^>K175YEIL?H6*>K<6RinhbKdruNk6a5_ zY_)Ws+yzMQ=7oGhN8q+6k8N&E3&-8RU|&_X>bCdiV=oG(0=s%&Fz1m%ed%I3KPoYF z@tKRozcl~wBTjVgRj)z#mV_l1%v@%f{^j;xdo$8p4)yaO@I zbG=~viDaKZSp@WCxw!XdIO6Zl&+BO4!QahgYUSCAk9~Naj{NRuck$9B!!rAowmV%e zrplsS!|o5+&YIgCuzup)s4$)w8t>L|QFNnNu)aH1*H~x2t@X)qwNSNW#jb}n-a`WN zqpBx+7;!`aLyU;fZC$pz9&co?-H&fJ{X;eg*2a%99fCUMg0s8|_%mW`ikkDI=reWZdEGCfQa9+1F?LLHq znabX12Y^+Xnd#q0Hnj~a^Vso+Y%~9QPr7TR^X_UAkQm)4*iYCO%|iH8%%?Z&QYNJZc0EvQE;I|teCW=qEbp;-&N*|Yqe2|| zoYxO_mTl`~bR_T#EJmtto-Zw#5F@B^JXvyNX$*5iz2ovODRTk~|NTjUC+zHu)u*m# z$OTAh?*P&I!7)o;Vb{_AlUHycOB|@`qGFcUWr+1S(fzgRS%pXr{`twSy+;)#kA>Qs__Fd2b6L$MxVhumuHNN>n$b;5`BSf<>Cup<{-a(Ox$-yMCQQ_t9cDsegT){UdsN+WooW2 z@jY96PDQfxm|DsdZz$cWmA1yoG3#x6j&yIwiRkn+jnnsM;tyPiS~oPbntQ9*?$uvg zllf*?_bQuz#nw`m+)l|O&CQ73d+MIIOFYsbO^sr6he1)X+hr_ywN7|!F3E%mz$`^k zQmR<=ppaivDBH8jTVa}4jC1%?eH-I0h0r^7iKg zdsx;hy_tG*-p)Cuh>+B{r;X)ggYbUF#N-pN-Vj=>tpG1J1!K zwJ&0qOLg8pdGp z#aB_i(~OuO@n-{rW<{Mw&$zEg-6gr*YTt3D5F3#a%5TGx^o#EjA^1B<-g zJ$1FF^mM3d+lj&?kz#*Ou%~fy^39F&ojNaWE%6RR2mk#v1rt-3n!`4r?{CYl4dpS8AZwgV+mR*DJYu68c4U69u_BsSu@Cc)nA=;n3b` z%ek12XYeq2&Bo%Z;lFxs;Zfej&6bwwEk}FXb4F}E zE7y+LA@}LoVAmbIgxlzzId7On$;+y+UgcN3J&`@0l)lv_$y3sHpXjH7avA#2; z#I@|h3*T$fP6{z8Cs8WQ){&@mE7Xp3`5k@LmX*Q6l(cnt;%2q8MPpBy_++z6kdMs$ zqsvw7nmj*EJ~JXb%byL+61Qdg>fn;1m-}&G@$+h9;*xN1mV7`-($*b_n|QNK zn$v^Iz4Z7RsBzscS#BIRW>pV={Pp`LPuek6ro^nQfxZHqQFXf1rI)2^yJyAK<0Bss z7~UOLU_k{{88Dt~nN}2mgI(}(uF$p{$hpDrv&H4N0jI@wAt71Y7^|j3-#ffc> z$6l#Cd;(g9!M?If_35rd^?zD2gTyQ^*do#wOt})as`0Rsy!mBPY5a0**}i&ySo}S9 zeqZbc92#5p-SH!=uf0~Q+7O9tn0X_yM~F{n2q$@36i$clyl(x-0&S!b?t>TC_q&Y6 zOgk%{@p<2AK&j0h>gZtvSjB{e~UwUe=Fy@B%EWxL6epW6VJ!o*AI=+A67ec%t*#1)n}IZ3E|1JnNQKr z!V?m##!s@E5+~bkl@HqF1-`6bHTglyDAU)HL2cs|E$1V#oW+RotQ>n8a)OGpIn9+- zmi3uuX1EAR!({xBAk&OLTMclA4f~eV_|wX7&w(o2G5VA2`|P9-KFcStDo4u6tWVpI zb-}<`(J$p^MqC?)Pm+v0j z+5e|0vFVeFb6e7BsJpIbWNbDmJsoAu}ZjVnt_E<2H~JkHFteM`4L%13h; zc;{B>cIBBQWCKC&fpVBRD%4|Z9@mD?&G9$fN&dOQRXVNeuWBon9(p&iFLJ>0me&;j zjgOTdQj&WVKbMfe-JRS6wpC!I`&Gp$oI?MY)M>Y_Au5~XvM%dDd+2a?c16iJ{3SS* zc779fu1BQfIC*zhF_6Ua0wwEi?ziF=M9Xj&bBFB?#o5|#kDOQ?M|g2cK6Y|euZN>$ z+|MfT+=C7EXS8!{c@&q~=aB|!XKq0ZtwR~zV^_`a!BN#Ea&l@_uvvT|`CE^G|vlwW`ZLdajiIQR*EWs}mf&QP$9Z^JA|2pS89~E}~b{*=foLh($BI)bC1_ zKg+BZzEoOX@L8f*OIj4gb5ub7H184^lm%W||LvR#M=mKX`ht%weV1@~WP!oH!0Y2pwWRc6OYZP;F;uC1Nd&i7~L5*k3#EYw(Y zbw6d3-xnE4$FWNHM5Ikg*X*8GZUg?;c_N;Cr4^(NgaI1IT=egv9Ca O-!?r%-C}Lq;Qs@L)f`{| literal 0 HcmV?d00001 From 6694fc27909c4d699a23113a333eef9550897f29 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Mon, 4 Nov 2024 03:53:52 +0800 Subject: [PATCH 383/619] Add filter command feauture to DG, edited sequence diagram file names --- docs/DeveloperGuide.md | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d96724bef6..4fdc26debd 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -295,15 +295,39 @@ Given below is an example usage scenario and the behaviour of the `sort` feature The interactions between components of `SortCommand#execute` are shown in the **Sequence Diagram** below: - + ### Filter feature The `filter` feature allows users to filter events from the event list based on specified criteria. This feature is implemented in the `FilterCommand` class, which extends the `Command` base class and uses flags to determine the filtering criteria. +The `FilterCommand` supports the following filter options: +* **By Name:** Finds any events containing the specified name +* **By Time:** Finds all events scheduled at the specified time +* **By Priority:** Finds all events with the specified priority level + +The above operation is implemented as `FilterCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, +and is invoked when the latter operation is called. + #### Feature Implementation +The `FilterCommand` class is constructed with a specified filter flag and keywords. It then performs filter operations based on both the flag and keywords. +Given below is an example usage scenario and the behaviour of the `filter` feature at each step: +1. The user enters the command filter followed by a flag (`-e: name, -t: time, or -u: priority`) and their search keyword e.g. `filter -e work` to specify the filtering criterion +2. `FilterCommand` calls `FilterCommand#execute`, which based on the flag invokes one of the following 3 methods + * `filterByName()` - Finds events containing given name (keyword) + * `filterByTime()` - Finds events occurring during given time (keyword) + * `filterByPriority` - Finds events with given priority (keyword) + + After filtering, a success message is appended to `outputMessage` which indicates the filtering criterion used +3. The final filtered list is then formatted and appended to `outputMessage`, + which is subsequently stored in `this.message` and displayed to the user. + +The interactions between components of `FilterCommand#execute` are shown in the **Sequence Diagram** below: + + + ### Find feature The `find` feature allows users to locate participants within a specified event by their name. @@ -327,7 +351,7 @@ Given below is an example usage scenario and the behaviour of the `find` feature The interactions between components of `FindCommand#execute` are shown in the **Sequence Diagram** below: - + ## Product scope ### Target user profile From 6e70b64217746cf7f99cc348544bcaf5641a5dd8 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 4 Nov 2024 08:34:37 +0800 Subject: [PATCH 384/619] Update sequence diagrams to use parameter names in methods --- docs/diagrams/AddEventSequenceDiagram.puml | 8 ++++---- docs/diagrams/AddParticipantEventSequenceDiagram.puml | 6 +++--- docs/diagrams/AddParticipantSequenceDiagram.puml | 4 ++-- docs/diagrams/CommandParsingSequenceDiagram.puml | 6 +++--- docs/diagrams/CommandSequenceDiagram.puml | 4 ++-- docs/diagrams/MarkEventSequenceDiagram.puml | 4 ++-- docs/diagrams/MarkParticipantSequenceDiagram.puml | 8 ++++---- docs/diagrams/RemoveEventSequenceDiagram.puml | 10 +++++----- docs/diagrams/RemoveParticipantFromEvent.puml | 4 ++-- docs/diagrams/RemoveParticipantSequenceDiagram.puml | 2 +- docs/diagrams/ViewEventSequenceDiagram.puml | 2 +- docs/diagrams/ViewItemSequenceDiagram.puml | 2 +- docs/diagrams/ViewParticipantSequenceDiagram.puml | 2 +- 13 files changed, 31 insertions(+), 31 deletions(-) diff --git a/docs/diagrams/AddEventSequenceDiagram.puml b/docs/diagrams/AddEventSequenceDiagram.puml index 8efc1a1ac9..7930fae92a 100644 --- a/docs/diagrams/AddEventSequenceDiagram.puml +++ b/docs/diagrams/AddEventSequenceDiagram.puml @@ -9,7 +9,7 @@ participant "newEvent:Event" as event EVENT_COLOUR group sd Add event activate command COMMAND_COLOUR - command -> eventList : addEvent(String, LocalDateTime, String, Priority) + command -> eventList : addEvent(eventName, eventTime, eventVenue, eventPriority) activate eventList EVENT_COLOUR eventList -> eventList : getEventByName(eventName) @@ -18,16 +18,16 @@ group sd Add event return :Event alt event already present - eventList --> command : :DuplicateDataException + eventList --> command : throws DuplicateDataException else else create event - eventList -> event : Event(create xyzCommand) + eventList -> event : Event(eventName, eventTime, eventVenue, eventPriority) activate event EVENT_COLOUR return - eventList -> list : add(Event) + eventList -> list : add(newEvent) activate list EVENT_COLOUR return diff --git a/docs/diagrams/AddParticipantEventSequenceDiagram.puml b/docs/diagrams/AddParticipantEventSequenceDiagram.puml index ab3c1d61d9..b5d48ce584 100644 --- a/docs/diagrams/AddParticipantEventSequenceDiagram.puml +++ b/docs/diagrams/AddParticipantEventSequenceDiagram.puml @@ -13,18 +13,18 @@ group sd Add participant to event eventList -> event : addParticipant(String, String, String) activate event EVENT_COLOUR - event -> event : getParticipantByName(String) + event -> event : getParticipantByName(participantName) activate event EVENT_COLOUR return :Event alt participant already present - event --> eventList:DuplicateDataException + event --> eventList:throws DuplicateDataException else else event -> participant : Participant(String, String, String) activate participant EVENT_COLOUR return participant : Participant - event -> participantList : add(Participant) + event -> participantList : add(participant) activate participantList EVENT_COLOUR return end diff --git a/docs/diagrams/AddParticipantSequenceDiagram.puml b/docs/diagrams/AddParticipantSequenceDiagram.puml index ad824d15c9..656dd9e657 100644 --- a/docs/diagrams/AddParticipantSequenceDiagram.puml +++ b/docs/diagrams/AddParticipantSequenceDiagram.puml @@ -7,10 +7,10 @@ participant ":EventList" as eventList EVENT_COLOUR group sd Add participant activate command COMMAND_COLOUR - command -> eventList : addParticipantToEvent(String, String, String, String) + command -> eventList : addParticipantToEvent(participantName, participantNumber,\n participantEmail, eventName) activate eventList EVENT_COLOUR - eventList -> eventList : getEventByName(String) + eventList -> eventList : getEventByName(eventName) activate eventList EVENT_COLOUR return event:Event diff --git a/docs/diagrams/CommandParsingSequenceDiagram.puml b/docs/diagrams/CommandParsingSequenceDiagram.puml index 1390eaad63..f3c6a0f942 100644 --- a/docs/diagrams/CommandParsingSequenceDiagram.puml +++ b/docs/diagrams/CommandParsingSequenceDiagram.puml @@ -11,10 +11,10 @@ main -> parser : Parser() activate parser PARSER_COLOUR return -main -> parser : parseCommand(String) +main -> parser : parseCommand(command) activate parser PARSER_COLOUR -parser -> parser : parseXYZCommand(String, String[]) +parser -> parser : parseXYZCommand(input, commandParts) activate parser PARSER_COLOUR create xyzCommand @@ -23,7 +23,7 @@ activate xyzCommand COMMAND_COLOUR return :XYZCommand return -parser --> main : command :Command +parser --> main : command : Command deactivate parser @enduml \ No newline at end of file diff --git a/docs/diagrams/CommandSequenceDiagram.puml b/docs/diagrams/CommandSequenceDiagram.puml index 86237a3522..a3e2b5875f 100644 --- a/docs/diagrams/CommandSequenceDiagram.puml +++ b/docs/diagrams/CommandSequenceDiagram.puml @@ -24,7 +24,7 @@ deactivate xyzCommand parser --> main : command : Command deactivate parser -main -> xyzCommand : setData(EventList) +main -> xyzCommand : setData(events) activate xyzCommand COMMAND_COLOUR xyzCommand --> main deactivate xyzCommand @@ -34,7 +34,7 @@ activate xyzCommand COMMAND_COLOUR xyzCommand --> main deactivate xyzCommand -main -> ui : showOutputToUser(Command) +main -> ui : showOutputToUser(command) activate ui UI_COLOUR ui -> xyzCommand : getMessage() diff --git a/docs/diagrams/MarkEventSequenceDiagram.puml b/docs/diagrams/MarkEventSequenceDiagram.puml index ed1dba1813..cb74f51dc6 100644 --- a/docs/diagrams/MarkEventSequenceDiagram.puml +++ b/docs/diagrams/MarkEventSequenceDiagram.puml @@ -10,13 +10,13 @@ participant ":Event" as event EVENT_COLOUR main -> markCommand : execute() activate markCommand COMMAND_COLOUR -markCommand -> eventList : getEventByName(String) +markCommand -> eventList : getEventByName(eventName) activate eventList EVENT_COLOUR eventList --> markCommand : eventToMark : Event deactivate eventList -markCommand -> event : setDone(boolean) +markCommand -> event : setDone(isToMark) activate event EVENT_COLOUR event --> markCommand diff --git a/docs/diagrams/MarkParticipantSequenceDiagram.puml b/docs/diagrams/MarkParticipantSequenceDiagram.puml index 00b4bcb88a..8c2ce1596d 100644 --- a/docs/diagrams/MarkParticipantSequenceDiagram.puml +++ b/docs/diagrams/MarkParticipantSequenceDiagram.puml @@ -10,21 +10,21 @@ participant "participant:Participant" as participant EVENT_COLOUR main -> markCommand : execute() activate markCommand COMMAND_COLOUR -markCommand -> eventList : getEventByName(String) +markCommand -> eventList : getEventByName(eventName) activate eventList EVENT_COLOUR eventList --> markCommand : event : Event deactivate eventList EVENT_COLOUR -markCommand -> event : markParticipantByName(String) +markCommand -> event : markParticipantByName(participantName) activate event EVENT_COLOUR -event -> event : getParticipantByName(String) +event -> event : getParticipantByName(participantName) activate event EVENT_COLOUR return participant : Participant -event -> participant : setPresent(boolean) +event -> participant : setPresent(isToMark) activate participant EVENT_COLOUR return diff --git a/docs/diagrams/RemoveEventSequenceDiagram.puml b/docs/diagrams/RemoveEventSequenceDiagram.puml index c551c768d3..c211d781a7 100644 --- a/docs/diagrams/RemoveEventSequenceDiagram.puml +++ b/docs/diagrams/RemoveEventSequenceDiagram.puml @@ -10,22 +10,22 @@ participant "event:Event" as event EVENT_COLOUR group sd Remove event activate command COMMAND_COLOUR - command -> eventList : removeEvent(String) + command -> eventList : removeEvent(eventName) activate eventList EVENT_COLOUR loop for event in eventList eventList -> event : getName() activate event EVENT_COLOUR return :String - opt name of event equals eventName - eventList -> list : remove(Event) + opt event exists in eventList + eventList -> list : remove(event) activate list EVENT_COLOUR destroy event return - eventList --> command : true : boolean + eventList --> command : :boolean end end - return false : boolean + return :boolean end @enduml \ No newline at end of file diff --git a/docs/diagrams/RemoveParticipantFromEvent.puml b/docs/diagrams/RemoveParticipantFromEvent.puml index 25d2cdfe5c..c162b93abe 100644 --- a/docs/diagrams/RemoveParticipantFromEvent.puml +++ b/docs/diagrams/RemoveParticipantFromEvent.puml @@ -9,7 +9,7 @@ participant "participant:Participant" as participant EVENT_COLOUR group sd Remove participant from event activate eventList EVENT_COLOUR - eventList -> event : removeParticipant(String) + eventList -> event : removeParticipant(participantName) activate event EVENT_COLOUR loop for participant in participantList @@ -19,7 +19,7 @@ group sd Remove participant from event return :String opt name of participant equals participantName - event -> participantList : remove(Participant) + event -> participantList : remove(participant) activate participantList EVENT_COLOUR destroy participant return diff --git a/docs/diagrams/RemoveParticipantSequenceDiagram.puml b/docs/diagrams/RemoveParticipantSequenceDiagram.puml index 69e2525d5f..b03a70c0e1 100644 --- a/docs/diagrams/RemoveParticipantSequenceDiagram.puml +++ b/docs/diagrams/RemoveParticipantSequenceDiagram.puml @@ -7,7 +7,7 @@ participant ":EventList" as eventList EVENT_COLOUR group sd Remove participant activate command COMMAND_COLOUR - command -> eventList : removeParticipantFromEvent(String, String) + command -> eventList : removeParticipantFromEvent(participantName,\n eventName) activate eventList EVENT_COLOUR eventList -> eventList : getEventByName() diff --git a/docs/diagrams/ViewEventSequenceDiagram.puml b/docs/diagrams/ViewEventSequenceDiagram.puml index c0b427da3d..9cba95737b 100644 --- a/docs/diagrams/ViewEventSequenceDiagram.puml +++ b/docs/diagrams/ViewEventSequenceDiagram.puml @@ -9,7 +9,7 @@ participant ":EventList" as eventList EVENT_COLOUR main -> command : execute() activate command COMMAND_COLOUR -command -> eventList : getEventByName(String) +command -> eventList : getEventByName(eventName) activate eventList EVENT_COLOUR return eventToView : Event diff --git a/docs/diagrams/ViewItemSequenceDiagram.puml b/docs/diagrams/ViewItemSequenceDiagram.puml index abe09c2630..e1047d1a23 100644 --- a/docs/diagrams/ViewItemSequenceDiagram.puml +++ b/docs/diagrams/ViewItemSequenceDiagram.puml @@ -8,7 +8,7 @@ participant "item:Item" as item EVENT_COLOUR group sd view items activate command COMMAND_COLOUR - command -> command : getItems(Event) + command -> command : getItems(event) activate command COMMAND_COLOUR command -> event : getItemsList() diff --git a/docs/diagrams/ViewParticipantSequenceDiagram.puml b/docs/diagrams/ViewParticipantSequenceDiagram.puml index 3832d3ed73..d54f437b39 100644 --- a/docs/diagrams/ViewParticipantSequenceDiagram.puml +++ b/docs/diagrams/ViewParticipantSequenceDiagram.puml @@ -8,7 +8,7 @@ participant "participant:Participant" as participant EVENT_COLOUR group sd view participants activate command COMMAND_COLOUR - command -> command : getParticipants(Event) + command -> command : getParticipants(event) activate command COMMAND_COLOUR command -> event : getParticipantsList() From 94a2caab3e9bc8aba000b6ac42a4c44ef22bf649 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 4 Nov 2024 08:44:26 +0800 Subject: [PATCH 385/619] Fix variable names and extract regex for mark command --- src/main/java/seedu/manager/Main.java | 2 +- src/main/java/seedu/manager/parser/Parser.java | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 1005c71ce2..25d3dadf38 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -78,7 +78,7 @@ private static void saveData() { storage.saveItems(events); ui.showMessage("Events saved successfully."); } catch (IOException exception) { - ui.showErrorMessageToUser(e); + ui.showErrorMessageToUser(exception); } } } diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index c4d115a3f5..a287d183ee 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -129,6 +129,8 @@ public class Parser { private static final String PARTICIPANT_REGEX = "(-p|-n|-email|-e)"; private static final String ITEM_REGEX = "(-m|-e)"; private static final String REMOVE_PARTICIPANT_REGEX = "(-p|-e)"; + private static final String MARK_EVENT_REGEX = "-e|-s"; + private static final String MARK_PARTICIPANT_REGEX = "-p|-e|-s"; private static final String FIND_REGEX = "\\s*(-e|-p)\\s*"; private static final String VIEW_REGEX = "(-e|-y)"; private static final String EVENT_FLAG = "-e"; @@ -453,10 +455,10 @@ private Command getEditEventCommand(String input) throws IndexOutOfBoundsExcepti */ private Command getEditItemCommand(String input){ String[] inputParts = input.split(ITEM_REGEX); - String ItemName = inputParts[1].split(ARROW)[0].trim(); - String ItemNewName = inputParts[1].split(ARROW)[1].trim(); + String itemName = inputParts[1].split(ARROW)[0].trim(); + String itemNewName = inputParts[1].split(ARROW)[1].trim(); String eventName = inputParts[2].trim(); - return new EditItemCommand(ItemName, ItemNewName, eventName); + return new EditItemCommand(itemName, itemNewName, eventName); } @@ -538,10 +540,10 @@ private Command parseMarkCommand(String input, String[] commandParts) throws Inv String commandFlag = commandParts[1]; if (commandFlag.equalsIgnoreCase(EVENT_FLAG)) { - String[] inputParts = input.split("-e|-s"); + String[] inputParts = input.split(MARK_EVENT_REGEX); return getMarkEventCommand(inputParts[1].trim(), inputParts[2].trim()); } else if (commandFlag.equalsIgnoreCase(PARTICIPANT_FLAG)) { - String[] inputParts = input.split("-p|-e|-s"); + String[] inputParts = input.split(MARK_PARTICIPANT_REGEX); return getMarkParticipantCommand(inputParts[1].trim(), inputParts[2].trim(), inputParts[3].trim()); } From 0446129086af4b06f677200d0a582e6b65fc911a Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 4 Nov 2024 08:50:57 +0800 Subject: [PATCH 386/619] Fix I/O redirection test --- text-ui-test/EXPECTED.TXT | 42 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 8bda37b39e..0d3f01bf9d 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -24,8 +24,12 @@ filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. find -e EVENT -p NAME: Finds all participants with specified name in an event. exit: Exit program. ------------------------ +Events saved successfully. +------------------------ Enter a command: There are 0 events in your list! Here are your scheduled events: +------------------------ +Events saved successfully. ------------------------ Enter a command: Invalid command! Please enter your commands in the following format: @@ -36,26 +40,42 @@ add -m ITEM -e EVENT ------------------------ Enter a command: Event added successfully ------------------------ +Events saved successfully. +------------------------ Enter a command: There are 1 events in your list! Here are your scheduled events: 1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: N +------------------------ +Events saved successfully. ------------------------ Enter a command: Event marked as done ------------------------ +Events saved successfully. +------------------------ Enter a command: There are 1 events in your list! Here are your scheduled events: 1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y +------------------------ +Events saved successfully. ------------------------ Enter a command: Event not found! ------------------------ +Events saved successfully. +------------------------ Enter a command: Event information successfully updated ------------------------ +Events saved successfully. +------------------------ Enter a command: There are 1 events in your list! Here are your scheduled events: 1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +------------------------ +Events saved successfully. ------------------------ Enter a command: Participant added successfully ------------------------ +Events saved successfully. +------------------------ Enter a command: Invalid command! Please enter your commands in the following format: view -e EVENT -y TYPE @@ -63,38 +83,60 @@ view -e EVENT -y TYPE ------------------------ Enter a command: Participant contact information successfully updated ------------------------ +Events saved successfully. +------------------------ Enter a command: There are 1 participants in dinner party! Here are your participants: 1. Name: Mary / Number: 98624759 / Email: Mary@gmail.com [ ] +------------------------ +Events saved successfully. ------------------------ Enter a command: Event added successfully ------------------------ +Events saved successfully. +------------------------ Enter a command: Events successfully sorted by name! 1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N 2. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +------------------------ +Events saved successfully. ------------------------ Enter a command: Events successfully sorted by time! 1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y 2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N +------------------------ +Events saved successfully. ------------------------ Enter a command: There are 2 events in your list! Here are your scheduled events: 1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y 2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N +------------------------ +Events saved successfully. ------------------------ Enter a command: Item added successfully ------------------------ +Events saved successfully. +------------------------ Enter a command: There are 1 items in anniversary celebration! Here are your items: 1. balloon [ ] +------------------------ +Events saved successfully. ------------------------ Enter a command: Item successfully updated ------------------------ +Events saved successfully. +------------------------ Enter a command: There are 1 items in anniversary celebration! Here are your items: 1. cake [ ] +------------------------ +Events saved successfully. ------------------------ Enter a command: Thank you for using EventManagerCLI. Goodbye! ------------------------ +Events saved successfully. +------------------------ From 33ad2176ef8ee81f57a27f166d75da01577e4f82 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 4 Nov 2024 11:46:24 +0800 Subject: [PATCH 387/619] Update FilterCommand to filter by date-time and keyword --- .../seedu/manager/command/FilterCommand.java | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/src/main/java/seedu/manager/command/FilterCommand.java b/src/main/java/seedu/manager/command/FilterCommand.java index 70412a58fb..6721d59f11 100644 --- a/src/main/java/seedu/manager/command/FilterCommand.java +++ b/src/main/java/seedu/manager/command/FilterCommand.java @@ -3,6 +3,12 @@ import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; +import java.time.DateTimeException; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; + //@@author LTK-1606 /** * Represents a command to filter out events from the event list. @@ -11,8 +17,25 @@ public class FilterCommand extends Command { public static final String COMMAND_WORD = "filter"; + private static final String FILTER_BY_KEYWORD_MESSAGE = "Events successfully filtered by name!"; + private static final String FILTER_BY_DATE_MESSAGE = "Events successfully filtered by date!"; + private static final String FILTER_BY_TIME_MESSAGE = "Events successfully filtered by time!"; + private static final String FILTER_BY_DATE_TIME_MESSAGE = "Events successfully filtered by date-time!"; private static final String FILTER_BY_PRIORITY_MESSAGE = "Events successfully filtered by priority!"; + private static final String INVALID_DATE_FORMAT_MESSAGE = """ + Invalid date format! + Please use the following format for event time: YYYY-MM-DD + """; + private static final String INVALID_TIME_FORMAT_MESSAGE = """ + Invalid time format! + Please use the following format for event time: HH:mm + """; + private static final String INVALID_DATE_TIME_FORMAT_MESSAGE = """ + Invalid date-time format! + Please use the following format for event time: YYYY-MM-DD HH:mm + """; + protected String flag; protected String filterWord; @@ -39,8 +62,39 @@ public void execute() { switch (flag) { case "-e": + String lowerCaseKeyword = filterWord.toLowerCase(); + filteredEvents = eventList.filterByKeyword(lowerCaseKeyword); + outputMessage.append(FILTER_BY_KEYWORD_MESSAGE + "\n"); + break; + case "-d": + try { + LocalDate eventDate = LocalDate.parse(filterWord, + DateTimeFormatter.ofPattern("yyyy-MM-dd")); + filteredEvents = eventList.filterByDate(eventDate); + outputMessage.append(FILTER_BY_DATE_MESSAGE + "\n"); + } catch (DateTimeException exception) { + outputMessage.append(INVALID_DATE_FORMAT_MESSAGE); + } break; case "-t": + try { + LocalTime eventTime = LocalTime.parse(filterWord, + DateTimeFormatter.ofPattern("HH:mm")); + filteredEvents = eventList.filterByTime(eventTime); + outputMessage.append(FILTER_BY_TIME_MESSAGE + "\n"); + } catch (DateTimeException exception) { + outputMessage.append(INVALID_TIME_FORMAT_MESSAGE); + } + break; + case "-dt": + try { + LocalDateTime eventDateTime = LocalDateTime.parse(filterWord, + DateTimeFormatter.ofPattern("YYYY-MM-DD HH:mm")); + filteredEvents = eventList.filterByDateTime(eventDateTime); + outputMessage.append(FILTER_BY_DATE_TIME_MESSAGE + "\n"); + } catch (DateTimeException exception) { + outputMessage.append(INVALID_TIME_FORMAT_MESSAGE); + } break; case "-u": Priority priority = Priority.valueOf(filterWord.trim().toUpperCase()); From 87f834872b8bb2e8e3be7b716ffdc2326f881c40 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 4 Nov 2024 11:46:49 +0800 Subject: [PATCH 388/619] Edit menu command for filter --- src/main/java/seedu/manager/command/MenuCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index a7d05e1f44..ed80162f85 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -22,7 +22,7 @@ public class MenuCommand extends Command { mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. sort -by KEYWORD: Sorts events by name/time/priority. - filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. + filter -e/-d/-t/-dt/-u FILTER_DESCRIPTION: Filters events by name/date/time/date-time/priority. find -e EVENT -p NAME: Finds all participants with specified name in an event. exit: Exit program"""; From 9aae036e20b066e1618db0764dc7db4df54c0c04 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 4 Nov 2024 11:47:36 +0800 Subject: [PATCH 389/619] Add additional filter flags in Parser --- src/main/java/seedu/manager/parser/Parser.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 3fb577370f..1c30c695ea 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -674,12 +674,12 @@ private Command parseFilterCommand(String input, String[] commandParts) throws I assert commandParts[0].equalsIgnoreCase(FilterCommand.COMMAND_WORD); try { - String[] inputParts = input.split("(-e|-t|-u)"); + String[] inputParts = input.split("(-e|-d|-t|-dt|-u)"); if (inputParts.length < 2) { throw new InvalidCommandException(INVALID_FILTER_MESSAGE); } - Set validFlags = Set.of(EVENT_FLAG, "-t", "-u"); + Set validFlags = Set.of(EVENT_FLAG, "-d", "-t", "-dt", "-u"); if (validFlags.contains(commandParts[1].trim().toLowerCase())) { return new FilterCommand(commandParts[1].trim().toLowerCase(), inputParts[1].trim()); } From bc4a318a76876d7f54206867d64cfcb82fe224b3 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 4 Nov 2024 11:52:15 +0800 Subject: [PATCH 390/619] Add commands to filter eventList by keyword and date-time --- .../java/seedu/manager/event/EventList.java | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index fed8871bbb..045f06c863 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -3,7 +3,9 @@ import seedu.manager.enumeration.Priority; import seedu.manager.exception.DuplicateDataException; +import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.LocalTime; import java.util.ArrayList; import java.util.Comparator; import java.util.Optional; @@ -298,4 +300,82 @@ public EventList filterByPriority(Priority priority) { return filteredList; } + + //@@author glenn-chew + /** + * Filters events in the event list to display only events that event name contains the keyword. + * + * @param keyword the keyword that the event is filtered by. + * @return an {@code EventList} containing only events that the keyword can be found in the event name. + */ + public EventList filterByKeyword(String keyword) { + EventList filteredList = new EventList(); + + for (Event event : eventList) { + if (event.getEventName().toLowerCase().contains(keyword)) { + filteredList.addEvent(event); + } + } + + return filteredList; + } + + //@@author glenn-chew + /** + * Filters events in the event list to display only events that of the specified date. + * + * @param eventDate the date that the event is filtered by. + * @return an {@code EventList} containing only events with of the specified date. + */ + public EventList filterByDate(LocalDate eventDate) { + EventList filteredList = new EventList(); + + for (Event event : eventList) { + if (event.getEventTime().toLocalDate().equals(eventDate)) { + filteredList.addEvent(event); + } + } + + return filteredList; + } + + //@@author glenn-chew + /** + * Filters events in the event list to display only events that of the specified time. + * + * @param eventTime the date that the event is filtered by. + * @return an {@code EventList} containing only events with of the specified time. + */ + public EventList filterByTime(LocalTime eventTime) { + EventList filteredList = new EventList(); + + for (Event event : eventList) { + if (event.getEventTime().toLocalTime().equals(eventTime)) { + filteredList.addEvent(event); + } + } + + return filteredList; + } + + //@@author glenn-chew + /** + * Filters events in the event list to display only events that of the specified date-time. + * + * @param eventDateTime the date that the event is filtered by. + * @return an {@code EventList} containing only events with of the specified date-time. + */ + public EventList filterByDateTime(LocalDateTime eventDateTime) { + EventList filteredList = new EventList(); + + for (Event event : eventList) { + if (event.getEventTime().equals(eventDateTime)) { + filteredList.addEvent(event); + } + } + + return filteredList; + } + + } From 40b9cffb05cf67179dc19a780bd6a610b6cd7180 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Mon, 4 Nov 2024 12:24:06 +0800 Subject: [PATCH 391/619] Fix bugs on diagrams --- docs/diagrams/CopyCommandSequenceDiagram.puml | 3 ++- .../FilterCommandSequenceDiagram.puml | 1 + docs/diagrams/FindCommandSequenceDiagram.puml | 3 ++- docs/diagrams/SortCommandSequenceDiagram.puml | 7 ++++--- docs/images/CopyCommandSequenceDiagram.png | Bin 42246 -> 38098 bytes docs/images/FilterCommandSequenceDiagram.png | Bin 35941 -> 31628 bytes docs/images/FindCommandSequenceDiagram.png | Bin 27386 -> 24527 bytes docs/images/SortCommandSequenceDiagram.png | Bin 37684 -> 28156 bytes 8 files changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/diagrams/CopyCommandSequenceDiagram.puml b/docs/diagrams/CopyCommandSequenceDiagram.puml index ed38e57eb0..31672aba0a 100644 --- a/docs/diagrams/CopyCommandSequenceDiagram.puml +++ b/docs/diagrams/CopyCommandSequenceDiagram.puml @@ -1,4 +1,5 @@ @startuml +hide footbox participant ":Main" as Main participant ":CopyCommand" as CC participant ":EventList" as EL @@ -21,7 +22,7 @@ deactivate EL opt Both Events Found CC -> SourceEvent: getParticipantList() activate SourceEvent - SourceEvent --> CC: return participantList + SourceEvent --> CC: return participantList: ArrayList deactivate SourceEvent opt Participant List Not Empty diff --git a/docs/diagrams/FilterCommandSequenceDiagram.puml b/docs/diagrams/FilterCommandSequenceDiagram.puml index c0086254a4..9e1ba69a30 100644 --- a/docs/diagrams/FilterCommandSequenceDiagram.puml +++ b/docs/diagrams/FilterCommandSequenceDiagram.puml @@ -1,4 +1,5 @@ @startuml +hide footbox participant ":Main" as Main participant ":FilterCommand" as FC diff --git a/docs/diagrams/FindCommandSequenceDiagram.puml b/docs/diagrams/FindCommandSequenceDiagram.puml index 5cdc057077..0d7fced834 100644 --- a/docs/diagrams/FindCommandSequenceDiagram.puml +++ b/docs/diagrams/FindCommandSequenceDiagram.puml @@ -1,4 +1,5 @@ @startuml +hide footbox participant ":Main" as Main participant ":FindCommand" as FC participant ":EventList" as EL @@ -14,7 +15,7 @@ deactivate EL opt Event found FC -> E: findParticipants(personName) activate E - E --> FC: return participantList + E --> FC: return participantList: ArrayList deactivate E end opt diff --git a/docs/diagrams/SortCommandSequenceDiagram.puml b/docs/diagrams/SortCommandSequenceDiagram.puml index e3e48a92e3..fceb65305c 100644 --- a/docs/diagrams/SortCommandSequenceDiagram.puml +++ b/docs/diagrams/SortCommandSequenceDiagram.puml @@ -1,4 +1,5 @@ @startuml +hide footbox participant ":Main" as Main participant ":SortCommand" as SC @@ -14,17 +15,17 @@ deactivate SEL alt sort by name SC -> SEL: sortByName() activate SEL - SEL --> SC: return sorted list + SEL --> SC: deactivate SEL else sort by time SC -> SEL: sortByTime() activate SEL - SEL --> SC: return sorted list + SEL --> SC: deactivate SEL else sort by priority SC -> SEL: sortByPriority() activate SEL - SEL --> SC: return sorted list + SEL --> SC: deactivate SEL end alt diff --git a/docs/images/CopyCommandSequenceDiagram.png b/docs/images/CopyCommandSequenceDiagram.png index 21b8e4f3c4e5f20b99539de026ea0c930b63d41d..7f87689ea7108d1013b0a88965f532f45528e352 100644 GIT binary patch literal 38098 zcmd43byQUA`!}qJbT?8GGANB8F#;0OAYf3^9SVpJASlw^2#5?Jf&t19V$dZZAtekU zB`Dw!A`(*XHR$o2^Zovw^*ryh-ap>8WXYP@%-;Ln_kCTTx+hX!Po0wN2-$%H2Pic) zR1FUtAQ(Sz;NVjd0(j-Jd#ykGcjEe4k&4%ZK;+h4W6W_{h>?x>CLQK#$I zJ-p;ZMLpcCuU@}##ZAQ4{R*n<9T$AWvhxMw>wmp|;2?aCPiE|SrK=-iG*#ajqcd^A z!7?QCDFQ+LrI-8f_U2r==J+sHrH|oHozz|#le4~Twls9V zh{oatO7tgM>h}56QrdU*hu?=@U_L6;Z4+|r%^bb?pz_7QBtBl{;oNKY%0=p&QB=IS zu6eF9G>4oE&Cc6w?2%V?i+hI-aHPkK*5kU&Chja5S5P6&^J^iHlL?t6eB82MYa*f%Jr_VF|jzQ4l0~!Z8 z%Y)0WUgi>bB-3bp4HFQ?YLY?Ktg_x`zi}rFZCi6N;&irA?$cID+s2@(O`A6s?3a2^ z`Sl#)c$R(l$~u)x`6Zl~!s$0|>lT3)On#$&?dN=nIF1Ou2-=+a@!?13j7=#cRRy;0 z1HtF)&F$3p%$S`^2kOtCYO7_oYE;c#iH!AkMi*z7#?BIMyWCBdy0$TtGhB4r-|fs( zIp^}H$9q4^D$*)^>_|!>{MioAv}DRkdWe3QAzW2@iiL1 zer&L&WP!0wvjrU+)Am`(2L?jMHqry9Q?a@jn@J3>jgsoªvyNhLuV{t97zi_@B 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

    ^1a#~yAINLfn;^qU zC8ngLfM*Bc%r++pB6oN9iXXtY$gPPpdLEOw0T&j5C^(<$vH+>ePF@4amvpB8l1I7hi!l^ZE0UG;r_pAy9+T zg_}Pr7L(H}!S2J`ly~p*#)6l~a%>Z^|$exu9 zUD#mNgCclOQ=r;ADB}4YIux{sCk z1d9?&$)1rAd`R)yG|4bS?I>BGt^4lnA0Lcv{am%qxVDBf$y@P5V3JF0TT1O`X^${O zfr26Kd3s1fuvwx?>oEnT&ABjWRaTHOc(d>Sl^&`NQ6*;TfOwxJ4+3&`&8@BOYlenN2Dwt-C|t_x^y&cnf1hb@NrlQtX;7yMp#il| zUr_`%*B4`tv&%IMgJ*JQ2-AXqI#g(du;ER_k}^dx3BPe26iK}Y^8N?$b=x0cEnswB zr7g1`-i8bTQSd=-x~VoQn6>0i$?`aBs{jZN*h|XyD;2?hxf4duJECMzbaZqLsh&94 zg2xc09{|VF@fwsSFMg~9!l1n2#Qkrn8sBI`L8VC1@zlWa8`B_OTCQ?{L!qd=?iMTb1tXM*)g;dR zY$30xsF>HGF^%d4aSV$8nF`El$1Zkuf`{{9alu5gmGV@DHhWeerl6KTXaP#6G>C8yAtnb`OeP{yf(X>H&xjlP5SS=P(d-n0!iPyt&!FKIm}K zH4v-B7J#}$4@D9hQxy^=*QrlF;&CuLUrOJB9xAnmD2Q+wy&81Z5}q}BrsjDSbt}?_ zrC>f3ft7)Y4k~B{W-Stl1lg(#I!5}Z@6&CEbba&Ce0+T6&V5A6MEAcfFI!1lVD+I` zid=qGcLHpw{~ICj^p;a38sxlNTMI9-lmo-Sonj?;X+_CV1bxuXjhvhw)2NaEw|teN z1;p9sOBY84g*%PKQ?ZO)oUxl5?)#Vbq3m}eDa-O?T9i8~9GHCC*b4It3LsCfT*T|& zU2r2nk#dcRnHixl{mW4|-H711kbqmxQ;%=DPmd#(8nR^!gtBM0zCM6C+ti0kbJY^E ztYIGpp3e=^!^Fe{9IE9i@VBwK59;@&={3L@FcY@c7R;bB0496pgWFpKnNAmANE6Qw zk-!cRkB{$sFfEJ7?j*Tfee(v;QpiPI+6&yI0K#Gc!Yc?8Y`UT>ufgA0g3n`SVp@Bv ze*E9-<8Lbma2+5qXGk3Z;U99pxsV-6k3cO9UtFo3uhQn><&}0H6Y9M9xjR<{K0C?o zZBx@xT*4vEnphAEo1l#f`2*2DhHGkRAx`=-Gt(T9qWs6O2FsQvgi&CV7{sty8h(LU z7Dxh69+4!WpeSE9AXB12QT@X3pKb;D&_ip*jYBQhXt&ewV}Un+SQ8CiJ;6vrvkWa8ivG3m(7(%#z;lCBI z{RBeMo&UX92Ya9)4Di3#{{D1=e`BBkj@sFaF?< zIv66q4F>1~i!WdZ6%QWUCEphxe~Wj2W&ifo#@?6KV^zKY*b+Yv(@)6@>F3-@OEb!e z057x30=*%+FQWW?)qiQlHI!F|%kMz|4lgb)apUaprfM3!!@f)kl7lkd6~XJRPn$wW z>6KMfpuc~3ZjSViiH%(teO(4=4w&iy|AI1?mzRMD-SqQ&pDF7F5(xaW6;$w9&H)7) zdgMtK3J?}K6mM5$XOBNOuavtnUk+;roXwwGThvD+1&$p%TP3>;S`xs#8s$(jtiTa< zJslk#aN4sJ1G-KWf!PiFWYxToV5#Yr*V?tw6>+k#$Ut=L(^o&I3mEz~J;)sRL$e3q zy9a_7*lr#3I*?+6#sMfFK)f5I8sOYv=^Gmx6zno$Qc^#Dtg#>bYvSXv_`d3_bsfMq zn1t5W)_`};>FJ4FeA@rY^Aq?4hZ_Z;+e2JHJQ2zwi{Uju-Pi-FfzN!P6agIs@-_|1 z3v^4Tk8gf}Q3G(@pwzAn)}j(W73b*)b08u;U)dyY!-gan{QA)V99CSQ87gq%+{_Fk zBV+T4{>KJ~8mv){B9=9{>1hTAhLBhhvkDn7Rj9=jyk_=??*z6STE@p~*976l5qWKTA!uMX z6bxY4CVmK?*#M(Y7uEaH-7^-2c0-hliM%1LW9_LV#sTSM1~+k7?MV z3u;}SS}YX)Gy`kLbTo60)*(q0E?CLmUU%F05B;Sz%#HVQ9mFjL*RN0W+7)o~v^)CJ9aA=L91R z3o>p1E0vy^ISR=d2%LgRtBm65U9YhAOx;l2M->EV5k!wo&lk?-aLN%I94FQ zF$JfJRmnSyB8cNsq|ywcU<3`&Ro;K2Ti_(HI%g*9ga2U^ktnQxfHGYs5*u`=aYVjG|uwG$@7V z-#{$^R|F8#B6Rv*3FTrBxtMRd`G0v-U^#J<2!aK)(hD;6Qq5KujNe(fnTPx#EWY8i z|FV=Kv|nBs8NgVpfUExbSWQh097Nb&Ne@CI(Qkh(g^XG|J?#$6>ZA-B2VYz7BnMhT zYw6z(-o6^SD{NVF`aJys-Fsk?1NX#qSg_{Vn>w_+H)+s>RR2>rPT}Y04+{;20)|fy zK@dv#;!_3*un1mTHxfBt38GQ@CnUijS%O+=+{@`<&u33weSQ7d*qBEOFq`BY8vlO_ ziPo>tVj=3s!FTlV_8u>_kA6s?B=+w^xYw!0GY!`Sn%}>Vw}?O1@i+R}$8~W5EaMkk z$~WAb>E!;y9Nt&G_tSy@Ka(Cc`FX{~Js~zzPgM^o+}plrpk_-KiSmpQfv+Td1>})D0J7NuyS_Fy56agBvj9L?)e}_2F!AeUZrt45 z`vR1!NH-9aSZzW3kXNr>wYF+N;vP&G?Nd=76E2meLMH7&J!H_!Qo#&4@htb`@0lXw zu{@4OcZ)_{X{s!t_o*Z1@;};nky;QpUA;cm4&i60*(M0QXUc@vFmQNYnE%4Er_e~W zqtlI5SU|TIz`4qOkiGgWOYGa3obzM!K}`asO9OTa^glU|b;8GbV#i*4shhT$f*#iG z1A5@k$YaP)%fIDb&k6AE?QRy8C4+iJ$s$%aIQSCWKX?GIZ+vBv0OD_4dwT~|2Wu1v zeYh5`0RNR~&1uk%kR-DF)pBRHz5k&OUW%adE8Tidn@rcwBhG z3ML!0xLc5qwhY+0SZb#!gC{S>aw80V-Yzgz;KVbZKZkv+Qx~`ZrXg{f^dU*pQ3SO8t;A5{YkmY^#_1H=@11i^qo@{4%nBgVQBHVasXYWfdfKDibJRF zY|Q64f_pNCxH~;ddy)g7Do^r`WLEj{#iO>OPq8x@~>$Fg4u}iz`DN>vgH91_OFqHJs{(L%4hi0B54l zcz#{hLCdQq12$~H?qwSUt~wbysr6lO97_H38l;g{P;{ISGBU3qe+rBtIyzeA1&Dv7 zdl&VgMdKcVoB23~On{PNd)cQ-S zlN`HoiotamaQPb>fa=Ex?ET~gTS=D_CK)|W5F|yFKnPVVhqYqHfsV_2|#9o*~H5(lqN5XytK6j z90<|b<&~9pz}09}`2%r$eYT-!Q1PsGVb3Sm=VzcZ&vf2r_WADEg25bIpi2x+wxQ($idfred%J7XSQS&IWZPnNsVFemII38}zCoVo^ zm%T=KuR{;q)F@I;a@c!h3`$Dj`!U`6)9ZM`IFRtd_yNCKJ1*osI6#n&7wFQ|(ZPpR zWxgy##>WTP-hX`Pm`ytfI7!u0yozK#L=w%iTBjivFC}#`Qw7E@1g!%7v7}3n1q_px zXI0CILz;z`o*5@j$2Y>R;zg)*Q|yH$`noahrSy`$z=E9*=IR(4(oGSy^Fdc_$ny0@ zP1T7mIkk^qBMD2;SgQ69O|37ILBx9V>J?yLCDStk$*HL*tg4PqOu3HZe=IF71?T9f z{b&Kq7?RqVlEbWq^t^+5G43b+-mt(f1KR-aan|dBJX+pXV;yj&`I?k?O&fj(!XLx- z5OFq41NdH$f}<)fHvY-~+6VEgSmA@RGBPZVp0LdQ7Vdv)iPv7=)%~?u;V+E!s~O8I zw<9xn6{D#R{o55jL~N;0JOmM{5$->4D!~jqt56KzaHcTr*kk=`TLno_>%-PBQl-fq z;oCxT6n|}xxW}+rrG`q{OvpYP9{Af8=1Jzs9t1o@wY?Jex%K^n#$OvP{<5cG$)>$` z1^I_~cQX0U`%h*tdzqpjKFu>i4qOgQLC6`DpI{#70-F|s&!WO7!EXt9oBw*C;ZzzZ z>!)V+9!)?M_f$>NIXJn;YlpXSiK9O%cud@p84vs|f&Mxf3^w(q$#oXIN&O;0#QY6L zv8i-$)q8ff*J>%{Rlb4lw{U`GVEQvartjJH1j<}PUR6hG1Y^= zZ#a}eKz{o3cdhrVbGE%d!}Hwtbzj$Y-;eVR)3Qkj4XfO!tezz9gTO0>K!nCeo;ti9WIfP|Nr7mzFUg0J)xy~BC9iH{cuqb!dAo6x zT?fux$7Xm-6d50w?W<}y-OtQ^*UL2TJmu#m2$+>h zd?wxoLv%JpszO}^2kvU{GaJEt#ccJN1{rgZiWe3sD^HEb^PLhwvZfXyC^@Ue-dxw= z6HDFb((|V5gbhrWEB;cq0%V21n2Uqsl+=R(`i}mcFr+g&frA2dLPJZ7{Hi%&Weuqo zg2Kg(hZf13!C{Az87l^De#l90vdyWb%8*XMy>09f-Iu$Pt*0hRh>nT3N&r?K`t!+h zj<=wetdcYD=vTag0T{uqmV*US@yUVnzs(Y*K4(3jrYV3kv$5N2F!+6eu8ZMPz4PzfKUJaQXyY z*tL|F`rN{67Lvy?pQCQy7Dm4^q2Y%|-Qp-j2!|6LI{V06qov;u>AM(!)RhhNKNQwF zbJ=@RGf@RCd*M+HhyUKrXm>F$U>lK0aRR0zX2}IS)?O}UAF{elP1VDrNN@a2tvLw^ z+}++j^Qmw@(O}uiEt#@2ek16lvmoF=39%RgDL)jY(spoNg zKoIO{z&!V}pvv|4_doXTq;6ogTzrv{kx|OXUc}J1t0GXB&H;4f^NBl@?uN^J0<1T! zRllRPkmOad(EW2vy0VQvAa8D|9Q(wz(9I9fibYfssck zU^*XTc9)>BiOIXJu57Qas!(L_M1>O^b%3w!IR}IF+Oz>Oy1Kio?vgOqb4?!;ItE1Z zNXb0+v=L&Ov9r+sbM5-|uh?AJ_7-wV7yCJDAf^YmCH=shQS6CazL)SJEZdxHux%lR zx-7j3cG<{id0q@EuMY2p-!;Yee*)z43qjX%y-ialHijvjk7V-l;0ShDA-CIvZGMub zf1UBf4OM2EWcK0X^#*gUxs)xFnI-_E1m7D*`4BcdZ!1F{~ytZvI z3Z1DS>#^x_)aW@5S7%Zb;;TY!ORd=k)g;SBWj@a`vBGF3_)DdIn^2)x(Ed z0LE)15+wacIJa|QgO>Qr+?D+5`nX^O4<9*d`$lt-ola;(Y~|d!M3l`L#r~RZM-5F) z^Mu^=DRTWrlK-1h8%Re*5S710?1Jh47e4Vm zu0H$Re>Rp@1v5PQE{s@!DO?M$s;~a}#W3!h%guwO6=Vi~4>~jfygPu_g?WAN)*k;F z{^8?i`&W+40xh4ocaZ7KH=`kNFVU=SS9Ir&r>Cbu`Yu9|?r&q5X~G8rSN#ULrp&_$ z*S{;hUDw;UMB6ad(DpZSZx49Frk+jnYcu<8eLMv3e>PQ`CQ2L=6O#u-qwWR;@JWXL ze$sNKH?-4Nt2eCLUFBDj^Xt7=@O_xWz*h?W zd_Lkf*qu6$i2Vaj{_oEO4$K14`3Jx32lV!PlS5gX!2@-*VHditn2nu%Ree6k+cdQ8bCO6Sp2um7reDzL8a zE?dyZ`%F*y2_tR>zDJY5li?d4H0bhd$BoSD0VK(3 zUMu?KYKv#EqqtBQ!Hr7X)>+B<_{@NJzIx?Kh%}w9Il>y) z6qO((-0b2-Bh?7JXfedJfO)^=vI8B3;2Gho-*e0KB;E~>{IOU@ZhnyTAvU z_Co=Dwz--vNOW;Ft0XytREu9URX+Yi{_eGRGcz}GIMi-0S5}p}%F4EM zyRF{Uf~1!>^3(F!cN|XF8MvCEvo==rhT6LPwKqg>2<&OrX7S&?l0JR&uAZ-x?cXf# z#%%hk9sTOW>tjdWG;AG?llvl@SK9OXc=;3AV@D=LQP{8a43NVrJ`C~{Y}dU+*nV_L zo*{l{P%T5g>D>i-?5*hYF04=(!~!>60R|C0!@W~_4a~9YjjFltwHSTa#F5K12G~K> z!z7n}M)60B{(c5Qxf-Xl&7otF){O^sHypFe5F)$v8)E0sL<6<(A349_fH%qxAOqE% zl?hO9-GNGg8iei&uUch37Hnru2aUa=0m%3(Jal-;=-ACb^*RaJ1F~z7v2QLRIy}9K z%RF>saHivxx($KQQx^J@PK#oHs<6qP7#F+EC@4Wy5LqN>CcmkfR9Cc6^Z(8V69SVN`i47V(6HK?%#3BI!1xr2I_ zPFr3_ppdan;&uD{I`qi94POL4aIO#fa9`t9o8kx91seB@u8@?(+!mNZn@^D?yhH^O z10xSTRm7}b=HUCDrT$j8KML3$2%FML(BIcA9pQ zK|Dhra{~3|cQgTmP4*3A7|(F(ezIJfi%MZmC38unQ$m1slni%QZAZs}3o~Eze8!p$ z{A(DUjfGq-6uS3~ay8c_zU-r~D#w6@>`~C!j%uIRJw-Ftx)psiIbla>lqTBlxUSt% zKJr8kB!{&vl3JN^o%1i<`lFIn| zJ?gWRe@2^nQP-|}7u{cn%b(^A@Ql~r&*L{C?LFlYyKN8>G_Uk35s^Fv8n2t`e+3@5 z`T=ICn0&8g-PY}1tM5mV@8xgYA(We|EU+eiTbWaz?19@Wb2EW9&b>iX^?8Moz=5a9)UOH%k2r!yprY~3 zyPyQLGh(3W38V=r!h-7vTTj~30YT;aVIeJ`$-o%yifOJr7@;r@2Z)_NnJA2~9lx}f z1TVjXzbkP+sz>QexLD>_3jea|;WIW69G))g-?c)3dliJX$~!B+#@lXo)1g;KnYv!d zm(La9FVJ+nX{oX+RF&jcNt+O->3VDmUah1r%XFq4rFmG{B}%8ozu<6qOK9qo03Z&f z?i@kH zL{*Q9UpHsNm=p9-HrlU9k!Xix%G$#4M8WNq75a1f9lD7IR)st>w2pF3V}b{FI?4NC z$^uJ{4Q9-Jw=TWhUc}7AnEB^cztOfnfm6&dGA>Tks*h~}6>ry~5}!Aan8#0vWXZuI z_X-OKrLmx@lIFzZB;&G;G@SKM(qn*azkmCdoD6EYK8eh z*RYv%U=V0{JOJ04y&_yJ&6@EW53Sjq=38-!YxRv7=%j&)s#{<-9uK2yrrttJON-%J z3W9=Nn2cgM);h4slJ3rKWb1lio?%Pc=n%f3#V6UoMpc*S6pjEx*vbH4ItV%dSV^*SqU=+=gv5@`q77 zgw>=o5-c){9#LD%^*LS9o>*3=bt+}LFa2iV;-SupHNWSl)tNaB|Qr$a*C(-OnW-1gGm;Y6ifZ$5qTZ8zJ4y*hP|{$oMdtI1;$;Sne$cwLZz zstaw3IES_cIXSv^webh4tEoXUKP?@fSh0I;bXTEoedtsRNpC*`r^StDt@$-h|A>L4 zoBdXry1KgHjG*%+YqwsEwd%xJ8R^gNIWmxCz-71ecnZS0$qmq3UaDhugWVQ;Nm#F` zZRPg^J1cc}x-Ku_kj+|lRh$0ZJe12GzPJjB6P~+=+(mN+bSxhG_1ywHTq~aeb{uZaPL7CR+W6zg56vVPOAI+@ zFIC=SB>YtrfM?BJvUy11F06Y+svt+2n;KdE@*lU!w|;Xr-n5;Pef@kOOHE#{M9rj% zs<{br4OD&DG&GW!-ICdB_e6@chtSC#2tRy9J2RL_D#|`K`}S?7L&GEUa(q|7-{18! zc~7c1tfF6dTd;W1@Rb!qW<7PkAn+%q{PX;5Ps6&`)WjUA3ZQJL-kjPTN_X^)lN@p9 zc0ZB}SOckyqKp?FZ#wIdJ@UTD>Ks|%%q-5jxfLh@jf^S3LF(D>!&ytBzXg=ppZDh% z3*&yFK`~@H&Y?h?Kdrl;czCDr@c!SwH`K{_naH1sXc{7nbcJH5?S9Ay;B`+Y#)E!$ zUaQm{0#MVJM}M7P=MD>#<1{MvQK!0xJ-g;HOgDdE&+M2@eG6%4+wrdD>7-8r4T8ZL zF(@6ha>aV(Pl+QbImEBtm)q^bP`TQ%5i2K=crjuFQy}YQ!i*EjinjGtdDi6ByzR3@ zd9rt19T2oQ%^5Xm@=JGRnWgh@Qf$CWt-Gmz-`QOvyrsvh2k-|1uFAjO-c`!25aR@e z486WUamM2uvRAZ;5r?D{;$N4m=dCCpMd-^73lKWFjO}g1`g=_h6eNELTnMT zEZ9@SJMhP#Pv)`x3}0F~>X*sa+_~smX}|xDC}x6!c(!^QKi+*ih-Do*%~r40eB2M< zi@5~oqHe9m&BJ|SAjU8F)$jY+JXmyc6s1@c(hnkmW?G%udsK+N@|m9M`ua;PqOKMn z>*a*iFR48V&=X{}SEm=s2zVrX2|&cI`%#}NE2uBF^WS4FBk zr{Ea~j6x%*$E^53w)}V^_a$VZjNA8$ALCB6h~;dHElG_rWQdwH4+0Eaw6=2Ds5!HD zYf4+#_N*1WVAWuEj+`@kT8Fsq@MC>6PFW~G&x27x(~+fRH`ZblM&pL|TsrYNHDXI2 z_<6W>kRHJ%1y4zLc#(1jqSSf)*oU_5J-@?Io8kr4%xK#=1&rBh;-YGTpGwISgbsiM zTmqgD!5S!X7h+?dr>HGvL$tjIcMisI?N8H9mVV!Fah+uPu3RSP;&sDXyLRND4C$84zk@U9bQD@ zcKgmhc{UG9mxnD#SesA4_$r?;XwSAaTR@oJpqcg)Hm0MnB0JtE*ZX1-co|;7!U;w# zsoTBdWbi0DqbSkQ(bZagfd(u0DqV6Bigmjyh`pIP7udK(nl)iApjyLtypfi*0TmS- zrzlmKuCR;^vAq3;*`N z6S{Lh&}?e-nU0X3MyGfnbzJi7OTWIU2+lb?x5&_Yl?*a}E#eT9!FvY@Sg8gRO21`>aq-4e zI30)m_TnFp6pFET4cp!&gYT2X0N1=9*MsD*Xp1o-cpJX_7FKh$EiZaDsW~U=iWFt3 zeZ&0Jya@Wh3H*xlHEk+tYL=^6R-&{t7c*$Lwka8_tMnK6h4*KWX#IPA|DtX^yOf3q z0O+Gj!9Y}~$Yy;s0T#h3dj@-0c2fAAQx~jcbjEkmiP*%qFjR`K<>TOZ4slh>PC0Mv z2I?>ke!hI1Sal0NpvOW%)u}yieN`aKO5>r0*qc@K5`SbEl!?*VB`}gwUM{9RdyfDi( z(>GJQ;AlrU6@Y1zy~KHiWabu4q>Fvuu<)d9o+=)}!&qd_8;aiA?wp|GC65$uY9}ev zGVvPYJ)T2{+$|!!7KD>V)bS+t%=omO>spAL^fcm_+=crA|$?Wfz!Re&u5)*W$ zO&hhhP6SfyGl${U=Pv`}(-?y?PY>;Ku%j9RcVElUpm;3!XI%Th6C>0hNZkC%Ntbgz zU)$Z=s^L@h!hq*3`XXRH4}L?xyV*Alp^0V5+HCGxTy1+r?ugbMF+r;yEsII1`$p8U z21)Q8z_oxe^4YP;+D|Xz^eoVF9}sd-SE@Y2Dor8#seT`-=5xA~`VqrHYPD=o?PY2p z{|KY`!960KH0rgFmRTipoy)r*PE%h)3{m8rqHZ8+h(?Om5E%30tBfh=fNjU5;fR68 z24sHmFwk7~#N zON^t#U8&CN3(cN|baeN_7PZ~qU_wG6PZh<&#T7CNe$V4;9GOLF=J@{pH`K2}J?}=Uey( zO>Wz;tZled&QI=QmDN{!Qu!r8bTl|t!L^H?W=A_yV6S3l>4~pd>q+WLemRu2f(>no zT__3UH`NJq;a%Hv?ih!0bBBgTg`a#6(r^DhO*h3Eco-h&$u!a}bIX1E1^JGcyE0NN z(rAGS4CayhC$#$l`JLDO5ux-&&LFitc<^8-Vkf2Z<%M{ct&As7zk?h-EvqfG<*8mT zla_4|86!*VFmL>g*%D()w^b3jaRo6dAQgjQL@Rvq4}o)y6W%346D2nbMb6K%zfmJc zn?o7(C|touZiNCsZ$FHVPG|xyTMO;Douo#Ki_aiaq5KFL;EW}v6l1YPaLZO6gRjP| zt>y`jus{Di00YX4eN%eSxqDxCkuD_>R&aoXDHC3y$ijPT@Z`?_2C$o+?EMLcI4|!6 zrsd9>HL^W?oz17)SeBgnoX>8pl4#OA&i^w`1!s_U@R!SH{$HQLAnvR1p=2|1iFaBb z8-daK(}~OH3AnBN*FWIt9CB1^Hi-H6uZC;o{)X9D@>{yo#)4mNXI}IRAY~kkvERI% z!u(L6AtmIcopbX%&fj^OELCeTN5=m8LmH(x4p;l=n{&Bc&@Q7^Z@yL#U)R^Va{oUs z2H@AIIY+Yq+f%IUcy)J8o@h!z0yj}O5yK>Ck0%7kGFF55`Kh6|`Rvdn=V@qynNhs!9J1;sc z0RnHt6&=xyfuSnb;!*>6N(cnJn6uA8^+|GmJCQ$$>m=T`_fYL0*K;574!r@3V^3WG z9Jy4$!p626D$dcn--M4j1rK^!HC(zm;qHs?`_Xo9Yi%71dctjZc8AlFW2t9oo)ZnG50~hilT9-Xo&~mAk<@GB_4$@W*z!WKC(1~i;j;SU^ zz5!WZUm%!&w8I-9aFSJ(@wZFm@y?i873-E#8)dDh>abasDCVq!u_cMo7Gg^`gmQjG zWx2+*bOI`mM>v%!Q&ydm(k*H01u-7aDs7n~_>On8#1>>|Pv<1pb<0oorV{OBANQIb zKZNiTKOn2pf5yVsuA!U$vqMQAji}YqyLOE!L00>tfYKr`MeE}ZX4$~!ZUmYp7Ry{2 z!=|@iE8NIOCbz4v7-0xD284rY^!D$w^75KGe5(vP{#9TvLhG!F2jl`b$HB%nifLnZ z(d4!g_YKYjSVl2`Q+DJ>9&bWr1N-rNcwHDiK{CQn+ZSlJ2AQvesp&8B;6edt%UiB{ z4Ln=#Ho#ECqNouZ3m_;sjj7)nouV$n^739tR+&?nb*sBkQj#sW6ab^Yu?fuqGCj}fRV~8<&Lr;X*Nr-JdH&>2}0 zjlq4feK1Lwm9)gMx_7J_$!yyrBD08MZtFoyg3$LIEF1`J967_3DvD_uSXr%MfxJiH z$Cgj5S$(^pgk^`^0iKJNb5Lh?qjG;_Iwf=%VG$q<;PSoer|0h*E)&D+VZ&boS2>K8 zXz>W)H%U@;TwB!-Cki5qZG4L+PH#Y!0HheTjVhTfmzYq8P4*y2Zlm?%IKKp^ zer&`Co)aUB>66rXk6YsVVL8T#W1E+^(_@D^slx<-fiX3!_boU?Vu+uhCnPo)*h05s zZmMr@ouoR({7S9HTn=1%6`^A}7#(-GQbmO{H; zxRhq!LxU@zgmB7KSTIR8=+`<&P&D)$3IBWBg^$wRk7B3_UvyYr28|b`aBJRzv>3>+mXZ@bV}o30 z3|k?+Si#8I2klW(iITL=<;*@TgmA8JP>u;#m{#_1TI3HM)hg!#9V#y%JFs0wQkVK2 zT?I>&NtgO7Fm+j+cx($@hp`9pqAjdj7hqrLv3J;(oc!))qohYs9F!pKrjn$yJ2fGP zE@rC}!f02N;`T<2e0~+xVID@K2;hv1r@5ZF_gfffo?@fY`o-D30}GrmXc>G{qqilm zVar-x?QS-sSF@OVE~_YWfwm$tfYX(&T;Z8T&6rgyP|3T#8U<*CFPe&r&_8@)vG~U% zeGyQE*wZhF*&TdapGa%sklQ{~ngJY28mA-~7B7Bg-$$cmDQTllkv#eaO-Qw+3j#7o zF22?{p-(_ikcy$#7jm+hE`r49*RMW36nDw}Vlxds)AzSy&Rj06dPdsKq5X@rbVUH3 zRfXkNs+ak%O%gEFoYR0J-Is0t!334cT9PZmrSoNJbEPq#9gd(;k{2h^*^dSTF}=l|3a6OhL3g}PYSR~i7SL0; z3NUIDdfxHwon8GsYTb`u3o(xohi#x~DD83?A2Gx-OMBv#w00V)jXfbr`{^T0{-|cG z)w{(!Tzt#Ym6eZ=$vXE0d%^&v2mV;S*^c6P+@F6m_N`48+D~CKQ#*=CMvUH27p8*omFKab5`3V*>{#R4_9w*?5RU}vugr;|*XBJP1R zAiBlcB77cGTtVndU0LEq?+noag3u&8LsJn zTdaky3~vPcO-8V?-b=>PpF^Irsn~6dt~v^6BR}Mkj>6b(uUsvsgjv5WF8~QH zhfW%agqYk0ProExA5G`RGSu9#7wgiZSpoP(+%im?GU!=#U`&w)PM3#zSmc)F8w78} zAnpYP1}1I7sqRnhzpsP&@acfH{pgpD%hk^ND6j9HTtQuXu*6}3YqZEFX2B`ZlB`}Z zJG>W}m2SZc-kKW2J+^(fh=uh;Rx6s51W5@?s(~jLXhHpE(2%xaqh}n~cg8dUzgyxQ z+zZRit%_3(*J5!M6~>cU{DwQ#&9h;yJ(W`F$F=1I6Qa0ETs^D;dE`b?B3CJhUtX@i zu~bj_wFL_nuD625kB2w+W&(rhs_c3MxtLte-32sw~2}7 z%zc~4WU^f0E)dcGg}LYX{`E9e4{(^l+WqkIUcP)F_W$+ytf0kgy67QHO5%TTlkK<1 zaM7KpWacsb_(EZN|3MFaeazs#(Qy9ht!UwGz#o5;-LnsCIye0$T-32bNY?!PzM4xR zK@ki!TvQLwEbD(0>e;Bjzy8!e>WFfClt#>f`JGLHKknZ`W7x-WN*bp^evAD-Le6B} zwE|YiF7(q+!aed-ga5B@+hbPlF4!T~m~1-QY>-E6Q`9}mB^GBPam-dPv%flDkj*Hx z&D=B`OSxWI{fS>^iw4{2OR?wYp5h+`-2th#gy?8i9v+hngLM#PG2G2a zn!$f?Ww)9R3W|SURH%Vl-W6!_Xg;n{_rC%OgLm8b1=W$%KcipYh83ApR+^5E*_gCJ zlF~>(D|nP;@yfouooD{_&UIR+kBaE8OoZ?Vw&Ub*tq5pM&vVx#udW_g_ED@cGl2M$ z)Mf^gy5+y_^-^}bTs)v3T7EIsFKI{X*Jm9am!WErWF zWnPBMxjoYI2OdyQ-g-MTbNLSgvA0~mD5}51l z0z&=Izn~U8x5cI{^4*+FmQtPcW?u@iriNtiREvS_hp(I&(J-hQudCl7*Fcz4XxIu5rr zD8m~_9_p-@J5t^BWl2V|bQnWG$eASQkn%exBB$*mX2Y9!sE{k&z|B|KW|OaH8TLw-#mm z-fNdgV5sgNit5U}vX`3~%mwGTk-sI_+C5K1T$SVKXI0Rj55W2S2*`zEyAj5>YyS0l zX%H=eq&W`e|Mz`V71ztH-Gn3Z2EcGNH8mA|{MzBO)vZ5HS8DMteSJ(`OKljFL5Bkl z;4z%U$tLkUFYjC)fzD7bN5|U%y}6Y8=dyUkVJxmf{vd!A+#JX>1;f3IdKAj z<(iw_NcZSZecI#6jaHubr#IXUsRBtq{Ndu!zIucI_}-7r3@KteaB=~mtf0Ghhqm^^ zY9D)i)yl&37*sT+kb6DzTIL_EOraplMsV5D8Hq_NcW0$Bt+VElSu+$9^I7OZ_h8ZEUkQaVxQE$l=HN6ky8J z(2EE-FKtm30*+h=c=00Ia~3aM`XH^R{$lm^NAsjz;{GW5Wzhby@TBv}e}(+OIGpEj zHiB(XFD>`_w(+(ya0MWxZw0});CKqlBPiF=97W97+$#bpa07-uq1rUV!~kl>wsIdI zWo3Uf_Jh07>xAF~8@CLK#MUFYhW(HxQL5lKD#OabqKX-0wt|jfdC_t5s|g&|z+!C< zu#2I@qlxZj~gDgO+^aFSl0F!~99;4%EUV47KdI2t;fKmD2;lNxPx$#JXJ8uQmUCOOC?ND=f8qL)_Nar6 z#9&g#esl&(Btt}A#|TO4Bpe%W8_;W_$ct(G8vP>b|Go6<<#OT2I}yytgOVE~iQGRu zAHWxB9Kd_So{6NFVYYSC0BeOgzr|#L(YBm}ber%Lo2{s@5S(>ku?5_MQ;+hif#w`F!L~-!${lcLi>>yIWs@L_^gn$ zso1DT%dSjOOt086QD+n{=MD(vx^EfJyvd`-V5RaY*d6BL&=Y|SQsD7x3`OL7SADRk zAYHr#ygbXdb(-iZQym;1{}8-$w#Zh-33BZ0dk|hwz5v7V>>Vcz&B7@gPQSLnT;02! z!2x*KH$iP!FsALv;P6+Np+qvTn=g`=ZL(UjgV3BK6YC)QYLd^ zC>B?45K8$O;^T}cpn0xhDcfJ5-YZf>qi$1*`Woz!W9UrF-UCX4{NY_Gi9DMfJ1c;u z9bKuCbk1wWZM z*<;t*uWdf`K0%AZUyOR&p(JDh0b&*^F=7=yJN%!g z=N+hUk=}FFb{MyfKj;I2r@7T@30IYU$xdcDfyG5+oJ_otO7{D@NRTTj-FRC zxbd96!CwPfI#?yito1JG%G)rwRt^`q-{KD?s$$QSxtsyea?tT2v9XkFP(!h88nN^h z|Jc*>6;@sJNK)b_%1AWIs*kQ;^1OjIReERol%0aN;RRi}@(ReBepk%yn(9@?RPfc);2WcI#mn@Mg4P*ZWg1Vv9Ys&Bk80wg{a%p zdS()$*g`Y4b35+zyQzn_7dah7F6vA}@VxK0^I63Tn-uKs-YHOK85iBbkOSorsKo3X zS!qd;_W#Gf~eH{p-GBY|;3&j938{$yZ0}p>4?N>#Yd6S9GmM$4-XeYbxF~ z9I|9qg%|xnBG{o6Tknt*EW-ikp!wp#812rquoy z#U^<@t(aMa#TdF@;9ZrvE4U~;_Nmk}bJ$ZcN03F9a7N9Ais92bA#Pa9NU!%E6kfi3 z`B{_dsU3m+0Uq3#=EuwXsEDQ4qHTjXqJsN@_A+&?k}J-q zbHUsK-W1q0THxrb@JpRC%5!l%G9%ViML_2cfzYU17|QqU0$#7Es1UI)GEQK=G>89^ z`S-5-bV?aGv-r_Bn2iz8apH2+YF2Gz6b$uYoDr-q-D$i1^hc3gWg+_OW+GfeU*^9w zwYe4zAPI4Ct+x(r_3`oHHNr_Ngp_~BUD-0&IDh7}_;NC3)G9xzEUnxwEW2#EgLTZp~?27O|`k z)E1fb{LDRWoNI7z_ulV*|KE4M@2umJrE6xGd7eA2>sR+g>!Qw5k{u;GaNq!?riPmSfdd4i z2M!$UBq4xD2B@2&;2$BcGlpI^ZtlJ=cJ^Ke&e~nI^R)7^v*oh(<#P1$a=&&`Ow8TI z>Z;duR~JzmH&=A;YfgBJPfiyNz5aasz(IH)pX~Sxji^a+n%bYo)w4gU(w=eb+PbMb z$k4B2sCLLZwHqxWjkZPh&n$eHOn*!HjPYg5n*Yj7Ph6l|j`;JU^}?kfqu1&J#LTCd z_04W#PRG)we|>b`%Z&WeVXc%n5~s-5b_1^tJjTk$g*}gdK7N|wLD5y6XsbPHbe_#T zSrJnF$jeY{PG!TvJxlD#Z0$^e99)>HXIn}biBp?ZWF*FJ@0fFTT3wvVSr<2{9!qqZ zwHUS|z?8eV?&Qfos{WVYU8mE|uNDhsCT0w$>4d8@3)eDyT%szUMHh;sb<81^>R`{%ANFn;aFe5tM6 z&T{C>E7m`rVPS4zHfk!$Z!&HfOKB=%xtsIGZ8PBDa3lfA-4e}R!<&@s;jax`ru@GL zY^S-ZA;unFLcQ-8cL;SZ-CFWE@Z{Tr{-=*pWZX8R7w7CN($e~U5R2)hjJtFfm7i*v zX_ike8W%cL3e!7(*h<+B)e~O2-IaOQ-vK8kdkOVcV02OGz=4|wG}V+Z`k3Q#h)o&J z?(K;<;_e%U+~gUEXS^aDZDzv|f8xDbyh4VWO$^`K2p#LuMdtn}^75&0BP1 z;JKOqgD+!tY*pv$g2Sq~{i5=u3g7dTr)s7?%9XbfXPF;XHGU=KJpKAsio!AT$gf|& zPIrCiP}P~09(1ceQ)FDOb@ZxAW~O9NNp7C{k1*9cr+gz;GtP`@#l@M5SR|*+4W#fr zyIeS?BOqzt?K!5nNkn%)l0~c8SwtV%C{iAfdh}5=J>uM2k`KFmZ}t&RF-i%(O9Kxy z-x`!Qv_xN+KH>F1%D(&9?1|Wn6E+b6j9L|_$@cSUcS&ifMiHZ@RVW@>l`}obi92d% zftI-b&8w4x?!_UT8i%dc(+9JIzU!~U2qSYz)f4%V#nn>2%TlwMG$*W@7&e8{O44Xl zoeYb@acUMxIYXk!Iku!F^zgV#P6rDALvoxOS!~9G?4+|rEMF49o=naef*+d8DroC! zHFOGJ2Wsk>Zpn2XWHJ137lz?l(9yVK=aO@T#fuAr8T?zd#UrDO4GMdLCJf(;p8x23CR(!UIigUIIqY#{09T}eqqJ-WA5kEKe z?cIap2J^31l6~hsD)`pRz!$C5VVKibh)tJw$j-%mLUp%YHrM$PcHFGaOq+5! zt3qSV1>s_S3*p;i!0*fZzTD=_zz~XzK_H3uY=YA65O44H<`;`3?8}wM%UddB6afy) zQ@K-{*=p$fqUpn(TR)JYA~VT);+QO$noB&70*1 zwK)vJhVEkxFIqF>k4kr?B3^7SGd*5h>?mBjQ9^&cxDWNdXqd=}MSSd8Dne{>vNwl# zXXntB_l3MKoUS{6s`A}jX1sr2W-{U6%Fg2Wr0193S{JObug*_RTZE8xUe4QR>l{Rs z9{NX_iZn9vly)Ja^P|@u*oYf2$Ma zkf#!UYpycV&! z89BnnWu|mfg~kc`bPJ`YoGcM0mGh&;lLt&9atMioaN~L?0foRVXLxH?85d#G5r;SY z+oO9$84}YDEgBo|wKcZdWptNw?F9c!OSb%Y{qELJr9D#{c?8PzW7X1|3y+^~Z?C|Vm#j{-?xDt6 z-g{gVgiI?C-eTKt*XmlNXfp4}%<&`j$oY^~fiv5itVF3fQf|A!HB|E>H}(P#p~{j%M`8!t z(@*qj=PI5bxpoY}ENPv}FLJ{9%vm>Cfgw`khF;88adBm_s2_nJ^Y?RiWEVs(v{BO4 z`>$Jd#zcH5rN^U)MI zQ!4Zb97nbH*`22F*pA~Y+G}EL40O-EOg&tT=x9Qn8k7b3v-`-)#k(j6OPW!#b%7 z-5d+8a5;hwshYGHZxHVbT2vMn!gR4(30*Gq+1Xm~{@Qos==bUA_(`d#I_zwJzMHPD ztE}w0eUI_WsgI_kJdDrZhKTfRZWvATxXChYz_wP6$i6exy?<(#yAh={ddi?b*WX+b?dO zEEp}naz1pn(XBP+R^RkVG|u>;){pJYmC|RZC+Ag4R%QapUEe?75tTWMzR#qEE#?anT z>2GhJUXpd_&8{j^QS?mOo3ExcDB4mT%Kn7n;r)>J#Cz1W@9CvGA&1E)YNE~=(Gj^P zsR$og6zEzBkIfvKWWI1DbXJg-b+uZaSpet zy*A@;Y9eVk!tvI{*LN!$QR00z?hFWYXjC#Gdtwp6PI%V@KlLQtw^GRj#c1qp$~yb= z&l^MB(1gh7D8pzSjP_Um$+jNs1=V-;SY?N{Q^DA%!0ol+WS8CxJ3hs6&qzN!N#dG- zVl7N_(QNHq-x{bgZ&+oK zlWs=XJvS<49ORp5v-jiXREYn4H*+Ul%^EQzs=f66MZE)O&`;O+)C(M)p$?&r2OQ8L z{^A~CfH539tiwvn-lz;Tpjx7_q+TtbYYQ7!kI@)txZqqHQ527uORY+}(u>#?16=N& z^1Ur=WaooLjRe&{>Ek+OR#lsR?AIhGU4AhV(%W7an);YCC_9SQXv1e?(dc5^!;nUT z4^NYnuGu?gN?auxJTCn8fQx{b$@^5SY#XwBb-B%`i9KV;%>E6PjY$453G>|YbbnQM z*jemQ%R;@Icm|Qqrxr}Na%cpZELnd)5|i7+d(z98jo*(K{Um5l%xH31F*=&&3hC%> zpDa@7zAa*c5NQ<}Ay>@Ja)JG7vh3Au`mUZkK@BMD56=~zUZzwruqEZ(*(RVMLwrbL zL@HCalO$}iR2DT&`h`;B!W7b(sH|{9Plke_!4=%7F>LFdw5Fx29&W=Wbe^x$zsKG| zo23#3ILHyRp^}OiBBfIEM1?QJJvDeCAFv@O9Ct+Wq35(S(ezEr&7#U>(w>T|pQ*fC ziH3(X0ZJ%tKDdLSR#qyjvug~Y4JX;eZcLKS&+~w9vYyZlrLu-E;OURMI z2@S~}<)>M&MMahf8g+^-oF+pzd0=w5x(mYfW56*f62>#SQ>+q6IR){2=q6Ed8Eh>5 zyqo)nC{~7yswCf~36YED)o9jUE*G-zBgbMwRY=fdekRNJr2Yu725OdXfgjV1z0ZNzJj(a`A9l2-+` zdpYV-ktAsNWQB)Kw(7CE*dTPvoZmS|d5=YMs`GO8ew&)|nox5Yt>fn9yK4@k) zPPCeZ1$;6fEeSb(L^g-Tu-bbsds=)vspeeNZYcKw@+uu#??jKuMtN{Sz|)|RZ< zkWt(IB9ks+607|%b9ZAYb~)4B8bM6Gd)$2e+q+}Tx9NaeGQZ$K1t5!0{fS}vVyCbLoXm??PJcPLiTSh62|=ClaOl1ueDGu#x_}z+{WaYA&W<5;U*%BcCUAS9M?g zx_R7y4tm|8O2;aPnAmfQfm=^YuN7N0x83^~PA?)=P*qJ8&X z{o6!q_Cr&EShjUOr+J-ck?N$4Td~v@ z{ka~bm`W*3G`DI*=FYpk>*$cqL)DQ~Z+4xH+7ryWZog=FVDWjfybtB>Rken_Lsr$| zo?POzaf>gCDkQ)tKVam3Ms?3`? zDuzlmk!LQ-+*JfIh!X#r+-7#aLG_kNB+|$3m zebTNjnyu_bM4>M#$~WqFeDrbd8dIV!a6Q!^8aJv#eo*ySrn@57iWyC*anr}r-9w{} z(|kCU^=)8U5`Cn=8c(6x$G(3vZi5~9aOnK%dCf^8z1)`mOHcIKk)f=0pr=5o3{T0? zxKWy_8nIFSxG^;7G&OC6S*TM*Lp&Feg;(z*9g`AGmDwq4sYqgGp^F`sCG?#U;^yS& zkYHA`!^585VzCElC`&r2FB}$FTG}GgDfl03oDz`QpULqQGP0DzCtN>_eqC?U+64f4cjAw zOJPh?=ny@UcNlH~i8k|6rS#-&`?Cp)yGh~u1xxb~veUWgQ|M2M@!PbQLAJmXL~Iyq zNk#^}{hm6#Xwzi77#U}H<3vO7U=yb@EnS<=no#<&yvTcX+lmdAev1+QRLap8wOLN~ zmniN1NgbD4xSZC##qDB3t0r)E~-j7Udx7R4pGi%DBGQ4HpH82Ucp z-4|1k$l}!1EVN1|)9iIzSPI|1qBD%`e0}TAQQ51aZx*nnqr-01F+pix3;v5H6g`Iv z`#;l!O6Z%kK&HCgfhvJYy)TP_a)h!)gx&ftVwQ^|qU!$C@SwQP9d+KiEbUAQKJM}0 zQ@v^CN>+8r5qEU$2aXX}rWV`yqC<|KP&9u9($izX3qI(H#kOrCy60CwCp+Ve08(wc z_oiIoK}Uyle}DhJAb4rdF6Y$SG;_%!L*+o}E8DAsZ@%ga7L@*T>TDH`PI)SL4^xebc$8lE65G|${jI)F^+wU;yC3a9=N3~Fcn66p-hJ! zfx^}Y)!VK|eL(Q@6Zsvdmg9St`s78M#vvW|MqSA(@6V_5>!h|zRwLqaS@Ai_!JgCy#j$@l|M}qJ-Y8wnlY`;9n2_l6}8(A-VBlZ&TgB|AV=e z^Yz;_dlS{kQwCpF%^Z41W!Y zv84EaY1R(^`JeFSkDB)OkEG7EWlB0wvB@oNEKN>#-9Fc~FI)GKm|&wT#1=l)1y(DE z5)FL1?Yo9E$~k$Rj*bqqz0}URFj{Y69NNd=T1_)<`H!J;4chRUXo<$Rm}?gHjUk7* zxw&07r#e$FJ-ZzEGP{rEKYqpSBWhw|;+5Cz#KOYp{WGzukyPAYKE1rAb4RAuYnJY~ z>qw2fC#J@2R8ctJetrJ4+o!6=%S!%hF4gF{n%Y`Duc;2&sW?{I`SsBthlhZzHz#7n zBqSu9KRgFzX`Wvv>li;jkCL!(;nmNtZUMPIVXbCteDoP^a&qN^MNqNb*q1NsUvh)U zI7xf-zNrve9sa$Pc3I0)-@biYV%OD#uw(^cQ1Ei$5WGdw=nIQ_BFdwuf_7_e>}*-w z*yQs><(#}!*3;NVDjcR^qOq}Nw*yVnfw6{YwD z1W3pMeF*E`I}nFZPzc=J-mI&u)6INl@S?(LkZ4#XJZN|Gv19-J3GWLL6i1q5bcRUn zt7%{+e=n9j^*P(k<>}qs-8U9}`DYVpdDXc%Q^qGJFT60Xb$<7>*nu_h=i1z8eZB7B z;NZ3P1oq<~$v|!- zxq7UZyR6lPnTO>2z2CdY)ed2AF>*xdM!-moubJBF>|i7#U|u(Q&nd%dw8+n)Di52l z;Z^o(YAx`bNrlU1{fzeF+%ZYX!OqT3EY|4L+tyfShn}o=4>ajLkZ{9P6ch|!Xg*q3 zkkf`;|HoP?4U33)|IFb0Mh5&zNeKyWPvrc$wN>H#?)95D)Lk93L&cLF$-LoNA6{4l zfeSM5@LVhPsWBd+(1X$lRCb4FQ*-n58hk{?&G~m#CONjG#Eq&)dy>w){UmCQxtN&1I$L&pA8)wjV@!3R<3AX*} zA~hcWk<_r<`O@sbLs(R?%wi*zZlkNKtCXxV45FqicY_CD2$_T~I!?C5i{G+pj*v$p z4W3@?Y;Cn0Zwhz$QBWXIxZ8_dXb?#kHVVl;cU#og*Edhv+j|`lq&PA-){-8kPR?UO zO%8x*tBj2xj zY_Nml9(gNIOip4$DHY$`RR}FV6}WXVJ2N>s_#Iy+DJkibCr>8WF4CWm6ciLRB+pdo z?aNbzTkJ_MW|WncT?+`u944k>yU89A7RII+U}&t4uT^3;$C1T*x4qp}6E{<8X9zB2 zDh1V*5#Sr*}ujRZCOzh`8m= zjbbt@Ui93@>G}Ejxw)O)p9_-~yZLD@{ozqKg5SI9#T6v?$SG~zksCi<*JvL4{rIMp zs9!)%E2Q#SQ$!%;=>2D7!>>^z{3KnAYiss<^CPt;#{8-u-;gv(cu5xyGyK&u4ku&S z*8E%^YTY6nUtC@W0rLe+wvCi#k=J3`ZT*n3)4VBvG@U=|w@OCV#^z?Dq^X%1i1;k* z>>|$_)~Rm@D!bpK{oALLs1Uq;5U{zNM7PvTM;fpzNeDZ1udQ<4LKCA;jEnemd5Px z=wmxUB68JsaC8n>LC`a-=-|#=+vankiw& zBy6~-KgTSN?7S^D3dK5Hn-xpC#(nIVTGlfmgBRwl;~E@?Gx7E^G>r6_rlQKkF zU{)<7N*UVNS7=lULyYMzGO4_=(j(iAy2nqG24hvi(};rl6+y)w^RBk0=3|-DwWWzO zwpXzwcCXU}M{oQrs;rb<6OoZ&@=wqS+8B>)T35ERvVwNq%E6=NlByI4h> zYx$KA3FQqnA_@xZNQ->+c$l#5#b#=#VJ;>%ZE>?7UT`{tu$MJA-V#l(s;X*)yaz=U zin(o1%+$cL;8YB#f<2tkpX~eX?USZ( z@)stRRH>uCu)~QR#Ia*sk|$3d9cjSXLh0{PYhVGGv<#&0OD}u=tVj$LWs8@dtu9wU zgA4iYg&SG|(Bz2lp8v!wYO0~7<@~X17Gu@iM^KvDpMO@&xa{j~04m!nZ;oGj>a{*^ zR%Tjkea4Y;c#m3f!x9QpH)?nDOD-(S#@wNGWJpfHQY*8FNkt8M?r8TT01}OjjU8&G zzROd=JPqgWAu}fXsnA5on_KFG-r4|N+^MPvvWcz+YrEWswTGk3h@|G^c?vzL*&{qM z61oV*Q9|zKd3L26Y(4j%09q<`g&4vWxb>*cGN-{$pFig@4^@J`S^Q`hN;7nF@(M&H zeQA%x(@W2Y1Q`@R5*$tb3*!H(R(VsL6b}br*({9I-Vw2R?SLMD=D54_Qz%`EnC!F>A+m8b@g*mRB?Fd}|N2^%hOzNSfJ?BZou!V1CMHr3 zZvo=%lQW4Rm3ABXzVhBy+TgjVVA%o8-lAm7N}|%P zrM$Z|?%mvQWwA(J;MnwZIW%y<60fSNaKn|<@_?O316Ja7m9HY~@7QrxU;n-~nW#i2 z?RxO{R)jjLLUZ{Zj6~_fs-NwryyrejgK^6rfh8@=w`>d%<$*tO5=dXspZ3I->afa0 znYfr>#Yzj6wc*q@j-YM{UCPiDsPzuXIz&WaX&oFb?>17CQIjXg8MvCf)asAG(C5!q z--X4RBY#aDlR7jsBx?4mAx7)AXgm`}B)=1NRK}&_X#2ANLM=kLxeOzZKp-3(9G0$H z)cAP3FEkRclZJbua<%S?0{~|u>+YyRMYRnWz_Aq2z6w8KLha_y>Dv}-fF+$?&kjBg zC!<5^Ij4&>y9_mR01P6+w}6Zv)CV69@SKSusbqk0w?+>X+q6TiCA?6i1bjc2Ru-1Pa z+!KDUuyUg(`g|Fb{sGJ2nUJA*WauDdkq7ezB*Hcm`i3F<>yUT*uyNeH=^Df0&xLwc z3ZgKLCCb8-hhRV+(#$_5PRGr79`j2n#GIP|_)nC1ORf1iDS^)da%6lyX1Izkq zfE6MG;}%opy})th+E_#I$jFE;;ab1T6)iNuts_uQmRi|ru6z)EzX3%iUeMHM)Ou&@ z2Q28O>Z5c>@XdoGBZ)ox_|tfTcDI3iNM&)TNVyD&b8$5YNYcH`fe!H4sMJ15MEFe( zk~#9glaKX5K~MA_8tSm=0gt04%bz`;Xelo$O7*<2F3_Lq&X}Von>k z;R?#9+$~RmddMY#Vuwkjc$t&onyy!WBXG?&7Q#@jM2@NPi+TqRJ9-JD1aO9;>%`qEoZHk|c71Dgj zMzuRYW&q5cKw3?8XVM?HR29Q(3?o< z`56Rs4`eNCAvLwM$f&3yk{a#tKsTS)K488?G#aVb?FOcknP#_1Gj(hyqx ziADBj*$c)BaI01$Jj1m|crnG`^11Wp#V$OG zGd#O-Pv`sYjiWfqbS}lIJk`hq4h7?lD4vT+xJBs4EqCZ~#M0Om>fpoVOi>n^>-acvD8p8bpO?Up--ag>y>I++S{S8t1XX^);HtPa39k?h(6D< zt*>HGXk7mK^JjK6&kaMK;880)a(5)($G!-P8-jV9FxWISG+aS{JsbNQwddjo0EO9h zYh6ZC)Til&w4w2e*Y8Q+CdI>Ny8SB?P`0VY%Ub)Rg8xNA?){Goqm!z*@`ngT`~T$^ z-2PnYi}(vw))@0ku;HQ&=UbqIJSttI4%-bZag8_4Z{-((rv0{_(#PA zGJ41mB`X*f6@q__PDoP2f;f;0uCmtOv;jYAe>|>2dUO~s-u)@78RM^H_DV`-reIHr zKl3v0wZ2DJiGq^-)VlqYNzK4+@s9^@mJ?Rn`Ep0a{zvSh|md-iI%>; zK3Mt{ZlfHWlYdja$k)O()YKp@!WS42VBeEf4zdy;fnvsm&($AbeF3^;p@@L38qcYu z$i-#(r8ft}E%Q=)9iYGjhYk@_9!*P6=O1D7+1^<49t|{r9qYmn&x??esQ}&We6FG$ zBV_o1=xgM^%z1fZ=j2D|%_lBXlaXb~y4_uxR$!>$sZ5o0==J*A*9h85QEN*}RP5@n zb;{@H^5Gwh4L|gJPz0uMI5rNBI=HT1GFbx1Z~*whylss!d+Et1DEP!_@KF-Jg*Fh0 zmzOdEu*ih$A#i`Vd{NL%pemS^*lMb%gxtAf^6u#+ZhG+pIDJFIp)OXb8z3|S>V!U^ z;5kK-2Jgw(vAVXFkdR={2G;yfPpm4gdtUsB%}XiEO%j4DI>- zy$IV3)c$cjxZS$smqrdUD*#x;bjH~b_e&OA^nX`(+ri$2nTw7lc+9l9l zgv^L|Or5M=3B9msH9CH}83k3pEgdAFy>|u{#dbtf2W~Bi4YvRS9SvMJ%b%sCDm+Zi zEM_izv4AE^x>^!LU&z79`NkO9Waz~sA{+J)!jYGDeoLdc_U+vj=;2Lg1DpO>+2Q+~ z3O33`(xFah{n%xYWC4GE=eZB_r%sML2H5e)kt4#K=n~*>72BX=FvA64+}8NczL65?!|!bn}@rKHM$5UA)`TU%>s#pp?`=c|AMW;6=|-eF{C4zd!% zgtG;~$HnL>0`APi)6;KxiuC6O2%jL*l-T*4S5phSeVdu0tpFq0jSAE5nwx@(?)<(m zbI}8K87u-O#XshQFi+%nMbe6zn_8ak0%kl~Y!lhPI&cMqxS=bL*^y` z5a@MucW;kJau#AzS697)g7)9^dz&6Hr{Y@a4 zLjpk#X*jhZ)jW;eJ2`e;>9>T9Qp(##9{0=dm%y~&O(y#JjSaP5mk=^FH3eE@BT*XM zYFuJsBsxlRNpGVS%7Qnr|CWcBlQJ>{cBA9z?7iEBCloI7@bWfWil4f%ZD@S&+-2-bYFE6j^VS_|<@jW|Z`>q!) z8Z=?Gf2`9<*TK@%#l^*=($1$ZggGE!z*k`}lQboR4TFm^_!x}|fRzYREB@k!hwl)E z!;_8pCrP^I!njXqd0fAK-P;?X4DO9Pg$n>AKi^1Q@|QtT<7p*l1y|QmBz%8?2v{0x zSC1;&k|qSPSX^>0+i+{8I~k^a>~Gf1A9@<`Z=(9ERqRVwY=6DeZ#eQFvfiI41TW|P z^&Wo|sC`WhuHS0^`hSUOTqKdfzl0ckCk^3ZBl=5|gIi+xeM|pUd*f83{kPn=->vrb zw8r3n-_I7s$OuPP4)P8?7(*Q^?U}#v6!!CuE zMdFuxb!NSsH`v9XhSTbz4AR2J!F|EY$ ziv<|JAI^Fr*L~J-M`Y5HlDI^4Lvw?6U!D#om?%Jh?Nc`H6w<$Nq2E|vKc%dJ;IAqA zT?g<(!K7d2*biNc#bSsw`?T?7IVlwtFpG$#@SJQpkC5rnTK`H|s^m<EUvr;S$y%w|E<*7f=+~HetutdrT5}iWkGagiZ-e)NDWA`Vn+|5>D9F9E^;1QXfA4 z`2GR-71J6SE8fYIN zG*Fh(7myN8+9Kbi>!+YJH!Ziw}&Ak8ize zGst;kBX2QK*U-@L^Q-H{ktBNHuXU;AKx{l##KvUqW4VopxEs)#_TCTBl%NwSZ7-^V zfI0jgj)A};iOd2y&)y$A2*5|W@2S3m-qo3kxP=S5)Ye;u$4Yw}lhoN_Eu|)vS4pD! z8O{rfnY}6lK;St326}q^-p_jP5ntl7?DX`_N0p~QfAiei4fN;&y_f^P+kWXpAp3A! zn1!Z7&8cWw7vS6dwd2(FZx_KO`A}pMx#@x%Dh>_~&e)}=qf0u%&Q9rOi4J+`o=L)@ z3Rn=#E|4fg)y2tY-sJAV$l9A!gFR{b*rq)J(3mO`G~_zqtsp`|i;SdXjbO^ii33d7 zfB#JV_Hq|EjOM_lp)KCG({AWHTCv9&u-FKAB{K&!IVFg`geVm+coQP=_N8%!3!Dv+ z)}G4v92y#$9BmI#-cTb>bAr!}W$|c?ObTWQG;tG1 zSQ}ml+S~C4tYO7`<7E%;v?@?o$rR}fziI|&# zryKlNzXm7WCm`sxK8zRYLKzh42*;D~)CW(?(zL*^s>7p|IKf=3<|uSfz)stTp;iOA z6UPg0pQ=3QX>t4<7bIq`3tI{W?(MAKGHyN=!xXk|xU;=2zHroT6es1_cMr5$ck-a1 zpzac!-fNKQS*4xB!tcnsF#)H4%`-&$D5!g9@j!kDYK#mgom^H{2204G$oQS31Q91E zXT=YIMI;yGv zSMW2d7gtB?;$5Q|5AGhU^x0Z{5*ynE_mKq4WVuInltpJ0#~^gE;4aD6oPJw`g8!QB zGgVC8&YDRD#mh#k=f>qRt*Ht>nKYENVE#z6eFP!TOx{!i_Knn1vB0f zH9IO|X`&9tCR~P+q!XsW-#c#@;be6Ug+lfA_D+1RgAxLIyY6deRIVcX$CmUX;8?U> z9qS8YW7~kr(D!I#`Z5Wd|H^uoSUqm=G4){D;N$bGw?>h{IdSaBbP?6WzI(ca{-N>F zlbz{Cg6ZRzRO}pS{3XLrmrsPr0cjPMg+n05tAbYG| zXjlwN-TmpbG=_YYD-%cFItJ(51Q5k2bTLY#(sh{W{>|tB&{*1T&k+I(W4$2vzoqD1 zQ@Z>Dtc9*Hf6_O44NxGiinGx0aNotz^yVrh%3zy0h}IlHr&b?SWp5EWdGeKUxpQHZ z4T7Fu+pL9rAB%C6D;evf~Or1+ouDeVfp)WZ9z@*GE zIXgQ5l<{xxo=GC3VSVdsOF*3<$L>G&GiJN1{KWphXRWsolYp4)rTm_2xx^~!uwZ0 zsA0g#j-0KBCZs(RLCHGvG=4(;*r^DAK$+gAa>uyeSTfB(Lv#zM^s71|y+c?Ui{0FpBe1k}5Lgl&SpYUj#R zvk~>kQXX2O)w4rBq+TK?P9z7GwV)t-Qnxw7iX*z>+LI-%o|znV`!F)t36Qavl+;C% z{J)8E_(ak#TL|pls_WmGOd@1S#4fSu1fhjRMdv|}RiSEViNNY*+i=^PNRrn~-Fi1L zIM|gY$ormF(Q)uqeJ+td9&T|i|8mqt0@P@QG|(H+(q)=W?*3OY_B089SBPyWXzzp#y?_?!}~kl zzZ9~d>3oLY2pQ1r->n=F2H@aF9;gD4HL|XsEf0eH&f6jr+0MPEEBw(hG0?G6r3^9; z5mR;FRWM08!pa(pQKdSzDKi0#S!riAbAJ)$bM^*e>o)}PpM|y zyJu5XT`lYURsbkY(^)}6cUnIG7?LsoZl`@FeB_llw{=mAw1d zX{e}&hXr8z0fXMy-E>&Ph5cK#lO>e?#WEI#iu0#xe@PGjNi^wR5janbj~^7HRT56# z7rOqdpamM>J$|s-mLvK82PH2I1&io1Bu=pZ<4gW`#lGJNcwfK_Bm5sUlmBP2?zg1z z|Dyf2wy}rM91qJZn!Gk~na6rMbq^}&6a-?Blkpl!( zRwlJH(=gedSpRdr8cz=L9oggo4}ehOx3wzx37*n)05BMqh@7}w9h0#2Z!ob3CKkyoGfr_^`+krA?u0n-=WAf zKvL=U@HN7JY2rftPcDE-_yq_&0K12e9zj_`0~Q3Y_NEmBgpT0)GCClsK_&>*m&)b9 z{f5hM9rkcE6hO5X%mUmomdi5&koZ;FnEiIO}o0^);NA4}bv{F$~wS5YL zgrERah2u%Hb93zM>^(wnpPR8ZS)m=k#sq=oZL!T+7Z490{(|r!KGgB}rtyuL?UWBq zW=c+2nx!nT)-}kRK87kt&Md0N{`DOAN^l0y2OLKrM3&#dS8PUsZKrzZ?!f$CCBohq(WC@j<88ZoCrR6^6W(&xTTOu z$(Pu*y946W3AIK?zpz7Q4NV}vkuwT~+4sy-;0T|!x3`zR-`?Klx}**O5%|jw^F_Gv zqdI6F+|-i`kMGGr>aI{x7y&MyV@WCi*OKn@iknlhVs(~XpuYjQk}yFZ`*VJV{xn1W z)B%AMx%k480@Qq+w*T>Y&iupZ6!6}_vr4B%Vr%_nO&~Y%LRCd&NWumvJs5usZXuZm z!|>iS+zF?&^F_!b#*rbL!EE-$o6X=exq>OWeTRJsb#S!$|4PFM6~6L&n0_rJcoSU2=S>xI}>F(XIuJ2s#yg3>`f^ge>FkzvN_u zQ$w${#LR01hBRTNgqMpiL5Mq21ms5`4uEd~Xj$PsD<23#R8TBLM@2zGE2NQy5gmbz zPRis%(xUO|D{w_-b3SD|rjyahNjVy&zn!4pwhdnk+H-T+PJ0+nXR^%wigfb`{O8Jm z6aqwRZvy0FW@^es21z8~yrGO}0>t9_I*bWJx}=0epJyZ$yJ0`@CJ3??>#gI9NC-#)y^)w4fli}*_{`$ML~tHs4REIKi|Ab&SBG{BaH^v!Jr z%c!WR4zMgCBrEi z$(fl)I60~3XdEW;7h^|(?DF&RMV~9;0%)|;5|N0_IT7naEkc;*vva7kZr=_1yH&L> zzri~S0?D}&%OnEJ8jvrS2=6M{<7N=uwEncNU=e_1vKz)NrlX~`1>w_L2m(*d&T2ZV zL?wH(oY;4Y{%AfCRZtX*0RN%^W}8FE_`I`<2Bro{OK9cxheLPz$s#7qm$U%p?g^bUU{g9A8*p~)?=1sOdeHZT53FAk0728^IfDMlStzDjW z0!IQ&Mqncl8OB1<0uaSB*wf<*Zv4PULhiqCFmwqkZ*jt8K658T(=s42*hT>X0b>F{ zPLC;bZ~SH7;*nyLC(?=}Q6KV5ljGyXPzyB=hgkmeB`Wir)^ZPVdRpKF)N-852>&PK zX4@05d-~RKX*7nKjKPmAVn>gVqb{GX!aADOcMOc|!SsC#-YLpM-m3xToU z+m?U=IGRtP#rK1>N#$dun^+G|AwK#~#TgLV$fb?8MPMnk2jus&spA=v4hiB|?0!}2 zy`zS~7eG{Rh2<9y5^&D4R`%cQ*&lBPL2I5r-;8Y=(gn4^&0WGQ5zvNS-FC%RdGJyl zZ0C_bxqF8Xzr;v*?kt0LlbU1e_Ul_-h(mG5hE*Yt1HuyvT*qBmdqi|}^nmb>Unc_y zN3wJJOp0YDdWJMXErV>^gO}f|!gBy?&h+N|g!h62e->Sti_kS!R(|42-=w6bJ}kGu zhx6fdXo+2!xYNLc+g*D~kf*VCC8OXtWoRsT9Bk#YXU=F|vzUSEmJ)9*3j(Vh2v&~Z z!$cNN169|$@|EHb%uU6%E$e_-jkRW7vd0l}EP|)5aqV3*8PfMVoLT+yCTMX?`F%8m z2cyH?;DAT_WJkqvXpY|4Do~Uj~_nF%QY;Kq@w;~)e%!EVl^w;Pa**;e7kw@(Du#_ z5Ui879Z3*O;aY(>+yVrSfuWwLHYm^?52aR=yRj{|48$V`OiExh_g8@=r#!mYcoHdS zT7_9UgQx>Ju4{d9(ecA`c9Y$m^-*}IPmq8E2T}n7FE8qMJ+EC09rRil$tgczgipeK zfA@@;iD~Wr_+Asv7IeCaZi}EDMiHBkc26&_)kw}8Q408^By=@UltX=>mgPCFe(j&s zt^xc65e)Smn3S2W+i$?OuMSSsEdW{7CO;)M1RK5Rc=og>L&p&rmmvs^B!+{Q`o72n zAMxt~dYl*)Wf@s&*+^hzmM!hb^s`6Cq!wgRTf`sfS~fXw=dm2eaZ?an1%llyB%*DZ z2WC=+5p=F-yKd~p5WqxG4{yUa$v{FKa$*?zf&&4q>ga(N7D_H#z=l%tOFy9?j1%rO z1R$ZcbsApYkr)%BqWEYWl2a;Fbr4C0!MynN;uDDM!Kq725fHK*Vd2P$vfbNAq?154 zjuY2f0vHue4OBjK=%%P;9t4EU&CNm8!xKV?kR*pD%|MP1?5`o7Z=lM0!HO8VB-aSy z23}T}gKX9ffDf2vIL~l)NT8HHJBx~cj7R<2*s4RS7-qe+~)Z`e4D{?Bm>$L~!6*+kyN`AeYwGKxCY+Wp2YmSbv#a zdk64Vhmx?&Na4!Vy9)l+Gmz#$E-P(L(dT!vLgvWG&gDM10AQzLM3-cda_YhugzSWy zdu9|I{rwin3??4gCa4!~pI`ledZTyr$Pr(Vl!XC!9^nR|L@Ax~l+OVqDGAAGJ7M0) z+K&@6Gi_l9u5i-}t-#X5$6@EKg^KCdMmk~D6>C9ms!LWVp!5(R z<35yzhQ`uFYwjsuI!?|+XZ$&W-Dme&TGWO#L8{j~!l--Fs)-PERD5Pm5tRBh@k3oI zllJx46aEY!k==mqoD7D62s$C|QFHK_BWEHduYQsf2GeoKaZ5sg7#mIUk6IHJk7+_d z*7)XDmA3;YM1ND7R}T}GrULFM*@g;L8X#<=UlyLT_^u^`5t%9LHUf(WOmrNC?r^v` zCm$F@&}Cy{Vov(4IzpnCo3bFz=%rdT9h|BVyAte%fZU?tP6#*w^qYws3Qg+$I5^o8 zp9r%HM{i(Mv`{GZQ*bmWnynN~z^76UPIv^IEO}uuYAFt!<4~_GD2`V7_H!*by#}sx zw}cMMTH8OdMc_ewQ<~rf5Ca$H=5j*8UW{@fz!xquWHfjm+hzs2+}$P+&k!}laLx2W zUfUjVppK4-DZ;2mBbf)%2~9!;5cCL{zdzxRcyW>5<}xlU8PXhpCO}nY-voRIN=L}S zDRG672GfM@s3?*EI23f+-hSrzoSL?-F3oZ4(Xnj#YY~B;-~e59HPVyjd{uJ)>If)! zT%z*Y7K{+I2(Mj*>;~#0{hm;JVNQlZ446feZySvL*5~7G@aY9r42C;jqMze46he@%r==ak9#>q>zv;krAv?bXa4;M{ zY6WTKm%xJM_>K$nnExdI=`}fLW)5V3BN#Pz<-l`t5VNQg?kzq_{;p+12&v2qh4MBN z&Fcpb9&la7XanTq!ev71qS{_gsHjQE(V!WQp2L{x#F--D+ZQmP$^%?~csNV~rkz-) zrL9e?%ZuoDyV<={N>98yo?21hhyV)40S7`BO*l-F_@qyG&b4ej{p&miY{T>DlsQ_Q zEpR*5Io37ei^2xDecLSbt zXM%7}S$mzl-)e!^g2mx~nyZJ1_j<6=hw5wc<(EspivK$1@V5_{Ude)h3Woi!Ckd5p zFHEf*#cHmp-e6)U`ojs1a)}8r=S6nj=y-F#`PZ2d8p33qeuldMRUw>}unlRA zQ7BUK8PPe}+0f9T<%xoa3!V591cJyxz{$O_C72!tl`UBriHvY1D zp+#0`7-dBXQM%HyBGU8z(K(%S?)$m_d7ksSya?#tyjzT^FQkI#1ot1ieJ&%uVc zmJsj@L~W=I5_81{XMGfcC`5%h5{%*4iZ z<;oSp%WQW#@ z{z^(5zE?}ZE+4t;9(*|#TlWkDI~{EagExP1%oB_smB69-gaCq>)PkVW!COcz^C?VPAntpPyFySJKm)u9{{~KybKu zzS;F|V8yyk%NYM!pep=qO3tUSmCny<$boClbIaQBkI7ltfcz;T>Xu3HLetDJEFT@| zviF<5BoJJj%&7knbcSIv3iv%vP9vB+($Xwm7%@Ej{7))o<{fP&T{$f=b|k|9IEl=_ zLG2n2>7v-FRNn!RgYE$9Ik(OBjl4?@xsxJV2Uh^pIZi9lOvW@wR=%+J9z_uWsts9i zgN2mkipkegql(I5HNc&9k`6y1lWy}|rp{Koa_ixM9^AA4zWSXBnFG!j-`Dgb75$#l;0%yPY}kv83^3hM53X70ol!Ze&r>T9;xF zY7t8~H3V+nc7DqD=CQYNxrcqQ&dpTzkLVV{Lu4z%6r+Bxn06goXwGeyD`aL>fn;1a zav1~;93RW6MSB?`rZI5Q9C%s&wZrP*4{%*0?okF?ewY@;!`95uKIpwTmVK4p13gSP zQfWN4PsR^s*G%^j>6Xp{X`{?qB+y zq65EU$(DaKqUEx!C?0bcmg~2eSYV~Fd=GY}uW&(MyRy7$;AxSWJv9&=(OQ~`Cb z#*UoxAbvG8HBl`k#>G{QIKgE=$4<@kLJzc7tfx3hSiZnY&%NeYSFHhtCA+*op?Jk zVhwhRhbNJ!dLO|Yp)n2t@VXOe-6?>W9H^AHcBn1u_5G}x1zRDSa|Nubq7cN$`}g5H z`vmbsE3h_h5)%5O>E@ot+*ysQzO?rA+=Y7EB|;N<%drFEI@Y18{&mXiOZKxDZUlfe z&9l64pv9TZ_-s2un*xtNuJD28amFkzFzJM{O_Pj*}Ny1}47rYbI2>y+Cif zZpL+cUZi4F6YzIWe@Q6#eA z_m(_sA453!+X;&;zRU4iKb1-y8rq40NDRomq*=XKd>}z6t@F=|{t~*0Fwu4h=Y(Iq zx)((X$_k` zX4V;k|K5~EA{4L~!EjjA=HwgCEA1qw*^Vyq3jqhsJ*O?gmU&(;S)3vK@Lm4IKw zXMTRs{h!zT7j~Y%F2tP2$zT3&kM+ck^&2)^*=6~_`wbE=Kuhrn7j$%W!((C+-daX_ zw1J<9j*dQYyQLgeJgRNo>{BUPPc&S#d<5q2$&j7?)5Cw=@b6s0x9I1$_M0DLi)UjTyKO>Gi67LVLs^$D^f zMRH9t|36;YZ<+F?A_ZI+dSC^H{2k>E>i|wVKX(2os;avC{h~%-OeSurHBWCj{`(eC zU1)SIo3Au12?i&$of!Z6^#T%-gdLD&J%WI_otV~VXOeMXIQ$FU*5&g((>Z5!+&t0U#ukp5vJ&p zz4lTclputGE$@1}|7Blnof@rRS*6m|*qDno0?Nq6^?R5s*Ileot$Jllpa`>k!g(}Y z4e_(sd`&m#j|G3?yN@4P8kJz+>LE`e3A|-|V&b~-m56lf(G%zht3*Aw#%Q3VdGm&~ zU5p*%*mLgx<%k`?D2q@58IDW+t3_i zlZuKT7HBN_@HPp6zXWDlXGQd200FM6s|)Qo<`ZQ80kqd3GOTL)sVch=U%n@_n^|9si`T1k!y+pz7bIE zfZ&k|TkOZPPH9Ff?mW*iT0MLb2%<|-`OCGRoxK+x)E~KZ(mGuAT(GNK9F6eW;+uTu zy7Ss7R&5<-daaoqGKFFqEeWL#;hAlGGX;~^6FSTyy7#OR){)qL?bFY1O~((ZByG7W3Svn_f>U>t4c?jt3#N z9jYCH%QavK&YvHwTV~G;ZR!%*yg79Ur4sm;Jx+MjG(Q5KU_TdHpU!oT)RT?h_3#Sp zKoOF-%OF{4(eVs35)$WrulxG?Ak3kE2K=P)=hf)cZ>Z(2@$OE38!wPefm*r5a}wc_ z9|+ZJ9Rz!ub2a41EG}> zMEJ*3Eyd~S#q*U6fk`0Y%@TgXtO=UEZj|56W28$ifiNs%5Uj_=yTg)+5)baE#rrte z*)vpLDAXm8p|i01&ej^`#l!gfWfZM$ig4MwvA{Ps#iQ|ygqqqaacrz!*Q)oa3vhV z1bqfL!gZcpMaMAq1O|kC1r!X(hu@4(#@D5iUlcpiKL(+EPL(Ma;Y{#)T_597rFwW( z_hfe&lYmh1%J!HIpT$(kZP&%LnXbq=2{*5jHOenUteSdHOBiL+n3Eic3mw_R<42gH z%RS$u`cNfqRvn=Rn_V6kA_heN)_cczBRzM>dJWXs`i&|%$ojC1?x7sG6>7OC89^n4 z>QTa(=F8qkhmxX14b*OmM}`gSeBvJ1Q-gCTp?_C6&MW-&nkpaX4pZO-&8c&oH zv>#xhLSSh(JjdFGBp`@6yjlDM<4sTj{6N?F6Wr=WM-$3?b|`KGs(#+xHs%ZUKv{#30d+; z7>i0tJ!x((#BMcmr3nO}}3IIcl3b8GDI-Jnf843{;{w1uRoO=yjU0rHy(S zIJUpPpN$OD3WQpdeCi@WY;BlTL#U`KM;}S%ue#)ZdPFTAjqB4b+I1610ipxG(Y$ht zFYUZ$%J^LZ>y;R$rJ`>~P4AtJn{SF-p`UJxw_;QrsH?Gv+JBkyB(y8iCdltXyafyi zv0;%9?!ktCeMcW26aLUM>u+yXUuJv^j^zzXTGu?2qI7@k-ylcw9(yuOI&E7#7&fIx zLS0pXJtLcqO5;PjB3Ta+V%fcW>EGAri4tbZsu{r+3z!GZ%_F@tZ(ZB5l!bWm>nG0L z%nx4qb--Tg;YMT9Tg`>Z5N@VbUtV60al`|2518y(E|%uZ3Zo1`>lC&aHA!P1wyUXp zx6ga5wo!?yE6+|Oe;r6XsuHtsA0}2Wo}Pv4L>^U(iV8o~32^h8yJ{oRe8b;uhdBg; z4e00NE@4k^8TTyc4QG4{m+Y#C^HY-T`>(feH>9WsE~o?P!t`{Z<$T*OvIT#Odt2Ma z%^n>8k5#59LBfRYWKB&?+72-xAt5sPJIo_$sjnt4s|-ne?wu{!m%*m>o$c>K%MQ9c zObfO;It;c%uYuht#V2ubJQg#>Vq{mVUME|z2= zT$Px?)wuf%Ni{4tMK;_zLORceS{rHG`xVRYA)OSq;2pnSw1ewAJ&{C*$JY|c!sD1g z%W@$FFjSw?A^zj``Ip)t>_v#~yllFI#%{ZG=ePDvE3zqP&z`-h{VAvonn!S=F!4tu z=hr_Gl4Bdub_9Ot9BD5>nVfj+Jalw)uUm{W<>vD=u016$JG_G4L$M99V;2@0=_K?|iURQYIrynA;S)_yS6 zNTmjxKpXFO+oE_gdex%4=sqbn;nlRSR0`{k=PPx4QSJJ0+SQ##{h0FEhAUk+s8=ZZ zKSpD!*nQ*T<*1@yXq#2PC6~6HC{L#xdiw;eT(9Drk?L4AvuwqBC&BMfnCi3GN4~$Ri_Ps4Vzf}>!Vk8VwXB|<_zqML?JLl7_J?x0B!BH z@3oo^aa)^^&~V4dIBNtw3eVI_2>ryqxw;bhXdn_(_^_iDdy6cj0F!`=>j>q=hXiAb>vZ9-M zt`I#WQJTN7$?@~FHKKT7H!OZEX?EuL`zwj?*BvJsB(hI@W$!1v>gD1U$i%^s$3{!^ z#yyi8Pga+&%V1rllCw#49cS5ubInf8&7>y1=(o#}Oui9p4(DL(qKks`85V+_@y(Z=l{22ufKMa_6p*Y|l zy-Y86YfKEQ-ySh9ht0J%gP3|AyCXj;dr@mQi?9v6!Mwgeme_qqKC|t*Y27Ki!+P&X z%3&Xr*zUTgS9y9>tFfUGjpE(nfK&Hz4bWE+9jkCZw>JU4L-U zi*ZNNQVdf~Nene^Gw|+#MwX}+UcNsMe0})RM@Bv1(2l^~Bc*XHA&1kch4zdxXoTp< z$h$DdZqGJIORejO7jTPp)>L5OU3V&%lb_wH>5`&B@n#G4&Enz@omVEk?gdDy%2hik z=XC=LlG`8Q&(Wl-j(p4L*vzE6Lf1M|Lo}p1H27`gMb@NfupYn|1lcEoqH*M}i-|q5 zttnAUrY_<9eEkvkCXl=WuFcXkV8EHMNJl?Nf$}CK2AzC<^X92AUT-}Euj-p|JN9KN zWl^wBrJg-oeI1ZM7M)d`oCeKpPjD??J`Os4gV%cO*QEhD6i|f$ED)zMEF9PRYM@@i z7;^0C1WEzXIY2xOwzqM+&`ySXe^OcQ(m^WC+RF&KgByIHK=k4OZK{wn>Rt4 znkjDGHyN#Nkd!dCPi>z|)bt4+)72I5|H8P^Eq@fdl~5(>q+28`Nr^B{ z<6JB#9_w~%Q)`(C1Yn|U%Yog@?0#E#u5GUzu|HWGlAswqoP>$YL2w3~1tIb|Q!gX< zo$m)TOg{f{nk}kr;e!Q?HJ)CX;WtJ)>Tn-yt?l0^nVFegba2W@nC7&=VwHXQ8t2XW z&dxHxY=C5!m*sNHehjy+zC{kuB3i4+HF*vrsT~n&=$6ZA5w~Kq-!TUVk%OyDNG{U@ zrb4H?id&+l+xgGHL3w;7+RISG$N~O4baYPT2eY9?j?Ihh4xy}5y zDbcQ%LO@B8dRnhTz?*22C3IT&&T1wRh1JVY=v>I<{Nw(5_ip)Mewy7{Cq@F@;qYo* zs#tNf`ZA+yN9tLo#CAq1#+Qo2VI)csTL=4+V?>hbeZ%n+xLiLaeck5G74Q(RslSbg zmf3MMO}Vz#s#GdJ=Zxy?Gk%TYD-@yiL<_1}Eb7O{lE_9ulVgs>zN{lV29e9k7=&l8 zANz_hE(nO7ry}9W0arLMR{5G-k`lAbg-x5&vEo#2+asUFOtFpDk!6DrMPo4$$0Sb!Tq zzueJ;c(QPqe&pY`0c^Z)P<){pc_(;*Ty;x!!#;ohNyr%}YfKW$qrL~kXq{YREZGLl z!2ql5O}Z0(RM8DJ?cp7Ed+-@rrsWUlX3ecofQ23q0kpcn`FCLT-iXB4M%CIP|M?=Y zvxtt~^zcv!T(@!OU zPhJ$u%p$I*ibn>&YaT#HnSYJcUyHYgmjhF+EbHTW5YF*0)ba~O>QX45U_HvmWA1f! zgZDVy{eJjY#Z{%!L)! zDEg(V$HFZI3N4LPQ3y9%7>64Vb6^28b23a?0uNk43;9iW`wVe_W#nC;!gt z@LN6X>^ur-)ZoAY9-C&EK*fG8E5h~mjLgQXTrKzhXh}HTR$bTT*|N`^$ctkC*dcrs zisx+S9(c8EK?8rSlu?ekBX^ebobN-4^0J@k?Ks{|VBHQ#dg+F{GwGP#ryT7y%9k{T z%L^n(?yEo#4$GeTY6S0~{Zl@Llf>qoBb48@rfPGi9kM=6lEXxn38^4wk|)E>i_*c0dj_b;0QnAmVHN;c{z%b z)_jXH@i>T2sXg2OWha8;TpuFP&^iug(0ye>$-y1otf+n-<5ez<;$MTQXm4HnVL(j$ zuLp(S^sWpMc1qIV!Z9%i|6`KPV&%pd)^vN{OV*te%Y-qu!O%zY32q{cqhl8%R zf{!m^NiqGJmm6Gqu*`v)i`w9WM$UlZPnY40h0CaasvAKB)IPkYi`QM->Uoi90Xphb z_`;Ob#T;#a{1~0Ua(4EwP>^3?lp;K-6p8GT*Qb{kuIsq;Ln>{%%h{x{|1JRmhl+J? zo}I7Puf6>xA6-tlu%33K<7)&z@;>x8%L<)B zvrn`bAlf?RqvYI2}9VhhzI5)IL(sP$1aw=d+k>Vg$^$L_HDq!(SkPM; z6b6Yk89+rEZt6>5YTW+O{Sq~J%Zq>!21dpznHI^yitnyi-q$TfPTIsps9}An2#S?L zxOJ$n824t}dPPtN#B%m~SIF6VV58FHIDJhjSK=Iyv#S4Wxx)#`0U(5OKUwpFms@i2 zglO5#*;7Z-tI-i;I0?37S{j;l#evKRCZ7#sv)qbC)2Xy-Dd*PiTsv{9cU*E%E-)!6G+`+6F^n!?LQI z5*z%^{N~G`rDI`gB*ZxUo`)w^)T?ytxY=8 zk`oWV49bwB078V{=A`Zbtd_7=hH|UxoR&xO$uOTv6RM+{&fBhe9--NLrDGgKZ?I~XJ)|PFL^bmG=htY+Pw>pBbA}@a2c5DvOhrn4QSsG& zsO}Xg;K}Xc3Q&m-54CNq=A@;jVL_v@Fh27BbF-^YowMsIA;@%wnsO0jGdCBc646F< znnBq)$^!PMYlib|nZqWmAtS9>^mjSep$l>WW$H0YgtXT)DT|;o!;CGv(AORsQ_)}`LAEW1;a5Qve*Wa5ro1Vi!?)Q0Y#6$ zVF70mAfNl_Vv-_MY7aQOrrI4oJS1n{C`Su_u zEAKj?$cYv4s$SLipSCe}H#Q5jkKS*o1E+5vd!%iU zMd&|KP;u@SrOA9OkXudtKiz&8!7bgLy<;VJ8n)@+q(`X&MAk#K9I~<*R%wtQxm`x2 zKN5)+FtJfl!Rw($J%ZBZ6tOksi%(l6HGqNo`E%@jaDOj8N9MHa;z3}3wkE-pDbevw z+Oq6Gv~#7)6>O9$36a!6Y;zC8or-%EPLUf&McG9BWG@wt47 zz3kCX$q5+k^X+$n>uZsAh=Aw!5nnYd?3zTslT+>C33hg0G-2_z|1UVN>$%|4a4vST zuyDZc^uuhcp`z6mjBc7jH!MxBaE4Odu})L>jvx+xqcKh)6+fK#w&QscR$?e1n!6oX zhfiZdy5~x}-B~<6F8vabsODfu#*P=TXcx z%S$KzMBLH_|AK29rGR8H^`0g8#GpQtM@Xi|awG5qh(cGr4awLHzYVu)jz-=I4#GFf z2pPi5%Ff321tlHwGMf%b)-7D@LUk~|7tQna!88l9LbO^s4K1zx9%clPmoC*GGm8L| z{onBWuad;Ke=#kh&G~2+b=FGaZ;*I_RG3E>)+dV?_0idWLM_|v)t#MIYtwg&u|zFk zXT}U@2J@fty8)3^oh{oD&G&Fy`mQwihn^k+;BmO%MtZ~jTH~#vPycha#2F|MHAA(v z$G+;hesgfR8$YKs@TlHycOeGR-w@_B4pd?c6w;^p*%b5LIh<}flT^mXLew=2JmdT; zOLHS6iQrv!l}AN-rCNn-#|O=_gmL@C{&cX8`fG<;J^wkK^m(rTdF-1?F3G=t(t#?w zc?Ewl&wTN+`NePH#aVPz+u*=PzJD(H+y4K3r0)CAeOQn$B_-u-WV^6x{*|s@9VhE^ zD6jR*!Vt|+yh;cT^97fILbw+O9ClJx7M52fdt*DcvZ2ys9d+6&vTGcb>Q>EFm$aZ^ z1h>Ff@auN8_9F{wZT*s2_8xk-5@e;NB4gke@mg&IRCn@&|3sF4H*&9!IO~Ec$4d-4 zhO z5Uw6*_?1%w%!4mxe9m1Z)H{J`d7~#mzlPWD$A5ci&6b~2^i#;UP>NuLwTQX-)6vql zJ}wI8|D~z@25b61*nNZ+O3cf-lwIvXG@z-{)idVk6uQ5)_-2W--_RP#(?REnUuZYU!PHZk@(?{KSZ*0 zwbV`j8@l|*jQ$$}B{aL7)5NZ^sVW$!a=4eU=64GasnQLna?Uvqig-C3K=EFak9kOA zFFzO;*%p4AC>HA+rn_$vzfkt)FN~dHxWZy-R{NI%+3;E_j+kH!@gfg5{$>?_$$@_^ zFAJ(AwBJ8hN}HhnBKQ46N&M%p5`t%ujr{wgr-xb;BN$U$+OM524f9|GjrY~zUF2&; zaq!yWEk{oimr}TTbz3-3<-Iqa`ae?aH;qR-XplfFUj0)d?4725Uisk)g`t{u@LB$u;V?N62S7|Ue}!xG_N!e#%);VYEk>lXOsfAA@drcIrCDa6(B zoSCOIM4`yafNd5v*_77CXfO01A18Tf@G|_9b6J0WOgDv%PU9cq>lytazx!>v*$9<; z@ci>7JFR{9>qh3U1#A=@G}?fL3t$NR!Uy&7*SBH0+%NRkUnCxrI!q$nkCh*r?84Rp zX#zf$^7jt{mLSw+>VAn1Ov0{PuIEeJJ}4n{3Ll=u9EueKzNeuJ@2=_=S2&xnfzQI_ zh3~iZdjvQJFFUwy2#8=w*`o>Xiaycn6k8#umEI=r5eu*(x31XKqw(I%BgsOc5?Ei* z@ow9Gg_XZ>`Qb z`qWu-;d%9SM`(pXhSkYFRN>hk?r_2sk+87x$XS@*V7iV*rg$$J((OX!4%tm=*9{sm zSpMrT9jw4vBDD}Uw6|`(K~Hw|x`9fg)5e$OE;<>5C0Qi~VCIh)?^FOHIu=98z!4}e zQ$h0JUJ;C0C20+!2D+N(Ih@pBDaBpal<_>@4{1NJvruCWwqN7g{0V(?fWLD3ub1_r zQ8`l&-Cn|QCC|GPRT`%lifxM`yG13)8hu1a*wDBgN129tc%xq|741)c#@O${ANbOP zh%vzxYbLAumcn@qwID#ThM;MJ z&syFg$UvR_d{R}lQ6duK6hDCN&=yG{2 zwg)vCTq)3x?Lp`l4SYtt1}W`I^r@?z0F_TmOZ%$w7vzO zr?^D^D2YV@j_KzIYMX8;?}P0ghP9s&=z5`YQ{=jJ@iorm#gB=zX;8QSB%Oz3qdug@ z$R%Ta48Fgk`7iGtHHf>$S=SUVki)67C;>s)^|kbmaqjXh48({H7%>N)7lX+2!d31P zE>#aPBpI&#!ZCLv>q+va5>&KqD;Inn!8CuHl^`_=gs*W1AJ1kiCs$oL35Eo3$t+VV zJSQgy${Y_z)$7-3pVzy#SWRPIvfr!h`We1CuSWpGJN1)N;4HjquLG2O|~4KN@|#k7|6pl@1}x>u%|XeQZn zb~v-goji$Kbi?Q^WLrx^B~&4tDn!`DB<~?cgt@W?YwpARtv=EPl6jYS}8)l zn}zYZRCmbLEAS$M;YfQ0U{U-&Gh=XJy>@YhUQebrvr7s>(aCSI2rU0lEEMZ;4phmv z51j^C6psp2^4nB@p5#@J3!~P4&5Arw_O1(RlWC6Oq8Ox@IQbjoS?&dBg8E~MJ_$R7 z{EwzTm6I=gFlL=iJc?A^YY-eX3UjNkHU&QZh79-Q4s)@cB5OLzHbOQiBq`hq4dm`1gGSeXSc0n7eJ7giwe#Fksf8G?8@&@n)=UW3eK?HuA;@EhWOTwg6IUWj70V z>*AI0m-v%d{wLK+C@?(mNs* zdyhGymnfx0bi>Xg(;} zW=qez^1}BR7l4{Zwq=J`$O1aSI*8eY(^s4$f=zBXHNuuuQ`xXV)+BY5I&UQm)+<`H z^|By9>H;_Re6q5tbQe@=ma4CPkcF}0L+ZgXZ* zg!zpv*oG=8%=HfM8;2@X6xVTqBJj!<8ldbx|~lV zcx6Wa-%+fg3j_Os;M4JhpO654K%43r!dm6*e3W?~AwU}*%LN=1tHJuOkKQM|Ys8i8 zKSN%)Y>WT=7hvo4#JP8?TG&KhGW>oV3T=&0h_^;ZtWrGS=ksjk!Fv+i=;TeQpjLs2bC;UWF~$wb|@})CQyY^$z_vUJ_ItU#lzVlfSL>fw1zm+!I18R>2XpxNA19$WjeqHX zo>?PtI~hc$s!IzSUmm3x=yiH5F|27kCV1x&^m^<*Y-XPluDR||?FotZaS$6f+Ntp^ zs=Hh7L??QTb#vRD_MJDWPF+PtjEs!~MyhA=wITbNi9f-{!*g_ectvabxn~#HocpY< z-({T9+E&lIH`mj*I+sOo)pgaqT)fgp;?7htE+%4U-KmD`0;&%q|MAs>W6j&bL&xnR z!dG0~CmgrxVXUAm`NCPNXI;heW+`@UIlQf*z2{D|#OKC)zHt%v5mM*e@2jD0+Q#e2 zvz;RLWdC)m-63tdZ_&EBf-ObAQJV4V)(;1&H`^3a=Ek7FXMCWEz1*5r@9L{Tn;Sn) znlk)gW-jb?_O_5$rmcwA!1BwK+TCm3r|6^%)^I<|M0eOlQU%YqZyZvig;z>N28n}m-7clF6UJtFOg3gx}UYETKEa}U^gax7c(YN z)Tvr8L(cZ%7xBZ`FLIeOu6LP|9M~3K&MbDHGnbS2sn*8dPSiUVM4BDb1k!{!Byj zmb4?@cE{Gf;GdR?BYQG!Yh&!-RI-jAjEs8B*xsGL>)D%8CrI(n%Lbee7$m(P@MPz! zm7dVqYDSVOiqL(z{;8CU0pv6o(A}xkjGWn-U!E!|hxd#v=bn5y+-e&> zbQX{3zES}Nhw_@AL0pRBg422Bq`fpH#-{c#5Tdjy|5KyD0b8v(~-G zpZnXMeRH#1%sd6$kEKtWlBi=JyNWM$lswzuWzMHOx$>h?i4!P5j}V8NC7O3Gu56^tY_E@HDeXPrS9$;zi}p;PPT--B-?X$8AyupI$24+Z@{# zf|wKXlc7rY+a+WU6qID8wT1h78WLRr7iDH_i)BS9D>U|!!bfRynUN44kvi$!lnLra zCMKrvSldWRy4o2WtLpSP;bW*^LWC6`2`^yvvTN}dH`+eT%%DsrX!CH0V7h(W1*=`a z>8gw$=EE{2TTj_<;!^;5=7(Rtx*Hp2bteIW zV1S-Lak5xeF6UBbDGA?6{#zD1X~!N)7Rq0@`62d+-&6Lu1J&vK_;Egxa^9g4F|SK? zgNwXw`2PUT`c|aUrW?uau6K@MumcAYPJMriGc;DE^^z#obD!=`J3iDu6+3k};Jlx^p@7}jl#JGrjl7%C@vYkD$mpP;+a)eZg$$N1 zp2)sCUdo1}K$cmlFG_gELbtVO<|v52-Je_?u%t3ivTT$1w@*Jl<`rhAdrVNln!XHy z&hhZc=StgRL>RKR?x=P5m?*WY+I~b{wrW`WTd_*V1=sXy;bN}?H zptN@zqpO-@*W})2o0Ox@&XOy2AF^ zjt`6PJrw5t5V%Bg@ea2UebMY)#rzZRH>4Y8>}}aUEc=yBCXZ98A1CIv(j7}ZZ^ttD zw8Wxb`g@parpAVr%LgkiEK|(>lo~9a!69Y+MO1K|Nw#0C7%g+0Pl^GM_3ic=eiQ6b~G@~X;+>80bNr^r=Y`tjmVcdeq*_}AO|J6H@~lHV7= z(lvhi5)=2h@B1rc_wIX)D^~Jb^S#@LN*iF)xBZ$dx1`xU`x^5fKbYU#dD(k-n=$E= zb|&Q*&(HDag}i=WzwWPdx8PHm+A@5?jeo^1PUb~cBk4Lt#+oIW&ruti-EfjvV^qs) zO|myG7Lbz@+AhRU#3Hk-_TsL(W!QuOo+u^0t`doUuBd{e2z_g98mZ=#-8>&%Vz+L#1In(OLG{E}{OEgkgH$lMBpo z2VZ^Pal{rg`%z+{;gv_sZn?K!+_tDSrvB!6P!U5hWUCik%(X#fYb0cif`3P^XHp*d6>OHNGkJak?}_N z?$P&GnS~0nzBI%g=GAfei47RV?vLE7snvV99vKCW!mW!lOHT_@Oi72|$!PAxp-Day z?artfwJUS3OMRua&ZH!d7MZxeZCpa7xs${!rr+@X`8yy#zN?S6x3rX(-$qv9!=yj` z2bv;_87{{})r&jx;%BGRoQ3JB97{TFq(tWzl;ERsWagmeY?)Gvv{AdHf$d=@Adnx- zHLkLlDYCGW)j1eBVa#e0!a_G2l4Q5i@pzr(>7~vLm--bl&63!Ui>H~T zBO_Jv^}13glpcy^%3Arkdl%FNkd&=co?N`e7HSuA<}L`uy0fGlv-;~%M{+L3e?QKri$(553(nGxUkKJBLszO0zbzk`t z=mlo__~gOq*(ke3st`N*s?IMpTj{&Zo_U#My-UE6;m(6$+G!-^gO#tA^k3MtNN#0Q zsC@8Ywg%4%x0N}X;+1S~5j|{XN|f3a>%mxAtke8h?pfE+g{N0V`Md((Xh`^vw+c;q zVyWG{`Nc-XROxH9$+?`?LAk24P0Fg$6rZkKg)wX*nH2pLwV36yHqRXHbB3*e=X7HM zMXH0RB*W?Cl>Pgb4C2J(uRp#;O2K49_Tu}(l<|Ce=$1J4Kv@p2>gNM>AJ$EEZBUYf zp1dZ%VfM}34^oj_HWN4Vlbtqm*zmy*l~~x?SN&n9cf9fJm89~%fp0YU$m5`rO8Vzlf}2L zzBoQNbHZY1AW2K8)@JrStLh8S)st=EWc8FHZOxP}jwr)Wy}_M%r9!WBj5s^O1;|Ho zO>@_t7SWsH<+JQ{xO!L`u8Js+{JyaIa<`$f57OiuPH(G=Y1Lo)QQZ?6Xt)0V8URg-kN8FK(pN^@od#=Wr&6WgARy$XdJ8hL?PVW_``+XhzmT zx8l!igXq{_m*?JnQ>-9D`g;x{U}rjQKR5Ik-l9hCzFV=kxL3t7(aJ+0LC9K3T_pXu zh3ND{G(1ludo7C`moz`%%oW2ofhe#&w{o0K7Nw)$Rq9aV zUux)^)VL#Z!z%AgkWlNCZhkN|1gI`y&ER#`n zenR6G#4J0xu3R&;U_iO_%;GNQJKRhHCXtEFsrPw#tP)6}PiLnk!N@k2sjm{_{*c-D zke6d^|F;73{H}9#-zSx`xn+Wi3beIM-?zONh-&=S`{8=-%d=$h3x;o4i`WxxoFRL1 zF1yC*Yv6r`O&l5LfIZ6tV3Rnp2FC`=aUU3|=48I2pxikSMOL4y7d+|nCb~@MoDrgn zJ6_~b4w#eDPOgd$&)Q5Y`b0VMZnOEQ)4LaYmsp^`wpEgkn{#nn$-8YE_gA=i+GU1s zED=3^!?CzR)Ud*j*2!Z!#=`}#E1A9WQb_Pv-7c$fBhnd{^O9Q%4?O6r`l-H2J})-5 zxxZ#FJX*BJgE<Da{ z`LKp^>jFtLhcj{_jwGs5z4Wd`Z9C-0sxt{A*@9-?Q3s7lbXDwL4#hG4rBA-reiDH_ zjE0YvS^no92B{ZoUf-W#@M&poPD^}qCnA#TiIepa2m2FfBf5)`lmFsTMmhf?8lj-a z%O}3@%88tQb=otMyzh0zhNhS;(hrBv=WvQ|JEr_Xk{zp^#`ktcpXB>11D5R(qu$-m zz5k1yxxa!k&x)lw^zDrmC+erQMIUk;nJo8wZ8?`md347-CEY$JIaEacRHgZ+-Z3xu z{?D&rZy+rou2QBiXe&?TsL#Q|n#`MdqD&BBvyx&Sz3d7Kl`B9Rjt zo#qZm$h2o>K6KQrz38laf-iIKcC?_sMTCZL++0h>bBD{FIq~;>Pnvx8?XTW(@}~y0 z9OKWKltW$v<)JCA8w^$%lFsmqy_Md3yns^i)1Td$nd5FObWJ}+kG{R!dE;|^LHU$FW!Fh$aD&C*J|mekXdw6%9(ws zH0I93>ZJ!XQcMfyI68KD4LlYjvpc?l+h|BN#^!CO25(OJRwv1`_nSf-3U=nn_{J~S zq|GotA+*%LfRe30U16ubWwOpZYOnsH$ppG(t%a}IF1;on*^wf2Ed4m|ml5;F-M2ol zEni-(Rq5N@36EDv&C9(9*V;wcpS`gz`K{J-)0LbX;$D3YAUA@q&Nhgfk}=$(w5`|Q zcUkdO%D}+e%|DJT8W*TEHU_|G#A;vcS8T4@VtVr=R^}%(=TCK1KN57dKmWiO&ec7U z6HX`mZs>i|v`fZHmSc9ZM#oQ*yX24cDc4no*==9@ja)(1&8%cXGTg_mSP+BZ6F;ddgX%^C&y zELUZHAu!9?;M6)HXK@!E2IehWPL3aPa@tXPD1%;(w@7DthNtPm2J@?w&pGBfcf3|Q zsN}GQ(%#2f1=>{OhZ57r3r9x^63jt+#ZCO8~RFR0VG` zm@;SeYMXZs8$*{(PE6dgXb*p@W>I*XTvZ*N5$MPzYs0}TwAQJLHDmG0w!+s*=1uYY zskII#yq3HRdqKkzys06Otam`g7Ey?;Ggb%hKP`~)5SsgV85kkka^k4Byub68Z)>}( zrVqcB>YwR85~k|4cz1Pb1uB%?&*>ubs5CqzHgAu`B7Cz?Y?o`JH3n-Gz4vr2N3G<& zfb%R*A0X#-U2GyXg7>|2N8*{PDeaTN zOj>5LtKwIj=~JC2+O+d1&@8j(8Y!&eQJ0Y|RP~!OB)wYi1XqG!AJwwr@<3+O^*KiA8Igvq4Shwx?;8 zhQ6hXamDN5n4a#hxk<_`i@`TSo3<=p_tE~dlER-PF8xAInJu^&rh<7|_xHa{ZRz-Q Vu`?#J+wu?mqpMBPD$uYC{6E?=m=^#5 diff --git a/docs/images/FilterCommandSequenceDiagram.png b/docs/images/FilterCommandSequenceDiagram.png index c72041dcde20030d391365729aced064b92244a0..0592e16d0e92ce694d6486c5e5ddceda3b795edf 100644 GIT binary patch delta 8707 zcmbVSWmr`0x)!8!=#X%RloCEb8l+JH0TB=oq*IV?mXvgih0-Mm{A9{JoT5mkhbJue26?V)XRstPS4FUFr3m4Mm-+f2IC7>ERT?6+= zj%H5o9uFNaV1a+}PN}-ns`>3Ytf@~wMw}zu04MXwTBZWK=J1dc1>uC)F8lqDX;q#h z0;fm4k}v`qu`)}$%Jm*UXPH?C)=J`s_gh)-P_7k`8XXbDG9|T%Bwb7^Fuo+KxGF^J zT=u2_yRNR-p=a*8VJ{Yff(x3?(Nl}ptqfAJc-)303*{oh$Kn}`6Sw?;uiLemk!YO} z{h)r72i<*;kz!5s`V@`i!@DZ7h@|6E#N%GX!Mcw-LE2oqiuBNUyxFKDn;~{`wN*(x zi;ME&iEYLgZChr!D(%P@IE-q}MFpGNpCn)H6^qT^DZXS=B%BHLo$f+}tQ-q??pwuW!o3^MVoX68A@851=}p>=j5*ac(_c|reiK%@i1gN z-t3K3tQUXR$1BH^uu@t%)pT;fxnA+^s+{m)#Z!fSSBW~I{{9=3{wOnfDQ4$qu4cE| z{lfN==P*Qn^&IJyaGjC1Pehe0zhDo6O5?d?F3xo6Ubx_6SV4gue-DysjN&<&B?!W` zgJ-JU2-2b?cv3C>;Jq?#e>kmg=|D7gaOGXQk|F|g1p=JO%Xoae)`^H=ExJX4qQ?Ul zu@D3V))y%Qd)K>VtkcZa>bS&eu3N9~ZH4zentClEY%`zI=VLSfAzM|-Yt6V&ulQ@R z5!(W7@`I|5j*fbd<>rUb#b-|y!^wt=?o~LBy*oMFNtW^R^!IOUK1-AFGuOAXvpYRK zt#O|I+CBXJ@vRp;R)?(ZR9C2dOps*aQji_|4~AOUcMHbhsXY4bFRT_oi_e!#k+U88p*q#h5N3Lsx>Go zC@3kkI8VzKrKF}p%ye|&vm?tMc)p#k1#HbZA*h*o*rhkO5(V^%3>+PcAnRnNA4fy3N^!gc`PytvkG{VT zVpECv;)pPu%2|BBqh$HQ})ZoXfk!TBMcH9idMBA$ARxRA|l%^;bxgFfh5 zBBd1fW+Q_65x1+tgu-}fQ83$GVkYHO3W=wNIo&^eMG_Tk58&<-Ogqqm8INQU? zOZ7|B_93o!ZkP!{UvO8Q$=(tEqh)5({#!ku_++fIG3tgzb`yCo*3}^rlAF z1zS@cR6qQtl-Y!8eI;apN6x|*6No`kJip8=CNt1SqmHc-$7Bbt@h6AluO^|EfIGog z_4QhjZ*k+YdLx*g^XfZo&G(oeOf~r}E<%f1qB*=Kg$|wwd{*dKh|;B88anl--yYUC zWfpTv;Vy?%1q9dbbW=!Na~^*C!X)Bk`$xZGMWiugDnN6PsTlt0`4vzdotD4=?E%oJ zH=c1uT5+{<-pSJxO{7F$8^G!^LM%u}?-L9JTG22S7=Gt|3p?n~RwbqrAW^h{7<~A3 zd73GrV`GaA%F&YzUaQK@R^2bVukEgW!}s!BpSrJ9YFwxDR=42G7cKVbEcV-ov(uyX zXj=ZLZDx*zzI0W?7T39(Jwd41+1c0@fkORK6L0U@K#k5scXNi7(ejI2abYnrF&@ib zBNbBi!NqQSB#Ama(Hl6s5s{YwosZG9Ka5rW-&LbQgo6Po;on>VzkB@ng5~3*q=e(o z$GNwQpp)JmwFn9dx`;oWVqM7t}Fd8g8#I~yfx6c|75B8`QG5eW$M+&mpH=7QbGy)^#))Zo*ojPipgEco`Y!~XQ8evCO2^M&brnM6 z`P$h-L%J4`*y@+f&CNf*Ia{{0v}EVvx^z`$18)E;9KqGWpL6nwC;x6S6zBWmeuJk* zx@?pG!KRq=lt@?O$JfF(kFFr0oJwo{ZtJCC*?LCGHi%gmr(f<2THjA;w?jD%4~67P-i(kbtJSI%!WGLre-*_1sFA}pu{)v3;8zO7C)dwV`00*W)=jdsGUnCSjMiFoQ*8SX;qZ@$Z%Y4WK(21#y&U z#-*d1%pAX`vCFAL_3tO3KOX^`4gGVg4*CDDCI0Czd<~E1uo124-)8`PCFjZZo3Z}2 zDd?YF_4P%>Uj|6^`-rtq4x4pUBmYlXM2GfXNZ$Ojp5#fO;w8VY^A7<2Rhdal&2*qJ zUEQZ*qZ&#oDk@4!fGS?c`!3HP%ydLjA(mR9sI`eYfM2fbQ!*BrCL=)?@s(ENett(9 zFzy7riK9I4!z~LjG~0RafVJ|awwH#9$AuH?Z`L?Xg1%6VX92LaE;j8?#gQuI6?n8- zQ(pFHrfqc8VDM1D?O@Z&c-b`Ypwl3K5#0nbmQ%G*+hZ+3Li(yEl!S)8O59$0n9Q$!q)zqAGyri!41VRNl+3y zd@Xt{;buKja({WGl-z6gNB?Z})n?nNMxWL3Dx~Lhom-dIw-f1F+x{#AVF3X$g_9rI z@s&(ii`GiwG2l8ZqJ^=d)?4uCCsbBx+Rc7|AxmB5gHW-5mMfn!!V9Z*B7A zb z{T3b*A;vIQ9l&GngB~Ip9wlXE`C(A{U(#wNy76FTtO8sT08DN@z~hS7uV1&fUs@c@ zGpe-Bgw>fy%`>^pe?C~uOaEGOKbq=BO=kK#$i-+{>AzMI8^J30;IRSAUzVscv-Wpx z1f-;sm3Ggpy?a;GFa}$DlVeJ!8(pl?Rx7J>iKbr_gA)=GdXmK)@Lr6|8Jd=x zs2%RD$EO%oMEZ}tvoe=MP3o5zU(tJ94amp+X!l{xN-5N|n`AKa&AG)x1*4H9B2UaD z<4fHQBxCmehuHY99{+S|Z~WvRts3_jh4hb}vq=xA_TE4T;XQr&RD??@ZbF~h{u+`E zPTO7DxcLe2(00Om24r7~1l7m#4K*NEipG?hAAY;mvwNd1Jw3gp1!{3g1=8qvBOWqt z^e)dQF!55sbj7oFZCJ3tsHsI9zVdCLQxGHC|6m9dsPYe3df+IL`9)ggR1D^73@XwA z>FT#vVqM0l_e#dEI)amva|r>h)h%onU)}_*7-f~H%)-jb%FJBs?7Fiw{P{Da-ov>G z${y7Qx*_u9vESa>o4maCwX4nhS%INoU|dx&;u@%8B0kG<7CH$|qC2_jtxy~2 zk7ycRPL>tLax*hC7Z;cD5QJ*n)Z4qfIgvZT;;^w=Gisj)#uBq+iJoWzyjzFm3>82u)W_%)1Obn}-kI%r+0C2fPPfq|T zMsEVl%j&1)GkCO#`3PVK7Y9eTK*wsL)`f-6M@L7eH5k{z+`Q~~%qCs_Tb09ziihG8 z5(;RfliPKakwH4<5(NbXBO}igx%pEe^9}+>9iYzTL-6K!TzhthWsF%E815D5a42<- ztRG&vRI{V;AA5v;F*12l)DOVsa9sjtFwyg`m{AUc0|S94JNg!IPOQVylEJ}2B=S-= z3(nMV;fD@1P(n+$yM%>>%i|X5W=0;;-x|71*L5XY+N8_-Q*#WudB8RL|04IUc0RX| zQ2D(IYm_Kp^lIm6C&M5p!MMDoG$#LVuKtJqgm`p*mX(zO-=Z+n+S*zv?n1h-E@>YB zAB04uErS~$6=nY=qm}BKtqYp0ZpvdGVSfD&`?8Y}X$v}S!!+l+!b}EeGEm|5<|BcZ zoq2-B^R7_Z%XAcJthma5JaQ1q&z3G?N9k@-ZmukZdJ-Nkbr5?A-ZA@I>aaFYoXb^( z62wTNnA61QJFD)SFL*Kq`S@Z4xG>1e=b~bRFD&8A=az!Bu`FC`lg%E2larl3T`x8>YNS$r^rU4!&haTmd z&Mha_6JMDJ1_x_E-EdbX+%H_d&7X0d>1UJQURfVNg)!>kKJ6&{+q4>olU~!WiCkuW z%b(s9i3+y`&F3rMYSzyM5Y#$;pUspx<_LI!I7)?0!h>5FTq5fHyM=mS+3c(=?28wL z;s^?Zz3x8Wu#9?W5sWU1o0hjc3;g$0|pW;&PdOe5nR4? zwaHSzI%@POa6SSTrjDX6;XW#kTju<@lx`~1bpnQPsX#BWr6jE=sl|R+vh7F5icM)nL;k~W@6LXR9XyL9l{-6j)6lE3ec5ud z>YPt@6cZh-2#ku?W&VZ4f>5paz_mMYq|1Mt~h9_gzje0OY< z=93HF-rwJE8nE+XKEpEsiR=e?)6#HZ_Pw$P_LkJN{D#yo%mY?zj`ueVtwx0n1hG<+^v^<@<+4pb2U?a7kZhWTUuF>vdS`z5X@Cr z_fX#XpqVPkEaj=bg5{Oy&4iGlXJ!)4qT*D4Pl$F+k@O&hf-v^wKry zlkGuq`5|tBa83uCGOzWig*3>o#B+808K*|u$z>Fxkg}$T^aH>!A*zlTanxD- zR#R&2T?sU>oA+K`dZ1y0=R+VQ!Te?J2ICT&k1Edqp1Ap(J1FQj-2q_zC>q|~cjNtF$d#M86g-`|)8F9iYA3ApPrSD;GD7Qn3{BD?mRLH4m?4~QF-=n$v` z5SYZCTvCo(?CipGnrb8rnxQT+t_$`EJUy^U83(PAb2t0mqqs-(aac!Jbn{`*+sE-j zSPHSDA#BKKx8uX*Qs8*Y2uZd}mB(mj(fmKDMNTBMbU zoy!dLzUnPTF9*JG;+Y4PkX#A2K>4e_rqjdaTBxiBP$SvGCXmSXPr?O~W@ds;TIrYi zAAPQ!00(~3W>jT=7eqn8T2)>c_s5`+Nj)9CLus#HM}89*6{T5y%0jLBx z{aVE@o!(i59U>k_8aUv1gXiUjX*u@0;k-0oqPe;5#E}YK_Er_7+|f!!AH(|%HVB9J zJ-)&9myzsK+QV7*GStg$ERO}7<~y=IT;fm!$c9qGs->5tmflGr3m?U$gh&;5>VSS; zp%NysTdlQE5ZmP>dJ`|BprCNgd8%kE$JST1WTe@=lc-ihZu<1(sNF0{WAv3E!yc#L zOX9*vQlV$<8xzd|mxPl6jLc3cLU2z1v1)uc5z>Jy3A-!iBzjIcn$}E(<0a72F*x_# z>ODm$IB~WX`no1v_tx%j+z-8B`3YrC5!z6|X{LFBaJP~P%Z4C5oI~ob(aHvH{)-XOkzUw*z45kG_ z#GI>Y8KU2W?SQ{aSrmc{*_~NS!yTRO~)tOLlw#&ta`MS`z*yq%DXnX9C7K)YZ)CAer6%^n) zelye{%Z148GQ;2`D^$<8>{bB=3D=tq2^rqa)QKOhW08y1e1)({T7Lf(em+-Yl!lIG=I{`7)Zyb*k^6QQ7{?{?{n zIB}@%I|R__5-0w^m<*bL6PWdm4yu6NlD{5H>fOG%qQp&U9P{<_J#Wi#!bG^j-V2e4PfKz6-^Xf281%ph;(5a zvLSArc2S3~4|@7!kJNR=JXc14{`?uoEVYE6G24jJo&>{Fo^WpVls5!_S-n?Am!n0a znDFD5OrR5wo?Un9-7uQ62@r@2+^@eJmC2;oqK&Z)@5b9UEs3WW$^s`n>`TwN3*EZ= zcC1Lw>Jv4;D#n&K;Ov!zox}n?9oayCffr6%#oq&V5^W&~>M+4PPxTZe?8*&h z10g&hqT$e^m+=*Gy2ke%TBCGR9i`SEV|TT?gW+-Ia_E{gYV_U!Xq$x@cymiRidr5m z@X*HCT^$ExLebToIn|F>nd`EpdRWdSZc3L=;viZ8C~)2>e{SxCi@Kp$Cm@h$_SwoM zSY(i}BuP|NQ2|Pfu$@YsEv3IX;0P2Ec+AgfGDgDwP*t1@%#Ns1za{Vlka?BUq~V#& z;Y@ot@n|j?I$b4&?f`tj0e_)*#jBnsJvKev0`y=6Cp)`sH62zxNZn&26s*-AC5t+| zL?ScCC_e#yX7mHp^JFL%Ar=%ucQjVxY>L%BNNhK(^TNKGe1w>mkDiK(P02|qrw$D< z^_SV=5RhETD(E!wue2}Fd837FHu||UVw$bP1f)Tgkn;N<@jcAL%|I|3-!r~43N&~1 zZfp^(uH5tUhYXvI6d!>6=G6-^D4}~43tLJ$&C^VMd$%wu{aVEB1>mE# zm<<(=Y2W{S(F+dgfEzubxQ{q`fy>1;BKWICW6jQ8^FW}r_Jqhp*p+N+R-Ai~1nHTW zZabF|Z%afAu=1N~sfT^AT_8+} zPJ0b+Z7V+kv`${Kc|ovde`NyI8BMoilUXvOK8#)Y6cR49tG=UXk}pSs4{HoyvvAHI z|M;?F3TR2^PgbcN1`V}EyZEyt01igKx|1Y6j1P|C5Z6sf+}Ms)OKxLGDU#vkCDsv} zs@YwQq1m?Cv4!RAe<+CA))YPmI5iXPh7?+_*Q%E{LEH%UQ&BNLj7{i%^;FL0@fLb^ z7D^Ve`wN6TZZWXs$H^_0AD^-Y?#}?k`Vhl#CtHP-E6*1Dyw8l^V_Z)-`1seze74fJ zMx&W-jAqD(0NzUw(Jj>LxkEeRXcvAO)$dd9wJvMc7AhU<8;Vf`gWKN%on3o4{_A^P zX?*Q(r$CzBy>PqbjPp4y2fNrjVzSM?%Jf3{SY^IBk)Nec+Kr5gm)wg z1x`LOHr_}UL6d-uo|t+LQf-4^02d!0SbGfb$`K!Y>iy{@kDc}I8zo>l^j#>08kynu z(+d*{+tc2@ryw2H)QRg}Cnb%IB%U|`#vc~{%psklLxbs_@%6-p&uqZHvzxZc-fD~* zLg&&+y4N`X`&k!7+@Q;PtF%(Thtf^F@@F4hq0Jg;b A6951J delta 13054 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 V8gJRS4$1mryO<7)Qo2{nzX4UV&Taqz literal 27386 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 diff --git a/docs/images/SortCommandSequenceDiagram.png b/docs/images/SortCommandSequenceDiagram.png index 4c5b12a4a4a53ba0a531827ee835805bbe272bf4..d75e7624efdc4e06524e5812707bc84b7acdb7aa 100644 GIT binary patch literal 28156 zcmb@u2RPRK`#ydPDMFc9Hzh*$EV;8%Mm8Cl*`q{8+-4Gzkv+1vkX0fhNoKOjPGy8{ zGj5yzb*rbRKHtyx`2CLK_wRU)qbKh1e!pJV>$=YKyw2+#tfq3Al$f3vfk2Qd$Y0bz zAP&?c5P1HF4!}=}&MYj$UtG>|y3S?}x7_V5ES(XTEpA#knL1mTvs`y)v37R8bz7W| z@0PvkO=p)I_Pk~eH(Wd0nBgNbZM1Zq|M@ur4?gG4<01`dl}7%fH4A61J|2=iCKq&< z{E!G~P$c4HwwsvVgX}k9_NODp%2m?4h;$%hMyn-{XtO`#a2nx z##F>2CpQv_4R%5{Js;s{K5VZ3l;JdoTJM>gboiTvbqoOv9ZWaMq@>RuZRyE0(=>3& zvyk(xc}|njoHNSA$|z}az8}3TwpucFJFTbtW5bg%Mw(e4M%yP3wd=M9C%@qDWKu@( zM)(}rWasB|*86;=sydo!UM&2ZX;gcp-FoU7CzWEGT%uzOk1KPAj~kT9#$UX{;f_q{ zA-GniLKiyTIG#Bk)!51sg%m1Svc5ZhTi^oa_+iU_k|T>p56-;1tIUu@NyGTMKzn>+ z_vlnv%=*A|7rx(`$jk-?`vYM%%4O%=G-z6PrT$Rv>CAlMu-K^2f&p}>_QgcqZ#iln zJc~AtBI5oRXI&cKkGuCDrTh3S`Lp>VSxm!`VF@iKT?E4Jlfp%5tvg1TWFlRv%X`gp zOigzcn>h~Y2GgriQEL^JGEjQ)I24{>7f3v=^iZVqVpKl`C4cN88Vss5J&(mz8be4X zqT4+{ShKfK>t4R+;&8J@vy&S=_FgFb{m8bZmD~HIg!l6pCifMH1Oy^B;7Cs${@5l zS7wCzdV`(JGTaun7OehxHNN2zgWHr3zjESA(bq$GYUe0Vds}TQTq@&GP862gczyuU zcdrLox2tc6<+o@PZaQ`#&B=uPX)0W89^(K$;@lC;msLs(9wG)GjbI7%L)CcSMImsn zK}_(M1oo?z5Fxb4FnGR<2eFHrhp`CXHa`?1qVW~dNU{NmP&)^|cRD`M`293|7#9&1 zAw`CdzOzGsMo3N8JU|)Ld2aP&Uwb>L6(8x;{KBBl)YkUCV--sSQmVMo6Mfc=7sWoM z=II%kz4Ka2@k&h%dhJWO)t)d}K7aQuQ`N$` zj8^x*$jR5LD*N`3PO@}6QKX)hL+w^qnrawxy*yu~L--mNTcpGH>dqN$HdwYQ+S_xc z-#-rA82+l8f=Tz<;w>(o*ANz1atfw!m6mRZM0NR|_1W!NsM|Vm@}y#Qc(wOVm_L!K zCOfR1J*FF5-03j#;(K3ygo9OVp zxm-ub;NIN#8*`P~T7K2Ds**feo4KmSG1!=hTMy_H1Sgv(+r`S*;+5iV_9XN?>b=^> za$Y`GLt~y>uPl-NVYuXBh{(0;#VCSmY57YLZ{+o{;5XpTW9u}0>hd+nHKHOC);99Uw*2QZ5vAe%qAyy z8Hw8bnEylN(MdVQm@=Qeolkvu`LdzRk}i9@lzsNjE0*J^GU4lQbPKMG3bC+6BpSZN zl5=fud}~4?9kibsJ&_Cf*r#B_w@^1cI987rL&c*XZ7*vzoxA#7tk7UEDlGS6FvV!~ zDvR=oh4hr~lauenMcfeqd0V|x(KAD<_*@d++b5YQLJ=;m9P>^kZF{R;VN#sG&yRREr+0fI&Zl8&m zS1eCde{7B8W4@LaGc4O0nLQ9MPbunqaI79s>Ce|`|Dy>sa^I0E?I@mmbeF3(( zBu@BRlyF306iUAH80GDt<-+rtLHfw^*lWq@sXdQQu^Z)VyN&HgxzO-D$dO>epPV@< zZS`VK;P#Zn$Mx+ErF_2LF9PU8BwLSTdJ`f8)GU`L=*Y;ZRgx7mx9hx`NvOGwK%m4y zptMky6ZH^Q-%pFX9G+5M$>;UuwM#3KBRj{kYr4d|b@mZ!bNBiS>u%!F5NubLf>3@# znMM1~ay!L1(~Jo@3+?qb>Q)P)u?yf5Z z5L3GxM6)QzwXvaftDH!bKSX+R^u!B9<>jmhp7=tg{i*!hp+S5X^Q(7edX%}MQyPvC z6Yow$@j2i3re|bqBhJkD*kj>a@lYn&W3X(MTlGP?Su-B}(dk3^$wF4e0%+ZOZ=xss zHa%;fKGj9rd?-lvtYts@f)H}BLEDpI{23X@3UG!W^PAGY6ph4~ekdrqc@vqfI4EY_ z6;v$wfQqy1))yz-EfyP|&TnvPWx zpqawk3nzd#fQHXVfp$gQALWc0Q09umeCbLT64q9_T@~%U{^i@wmg*6vP3_U@y}k8` zs@pSK?r?(go7L;h0wxHwUfdjY#g;jaA9Y16dsjQpRLcYqE6u5;C^{b$Dk(oRGchqz zsHaq*I`{a3SInUQN|5lX2OpoqsE>n&=;m~0x(2K8%~wc7OLk2)N-ak-cOIXJEMJF@ zMbIf!#gZJ3(CUnkuUAykeL4Cq6Y^KC{LRSep`B)CpIBP&rKWh>54IXP*D8_Ap9H+O zsS=Z17}1N7b+^@Dx+aq`RkvLme$Ep%wJ_#=O^!@GT}E!kih6h5OfqI+*iGUx#&5JW zqRvk7AnS9Yo`B~!&MSsS@IY~E$&R-p7vAapK+&#*ErGBh3M7sm5DJe(Me|$>yDyXc zWy7|*FU@h{TdGfQ1Jd_~NgFbZ@tjhs54MP?=etHW#>Q6C@oP`18ST`2W5rsNzP!U! z`lZ(?s|e92Ph7arIye}kTuO{yT*?=9p4P!^DW1`}$*GnmwYO^;NS<2dJj4F%^Sn{; z)D+~_H*eap*zEevS%!j3G5-G7);B(Upi4>g^g<6*{XpD!Vfk)Bys^K~I(#Lvvn3kE zZCvN463Wx1cEPyL6IY`-r-uB$o~P|VT0hP>7IFXhRo+2-Lken0LdBueiTMs=ehW34 zd%ddleZTHxVyr5yPRQg{Gn?YTq<~a{>V*xN&8F7YC@VDuI0H~(mv^^nc@16^3zZRR z5DoF4%3?!T!6_@y_R2fu@Tta}qK|U0F<9LH+KVdpXim*o4+|-&&wlu=)r@6CZQI|C znR}#riVY1$*ssK2^2fLF<3y*e0AR{j*;uAVNqn*$C^?J^`Uh256Pt`DkG;0S$`_n# zRqmpE4FWmQ{3^mXnwwA0jiNhVD`A8MO%_QzTHQjyt z?c~$c$ViQ^yh8nx6{knP|nKtk520&XtV|=k%;b680WZ(N)>b z4Ly6nN+31a5x?ZWu9Fh+W@crkB0B63UO)M3qknNRTRZ~+_ZlCS-rJ-kb^~Z^%%74A~Qw1t3C#P<2ck9!q zPwDCDL}ZLA>7hsr}^YXw~i96$%8YSpoV0!Z)Et9ernI`cYC6!@D(e{3ln7xD2aT z04C*mzVgKjr59=I=&&Cs`4VwLHgDohFr}-jtKG-K^u+PEp+8nvv!{)HcC<^c%RP6$ zbLZ@h-OmmFoyq5Y)<)e5y?TPgU1rrR8}E}gJ)mY~ZEb5y6tW77i=)kdJJ}vL{LJq1 zRtB+xfG_!45mPFHh*z zdWfLu7#Xkh*4IqE4j{=@PWlKqV9%k`cL13p>0^{8g@;C?-8H{;CMOA)U6Pj%s!5JH zqqDiW*`|c(;u@Jhj6h78@t{8oy3LQgdL=b8`7TL}S>ldVLLfP_hr9bT+YbfsUvzF{ zvEj=wBuc*kD&+@=I3A-KUGGL;1L@pe^>+$U?4^;5i?_znu-Nk0fY*lS|ld1)>Y$v zJFzcG#7^|qXDP1WhYy{dov$b-hNUeJdW$)WpQiL90|k zA|fj*D@l))Jh+w)pbSwqQIHih>x}EY`_{*s!#O4GK62Z}UOXi#`rLD4dC$k(V<%p~ z%wuhyhYu%=AmYSq$=?7s9e{Qdj2oGS^ig;o|8MaK1?Iy=K8d^3Q)@~UUNxlhW_ za;k1~_6!=mMK59t_0#oJjl2Di>1pes8jsak;Wa+}iXg?#RLQ-M*BsRCczJnc1Ia9~ zQpHj)TcS?CFEwkvIaW7X=Y=LBB4TD{CMPF%eJ?5`RPH>}W7YZi5m}+*_*-ZD9wkJd zs)vWTyX&P(_XXhsuTCis`+r*GmeJRze<{E+HCS$CPOX}HA%@n{%Bpwj!E0D=36B+d zBbg5qnX~>xfqC`xb{QC8)d`RQ#*Ax^K(E>p8=|7ec ztxCqq_1_T2lr?j=oSN!L$SlN@y7@U=a`%>ti;I&JG5jGX7yEYg-sa2GK!+i7IW_6L z&dAIZyEy{P(qG#DV5@@?BI4yhjeB`{`Rxw{+Oje-a3G95&YaYNyy}}+Y6C=Ch~F0C)6T4ftZY7Jm5LBMr&ym5;FzF`|pP92E*jAqA=6-{4ixyywW;%{Q+=Fks<%s_( z=@c(-=kRcnfi%V4wwN>I031ISUGwmNcSbDYL>L@P0k{!~Si)Bf{`sig$t0Eltv1zEcp-GPu6HO&TSO)FIohC5vCHFG6(+8i@N}6UAB991n)l%qJ$cTr%Zez-t-fFnjL?C9RF+^WEx{xJA zr^Z3xKyVz}@;gghL4?6;Jqthrq4@K2@z7F&DsUyf6#srsls*PeRr%LFPH{7c+Uste zgtVr8)q@REPN(2Yw}rY}UtWhu?|f+tga9q#h>mz}VGn!|c5ONGalqXCL~9fj7qxpD z8X9jL4h_e4vO%q<6Ji*^k95=sL49UO`gQ5&l)k(UsI94)Z8^?w;#(Fu+4XSiOCWQZ z#Iub?a><(G{cF?R<4F#6>QsWoa8UEqS!X7pIvl{qhbXkrc8VmwuI8bA&g*5_ z%Ci%O*1b8T?YHMn4Ett8IAR7$zcz&^@x65U{@iI&QBNX}Q@fxqT{duq9rFcfr=FhP z1DV4Gl3tt6v3pC+%#vG}a@z5!1Ai=L`~z>OLiM|wc5%Fha7@m-%|DKeeBHK&8SI5B z>)@~eRo3XGYp5b*l&1O0-j4nP?I*z5{6B!s<6lATZ%0ncYmioy#oT6C=eaT6oyi#m zsc?5|p*IX7I6G;3^rf5eGh6M} z8{Q=?E#1eS+`Tm3tiZYbXT2WEtgYRF1Uh*2t(CYdW*==q}ElDbju;0c&kwtuA;Wpx+@XX<9k6vh#(3 zhotd|{gA%0f!C;20sAc+1KCBClQSP`h43TIFTs?jF&NCpLOt2?{uhqp*2M2SIvCI1 zVtGjx7825q(-j_`b(#nY2?_c7=s;QE)4EOD;D@)rb*j6^aA{j#E+kX_Cal@BGBY(L z3Uz$w*o@3fPd1-n^+k0nt8aj@qOL?d?RwN(p)ArWYJESa%GlvGa-gjVQnX?;hcxB6 z;Me`eKFa!OViFJ33w28YD@BoZq@Z4c&}vUPpU{H`dmo}bQ0?+0FpwzuGeoZZF*3kf z8_O0$kCVMGUcA_Fm#}^Zd#xu#RdOeqEXmdgz~E4pP_572g??mK42gJ+O0sx&v1*FM z%~;(F z5vZ=mv?t8~{ApdV>B-_XtX8{kewY1DqCsXxhP7*)Yu`&Zhw8$928>_Mt&j9ft*28x zGsMg$?+!KsP?Qte>_`xLYE-+487zkbIc;oEH4UmCt+8jr@`w0p{f9hZkyokkL^*bN~L4XH#eI zYg@plTN-9>AA(pO&WW}js&KFMz(Zph)4%H^{?LDBt5cdWzVTz`t%!1VTMWvoW4-mo zh*spVtci(PV$Ec*{o6ZHI!Y*yl{ru}W4{eGHid`*1B-cFDD){dJ1&L3JTNGTqe*X~ zZ!YlMZEqJ>R||Jd>`^3=^C*iu$y)^;Ty7)J+4eQ%QjF>yC^ged;f;Hu{p3=@=g%gI zcI|DtFK&H_I<0Emmg`t)+IW9yY00838bEOVwaVh9lZ0-QcjWAkZ#LyCQM74J}Wj@8}kIVd&D(Q22vx;o*us5gcB&lLAEP!*s*!Aa+S zkJ98~<~MoO@`$z7VH&ilx@`c#pvw&m54YPz;y)rHAS5i!5fl`(4i|Iy)R%OFd~JU8 z`-dmA%Eel#kMAc0zD7=uNN!HE&SY=Iml27N4VHgX;sfHLo3Alhbj@r~DUmRaTMu=6 zs)pwpR^H`f@#v)w-a9UO<`an^ygz>Yn22=KyuX-$#<1SIxx%JAj&F=5RazBvZ@2lo zpaOHSRt5q*RdUISj&!mDZR@m(L8RjJ9qSa)58hWgPCP)Kjo98Yvol)UeCPxg1+9TM8&-sjFa09DLM@RGz9u0BqTwqC%@A1Dtjy0*r} zrIz7#N!(HqP0p~)EM6JJ zuRTFTo?_|laRw)45t77~%W=q&yd8dxtK0i0M{5^F*ov%noohoXnv{gxX>*<*NtnXG zNwKi7aGB|u9CoN@3p6=#E(haxh?F#YW}~R`)AcdA$LHN{nwX?fW#_Lo_!D{fqu#uE zQzD}@=NA@Art7eNeWJpqcX{d^dUxBs3I(di9=*VIg7zeF%^p^A^6;h*+9;!v2!DTn zXN`)Gee~Z_k6I$eN+m(_$T-WQZ~6Q}O>eoCYV9LbS9jT#KrE<~vmZ&JaA0RY)H6uZ zNd0hxlnV8JxN5IujMzpz4Ase2{$iq5Z4=%FXp9P0qf2O}B!krS z%hlF;K@2MA$gn|^h1s*~n$>H_njyWpPkU@WKB4W(Zr`dKtoNe6->+X+5V>dwXspYxS?!D_SkbqZPsujA+roh%X z@SLYu|5>8k1FCcxCr(W)OOZjuqb`OI`Mqf6B+=ZWt3^Wv)(v;Afe;`S%qeLS|G;VP zgrHzgceel!kFvv^vUHP%yTQT1(Yb@sL#Dl7aAma2Tw%z-R`D+8gt+*oD&5S?40i?K zPA=^NdABV-qZ)bq@6T@xbExWk(z<}g+SeXNn-nzEX-i}IO|Q?eBYUwt`jt1w(xh2kgMHQ)=|KDz?x(}}S>BvklA6Inm7{uR zgsD!La!4#0^c;MC+$;SvU|lTHpV$a z&}lI<(-~e`QV@Q2`Le^ugi@yygN?5P+HGhHZ$Z1Gp@C<*z|hKL@~&r4ksCic?`qNg zZK?~~w@T*gEAhyt+T+5HT(Nrb475zYx#4kgq=a(nB6NoelfN`x)_H2AWK}|B8yFMC z^QeN9X)~s?CWfRH*>V8DRs(Tst?r4dywGViZ6iOPlVN~Pdol~?p$*jVOQG~o*^-sa35|`7xfaIiCAYX( z`;qb_EjrVAD+kePn3F<6n&NSQ+%%s7*y!cH;J$3mm9CdsWWjje6|?xIQFyKVG)g&{ zQ{cvs@cHvEf!UYERXU8Z-^e)F$|WHoF`#LjgGqN7tBb~=)m9``bCuVYtIZR@V_ghJ z`5J6|d{5y(m7c!TN^MOs3;6TXtpVXRez7ttP3$WQk|nG9pAc+Egk2DTU_O$;<@0C$lo-{bCX#|f*Cb3APv?=i~MIW<^baKG*(bz8_# zz+s>yYMDpB0(tgUP?}d+AiHv+LbK*``*Rdz$!ypXtM|t|%ov0ZWemn`%NBr0o%IG| z+7j_)S(AmQ+^2*$K zHLG+~7lVw0OT9NUk70Ef)jhe}fxpNc9K4`RgXtl05fSapuT4PO3bJ=HTqpgSQyokCx^h-?Ana-0P zf@rtyFOI4(g<@eN_)+gVdGy|R_|8IYf4NM+11$>rp{bRbC*tLEelMNUw-!z|`FMI3 zsONaB>cb&aO?XtI&sbbty_9s z6NHjUo#AN61Ty_kqa9sbta>Swc&&t%`W=3vg{~-G?-@xJtNdI2yNW<)8tZ9BLlf1g%sk(w*Ydl0 zt|eFS+!tu*X2^wHx_A-SALj|^@>3u0`H|v`z+3=*KK{I$UjjBFF|pKh2 z0FG8`bCi^Pn&*;ABzIQY6=S%{*$x*ZT*i*b?rf6U%*LFaX%7@;>Z#DF^OS2fx$?}R z4Y`SB>dRBt#G11W;tz&x-0ttvUKy0VbH_Yi1M8fp6^LnQ zZPlxzT|S+R`Q)FQ>js@1%tmDR1$zA=eNs6RjV%puS0JMIb&@JFibJ4dZ90HftZ2CrL7{3A^AtY5-lU>g%y}9%&^+>;xxH@NfcEW-L(n z!De_HwC3f${4?T>aVKmjvR&I^d1x6&?z)~>f5u^JV7pQN{t^|h!NtU2W!y?+WPGII z)@@m={kk{gfBmv>fD%?pXuf`T^~79zQ&SN{Tpvr4-DEDi>VpM?JS-sx+(6p$z}Mix2lC?GB?(L23kB5H>S2grEE78^eKTljLsd64Q;m*y%pq2gX2x9LjbAD0!SFo`tmIC1PFGEeWyUO`|IMMv4emm#=Z9>D=RB-B^1h#4#86S_a_r}-@A8@ zTync>c=$XouL>PL3+>7EitolWzi-c)@m)*HI<6_xmp?u|Jv}>1?1D&afUCLu#~Or} zC6Uh0&pXtv(!})Es}ZHKbu5rb;ndWh%WHO0E<1@-yFkm))wS3fF^i~ZR@%B-b}0VU zZ%GthqCg)nARi%%>p}HB;(T8%wA^CH%6Eyp10Re^*kj?r)TC?3sdq`=zI|(^;XV$X zinp~y2m~!|Z@y(?Stg;FfMh>6H8nLqPv(b6BnrVi-B)DI>QMYy*N#EBn^PP;l%~zE zT`LH?e257#+b}>raVP_GmB4!e&zgFm@eJ$^0`x^c=4oS^595{Wey-pZ6Z|c>B80(6 z7W1#Vnr2$kvfK7sv&BQaI&L?Je~;`}fP-`lGO&rj;eY@A?|VU%{_}Hb294?V;|zD| z5cCH%Kj1FLw+pW*GCuxz>~KkWIZoaby*YBcG4o1-pd`X13JeVDdIVR}dS@nB({bu` zkxY~$P`wg?-5;rYEth5B17jO7>Cj~wn?mArlIHF4aLM^8b?9O2{r-T5(_QKK(1Y#| z7{pg@b#nsw+&;}LEI3#_VmvNZ&$B&nu z8)ao0WWXMe($gyjRydAdvUnu{qy{J9xVM7vKXV*AKYE7Gv(enbqMMG6nW03lq~#_V zEVmQFZa@}9AkL?vXcpZIfN(iD@{DRdn7vlIced8@PoYp=&^^@ZDY{nq=FLT}b50ZT z&?kVd^0A{w`LDkTIw|+y#fukLlEt-cBL*9xtq8r0q31Wy&@u)2uy$+yC1`ZH)|Qr* zxhl!fuFKkl#!dRc{$j)7V#D)8=74&%)H#KELvFmiIqMTJ5zZYF7mbxrFG|D=iB$hdv~Wv(%HC zyQpdB>I+_*T1EP+z}Pc5&t15%8`go$vx?<4Ok5V;n;WUpta4O&<-Op?erK}v_|akf zR=gYMLBz?+;}8!R^WNeC0s!3O6p`?9r1rqzV0KQ9;JG}FY~tjZ<;nK^2=*B`bc&>9 z#Lw*d!71nmn^;~hG$;$IZf$KX=O(yR)STa^pftQZ;_|YfqL?2>B9TDaGhWa1=Js|+ z-immpwgMCpQ}3^`7^Qk4{R*`9T3r|!8S^X(#(+0^ytfG#vHNJw<}rXDfrsV~geXH; z$LN#zH0W(#4nZWn%wX^nNbGiXI=78{&v>(#ofGtd@l%uubH`xf+cp~-~p&;cYU zd|D+Y(utU@)$f%zN5wUWszuWdDzI}X{t&xO!cL?V$7_+K={4Whl%t%)q3R*M0ojoH z%vH7f1OYid8uz}vPgPn?K&cV7ku!-$hxx^%O1L`#`#o{u1eLOiO3q#wSbw_J4PV^y zQ?%@Stl$Ds@cr92x3zggu9;7@ThMErPR`w~MX#-t5V7E6P4>gj7w!e*Vc3ixZ$lX% zo>|nvk68U9=PGZ!IJieHxzh{2!AfC^JVnq)b?yyzZkV$i8db!&hPdbS_owxi zPAoiOAZ`uCE+>gOTY4BP(O-1zMcM-7hb*+0SKyT9yt;w$apofIWz-;Jm{dWY$YE1IdWbm)Ot)aP*|45bwUi{%5+2@$*L%&nQK6 zbb|~~ZuLG4n&24Iz1^J$fhR{tN3T7zm9sh}(!$kMlM)%(Q+4|rD5br}G&UfD3@WVE ziIbr{T~H`yO789L4IN_VQys{GS|UwsL~`;Rh}40P9z9xus)U{C4OHA;-4M(aeR}V!9#Ju~{H@I87?Q7`uEE#DHLW@`rKY5G7Ee`;)VOQz zGWrvUtgg&x&af#^GtGi4(p>xENWIS<^wHWhPB@=hMuEmx5(EcE_sRkNCJi(TJ7|Tp zBNZP&&>PKCpsWr8lh(Zvq~-e*<$#stIAd@1oA&44hATMjNZn;%b7_Gd_F$Psj349V zsM}b!TaHGyVk~jP6X~xSFK(G)37!ZZMDXL`EYhE;F<-*IC?!EtUOTq!1xVdaPGx0% zP7gmwJG>@8^`aYmAiKYf-15q^!I#d?~70(1ZyLALFD3FK$Wy&hCr0*hS0F z1^%DzG0Q^}*7`V98eA!2^c|FicoEAxf{jvpJDcW{fa}p(AHSkKwRmX`Pll+1xSYu4 zwKmaC`!+OVrNF7(@de5dLLVn!W{0hSTG5>M5X#A!@KuNXj%6Bnn|?;gXV+6PKijmV z_-KBj`7|Q1{s_KcQkdLlEK-dok470^_#>g5wg3BClkrXb=>2;BzGsCxVz**ye)MHOJvbzHpveV!XZd;)ZBS?^ z$`un|bI&N{tfP!kq$W-{J#)1%tpm&*sVH>L5&R@P&6sol^CEcyxW7R4Hs1hO%Zuvj zo_aV{0ESdlRG>t8ly2@(9zSmF;NUaa25!lr!z3h8+N}Zy$&odd@95h)5=HDlmv7@Q zp@Zdn#k7J0m;c@>Pr#>C(Hlc067Kl5=HTq$=2`%bKRNEkb!XBj`Ks1 zjiBN1MCa-J!U7-D0Q6en{C}C78wGKC=-3%d|I@K7g(%&W<7aPuhC0quOCU;!Y4|f- z%=Q&MFd!uYKLi{B>!X#YmJX_Smx%bgc`bP%H!UqKNC}aVk$IM2G6b%+3Q^ni=FLMS zDluoHuTQJC0r?5NP#Y9<$SFj?>@7f!H_gr8NquY{&JcoDR{{FZ4B%nhVHQ;@(8{l< z5U%Y&g6YE0&@h}?(iN3HmTgbnbQ5fKFf2-#jZwTe@8l`2pA7Wv7!-u_JH0T_zgfB2DB z*uDgPkbq!iruX!@a|z3kv~u0!I;$bMY6QRzkRc^>9ZCXmJz<%qHo|vnaEn{gcKUm<}-KLv3c+$bwP!}u1UQ}&lxD8b!;0|1f-XH;@B6w#X=d$`t8 zj}+bVaV|-hS*poa9uA<%bWTidD+^;jfR7S<#`hgnqP7og%M69`k|9fK5atuWz{mM% zz4m>abnAR%o4_Q|5lvi@60_+!1#-RfC}hTqiBDOo$8U(Q7oY>*(O4j=H!6r&Vb+SY5gu2pk{2U&+fTk`2;}=dSPp+1)oco z4we&PcgSL`(CHFPLKb)Z{lV2_boDJ9)^NsiuQMp1%0_qKBTSC`oj-nd;Nn)zkAUk+ zui81^-@g&!5kTZ10Hplapgh1SC>9&=U&-@(h3x6+nJzN(QFxpP{&%Kl{NP2SiNW~k zg7TlQkqwdCfYU%vz$W6>jOjga^-1ij+1qpJcKyYfm%}XsJQ`;t(AbAJcGs88@*l@Y z0EFbiL$rMPd#i6{f^z}4b75gQo&avav&nk$War~^njpVnF?UsRGl@^pY|_q|;u-{a z!tcJ5;+hEeBuTrTqtICA+qcbr2pfKf##>KgqwJ;}Q5EVa40`a^zVATlKeyii3|zhp zp`f_|muhTF4iz3!6z13i2t#n>^9u+(!WscIc+Lp^QnNsy5MTsM^Zg@x01)A)9)01+ zx*-i6>*U9e#ogvRyuaJDMzVqN%>I}u2xEmgBS<)O@+6qKxz&T{mLFoU9uD0ZglJE{ z?ozYMl9G}$*{_lEXRX0O>0-DW4FchiC@h{h8QcPfrBFqUGe|;M^oe@yW?WK-tKVTrBTj z`0Uk{^##GHX?2nAfS{a_H~KR87HVtv{pEneWf^H{EHl};xw&7(c%_S3_hn*1R#sWM zJ9O~{xb*o)U>{re+qF=)D*?G4d}1+t#=B5H+6EZX!GZp!Hatm%V+V;9}0%+fzrj8uFm=`z4TF1pn|o za9w((czJpP%CPS&Is{k|3eP^>oRjCeyw72)4p9UFD+37DlRGpxxRG6X@@EMF@kIAv zC2Kz8zHe%Rcj7<;qs*-{2LQ!Ef%)UNCDJsAqOae+UETw~A%vU~osi5R$~Rd0y*?I^ zj;|kpOGNvENQ)uPO^A6b3ycB`n%@={m;uWok)87>oa~bK?)84`|zv} z|JXVZ@n`wCb0sTp+fr5zAHF?695J`lQHEM4%D+S`>yT|9E z#04ky+%6&AZ%i~z`yKmxi>N@V0-@QVFRvSicuP!WU5Q>dHCez#w+$hz4*_!giC%u+ z6W=o;&eVvAqck*E!4e2`thXNIp&S1RbEbyzWvi*bOiWCG{N;zxCj=_@$5#tr@z34m zcuDQoeA*9u;kc9Z8~G7h>a&HmPEYPvk3&;YuaWCI6Z&Ou62{NDsN`jVn$!;7;%_@=~-(JIeY3HQilFe948EWpK;TPhbYGcrDojRh;$ z`uhu858J?Il9?c6)l&~3?t$=8Dyo$QpS>;U3sIo}Q8b4!;c}>zRa{I=w%B&gDGc5K zm9DwiAB3YUP_NvQn%CeC_+h{`u!zN~C@Qvfb{4B=9&E*HB~bn(teyKyhEW9YJpCY* z*zQ9Co3Wq?H5B|>lZFG(`UNW)c#^;%LryOolmQi!8@$K>uk$5qN3vlC9 zX`W^-S&R-~X|M`FsX2{q0r}v^)VrDEc|#yR%zvu={`s?1vxLJZ31anNBv^tzH|*z4 zoYV)Ep^T`yF4y`UOnPoFE4ilnZXSraC?_{V`UKy8+0v;5nBenst$1#e*TLKuZAC)d zHw6A)aLJ{{#7s_3X6G>br8(SJsQo3V3RB;MJJ(2t&#xk!D-U(^v>yfz=ed)1qBD2CV?!1%`Ju7 zy|OVdFaSn64NFjpRu&*ACs&mRWg#D|`V2SXyqLSas*>6GnUQPYPvhnWd);;LUv>Zb z;(yp*D-x7}VMr&*D&SXq1~DHFBa%SSoU6wEH+7?F%KP9GsoOqa&jIcNz|Z?zCleRg z$2`Ev4+tF$sM&1<${Sifa1vmILl~yKOs3^wJi-S87I;$$842jn#~XiFLj~-unI1O4 zCk0Zs%j==h|KuZV9gH;O$ecfazK5i?TZe0NWk!}yfhFspUH~|*s5#VpE!S}Hdl~1M z+yD@ho%j&E8-hoMX8iDpI!cM!z)6@Sn(kEg7=q=yDfuhxtCKJPsN*;}0>me`g-2HN>8$dAyB z0t*0#FI-m6-v9;1gL=V!MnsN`rky$~ARsU?d6(gM4vfk{r{gPW33DOAE1I8g`JIX3 zZV~oJ{~Jo7KluM!X8sSY;BPea-@j*H(fFBjf1R;^G>D(%7|_8#2mn%a-GLrv%mA<< zeSGlMjzKO4N1jpP`W|R1ejlRCZF<>>cfhd=(XVyWKEi-5Tzmv4-8yDTgpA7*p)dZFc?Nk%FK~h6juv%m%t^dHU)|rxH8o4 z`~5dHuCVIdZs|l z8XFsNJ$Un$qXovr232tKW{fL{K)*kR%O9(2bHmNVPYqvw1Z92ZX#~TtEa>vUn>z)e zn%Q@y;msv~@}XaYVgjN77Scp%Vt#)9Lj7J{Wu+L?FdQFUQ*-lEO!a+3PmBg|Ffjt5uZ5(cdAo8qUi5}ONH|%^^uzuYPSSKv0cOo% zAUJ>_!!wjYjQvSaSQxKb+AH9u-~wkA6RQL#P*hmN_h??j&7N$f3hJuPhjc<&A0hE8 z4fiN0uptlvBRFvF+jQzD6^LKPzn^a{B_##L2PS7YeReiiVF!BkaMqTBF37^5R|40A zxzUqX^K`2gVX`U?E&;o?2DUj*Sfd!`3!X1v<{Q#nmc-!(p!vJ~U)wQ$(E-#NniHhl zs?E%_w3knSt-YguX7uG6IQ}?hfycZ5nA&@0;X4Gj@W2}2@PBf>eUj_}`3@{VAaRd< z_}~H+95R%#=aL+x=PY8VZVuo$`(#26hr}`REYt)K%T%6K5jb5eOsVKXBc?lX3;{(f^sH z3(JyVPVn%Aei9cv*ruro6(o}eiXE4BSA7R^;%!<SzJ5|f^dcAj@; z;%tttgW!t?G-%dcKz+)gBh4Ufjs?wDo0E}fGZrsH5} z#8xmE9hR4gNl9^2ih`E(|FhQQi3|XY0Q_NQW)_3@eGzQ*K+G+ytoU?GUS;GHPVmaJ zfM;a-2WDpGoX3jw?VED{O^Eh2AUI5r?;jOK=~XaetmGhv;N3s7zX|a^$akW3@?!xf z(z|+Uyca(;VVWr4t6zRf-=ZxC(iG%bVHSpSd~ys6n*YSYJPmo6EvEBt%L6(k%A96RT#s4$2SyA^d+b z-G7W4|K)Ojnkn|b^>@ks!%y)KzXdbHe%$RFK`vgpbjjS@+{2?<5FvF_7H1Q=L9?I! z!QA2ZbD5Epgxz48fMX4Fmd#B~oMwm#8G=;To%Rgewg1K@!1^79QK+5F@C%^iMrLNR z?vVV&uK$6eF<=LogpahwUd9W8nV-$|btxv_SpIrG#Nj`i3(XfFD2g$}iyalQ?eqPU zTSNEak44P_N6+bcl_z13Vf+f`YFb z8~yLzh1Ay%vq)lMVqDIyxEaUtGEoHmT|L61|3cRM$8kgc(W>(Dhe$|%tgM_01RD`O z!2xTAzfVT9C)z~5@+4eGtKSijYji+CmQpkD?aCv6j%G1ps6GS6U6OSsFJRv{6 zm~3hP0i2`b$J?J-P^VElY<>PNSbpv|1Qh>jy&!(7Ait>gpG@_?cb)Q~0|E9K7>58( zte~V65*8L4hxt^SL@(hy9Z|Cwb3zhyjogD!NAn)i4f@wi0sMIJB!bFCjNg8M-{Oex z2>#kQDb>IF8_Z`ziwBTQG;N|PNE`c;tb^4qXXY$`Z!f>rxxZ}!${xtS-kU4=f|lmw z8t=9KfhWvXJSgq z1(R34kp4m2=K+yc5uOau1Ca!jgMfel*O8HbbP_-d^q^zt&9VHBU*AMTM1biW33JU| z>9Q3HGBO9`VE9O31D=E-zY2iJ1B;}%zg zq&Jp9t>!WYc@}0x)zps82?z;AVWbNN>wSFkEpbHoI5bt{PPdPW1V9$BM*cjS*C}vv z$Em?aAa2C8yfvVHL3O-?MxSP5gFK9b1rxsFgvtXztN`y_A%pWMBeb&bez5%d-`o#} zp{nhqN&9oa@MQ}Hn_^4c3G4ayFc;?j76yitVz~#O+39ed3T_3q2EZiG96(FoXQ)n@ znVFoj<-0Ib)}nu5V}i1bD1QnkcYHYImVO0l#LRWymv)ejo+Ex|ic^EKfT!eOhkYvurtGq8>-iKZ$ z$-e;>i8>0mW&;D-&}7J?|C@{l|KF1F1Qg692QBw`gBKARn3q(#VEhsqc}I^QUx(c< zDFQQ!HdyNcwaJUDvSa*k3(_+8cTN18o{J>D2BF&vz&z}QFg%+8#^mGi zqocK;HbS2}mfoCtsL}x*mhsDcP=1-N0FEIv7<6>{F&O*&vRwysys%AA00}LONWyqg zE_Q?@&`_UF#;n0DfH}M7(@?e zK1dZXI~W6PBaMPq6Kq$GGQ(znYiqFAhbTL82r7?-+O-z@X$v(qHGTa=PBab`f@^1T zaQyLG*g4;k|3FTE(Rz5&2z&YqQ7`d3o_U#We32lBAQIujIYj~p4-4JCIil?T)EN#&gv>LewgD;iH^?V-eJIX4vsVx zb5c5dh7aMpO28uapAE`?Q$4h-|036jfwO+OH>1EdibE?2{p@y$`lzSJNu zV5=}Au?QBO!osY65S^Oeyx~xChY3@)B#*}Tcf@S_u4d)Z z0sjJZi#C{9DFp7&R`M{_dy|u!`{5)|cAUeRb{sJv{GVI;N^1qgI+%rBTwb>QSU3oP zN!JuS=)c_rTty_#@R$+_i5f^WviFaqZ$k43j(Xg#9Gd0Q!{go0Z(O_T1BJ415t`CK zYH`)_HS!SHRkfHg0|W4p%OTR}SqP7}WufNS0Xj+EF?>JxINP3V=z|a_cUFC&&;| z5fe^m=;_K?F4!bcbt8vbi}_ygey{SV&~4^Su_Dpgte_zz=IeP z(7ZhW&)E6+;93PylxiE$mjb)l(&87{Hqf_2E!}W0{^}+s)$0zDtJS+i5a3sDdo;FE z=q7a_RUV&}Mn*h()Ibb9dCd5Drq}>JlhB!H3_N`Wc6}H(Fl7nB0Ba{|G2H?&(VTH) z2wLy=mnqV;aaPhlGR3}~Kt1t!lCVvrq>ncg5EvSVyzaBqL<{P61lJWX!h(eWW+ri{ z?*D7-%HyHl|E{cqGGkYm5F%u)kU@j!CS|#nq9jX;tSvIiE-6t-sO*)}LS!jjWGsa& zDMHE;C3~4v%5x_7_H=*G^SoZqU&g#CwzIZ^E+A;fcu$i zI;v1W*h{yQZJ}a$|Ni=#-RuSDP{?XD#IUAMKuB{Dqds>r#IYi2BeX zhi)|u!3Q|S6&_?FeCT=j0C2rklf+7cv-cc1BKs<)fvL(u$RSN)(`e4|l=w`Fc^6B17F1Ne}&Y*#KooWb>oLUKNufBp4*N~3#_UV zlwAOId`AEK=8P&VBPexxF#-=%99Rf)B?wh8#dewc+X07w->@B%7`rSlk-o#l89$EpfENibCgET1OKz- z>FMc6T(K+pMO4hgjrpze7LzeVtu_}oEA@BEy=ZqK21&C{bbAj=0CdrKX+L_QFEzx)=p^Wovnttso$2q4K&ic>6{+sxkccKjN zm`R!~fp$jm$A{rxw8=j^#r$V-mVON0XZ6pi{#)hvo6qDwnTTKZmH&q}0iK<|1tU0M z0$Rb*r%st~-fYLoQn&wqmmA2-%0@&+g2e%s^NS9dyXQZ+^G}@nT2$UP(|Wn1R~(G7kyAP7b9{Nq|e*X5Q%0tg%&{Na@SemBhg(<)9BJ~^M7>3a_`yMm> z(}5ORLtx)g%gW)(A|kW^s8v;)^4O&96bEyi;&j`+^DlkcO^hfx{x)`?KWE7J=CNz@0^?6eCLYrBmf^$LhaNAq-?iBjjOrW2h88ZT?RX(si*@_Lf~*JHizxR0?7p zE19LGr4WHSi~HBKjZtx71O4{TTlk1rIOVtM$E^+2S@GX*Z6~p-nEpJM=fcs-e_d(N<1t(7hPmKyZ<3pj+OM~;cnXpBk+E)_!3sE z?j``)Emuob(P4t(GeX+3FL1{bq~=^kdt~+1z&|)vH#DH@@Ok{TYSF{3EpLCjF%u(h zR%igZx(=umcQd&il!(q&f@g#mN@!1HI&l_gSPqzd_4$% z4m8TFxb;`U#=U!o(PE6fPWDA~qme@Fb>UhN(cilLoAwA(SnYWJerBhdUb4yW%a4tm z+7(B!&9zm@SN;(f9z1euKwvZjdO8>!rpm#2osNrZf18`6>0trveCoP|S_e}M5KD8^ zco;aH0weEWH(9OiX=1zA^cBYy&1A2#$r>~b7h5aw?I8-U{q2O~o#BH4E)pUlQSZgO zlAgQ{=wIYHJJTP>l&hji?sWLoH2$V#ZPl>83e`3U6xWFY|Aq^!j zzpvKv~NFxJ5sbLl=d-#_Q7TI7EfBsMJr4LO>~12*w$0sy~a0g6DpK%el4n zUYLJ+ChB9p#TxAIgJ&mAK}kbBu=W5m1Xv(nQ)p*v_67xMb@fTKIqbTsP${FFP?|f* zX0lO#ZuTRj00)j>^TeCap49Z-Yu|2kP{AKujG6HjC}&PaM<=b?m#9grumlomlQ^TX zdbLPaMCBKZ#ls^V8RI8Y(HU}%P611T+`8^=$Hon#={Y&?Fcv^jy{rgj%imeVWppK_ z%DuT0jMFk-RBCt*&n2#nz=u+!y=w@lvjjCFq-Xd>i>O>v7-4o$y7lG_+VJ&jZ+v79 zquU5|Q?#u+@#%UNr}bV4z55!uf=@y_#6MzPja!s2=^HSU*mB7%bx43vVe%@ztBdAe z2H|Vyr#;WEa*J` z?~M}IN9fD|n#}^orGh|jO7sq0OFQ<6FX<(uw%?xB%|X;^2(o+8g?%Et!H z-8->#V0de2YPR?m+SYMBGALwQE_v<8*n@GA8(4g79Ixzd0wbax0+AG>&@dyEiR%5>w9c!?kU5aui~r zb(`pnjj9h5!2K-ZuQPcbZ?o_b*t@6)AK z@DTZho~gg^=$lmS6M5k=MY>7IfAp-p6nRt9?)&N49Ub<{Zz8y)BBEJBR?tl&1M?Kx zysI=ZRbmbXL1w>Irhs%FaeG&F`Vwa=tZT&W>sPfqTAP}pVMEGqZiHxK`$!qG_@*!N zhG-*-kE?OA+oWt~sH@GL?M^$UfZL2`6L+XN3-hVBIu>zBL}wV8lA1`YCM*S~F28#O zfKAd+&nDO@2*$WOe8ZH!5oZpqo?1tEsg=6E!ltqC)ML}n?ee>CjRBq?*Fsl9F?u z>D}X6T%W(FI-$!)zs(A!FU<0zqd=RgDk_p1u4YJ2Z4MC2^Wi8_UN7KOQ?1xTci>aC z@~NB4ZP#jJrR9}X4Cn{`EMEq0a0=upOL@7O$6VpD?__IR@U1_maW2KPVVT=ZAw_B{ z`W8m!*IUVXtzqiUgC^$Hx>M)vwy(=xrxx$KMnz>mR4=V$XKqXqlP&z?sl5`9$a!r> zU$G>pT@*idC;I$t=_fK|sPWve7ud_o%gH^)vV;n^k-ylr-mR?iiMS>ENsBY5Bjs%` zDe$cF>MYzKn<@IXlkJZjq~+abndaa63|=%aSap*0Cx6ntli%H@T%yp5N=n2Ujn?oF zz!Z_LbKcbm4QrlrLdAP|z{j5csxIK|#J=FN&UrxUAYx6D^|cB|q!GguQ@u}fX&Q`*+! z(UWEt^pvcRJVb;V?kaLB_Hqge(tEL8hC!fJ9KwXH_6R2wq86wQQt5lqUFyH8){ZZ! zq?f&w41;iJfYb}Rj*d>pM{s4r&tn&B%CA^)10k1p7YHbuTi&z3=(2wOb3%U7XZ{-I z=ry~e(-WSq-nXeh-%G`@BoFLE($|))3DD8mG)@XFvE)(b?!rbihEQKWODWd49&+&_rp=p)K4lJhHzki^iJL_GPpfuEQAJ;eGcobJOOTHh zeaE*XZC@8x*X+TWv31@=?Rwav66b{9F~_)r?eY3_od4ajZW(p;7JO&fmfIA)Pt8UI zhRkhnH<@zp_?}201-Ij4i|Nv8x!Bx7Fx4=3QJ60H+4gZjur| zw{iFVp;Q{lJuEDYu4~oFChw-)Mhb+?0=z8T0CryvFT)KGelsCFxq|{u$gp=e=Zixf zT+*h;h;a_$85{NNQ}w>gHQoE<%lju16_wE3^tWlj3*#-y{%i3-Y;0tC(8@M^2h7DU zbESv8F#TR;12|aDcjN}cD3Yxu2al=Qde`R?O0xlUogB zwX>)%sqH>eHMT*?D4$%R1tdXkNNTT_a6m-HS8D)LK`WaYQ>_blp z)d7A4)%i&SHMhLu;Qlxh6tj$jMU;=%-PJ8DLsX^qMQu}zpH&#&1fafV4NHDZz@zF$ zlE|u*m*>1JU@)f>Fp)kuQ_aP5oNLz*cJX}{QFi`8%fhNq9mMYAlp`E3DywM7`EGc5 zWAvgegoudYHzGZEkNcIUC@U&f4mZDay*3C!9cefGAKW*I;-3s@21TeEN>#RQ3X-|z zfzEQ$8kHR)ggmioA=P8!>0BSm!opbnLj{Z#k8Vuo9i$>7dPSNJjWe-8jOz=H#IgI7 z(t|yxKZae&3u;eK{wia*CughrfxsO}61=>;(~6uv37O`hKS$hs`evg> z`_myxFyL~Ere>U}m5h7wNwH7k*$#`r-fF(7KMA*ofMvh0)vxC@pNCW(Z1)VeNOo6m zV>lm6maPoC13t|D-2Rt$tCNQKqyD_3B$cD=SfZw{e+)Xs8a-+d(QyF$eh}95HTydg z5)(!E`Fk_@c;=zxYHdNnjc~3K(F0Dko7H>tLU2 z=yaQOT@v+)$vk3=+Ag)aY8~x*_-B%&=kI+j&Sia$G3d?flv;l6qC! z7@#!6po%l|CV?IRD{DgH^*ni8uzPTIv1%2g@offwpGU$NCF$tV>7x4cDLb)j$CbyK)B=HEY;P~d5k{icxz$YYo!PuOHXFih&(h>1~zKnizo(QghdUDy_UWgfc3t^6AalO;aepeyeAb% zE2%Uo`uLmC4bdT=!)kHp2C6Axl0SeZAd^lBIK`w9sDw%1-9)kxlYZ#C)=bumVi*#n z>6?4E=`mRZDqd5->j>#mgG72#BjPvGe-a=OGsFx)j9=l;S*II8gl%_K4&eTeH5Ue z6E{41MWrhDB2P@Mup@a`&4UPw;()O*0-WV`v`zHHi1S@H?eNZ~(W$hq#e0gWLn|l? zpTvQ>f}x#^*DUP~!p-MBh3lK6d-3N2R{MI)2>CYCdg5?pteL~KwM6{<%IGk@_fQ|x zbXeaXH|k2DWXuSjBjbH`(oKClK-9;Uae+;#^YoE7>$C4p#iNaMPbTP45?s+I-^-yP z5z^OQ!r7LkV&Cpt?Ywa`g2XssF-m35%y7QlCQWwDCN1Df@s;X>!L5Cqz3caBIFtmh z5cY)j<)QFr8n2{&z4u_gKx!c)LWdP6tLa)*QqF|<>QrUU_u{(ptB-OXe^)s@$0eUf zw;1BrL3Ky`s^ANqs841L#|2X_rjt`Cklw#d{zL9?ccJz_Nun`co=j@mXu>XU2RExs? z&`0IrVSh&9En;^H;!9$YPgs}_DWk&nxA)TH9zx&7<%M=H-aFXG@%wrx!5t;!zPr}Z zk3?jggMS|+T%1@Ug*k@fpb<1NUILYF4+RhjcJS{;+<88wif}PC z;>AOrR=AiI%yA6Dv&ESdU3Twt-NwQuQETQ!LBWPRooWNow_^2nA`b;T&-u(@Y`5*~ zZoK=JEZOnmI>)orfdNW9;+JLibDZ_T_@wgWjV6THk|>)<ijB)XDHh|V67#t4&6CW%i79qh`Q&C1LP&VOk~AMCCjHa>qo zkebhabs)cNu4jf_yF|h^nGA!lJJ+~K%fZ3L@7mMgU&>5Em27%2`1v5P zCnICPyywe4W|%KaSZt$TFH&WXfZSU8yI-K7Vt`y6zvae!&f>{7*dMb}nKMOXSDN^m zRa{+L{KytE>tIj79&IX*vOs!y5owp~KAmnxnH3~>m}3kWLKzQAjazxtyasVHC45O3 z7Cu_`CW?_WGDhN)v2~#_nvT} zHEY~WU+a`(7O%-{bJpy>Xl&ZuZspKZP*AZ^qjkQaj4jX;_LI&lXUJ0EtmOm4j;}O44{0V zJn`^o>*y$}TF(4%k-6;Il%mKW!TC?i2ZG_JSk#_c(J2clEcE4Qzy9E> z#0$|eF}nWx`cNW^RRn(5N_snUPo}B{3%}dWSqEPePp#s^^Szld*B@Bh5j&c#cMT4P z6SueLRK9w39X8WBzf6qn?p8xolq{Pfx3bx6OJB}#Pb!kt`Ct#1mewFdVEyZ8jb(ov z+l_uc=hZ0#q}en^DO>X%4`cUZg|SNKfOfY$yx`9lO^_O|>3dT7a}wATy&3eXU3qx6 z&3&nOtmrG)CC%SHGN(UnWv?_nRE#qaB8Snp)P9zgUvaWKl;EsRk(zA1>T@Y|vv0Sn zTnN5Py}BZe)66&MJ$3Hn$@k11Pq-gvOjEmWF~j6D8T0dbnGV)EYLsG)Tl-Yvc7&bZ zNJ;gMV_+)@TDo>6*`96f6)-`1K=o*exoITdTi)PA{;eYevEIotU4$U0F8zeYrn< zA?V>z0uJ3beBT_p99H4NR=kihsl{jY3r08^vsAIZd|Fe!8ja>J|$dSwJ-6MEtM4vY^M!5fLp$U61x%*oC13|%$%su7zdADaN zc&#txwELbzuLQf_S5B5_FS&cYS$nwZx?kV&xVyF_v2uykwYd(K#UY1BEl6s?SawY9 zS0kyKD-7NzhjHdaU#TypNHj%2Vw+NuE5_5>pR@3tWvIn`vB!}$)Gp~J39l}?6;`OO4lbul+EtB>))4$*QQ(hOP3Q!898p(xCd$3-e*;` zyf6B;9+IP@BZEZX?(;0=>4bzdclTnF4IBCDDuKn}2hVs$@(fIq_D$7`BzL4FjoMJ^ zxnrU}ji^o~LB%+J$jx?4X+z$VyyR^tv$&))!D$rg9D_KzBxDeUUI)y+$b7K8?=as> zb!lq&#sE$p@v}kiU0(9bjyoIQlgyNdbzGRZomP0e^pcq#;*NZ*y~}uYxn2* zkJo*1F~al0l(=}jrqmkQntG{z4cIpkT#yvnbPBYy5Lu!XDh|bgTXCMV=|iC`sUB5 zc$0pW3|e2iVbUK^3spp@akL?a{)QuuuN~74mpN zBx?U}d?jg)1RU6GOMl>R-V$c+hdP{KXEx2vANssaCiDUpk6n>LNAWwm=;$N?qSH{( z9C!oSh2;mR~S{j0^x9{MUwq!Tvz3 zL1>2mYWdlWkxuLch>s5^jw768;kPYm3Pje?AGZdqna6jL{}96FIN-}yIRE&gZ|dTq zT;oFtT0cI5{SA9bt)u_A!(~fkbaZsfd7R0~$)u#DI01Bt-L#A`A@;)(d0_&(6}iTv z<@eJ8t+jObJ8#V26c(;+kKtt=&o_K8=0nVEiAYf1ABFLCA|eWWJT@5((iLJ^R8pQ6 ztUI{xZS;$H z-ac*&pwuh3dn_Kqb618TOvq`4W;)Yk^XsV1cy&9EkjK93aLHZPn^`v!Kfe!BZ3d*Q zo}<-}bn@iMc#nN&35h2)H6Dl?l#{keMSt1$bIxq3qE z>^YE{_1w1^!e3sy-`LmZSpS4b?LLfsY;5e*-uLC2)^OJMJjmn66Wikj-G*RO!Kk8( z70)Ucn#i|U4Hl#VA~&L+o142o^I>CUh2|qnKmwqQxt`j@;$UHeKY3&gC70E}#S%-z zW#j{=!wAp0N>#LGxm{{{y6KS6`r_dI_1P{p1rjBgNNugKkdTn0O#&>=-uKN&i#HV& z%VSk&n68?u+7}f34dZ!@ImT(-Fz8tzO}HH$?LSK*^6M+c)hXEUl=4JB2u*5Y6-d0 z9`F?GgoA@G>ra-%P{3dsr9G}%w~1E zb()v3iHwAlH1o?lU(#FBQc_PRs_@Y0?*eE{o~w(?4va*a`84P4#pUG={4;8+``?#a zWwE=sb~<*bzSy!KFm4fg)4C-+B}EN@+lQCe`1a69`4^WH#jEapZiMwq56R2Bh==Es zl0x6|{@uHQfq{38jop%V4MYDjLn&>40&zYN=YUF4YtE9@b#|y>Z zt#(|}8mhGTm{o+~)Gm1@1BhHDQS_)q`{1DSK%PMxs)@{u95x6aBqwh?z4KtD!ZLbNVsNyr?{Bl@rx2xo)ihK=qn7=TuNo zSlmB?xb`$7gQd*SLk_`Lg!4ZiSAH z&N(V7%FAXaNJ#Fqj<)S2y8}6db5_tEhZ9fPAM6$LXC4#9JrcV7{`7 ziqOkVHatuxzI$B-_U#FlDyYk=AZ~wgMRmkVi3Wpn?-T+-h)sp6TzfY1etW{_jv^3Z zkXFs8^QoUE!{T9wW+Q(%0rk$ECJ;gcEu5v@JEVw>AKx|$feKyj#d;4Mp5Wlq96DR` zA6ciFL&zWz6$N1jlpsKi;y-m7gT6CKM^7&UDIUtq=Y9v9MiDTaPQg1uCnUWv6xSV9 zuzbVKBh417a&4(c2~M*po}&HjD(<`YLMC>+jHc&i;?tSn->_Nj%5hJZACoHrPN(_e z-tL;(wD0*J3!sGjd1X%lnll$5)d~Cl9F0Cw>IrZj2&MDb*_$B;a6$}#9zldX#ZG<* z2jgiJ)q4l&WJ&UKikH!Y1;(w7{l3qhsj0irUE=1x^`+JeM=F;kdL2H>&(CksGTWaUUl6k0>GyrmG(Mldc)OLerV`cfu+X>kp4vn0)TOT@<*GIA zZgZa@DB|GYa9_G)bh987_HamxlF8P}#NDAH3lR>iOGZbS*w!H0X#EXz4C}Vn0!j6f$ytEnqaOeCm=yEZ@x(sgrYtGaq6-4)z}0 z;*VjzUAYAT+CgFw8+8Q)bd{MzHqzx|8dnQV+RyUY&o10k_4;k8pNV_yZ_hw(c>tLT z(jOI{{nMZz(`h^;%4(=66B5hM{3_2N;Igj2Icz>{*_G4)bJ2t%U|2?*s|;fciGN6D zN30xpH59iAp)m;wiQx7W=@2Bg_LP`i$OgAct#$WyHma(sYPKf*$vJPo+U6rJ&8^*yjAUb&Dinl$Y6p9jzwtT?D||!%BlVReIS2`h>5EoETfjXK79DPy*6XT zT2Hq(;X@7KuQAC!kJ@d$D^)gtA&JW{JyXJWu zxU-~e2tp=;$TwK=fU_TE_A0k}M<%_d;-Y>nf|HZe!tw2+JScCF)w`ySNU``+MID7d~ZVWI!It^Et`I#r5IC2R{w`CKSZ}a?!@=*2v6C2>wNM z>OK+owV2Jf?HwGbc&*PZJ+)8#1EgexhN?nBlDg2Okug(br7B-Qq?KsC)PE))4>L6h zSytTtbn4@mHzok4FtT^f=`}Fvl&wI}Y{LE07Txp4!LsD|rc`Eqb#-<2+d!)8Bcr2p z2-tM8en5>dkSKn$kuokf^n>Lw1?8{I;GKP}ax15zQo<{nGJ1Gv&>DMl>CsQ7 zpRiM0C?3EWdvQcq;Ky@f$|>t^J@QIDCyBtaWqoNlQipbl+H8BI3eBs_)pPTbxOx6E z%%{PR?3R0Hf=B^opS%E1Ywe-2)##h>7Dk1a5MCr(g5^37EBY@$Ix%;MbnGoOReY1( zKeyx+VcU0h!)WDG9Up0&&PDVVtiQQ<{I&aEa?& zN8{^$>+yTtQ&T6bE)oqF^zrd2wD=3XHRB9y3hx3pSmc*C>Km^kg%OTWN>`w|L~pSM zTWLM_>jon^-=2uu=IDcN$sR5fB#^Nwj!T~2c!sk(;eC~-*|j2BXKbfs3Jl~8Gw(FC zaGUH}Xj-#1FVSAiqh%jky}@Hx)*O=x=OnCeRU4Fz z`j>pl?~`A@R-RYMg+6xtIO(zA%A@rur_l%qs)p{h7f+`)%=u8e>pQ>E!F>CcD5s=! zBBwajh)ws+I)tR6sh&!0m^whL2)0|71O=-B&p$yjmnm{Q1srC9=}MNgZy&9AV8e1o z$lY~+cYFH!d{26if(>$!86ncYE~g|{gx3Obta*4i#>6=!3S#u!?NXn<9Bsv@i(b>^ zk}}f}mf-ZA+9sk}h1w9(2CxODrlyR!(!@7V@IZ0;dh30V=0Ok!d!nt7LDWKDyOQzP zU#rExd=l;R7BxEnB=Y^a-QazWbN9?cq}D zuz9PIvY0IP+m$SAR`n%!PX-1m;NTLD)d;;1=d~HT?lAxIDgMv+ilScD#tf``pgZNByXHcpUpSC*OT6%U1HUqD(j&R_<@2*fe&P<{74dt#q)8O;D9Dvseq^t zRSu-#-MRGmCR$CYKrS>5Kro5c`;YO-25e5ww8xNBP%w#`&jD=CgvSXbTz01pI-y$G z$6<$B0(k@i`R=?s7QyS7k|O!_>sLUcj8*!yXf%2*!HgW%l|D82 zz-5wX(Tisrj+b<61{V6-FOTV(>LYu#9fcZoAl~F?9r~E{5g6?B3Clx8D2*(&hWh$K z5Drph1|Q6JK4yPqFRq|X#;QK@@uS8E$`j7k%B5QZr_QM+NPQdp`Ph2n3mj_zmk;u*nAKe^JcH!0uVpV^}6Zs;92CWHHzuqON7jBsWdIby}@)e_3 z;TUkC56-D--0R9rS8R1fhpAQb-phKpXaMwom< zm6)sdcBWeoHV2YG1zE1qi`Siuzk2Vvy%$G2=>|rawRGJj!5%Gi*`6Wi_Tro9J{zsP zL6^a-o7XL(qu+ZRP>OyJS@fC@ecD9I?sO_?x^uMZ@IvF;$E>sS(HP@ww*tI*%8DUD zmvuJwCCmQ(=Vot137Sz69J=xq`i~_8UmnM|kkMH3ZH(6mM&{2@wV_;Hvzn0;g&nvT z_LuK^3aw2wi{VCO)D#DE>Q#f>1(@w9Uw!>so;=6ueHXcpS=GKS=mba2Yl9@x!@ww$ z%A@UQ2XStFN|EN)q%9|BeHTiA@O1u}(fU!dSuRse&!Hgym~|5fliuC!wOfzBZ!Y)9 zweO!j#J+oZ@1Dn|6ef7VA>+~GS-uLR=8$f0oY*nOpGB$swA*)#v5@i95RUnwZTtHPR7ld480(qM547ZSolm8XrHV19`?Co($e$k7}6ACEi5g+ zFAj2JzSVi-rO5Zv+y_yQ_}X3})<=@_Jtm8`~akx`tWTLAtXepDYSlQ^f^zAHXM zPZfwA_HbEQtNzylz&A+~(8{jo%aC!hq%-KbToomz^{}f`7j(X3Cv3^B%Vh(Ra#cR2 zWO4jJR^+=85)O03j%t>gIZ5D+`->Bw>L_;ZjC<4^%Bh~BRyk^jpH2NUhLx@n>Ch~^Qx|AlXw;1m=2uY|bAw=z3}Jv#QZ=LsCpKk-sTXkdg{^H#EOyc0B!+hohk|VY3hONBbRWvF&&fJk@nBBxmne-_0Q5i zfBEv<>C+deo+4fgfa>V*F{^zw&dK_;gP5yinHK2B&A1xuGM7yV=D zJ~y_TJ0~~XmTBW@a#zpRaP-_yeR+WH3*}xsR5Jir4O5B0Idenn?t}9&KKjcMy4#tkC}sV%_Bil$6fm zQfv2gZDSkR~^{`uZWw291ds@BnpM3#m;98`2sJ6;?**g5<5G? zL0Que63sB|EnBZSJ&3CJI)A@19V+b+=x3O?>by%D@!Y{9L2 zH&mjt!4hP~qK7K>19{Jjbn+QDi<-K~mR6^07|#yi+*P>3sk`G}(h|eVSz$v>iS}+8 zd?;YlR65 z)#N^Po$uack`Z!khLcq}X$pV{>Ba-S*|%<8Nh>!76Qu(RFFUWYIbMG>h?CRlmmKUa zCsHl$L*o$S`tS{}?I$HZKD(y?HoAGm4#*%MOG#;dn{@2GnI(q#G&@T_POz<-v^XX< z-4X{m?#^;Cpd>Uayk(H8eD=s2}M^k!<)g zu)i`QTofQ=WHi;1xi#AoZuG`Aec=lb23=%@>peJ+1uoJaBequ926bIUUW;??Ma8|( zU%-DL*Ly$_a$4CUT`jX)L`2@4{9(;$@c>zNBo$v0$Ti(ER@rWbm^`~_3Cft=opG{* zTmdG>8?t3a$f8N8giMP#O-=jXJ|@+tiZLJbX#?VMwVm|7Cu+maG-cS_Hk@;&#Eqb0R;rOcNjGZnvxgj&EQ zVpKFT9Xu0M0xlnHweN@KW6FK`Jibldt+%s&V>@wLx4kF7iD23%B4BQ+xpnGp+V0~y zkR)68q+d$8Bqeu9iZ`@qpDs!`jjq)W{lSb#SrT@F6Gd=6*T?5Q6c`Oa%*0BwW0@P| zbU^{0@yVtMHm#zjx;n4@);HzlSAhKhbVGFZG86<{(_=Ux4u8=;!JqZ#KYjk(lYOfY zDjVe4%T4b#QNh{Qew%9p@V&9Iu~bx4)4Y_YYEi*|of4)dksIRT&d$zf#;lYOpgYM~ zhPC2P&6JH~c~_Uo;G+@!5hh*_=i- zj>vTCdB4Q%XT(vsf2@7$+_FGhywG?@N030CK4=0bH{rPHUxv@%P^mgg}1_ z&%!~&QmBUzwI|?$s0)Yw;(&kgvOqT<0n!`uBT9NcsT0HS;{N{opQ99h1+oTli}}FN z(Ee&GC&*&~pOis@&_m?O3>90ZvmKU@l9LPTc!b@zMfmKEF$s zJM;AEvFW_t!8ObzC_*W@d93z-kD<8YOT0 z%GI|I+MwhZStq0x)H#ELpg4qe>jmp#h4-c1m3m~@c*TR<`1o;P1;WA$e0lSHOxj;4 zN0wNRW)Vh7Kz)J6N;ZS}hIkvamoBN?-U^gfR7|J4v`Cq!wGupf3Wjfl6OrcwJ_ME9 zcQL|wu2ND`-nc}-)$DE0#0!BcBm;HQ_l*Tf2B4t>0|HV*qN1We(zb1UcIMEbLv#|) zm^AYe3Jcdjy-&f77Lbd&NDJrU<}3Ad#drmI`MufXAYf~5bOB3eTF*m3(CM>(-`N4D432C#Gc3Jl=b@ZcTug9O)Bw=EEH|?N*?2`v z0Y#J6wCE*a0@g7m#f5R;Uc)F&@fMc_IuGaaQwZEa(_Blq3p`*YD9C(|#@)ZO)6pes z6+uusuM10*oj4UO z07_IT&=z6ose!Na!YOO6*yk$*00>ZXraz!5@mc849Ud6yyfY3DMm~n;IbUb-p(|3C zM3l8^qO~txJBCD>#;Ce|4fVe}T%sJe{%{rGiDh4QBH?j-_JfpTpt7sDnIP4?RzWjP z7R*}(1sJGP&Z}3WlJ4ERw;oRi^>FViSa6kQ0DqYZKu7NG?gA%$g8|E~7h90It%Z5) zZsikW5Jt5qxgUFZ1sB|)tJqR)v`c^??;-L5e*YKs^O^Yjd{C z`;q61^F9NGrby!wn{kCi;OK*qZU=jta>OYG!Q_{9l%#O>cd1$@8g`jYZ-G^Q&}o>Juz zkasNRoe6ab9%T=fG3h;sFYL4Wj_U(n)YC6lw z5r+5YXlrCOe;TTXoyaVP+m|X!?gtvfZGB`|;+RT&=1Y6i<`9N#V+epIf5b<>a*S}J zQkktmfe#3~1tOYn?B~Mzm%RGsbauw+I#sep_5+kE7iu?fj$5nkPd#+nS)YT*V|0&7 z_dO#cW8o`j4q!P$Yu?j{$XB^;tL#Xri0j4*c~ocnJ%yvokH*N|VtM3pew+>haiLQ> z#?wby_*Il8@?DB_=oT#q>EuaVuS08)z}6ovs)+-wZ|ax7kEL`J+&9a!>Riwg)RIZ zaJ6M+SB*2bDYCpjJf)VhO(y5ix$3e$3r>nmLL=7v{CqGCq>1aE$s+_UT5?0D%H`&- z*uG+dS+V}~^P3=6%g6yzNSC~tK~1lk)HkmE)km7Mx>FD-kpEDJ2tC+QgDG) zZS%e!tcC@(UA)3OdY0JSkQ@i$Mp8ne+UeWmhF|VIFfssV(=0ptIhxyaieaz;VsRDd zhb>rU{^Ki+mWz33^VFhYIxrsLS*$_i=g@m~nn(n{FLFoZ-YQJ<_b1p}n3iP0(_6b+atylnnbXEFxsCe;{i?P zIjjWxMRdFa)PknfDWdh~(>*;snUxSI5A-%1no#(s*#-)XWi#K2Voev|hqw~qvAvr5 z>XoIP-Ri>()iqO1JMkXK->Rjga79FDNY3E-*Sy z(7a>-N-(wSiU_dU8AFhvGp9g#0ES(=+O<3=2)Seic@pbu(JIcWsj2DBhf~XQcc{0g zrx3mQ74*CTNGHCej0OB%H690$#&7Q&1H|La44VV??Uy<#DVFz9)EA$LL;e9gF$D~s z&2R}jBnw#I6ia)p(ad1=uOQ=L1%J?()e51M1PZNY52JnK#yfD)m_;i}Np;RGO?(a# zA|@hYDBS`t%FEc;Ae2B>&p~`+)a?_n5x}%wrQoq_0L-ls4hS=fGBVxGiv|FvK*obH zR>N>11b}5CJT6YbE|gPGa46zZ3ROu-32@w%kT^@n-NDQvuN`~s{u6v&s{!G$i;jz$ zEON54t!-^ZrKLf>zS}k4y>mP^V{D^-h(26YLCo)m<=OV3dd+@B%N zsj%-Yw)hyr0+b>8Q>_i$UUdUMDbUI(iQ-dZlx4f*ECKnCP9TuT`lQ+N(9xs5F zaHgh?2WS86em-7Hk@e^s;L-V_1>U`X|Gu$Nz(hXl&ds&RI|DJ}PoA`MZz~!6c9`V%&Ky6+^>(?ynJC~5RsKzss zo;szLBK2J567X+lNlELINU(9e4F{or?C%le$FhcTEHqQ7sHlJqY-wqUoL%ek{V#3M zG9yLy1W7#xc_(%Zm7+m(1OtYj8+ugVg?v?2L7q%I4al}JDMa7|u!>B#E1i1M# zx2GckdJ1^#^KZ;R#bAfl-zdj)W~!!h88+sL#_rpKtl7W=TeMv5gUsz}SLSd8V(K3o zx~yw`eI2~w*}4@GtLEnBK(rkrBC2xwb_Za=UK@OuR_u7ZpW8Nf|RRpgDw26n#AKnW7OabE6|8DM1Lt(cgk9I9wj(&%$YL zMrNt!%+JmaB#Pl-O5>mgF|e`eK%IYv5_s`3Y`7kXIcWl*>Fiz5O&dsYzf!0iG1qC1|1>*&u2hAn=z z9{-Vwlx6dP8HV8Z!+ztWp;PJfe6KEJqTc5-Qr-fWVC$~paek^@ra6k@}0 zXZ*#fKkxFBCi)30eq2IW_GyRXy5QNuA(# zm~%hrD!ymLuUY;t_Xo?`e~;}KaQTh&D%ScPIsL|a{l_Y>)Bd@Fw^~puee{1oC>Y&N zgpr8}i~rcQv`qu3l7Ki`4S|FzDK4&j0fuYQ0lnD*>2 zwqV4^Kq8-GRJBe){*>Rh}LvvHab?mTq=fsnQ9K zPY~;mYl!G$o!20euLhqh#2nri|L+IU7jv1dAF=;tr*kMzKph9ZXvG4Ovu9bBaY{qMd%&!oJpgS%8DH`Y>N5;~ zisrMjaBD6#et|}k3_= z42NP_rWxwU%nwJVyO$OA|)cFFl z>os#UUKv`&EDp&)5XqUPR5g_zWx0V>0I=BrTeap$C*1r|qW+;2(CU`4?jK90g^SBb zNzo_=lXsVN#}L6$Fs&(aHOwdmTOrf_*S8Q9fmveaRHnfmJusGcBd^NSva<)ARX*nr zi%|S)5&o(cA$>iSkd%C|(AVD66S`Myg0SOzSg0F$^GBNdZLuyt>o#5ohQ-azjq2Pv z9bMf-VqtEIxFx%H|4O!~fWW}7L&dNB{ry8jNi)TO!AKw$mW>iT?Rn&H`R=@UY77xj zPt)sH`S?Jgz%<#hG5LEwm+nx(c$Qx9`dKW;kuu99)uxENZEl|H*Yk)KbmN;IRLlsL zyiMuM#ix(>v1oY*Y6!DGvVH!`{V|Y5rDFLUpb=tne!eBG3y71?V>k%U-(bP5A@8st z7%7;Pfs!&ma^x@~f&0>5upw<2N9+yR1k~h{lZU;a=?6I|@AcdFpST02FfKj6vWdc~ z7smJ_*l{BgaeiX8TBQ9gafb^BInvM+{a-~o@GAcW&d%au^x;zfH&%j({tkGM*Prj- z^oZN_)DGldZK8`eu7>igd@TAW%V1H~a&lZ3t9AUpa3LyC)sBpe0FylZI4v|R40K2> z=N}w-9c;2zf}?-~o;-dGY-!}`!FGp-R;e|6kl&uC_~z2^Oxg_8S{i)_;pD#qZg4rR zt*s5ead=hPY2OmbIS$@V=VtK8nsGjV{(M#R5TNYz9cbA|*!3f0g{~(J=iXE3G9WIn zH1~60ELpH^QvX2LDJCvVYfx|I*6a_Bj|*MAsPrQ0r&yo?1}nht*jiN@ya2$5T!nrb zPft&XF%UF5q00js&b-@D7v!Q&oI5uHA)qH+ky^<8B@b92(q`cxGkGiyaH($t-hdRB zz5_ig($dnPXj1aoGlgUQ;E-igJRs#!r=*E1$dHO+2 zNFJX4O(4Wz3jwY|U{MwQU_EdR;BmkTLqi%UzH9Wa~p6XCP^$l4vx--$SS$aUkYMIZ!V zMTrVUEOpFs3wo*)4(vVI$K;5iEFSzqk2k_d4&7zR{OAPX9C)ii9)x4SXJAS4+eu7J zEZ=vwqb>D;wx$*=+noe-X$rsjdjJPbHW`mjnL+_Kb=uwC9T?<1LC_j%f5CleY%h&t zC-|^R^i|z~01E@-dWFJ)jyK0TG)SQ@;6W*9MQVr<9#+{8653DLh0d}4-8IFQwwKpJ z_eV=@;w!<7Vb+rt@Rb@}W;czG&CHMZBpBjdSDO<=yz$97c1ItK&tYf&_mYPm9mQ({ z2xJ55L+BEV1=0wLbbcT{I5r{px&qq;4%<+H&PS@H?=)AT@N;b-%XFaF)TccnS)afLExKfWS&qxT91CLdU9EW@NV z3XN)wEv9WzBGZ7`LM$#pn_|;NvvkOr+zluu*u&?B92EdJDkJ$j z;M+h$q4!?^vcHM`6ffb_2($%obF1FU>Jb1+9#UWTdu-Pd2Fn563O}H`a%BT}IQ58m zE{wnYd}ST0xzPG~vjEHCY=DG- zVET)X1&-Vn+7`e{ta>|Y>Bfy4=dRh^u*IpTNE@gJfhK6)z$1?YVTt%huug-zO#N5{ z%O70nF{3?sAl49aKXG~HM=#DL#7@&HgaWm=>4Qm2I5S`p4vXx3GIH=e!?)69qouul z3BvdtYM4g_M8y7Ah=rp+k|8#){#q=D^v9z?b5KO-RZ*;UHR6VH&1m%eW0Jo>1n})3ru8E}!F$&{Cx=BZHad)=1;PooG z*(UH37RGqjNl;bYt~)MLuo4mwB=5`SfMA>j&8^*%`ta@=Y=Hk&mo@Hs8nDT{TAXSQ z1*y0OICQ9x#w(qnE6r|^fjXuumaBmn+6+`AWj(Lhu}qLFvpwI@fLH}fqd zIuOEN_YBvA#IKo{zlpNnNymkPz6MI3=~saIvD`6A*uP3m(h3Q>fX1l;S0ke-Xo$-E zrg8~3x0tfFw)Wg{0&iFGOGt!p#LwXPr{MJC3A-%xv0r);78bU$Vhi205dGUcY0P;_H169}GpTXrA=s)WrFaF;+uGVdOy3@Z z79=s^bvWLIK@j%_!9SP6)QJmJ7BJhOV5{L49R5e@I4sm@OjdjZqyyA-M>h6(Xlzk$ zWUB@8d0>IOsL{#U8IBc;rRPgUHMKD4zXt3Kd`>vmXZ_4eAf)}yh+++@3|RFI_$3Hf zDTJC&phP63xJW}sX9yxSbkeIn@lvN@bpYkh)^=rWEe1qo=F;>3nV_0Pf`vg%?_plb zVr`sRWUu03speZ9e^iNq&_=V}API}O#{xl?pbK!*5<4{EZlV2@_ z5o0SkRj*ARAZ!{mc9RDKvuoQC|Fg8;Oaq&A)##w0|Q$p!r(vKs)rm8HhjpfmpT^ zp2t7N`qNGLNA->PtM)#H_=^ht719661piv^|F3N8|8jrmqy2ql{u@Fap2`kHqLVQJr^~#Q^u2@Khx3CP17DtTRyt$|2s+WHx{m% z2u`WMy~#%f>!WwnsiCwk05Z_I8N3VFmZa#;&Q8#|TEy(yh6uLEPyYFk{z6sQrE{b7 zBjGVK?^ilw4{1Om2FtEeLmXg$9ni(iES5;K( z_&QnvENYC*6Jn|t(C`8MN{i4w1KAJWFk(cRmXZS86?nM#xw!IyYKG!YaB_dwbPb zQl{gF7JD;EZ+-<*v=@&mH}r%QynXO&cDiK0%|WDntxT=p<-0^ zamc04bk$A}{qHT_xCJ^D5K%x;@>mVnerY=cX{V(#gddn#t^JBrb=1Ei@U zTvCs{4RSXxHK&QUM?r`Kdx#mdb*l}6nNuR*EFgRTXU|eN*uha!T>-|Xo7tM*x>IGL zmDU2fl06UMWY~hr3Zy;OY38!Qk~0mBz%PY70KRWatBZ<>O#|Jx3Rn^h`r3K=hd!R; zv7&Hji^4WqHQ8KHjB^EL7vM}+p!NK7%=z)t87KZc-hVL{K>25InPq;3ilnuN!TonF zm~U{;6)Lr8K&I*n7Dnxj&po}JK|la|I3H}Q;5po zYC_H8$4z@beCT(ISw*H1RtNmmV({udsBxe@s2(iZx7?e8X+eIvQDaH``Qir^!Zgs2F>A9I!2Uy^&vnKE3{i z24m2(vk&ro{yr*Bo?k>)gR)_;K<7~NDo|HvxlNv(0=oUQ?)wEJOBUTpU`C?EVUM#x zUqD^Ax)HY5kIlvm`?3`v!x?<8I1V35tWsk!dFqZ|Nx2iTiX=x{qYuWHek;@x-5A-_juK09}<0Ei6i z8$;~S!N9)L4@zJw-5_@8sejJ;Y7^Dn)6*KpTnKa%i?pmPwmT}kb@Q-V;Ga+NA7Q}` zO~aVbF#O@eYcNO}9WQb(Tm|UV^8jAqkPTgN-F~+-lxR&&X8?qeGbz>TplNKN{3l}X z25Sf88#t!vZvg|9m~}nefo}J0Ae!Q@KTv>nM-}R44tC!r8{pMZ>#M8ygoNwgzMUNQ zRyc?uCV2`(kqR%oA)xk=#E}30e4^h$Jv#SR_nRaI5%!foz~lHntPCy*AG0d+I1v1v zI!!5-18wbM-yV>|yOdl(opJU(>`Yzue|r1!cq-SnZSyi^AtA%ENJtV9QcK2CiIAz3 zv8a?Gl_~Q~D7F-tw+v;7il_{g24k63C`Fpv3*{dPQQMTZ184-e$u zFHu*mYTX~ah2(v7`2J`h{ST}(a0madXnW6N&X)+4FY!}_i!1j0N_x5< z@2%A((oN8GJkmRS6KJYX$T`9Jx_fv8YtqqqZjt(1=;P^YtAA4hO_)Hb#kuJ$m3~80 z6{i_D1jB!K8g*Ro-B~EJ|4l!`z2d8dri57unmpAPKaTOJR>mCd5TEbhyP zU^txo!U}LTzx~h;U;r5YCIg1QbpdpNe>D6HE2ECKH#9dl_xJDJ@2n2U5*WZA=K&l9 z3T^VAudJCoBfc3;C0Q(}I`d+e_k`5E1xZ*r%d=`M&j~68$O<+0{{6`R7v#2HHGF;$ z&MrV#y`dyq2k%ys<}Y8qfGvO=aX0Be?&ZtR>V!@T2c|Jw#04?@i+3-$Kza-^_Z5gp zpjkwC8Ew(>@bEzFh4dSKStF2_$bxwN3XwU`D;{oc1q5M`iRv3S8eLeYcQ~Q9A(U-t za7f7B>xWOER6~4!CWX1dM>+LD$&_2bK%(L5V?vm6XIM3p=+js4ROB zn^AhZ_LK&xcrVOv_yeAZvNAIHKyoV@D=L()5eg2{INFP-d$TpZ%*{Qm^EkCr9B!}e z|DM~Qqco*csx^ZcXv{H4;>(vufWSggLgSS@G(YpL>4Cw8@2~HlO%mRbJKMdx53(Vi_czqYg!mroE8zE zCS8MCg)-0WT2C3cR*4k%Vind7B z`UjlScq><3p6I)@xcB+D`IfY_Dy4Fz@^Yot&lxXntA72w8O@16c5Z#zMU*)X82jF4 zIHo)dhQ>!{X=ZM=M(W_jOjQ4JJel<%c@?O&OT8a~wUnq&w`NV1qH5-z)Ti`>w2hwi zA+t7e%S#rMYLVUYBz;EQ;&=54) z^!rT|jfwSn+bG-xq9(){va(MuiM3ualq0Gr0tqt`=RTJkNa||C;)T|aAxI)ispLScBDotVIRn)~UpXS`wS&!%_aBgfeh+-ZX+J-Z2M;(_ zukD~M3S8N4DEct{WXBR?pjMJuTSRb9q~?3+S&uU9rwO53TCK){m_&yPSq09`JYt3j{w0Fy`mgLW z?|1Ru5@y*0-RS4}ug6apX3tMGiuILP#gQmNSK&M696iryN{j?7P-_`KHJeH1@*t2V>+^3dCJt9I4b>+UUBk=AlYPiqTPtOM|3Cr37vJMV8#l91 zjz_N^QiC>~CtC~tW7hqzFZ(<^M%2#PIu=A0(Wy+3i?bGcc$_WR?f5^Q#Qn4H8NKDT zxR1rPjc(XMX={+IH{+3)j9Jl5_+%YSelGIw7rrfUG3N~GvJx{ZZ0^vu(45FU>dtG@ zn|mQgL}hl{|NE^wp^vd4t6vQkA7yYzl}lv z$AG<;aq9uwpb=wHU~<2)kr04Z{oSRuTChNPy*T>{tCPT7m=EVr6~rh&sbzN(vb}tL zq2nGi)swRJU^A;Q5eRMBa2A@P`;^jyE($o7g*{z< zLu{t&kC>mn5e_@0LQqL^3!hsz!?<+njbHr%af<^O{1G{-W^mlU9-`F;l%^P=eJHq5 zUnA3vUJ1tj=8^7}*47eWjPq5Ru*ie$1h#DWEN)I}O;vS8p_g>NlTlE`#S+>C%darz zE5C<*rsnJ0R2X30G^7M#@j`q4;9&U)xb#961Zf^X?NOArA~o3y!k)?k+}yjs7XeKy z)uBDEN=VrmA)4l^nAj}_`4Q>~-R;S8kG?UwokW!~ zzXB5%OvcZN%W9!Vn^_k$Y*XHJ6`FA@P*KDqY(7p9*Ri&K4#5ga>9BhcmNhIz=SJ9f zhgJq=c63kCJeT5QV@1{<-i_-(rdXIimW6!EZK92zR%1Yi3Q#T7(`EWX4IOajL;W|d z+E>oPaD|shjEBYv`6YZt??8Y9)ygPifCqhh+nv+Ce6{=k#10EPMIDKYI>dGnM?!!{ znOy^m=Q4ZNh@2LifbYwqfcl{to`nOHJ3Cy5I$pL4s=1Lp*%tLH6>>@Azt0WDX9Ujj z=P=8|eWCqv^;i+(WQp2))t6o&0;Avw;X1%)Myb7CuKOY}2IAep*Qu^|tUw}w8_-!w z{*KKV1N;pWgNMk<8hFZLHcCtQrjjJ6C!S zsPorv-&Pm;Xl7VRSP=W9AyBS>4V|0>66q_}RqG^1y%9RBx7j9iS zfvOYrYfEFJ6Ff)ol)-j812FLlf;btEf46aG18&VK8$IuX(3~|Th&OlY*>3w_>Sy}7Faq=i-S)NKMw2O}Tn;=_&x zbP%j_YH8XZ&4iWW=tNJgUCmP%fdD_;oO%i-URKu}?FQ!O-=?}EtUmBqu3uoB6Rr|Q ze!l#lTXNGhy-o^8BjA(;pr7RQgoIsX_IhfsA!V?OX??k`wAV$3&MvFw3JE|9OjdiZ zGUP`|o=X5gm-OaII6To)8fevw=O!jC$@a zitg5}2x<#Jw4L6;BS{8z5f)QVBMS0Yx|V5E&`#X}ZrjHf?B?`y7bi*a&|;O9NS4N6 z${Twf;>|rbT&y5cf@Gm=z-Ld5mpf`}n|VW1SNtnAdh{yg9b>qpKspo;MabQsNon}bG#xB2 zJ4Fi9becSKClmykFRo~AH=*jp`{ZI@?KY={=mTg5GrVxyrA`n*AM4CYWP~G#p|0*Y z+xw71v`xT2D#{|}??fdG=OWbew-PI(HpeeIqK=j@vjKT})8VD8W&iGQUDXKxKMFrX(e8`6t&dwKqC zl_Pi`bYiQ&z6y3WuqT`@V3~drqM-OIF-3}SG#ihW>5`ak}M3#{b*b(6H*lWe_g zNc)&T)Uzhu+sfhced+IS{GBrYUwkCJyo2%f`fYz@b3bmY zIMnaPljAS=e{3t6t}eVk*J~ARtV36eXH0yuzNzj5Ca^f_|wuj~X9MRkMchv#1r zvgSGh1R~}JM@DYKjQQwe8Y`fDDEJ|&br94!%}-zLTCK}2@$1qtyIKEA8Zm;;hZ7(| z!Ri|`UEC)!7NSepguWMS|9x_6xUOsGl7Bstf8N+dMZ5Y?R8iO_ZXSBZB1SVBfFuBU zHGoMfR+|2DnB0PrL-RI*H^ii>eqY>94k8(XJ?@wD{*YH+=gmtXfk z&n+eOljA7};H9OdKs7<_%VJqZ)~<|SuEg?TGiW$@d9EnHJKxbuQblAzWpe+DWHNaW=Fo`u z!E3jkPf!Ca#kqW)<`tyLn*9Vj>40w&H=((K=Y!Zv0+&c++=T+d!Z5=e+R}%ACUV+3 z?y@z@CdxvY&;G}i+09uwhIf{$-S~n$Zo5}dNy$f}&EIpKKa8Xn5OiUfW~JWIfFj*W z9B#uy)7O#F&oY-4C~aS84)m$zO23Z?m4V^d zBy{K7hmH5Ss0m1UoLbY%Jo6(EoXfrdIedE4)rQ}xb{o7Avw-=~h8lg5_@6j=S1U%< zd-?PbMtc{{66j47?ZS|lRv;0naf1Mi*Nix-G6o9jQha;`boUR`)xW$_lu8q4<1qaL{S9Qu7XDxFwUe6UYsY^pX23^#)TRO%}*~GEr@E|(L>-oKwLCq ztbvOyGa(ib{__^v+*TL?XdE)iNvKOAu}pA6%rs)+7Lk?{m}HUgedqH14mDTpccQS0 z9NQTEei#}&9yfaoQ-&-BiH~=_9YdOuVzL}gCZOE1@62YJ5osf(ebn)BQq<{Q51OGn zukXhp3@gwOn=*T56Ceb#=2s#;kFE~A|DWfU0AfE~vBj*?_B~X(opd8Kh6cZ@wX!y# zd>Rrq+bi&ogU; zh#MH52aS!N*ShuTfK8BXzZ7$0S^YKrgVpCO|5LbikQbr3%wRVwy$#pUp|wi9x`!Lp z`maCy6xJXP}tb-)Os?3=sAzKu{% z)%RR8n#j8JH^kt%l*COai@xlI-*TRCAZUaZcfcx<<=rVVhVI>wPmEa^{~3|*6uXb~46q)zwu#^z`17Cmc~=awN&D z!9Ssolc|wpYa%UR&lC~DXUv(Dnb=r=+keTLnNSVTQYP7 z1FOExA}_3zRWbvP!!%@`;6sjdv@7quV{jC2|DZysnqy?Gr_dy+8c_=Lc}7RrfE0$l zUlCBQ^%n|cw2qe5Q2#<)LU|B>c|DozM1SH$Om_E>q}*ZA;qKDkNZ=qon@Be~g zSXcb^=}Lv^1j-{^18eu+aMJd5KX0U7{cpf%+XGtW!}^~51J7}@)2B!-r{OJgzr7`# zc4HbIr^(2R1j0$zq@pq%|%#}PBiFw%Mz??Beqmu`n7f6>kV~Ns=;>h>qe(z}^ofci-N!x+KYCn53QE%c z3;b)-nUQqZK&5kNe$^whID2=o`RocpKmTS^?}CaX$HE9$+)Tgkjt>||F}!P6f|Shz z$hr^)i;dQ6U8cdS(<{&I#M*_eWMN7Xf%AIrOdsv%E%HeoZ=1Za&zv4B3Mq=P*vPOd z?8ng5hi$u9B*8aQ5RuEKe${7J$HoWf%nkawMI;Z$W9j|MWRM&k2560{IKcx=S0Lp9 zR~JD~IXN{R6lP8VA;EZt#neiY#1_6V1OyXCQil>t2Dr zaa#icI6O;-ZckutU>Hc&)1vg=613Mw+J@3^}6 z6x6{U)KbXQA^7_gua-b{1cZSfeX#1UtnhJ+`xh9Mw2O?TDLHZRwmYNR1zNQMV6_r8 zFvox4tCJoz32=A4jGY_i*r`|d*e0r+FKj#|AD$2P1*aqcayK^EL!ce3F>>h?P-{4= z3+Tp?>nsiInuyY7*E#>Y`1 zhJ`y+LA(Z!c635eQqIsBF0Vq>Sm&J;g()~BWS5}WtiW}JHlfbM#I*~eE(h6lHhAf~ z7u7f6#`2VgId)6}KLvGm#xPs& zA=&CTFo+iIo2v57iulvM8QP|D!z5G#|zfYUqaOt%TtMUna-I})H zGjfXrJP>mchFM4#cUET5kTPc5Uf>+a1`Zvq27u9MjG!8JDn2rjX4!3}?q`Q%HrnXb zqA(ibKzf{6-!ZfE1?tRU@eKJxy2AV{0AzVCuvgOFMMQ7g9L|r|Jl~l}a*1h(6i)#o z1KKq`Gt*T_h)lUJgqR-c(>8)%0?sBl+KEYFbV>aW;PA-dYFEV}O(rp4V|*Q$7)-#6 za%0=h%ZpwN3<+)0j>)expp;4rs5K+*z2;8aLsK-53{F&x)Cc(iu&N{Hv>=0e`zVpH zu)jy0U8nW-;=;E|c3ibqwjo7O*lc$gA2&B$>ynb#7AP2aqJU~Os154!%UK4-#65$X z@0u30N5qUV}panO>)qKSx_}NMJC%H3lExbL#j4;Y(yYsQZg6@X=pqZb4M2cGHjELa7x#0rpH?U1$pJ8xzQ=CikjwyPwpDWTcd5 zcx(v%vZ!nhSgE95MOL(nH+s&6A=OaVyx1B&9tX@dIYb^{i$pCK;#2x9v_$(AEUwua zTc2cJ1cI6;?{l6IAkCPTKpx7==gWd(&_C+J+)IIly z@0>=*so-|#GjMNG`DxF31E1T2QWw~rItr?qX4Uv%wTU#!M>)$8SoZu5QV7ihrq#v4m z-)5R#))Ae%DUygy2r_r<*VUwWVUs#|)wboeXC|phDuw4KE>rlnWZ;9?sKTqMi2(ld zJW5pZ=IC8lN=SpR(Rq{Y+`)L#Ycf-zu_vRf|L)}8o{TA-(iQi(jJ^%y*dRW0VGUp$ z+k0viMd<|UMd&Wtu3dJxE^n7`M9agZRZC~4&?Ts6q4#vCe_2TPPE=!tG+-&01B&FhYK4&ch#E#Pi5ACHLFM&!PdqeWd z9sHgo_LM`+&Q`IKhRYKZDN#$g)|$9ITvRQQab_OVQmgY?zUD`U5V?DaZtXSYpuLRh zY<~t$if_zieEd3}(KWtfglBDOg-_tkmgF_UN(I&w+sn-N>7H<8M4ui;jWTp-kh5}N z0=x(21ooxv58(!u#_l`A*<9Dbc*943pz65vm8uWlqI=$r)yU0jg>x=Pn@iA9doUYb z*p1ML&4*Dm4Qts>t8U|hH61RhJ zu7<9^YTaV7;Z+Pf5tvZfuKM<%e(bV!ZR>)^73%<}h^M!iWi6WT{s>Vf>zgp? z2ZNJyxL^Yc%}D^|o`Hi_nYeL#8b=AgG6LCM6LrUj3Cd%M%y#e9wgRQZc4}fA(94kO zaLI>TC3>n(&+hJwBCsKBK6({=h?R*}Sg8LQ74z{;k52vF?)i@_0m^xWU5UcG~x(jgHWt!=7h&t-tC)@qOL#I4Vp*5o1248Oihe7%Jl)ErxOgYI%QfpAz?|X7f9x<$l>vXVN#;fs z0%r|$heb8u1KjpOClG$QqmUpvx~Awe`mYZus~#kW51O|#$wur5cQWg6&B;~#;;Q$( zPY-1th)PUm{x5oO!hCA=ZyfGqzZ}k}cw@YobE3*kLPDZV=GGalK>47LbwdZQ!e*E6 zJn#8DNPs|9wb9lEM*UdVmF0!_yEC|)UZTOf4jl}_)0%`>kqI+yuCt{ZrfZOdRbH&z z0yiuyrXf}=QSuW@ofO~7IRgWmTb`@PWIE~lcNUJL*In=X1A=S>*Onnfa#^W{qWq7M zgOd=>IJ9K4XxgMU^~f~*zHv9wP3w{AFO zyD`RnaDZ?&u%*Y;z_^6tM*X~1h`pKs%VC{o=dzv!_bFK4nyBV?$f2uOl$SS5&1T%X zZOoAtvqbvrZI-N;5TW;_6+jA8o|kG0Uha98S9&P#lHr3PJ^BS1rq5Ma6Mas8^=x^1 zKcl|TLuRIJgst1?soW&eOSBq{KLTTs-@1eM*1i%-Z9ymyGG^v8Vw?A8Y~}7^OoUh6 z_<-N%W*|SXtgt}0`o=e8ouA*ePLP?YdaeFbaW=KLo)eAvq|$HmtpN+BsO()*(W5(4 zm>ZIPtmeyW$8Ya?%3g!N6nK=vZ-(;_S0`~XX-P)^d>r@N*dwiUwkCS&3!y%ZetVGd*%G>b zsdHRRQy+iUwr-TlK+CtrmwtX-4>mBcE4F{s)YMe^OioRGh5j14sBksk3N80&(|Mc7 zyXk`LT9wP=?d40FESEl|4_G`kld)ElhigcVnwjrEG^CC9wvR zS?i6zRC7I1>QMN`&m!I!H5RmV*|JXHf1}|La)G)@3>uhpmZhT6g9 z9U)UUrQk9RQVl^0Z;4E*uiV5|zf-}#q5jKy!+H_`@E!*X@p1EetLJYMg2^J<*YNLQ zirWb+Y>|=)3}ZoO(*`a|vPx`_yoGHJf+$XhZ zWqz=m>0brD7I$c>w$ao%PKZcoHzm^WLw)n(OYmrx(y;#&UGC(tWN9t#N1-$XK(t~L zTd=+q4P}_fe6x+4(98=6fY21H9GO+CB#v9In_wTs<}B1sx(zjeiigv-r}fAlohM#~7Ij7+5ch8(gBmVF@ zVUX@3zR{?TU5k3-$@Ega==~HpPPJRQvWK%Rm3rr+&&}^tAIkmOAa8J2t>75#6Smcd zM2@o`qqT+SXULe~ZpvGw1Xu5@~}F#Plg@08;s4gD_mVkP7_&cx7l{7tx~ld9~lyVnxxY zva;DT@A?>V-j}Vxc_tI0ZefEz66?dHIqd(s9Zl8lU37pDC9H8xROA;WIiRer|p(hFT z+kvK(RS*VPsxfo;;5?gSa#CzN&KIM^Ua?qt>_wcc8H2GI(l%qK_g$j?U*8l?$?OQ5 zqoz*3Q>sllwt_n7*woQ5^?Kxe*U=Pn=Hmt0VUPQ7OsMiFGQFrUP_9k&Tl_Ao+gIVe z@eF;Hj=RkG3t#)bie3CArk8`t4qg$c5M1tk&r6OYDqZMeTSnma-MeGU+<3JOny&M# zcu=%$f^4-w@UZj^PvjiaFsf*Z585jE>XjMtc(Q&iB7wC zA3;TXm-J0vaSSrca-OA2RUIGZ0}DC&;#RBWQ#o|K_7jhf_`jZ* zXn1vSOzX!Dg_L(RbY1lgn0rT#dF^xaaOca$%dD+v>E4cF6J=)WS~kvC^9qk$Vs%3uWH{u7Nmb7rGOwPj6)Z*r= zW<{hfj>Sql9VUa$YX^iY-vt@>-25o{)Q+L+O7Dj^Z8b|D#hV@wzpg$Q+t}73;lBI(ILChbF?Xjf6?kP zfta4IenQ@06T5AJKeh9eOu)?eiI@D(Ic3?{E`(iLUVQ|HE~06xeByF;iNBZRz^Xv+ z-5GYG=v-Kb&UU*zQt2AtLE?+7ipV|O1p{Vy1o*nS1U#Q4Q)-&}u5Zo~%;T48&D(jl z@6aLBqYFu^j#oVE$@77X(^b)lyS*^t!I^>K175YEIL?H6*>K<6RinhbKdruNk6a5_ zY_)Ws+yzMQ=7oGhN8q+6k8N&E3&-8RU|&_X>bCdiV=oG(0=s%&Fz1m%ed%I3KPoYF z@tKRozcl~wBTjVgRj)z#mV_l1%v@%f{^j;xdo$8p4)yaO@I zbG=~viDaKZSp@WCxw!XdIO6Zl&+BO4!QahgYUSCAk9~Naj{NRuck$9B!!rAowmV%e zrplsS!|o5+&YIgCuzup)s4$)w8t>L|QFNnNu)aH1*H~x2t@X)qwNSNW#jb}n-a`WN zqpBx+7;!`aLyU;fZC$pz9&co?-H&fJ{X;eg*2a%99fCUMg0s8|_%mW`ikkDI=reWZdEGCfQa9+1F?LLHq znabX12Y^+Xnd#q0Hnj~a^Vso+Y%~9QPr7TR^X_UAkQm)4*iYCO%|iH8%%?Z&QYNJZc0EvQE;I|teCW=qEbp;-&N*|Yqe2|| zoYxO_mTl`~bR_T#EJmtto-Zw#5F@B^JXvyNX$*5iz2ovODRTk~|NTjUC+zHu)u*m# z$OTAh?*P&I!7)o;Vb{_AlUHycOB|@`qGFcUWr+1S(fzgRS%pXr{`twSy+;)#kA>Qs__Fd2b6L$MxVhumuHNN>n$b;5`BSf<>Cup<{-a(Ox$-yMCQQ_t9cDsegT){UdsN+WooW2 z@jY96PDQfxm|DsdZz$cWmA1yoG3#x6j&yIwiRkn+jnnsM;tyPiS~oPbntQ9*?$uvg zllf*?_bQuz#nw`m+)l|O&CQ73d+MIIOFYsbO^sr6he1)X+hr_ywN7|!F3E%mz$`^k zQmR<=ppaivDBH8jTVa}4jC1%?eH-I0h0r^7iKg zdsx;hy_tG*-p)Cuh>+B{r;X)ggYbUF#N-pN-Vj=>tpG1J1!K zwJ&0qOLg8pdGp z#aB_i(~OuO@n-{rW<{Mw&$zEg-6gr*YTt3D5F3#a%5TGx^o#EjA^1B<-g zJ$1FF^mM3d+lj&?kz#*Ou%~fy^39F&ojNaWE%6RR2mk#v1rt-3n!`4r?{CYl4dpS8AZwgV+mR*DJYu68c4U69u_BsSu@Cc)nA=;n3b` z%ek12XYeq2&Bo%Z;lFxs;Zfej&6bwwEk}FXb4F}E zE7y+LA@}LoVAmbIgxlzzId7On$;+y+UgcN3J&`@0l)lv_$y3sHpXjH7avA#2; z#I@|h3*T$fP6{z8Cs8WQ){&@mE7Xp3`5k@LmX*Q6l(cnt;%2q8MPpBy_++z6kdMs$ zqsvw7nmj*EJ~JXb%byL+61Qdg>fn;1m-}&G@$+h9;*xN1mV7`-($*b_n|QNK zn$v^Iz4Z7RsBzscS#BIRW>pV={Pp`LPuek6ro^nQfxZHqQFXf1rI)2^yJyAK<0Bss z7~UOLU_k{{88Dt~nN}2mgI(}(uF$p{$hpDrv&H4N0jI@wAt71Y7^|j3-#ffc> z$6l#Cd;(g9!M?If_35rd^?zD2gTyQ^*do#wOt})as`0Rsy!mBPY5a0**}i&ySo}S9 zeqZbc92#5p-SH!=uf0~Q+7O9tn0X_yM~F{n2q$@36i$clyl(x-0&S!b?t>TC_q&Y6 zOgk%{@p<2AK&j0h>gZtvSjB{e~UwUe=Fy@B%EWxL6epW6VJ!o*AI=+A67ec%t*#1)n}IZ3E|1JnNQKr z!V?m##!s@E5+~bkl@HqF1-`6bHTglyDAU)HL2cs|E$1V#oW+RotQ>n8a)OGpIn9+- zmi3uuX1EAR!({xBAk&OLTMclA4f~eV_|wX7&w(o2G5VA2`|P9-KFcStDo4u6tWVpI zb-}<`(J$p^MqC?)Pm+v0j z+5e|0vFVeFb6e7BsJpIbWNbDmJsoAu}ZjVnt_E<2H~JkHFteM`4L%13h; zc;{B>cIBBQWCKC&fpVBRD%4|Z9@mD?&G9$fN&dOQRXVNeuWBon9(p&iFLJ>0me&;j zjgOTdQj&WVKbMfe-JRS6wpC!I`&Gp$oI?MY)M>Y_Au5~XvM%dDd+2a?c16iJ{3SS* zc779fu1BQfIC*zhF_6Ua0wwEi?ziF=M9Xj&bBFB?#o5|#kDOQ?M|g2cK6Y|euZN>$ z+|MfT+=C7EXS8!{c@&q~=aB|!XKq0ZtwR~zV^_`a!BN#Ea&l@_uvvT|`CE^G|vlwW`ZLdajiIQR*EWs}mf&QP$9Z^JA|2pS89~E}~b{*=foLh($BI)bC1_ zKg+BZzEoOX@L8f*OIj4gb5ub7H184^lm%W||LvR#M=mKX`ht%weV1@~WP!oH!0Y2pwWRc6OYZP;F;uC1Nd&i7~L5*k3#EYw(Y zbw6d3-xnE4$FWNHM5Ikg*X*8GZUg?;c_N;Cr4^(NgaI1IT=egv9Ca O-!?r%-C}Lq;Qs@L)f`{| From 45b1a3645f88759cd246b92532d877076a5a6ce3 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 4 Nov 2024 12:31:08 +0800 Subject: [PATCH 392/619] Remove unused constants and update author tags --- src/main/java/seedu/manager/event/EventList.java | 4 +--- src/main/java/seedu/manager/storage/FileParser.java | 3 --- src/main/java/seedu/manager/storage/Storage.java | 9 --------- src/test/java/seedu/manager/storage/StorageTest.java | 1 - 4 files changed, 1 insertion(+), 16 deletions(-) diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index a4997059e7..43a094ed97 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -246,7 +246,7 @@ public boolean editParticipant(String participantName, String number, String ema * {@code false} if the event does not exist. */ public boolean editEvent(String eventName, String eventNewName, LocalDateTime eventTime, String eventVenue, - Priority eventPriority) { + Priority eventPriority) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { event.updateEvent(eventNewName, eventTime, eventVenue, eventPriority); @@ -280,8 +280,6 @@ public boolean editItem(String itemName, String itemNewName, String eventName) { return false; } - - //@@author jemehgoh /** * Returns true if an item with a given name is successfully added to a given event, returns false otherwise. diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index 7bb29a5d6d..b27e9a7459 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -56,7 +56,6 @@ public void parseEventsFile(EventList events, String filePath) throws IOExceptio } } - //@@author jemehgoh /** * Parses a CSV file containing participant details and loads the item into the corresponding Event in * the specified EventList. @@ -97,7 +96,6 @@ public void parseItemsFile(EventList events, String filePath) throws IOException } } - //@@author KuanHsienn /** * Parses one line of the CSV file containing event details into a {@code Event} in the given event list. * @@ -120,7 +118,6 @@ private void parseEventFileLine(EventList events, String[] fields, DateTimeForma } } - //@@author jemehgoh /** * Parses one line of the CSV file containing participant details into a {@code Participant} in an * {@code Event} in the given event list. diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index 05dcc3c6ce..b744663f5c 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -8,7 +8,6 @@ import java.io.FileWriter; import java.io.IOException; -import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; @@ -18,13 +17,9 @@ * */ public class Storage { - private static final String CSV_LINE_FORMAT = "%s,%s,%s,%s,%s\n"; - private static final String ITEM_CSV_LINE_FORMAT = "%s,%s,%s\n"; - private final String eventFilePath; private final String participantFilePath; private final String itemFilePath; - private final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); /** * Constructs a Storage object with the given file path. @@ -57,7 +52,6 @@ public void saveEvents(EventList events) throws IOException { } } - //@@author jemehgoh /** * Saves the participants stored in the events in the event list to the file. * @@ -90,7 +84,6 @@ public void saveItems(EventList events) throws IOException { } } - //@@author KuanHsienn /** * Loads events from the file and returns an EventList. * @@ -101,7 +94,6 @@ public void loadEvents(EventList events) throws IOException { parser.parseEventsFile(events, eventFilePath); } - //@@author jemehgoh /** * Loads participants from the file into the specified Events in EventList. * @@ -143,7 +135,6 @@ private boolean isTestEnvironment() { return "true".equals(System.getProperty("test.environment")); } - //@@author jemehgoh /** * Saves the data of the participants in a given event to a given file writer. * diff --git a/src/test/java/seedu/manager/storage/StorageTest.java b/src/test/java/seedu/manager/storage/StorageTest.java index b170911a93..ecb01f1704 100644 --- a/src/test/java/seedu/manager/storage/StorageTest.java +++ b/src/test/java/seedu/manager/storage/StorageTest.java @@ -126,7 +126,6 @@ public void testSaveEvents() { } } - //@@author jemehgoh @Test public void loadParticipants_validEntry_success() { try { From a4fef1b6f840d2ee5160693b517d8700fa59a7b4 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 4 Nov 2024 14:18:32 +0800 Subject: [PATCH 393/619] Edit flag for filter by date-time --- .../seedu/manager/command/FilterCommand.java | 12 +-- .../seedu/manager/command/MenuCommand.java | 2 +- .../java/seedu/manager/parser/Parser.java | 12 +-- .../manager/command/FilterCommandTest.java | 73 +++++++++++++++++++ 4 files changed, 86 insertions(+), 13 deletions(-) diff --git a/src/main/java/seedu/manager/command/FilterCommand.java b/src/main/java/seedu/manager/command/FilterCommand.java index 6721d59f11..622ab94f8a 100644 --- a/src/main/java/seedu/manager/command/FilterCommand.java +++ b/src/main/java/seedu/manager/command/FilterCommand.java @@ -25,15 +25,15 @@ public class FilterCommand extends Command { private static final String INVALID_DATE_FORMAT_MESSAGE = """ Invalid date format! - Please use the following format for event time: YYYY-MM-DD + Please use the following format for date: YYYY-MM-DD """; private static final String INVALID_TIME_FORMAT_MESSAGE = """ Invalid time format! - Please use the following format for event time: HH:mm + Please use the following format for time: HH:mm """; private static final String INVALID_DATE_TIME_FORMAT_MESSAGE = """ Invalid date-time format! - Please use the following format for event time: YYYY-MM-DD HH:mm + Please use the following format for date-time: YYYY-MM-DD HH:mm """; protected String flag; @@ -86,14 +86,14 @@ public void execute() { outputMessage.append(INVALID_TIME_FORMAT_MESSAGE); } break; - case "-dt": + case "-x": try { LocalDateTime eventDateTime = LocalDateTime.parse(filterWord, - DateTimeFormatter.ofPattern("YYYY-MM-DD HH:mm")); + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); filteredEvents = eventList.filterByDateTime(eventDateTime); outputMessage.append(FILTER_BY_DATE_TIME_MESSAGE + "\n"); } catch (DateTimeException exception) { - outputMessage.append(INVALID_TIME_FORMAT_MESSAGE); + outputMessage.append(INVALID_DATE_TIME_FORMAT_MESSAGE); } break; case "-u": diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 45e6ebad4e..557607df12 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -24,7 +24,7 @@ public class MenuCommand extends Command { mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. sort -by KEYWORD: Sorts events by name/time/priority. - filter -e/-d/-t/-dt/-u FILTER_DESCRIPTION: Filters events by name/date/time/date-time/priority. + filter -e/-d/-t/-x/-u FILTER_DESCRIPTION: Filters events by name/date/time/date-time/priority. find -e EVENT -p NAME: Finds all participants with specified name in an event. exit: Exit program."""; diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index a05557018c..74e9764f38 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -109,7 +109,7 @@ public class Parser { private static final String INVALID_FILTER_MESSAGE = """ Invalid command! Please enter your commands in the following format: - filter -e/-t/-u FILTER_DESCRIPTION + filter -e/-d/-t/-x/-u FILTER_DESCRIPTION """; private static final String INVALID_FILTER_FLAG_MESSAGE = """ Invalid filter flag! @@ -457,10 +457,10 @@ private Command getEditEventCommand(String input) throws IndexOutOfBoundsExcepti */ private Command getEditItemCommand(String input){ String[] inputParts = input.split(ITEM_REGEX); - String ItemName = inputParts[1].split(ARROW)[0].trim(); - String ItemNewName = inputParts[1].split(ARROW)[1].trim(); + String itemName = inputParts[1].split(ARROW)[0].trim(); + String itemNewName = inputParts[1].split(ARROW)[1].trim(); String eventName = inputParts[2].trim(); - return new EditItemCommand(ItemName, ItemNewName, eventName); + return new EditItemCommand(itemName, itemNewName, eventName); } @@ -694,12 +694,12 @@ private Command parseFilterCommand(String input, String[] commandParts) throws I assert commandParts[0].equalsIgnoreCase(FilterCommand.COMMAND_WORD); try { - String[] inputParts = input.split("(-e|-d|-t|-dt|-u)"); + String[] inputParts = input.split("(-e|-d|-t|-x|-u)"); if (inputParts.length < 2) { throw new InvalidCommandException(INVALID_FILTER_MESSAGE); } - Set validFlags = Set.of(EVENT_FLAG, "-d", "-t", "-dt", "-u"); + Set validFlags = Set.of(EVENT_FLAG, "-d", "-t", "-x", "-u"); if (validFlags.contains(commandParts[1].trim().toLowerCase())) { return new FilterCommand(commandParts[1].trim().toLowerCase(), inputParts[1].trim()); } diff --git a/src/test/java/seedu/manager/command/FilterCommandTest.java b/src/test/java/seedu/manager/command/FilterCommandTest.java index 494b038ae9..33081d6dcd 100644 --- a/src/test/java/seedu/manager/command/FilterCommandTest.java +++ b/src/test/java/seedu/manager/command/FilterCommandTest.java @@ -41,4 +41,77 @@ public void execute_filterByPriority_success(){ assertFalse(filterCommand.getCanExit()); } + @Test + public void execute_filterByKeyword_success(){ + FilterCommand filterCommand = new FilterCommand("-e", "A"); + + filterCommand.setData(eventList); + filterCommand.execute(); + + String expectedMessage = """ + Events successfully filtered by name! + 1. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A / \ + Event Priority: LOW / Done: N + """; + + assertEquals(expectedMessage, filterCommand.getMessage()); + assertFalse(filterCommand.getCanExit()); + } + + @Test + public void execute_filterByDate_success(){ + FilterCommand filterCommand = new FilterCommand("-d", "2024-10-23"); + + filterCommand.setData(eventList); + filterCommand.execute(); + + String expectedMessage = """ + Events successfully filtered by date! + 1. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C / \ + Event Priority: HIGH / Done: N + 2. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B / \ + Event Priority: MEDIUM / Done: N + """; + + assertEquals(expectedMessage, filterCommand.getMessage()); + assertFalse(filterCommand.getCanExit()); + } + + @Test + public void execute_filterByTime_success(){ + FilterCommand filterCommand = new FilterCommand("-t", "21:00"); + + filterCommand.setData(eventList); + filterCommand.execute(); + + String expectedMessage = """ + Events successfully filtered by time! + 1. Event name: C-Event / Event time: 2024-10-23 21:00 / Event venue: Venue C / \ + Event Priority: HIGH / Done: N + 2. Event name: A-Event / Event time: 2023-10-23 21:00 / Event venue: Venue A / \ + Event Priority: LOW / Done: N + """; + + assertEquals(expectedMessage, filterCommand.getMessage()); + assertFalse(filterCommand.getCanExit()); + } + + @Test + public void execute_filterByDateTime_success(){ + FilterCommand filterCommand = new FilterCommand("-x", "2024-10-23 21:05"); + + filterCommand.setData(eventList); + filterCommand.execute(); + + String expectedMessage = """ + Events successfully filtered by date-time! + 1. Event name: B-Event / Event time: 2024-10-23 21:05 / Event venue: Venue B / \ + Event Priority: MEDIUM / Done: N + """; + + assertEquals(expectedMessage, filterCommand.getMessage()); + assertFalse(filterCommand.getCanExit()); + } + + } From cc8290a4babde99cedabb63bfd781986db4b8f26 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 4 Nov 2024 14:19:15 +0800 Subject: [PATCH 394/619] Update test for filter command --- text-ui-test/EXPECTED.TXT | 27 ++++++++++++++++++++++++++- text-ui-test/input.txt | 6 ++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 8bda37b39e..04b3d7adf1 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -20,7 +20,7 @@ mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. sort -by KEYWORD: Sorts events by name/time/priority. -filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. +filter -e/-d/-t/-x/-u FILTER_DESCRIPTION: Filters events by name/date/time/date-time/priority. find -e EVENT -p NAME: Finds all participants with specified name in an event. exit: Exit program. ------------------------ @@ -83,6 +83,31 @@ Enter a command: There are 2 events in your list! Here are your scheduled events 1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y 2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N +------------------------ +Enter a command: Events successfully filtered by name! +1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y + +------------------------ +Enter a command: Events successfully filtered by date! +1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y + +------------------------ +Enter a command: Events successfully filtered by time! +1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N + +------------------------ +Enter a command: Events successfully filtered by date-time! +1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y + +------------------------ +Enter a command: Events successfully filtered by priority! +1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N + +------------------------ +Enter a command: There are 2 events in your list! Here are your scheduled events: +1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N + ------------------------ Enter a command: Item added successfully ------------------------ diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index bddbfbffc8..7630166894 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -17,6 +17,12 @@ add -e anniversary celebration -t 2024-10-23 12:34 -v hotel -u medium sort -by name sort -by time list +filter -e party +filter -d 2024-10-10 +filter -t 12:34 +filter -x 2024-10-10 15:00 +filter -u medium +list add -m balloon -e anniversary celebration view -e anniversary celebration -y item edit -m balloon > cake -e anniversary celebration From 4c806477c0ebd206685caee5e291e9b461d81505 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Mon, 4 Nov 2024 15:38:12 +0800 Subject: [PATCH 395/619] Update EXPECTED.TXT --- text-ui-test/EXPECTED.TXT | 1 - 1 file changed, 1 deletion(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index a2d42df869..cd45ae1e64 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -25,7 +25,6 @@ find -e EVENT -p PARTICIPANT: Finds all participants with specified name in an e exit: Exit program ------------------------ Events saved successfully. - ------------------------ Enter a command: There are 0 events in your list! Here are your scheduled events: From 489d28509d976cbcd11c7f69d8414f55282d569a Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Mon, 4 Nov 2024 15:57:44 +0800 Subject: [PATCH 396/619] Update EXPECTED.TXT --- text-ui-test/EXPECTED.TXT | 2 -- 1 file changed, 2 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index cd45ae1e64..93c82a78fb 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -24,8 +24,6 @@ filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. find -e EVENT -p PARTICIPANT: Finds all participants with specified name in an event. exit: Exit program ------------------------ -Events saved successfully. ------------------------- Enter a command: There are 0 events in your list! Here are your scheduled events: ------------------------ From 9e3ca61c6804ba96df9c168d703c4e786459511e Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 4 Nov 2024 16:15:49 +0800 Subject: [PATCH 397/619] Update I/O redirection tests --- text-ui-test/EXPECTED.TXT | 14 ++++++++++++++ text-ui-test/input.txt | 3 +++ 2 files changed, 17 insertions(+) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 919b542010..612169aee8 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -105,6 +105,20 @@ Enter a command: Events successfully sorted by time! 1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y 2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N +------------------------ +Events saved successfully. +------------------------ +Enter a command: Item added successfully +------------------------ +Events saved successfully. +------------------------ +Enter a command: Item accounted for. +------------------------ +Events saved successfully. +------------------------ +Enter a command: There are 1 items in dinner party! Here are your items: +1. curry chicken [X] + ------------------------ Events saved successfully. ------------------------ diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index cc554fb443..681cd3a700 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -16,4 +16,7 @@ view -e dinner party -y participant add -e anniversary celebration -t 2024-10-23 12:34 -v hotel -u medium sort -by name sort -by time +add -m curry chicken -e dinner party +mark -m curry chicken -e dinner party -s accounted +view -e dinner party -y item exit From 8b6dd498f8c46aea1b78ea3c207a115b3a485b87 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Mon, 4 Nov 2024 17:00:56 +0800 Subject: [PATCH 398/619] Reformat storage saving and loading functionality to a single file --- src/main/java/seedu/manager/Main.java | 14 +- .../seedu/manager/storage/FileParser.java | 173 ++++------------ .../java/seedu/manager/storage/Storage.java | 185 +++--------------- 3 files changed, 74 insertions(+), 298 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 25d3dadf38..a027f2f768 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -16,7 +16,7 @@ public class Main { private static final String EVENT_FILE_PATH = "events.csv"; private static final String PARTICIPANT_FILE_PATH = "participants.csv"; private static final String ITEM_FILE_PATH = "items.csv"; - private static final Storage storage = new Storage(EVENT_FILE_PATH, PARTICIPANT_FILE_PATH, ITEM_FILE_PATH); + private static final Storage storage = new Storage(EVENT_FILE_PATH); /** * Main entry-point for the EventManagerCLI application. @@ -58,9 +58,9 @@ private static void runCommandLoop() { */ private static void loadData() { try { - storage.loadEvents(events); - storage.loadParticipants(events); - storage.loadItems(events); + storage.loadInfo(events); +// storage.loadParticipants(events); +// storage.loadItems(events); ui.showMessage("Events loaded successfully."); } catch (IOException exception) { ui.showErrorMessageToUser(exception); @@ -73,9 +73,9 @@ private static void loadData() { */ private static void saveData() { try { - storage.saveEvents(events); - storage.saveParticipants(events); - storage.saveItems(events); + storage.saveInfo(events); +// storage.saveParticipants(events); +// storage.saveItems(events); ui.showMessage("Events saved successfully."); } catch (IOException exception) { ui.showErrorMessageToUser(exception); diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index b27e9a7459..0ad142cd8c 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -14,161 +14,83 @@ import java.util.List; import java.util.logging.Logger; -import static java.util.logging.Level.INFO; -import static java.util.logging.Level.WARNING; - -/** - * Represents the file parser for EventManagerCLI - */ +//@@author KuanHsienn public class FileParser { private static final Logger logger = Logger.getLogger(FileParser.class.getName()); - //@@author KuanHsienn - /** - * Parses a CSV file containing event details and loads the events into the specified EventList. - * - * This method reads each line from the specified file, expecting the format to be: - *
    -     * eventName, eventTime, eventVenue, eventPriority
    -     * 
    - * where: - * - eventName is a String representing the name of the event. - * - eventTime is a String formatted as "yyyy-MM-dd HH:mm" that will be parsed into a LocalDateTime object. - * - eventVenue is a String representing the venue of the event. - * - eventPriority is a String representing the priority level of the event. - * - * If a line does not contain exactly three parts, it is skipped. - * - * @param events The EventList where the parsed events will be added. - * @param filePath The path to the file containing the event details. - * @throws IOException If there is an error reading from the file or if the file cannot be found. - */ - public void parseEventsFile(EventList events, String filePath) throws IOException { + public void parseFile(EventList events, String filePath) throws IOException { try { - logger.log(INFO, "Loading events from file"); + logger.info("Loading data from file"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); List lines = getFileLines(filePath); for (String[] line : lines) { - parseEventFileLine(events, line, formatter); - } - } catch (IOException | CsvException exception) { - throw new IOException("Error loading events from file: " + filePath + "."); - } - } - - /** - * Parses a CSV file containing participant details and loads the item into the corresponding Event in - * the specified EventList. - * - * @param events The EventList of Events to which the participants will be added. - * @param filePath The path to the file containing the participant details. - * @throws IOException If there is an error reading from the file or if the file cannot be found. - */ - public void parseParticipantsFile(EventList events, String filePath) throws IOException { - try { - logger.log(INFO, "Loading event participants from file"); - List lines = getFileLines(filePath); - for (String[] line : lines) { - parseParticipantFileLine(events, line); + parseLine(events, line, formatter); } } catch (IOException | CsvException exception) { - throw new IOException("Error loading events from file: " + filePath + "."); + throw new IOException("Error loading data from file: " + filePath + "."); } } - /** - * Parses a CSV file containing item details and loads the item into the corresponding Event in - * the specified EventList. - * - * @param events The EventList of Events to which the items will be added. - * @param filePath The path to the file containing the item details. - * @throws IOException If there is an error reading from the file or if the file cannot be found. - */ - public void parseItemsFile(EventList events, String filePath) throws IOException { + private void parseLine(EventList events, String[] fields, DateTimeFormatter formatter) { + String type = fields[0]; try { - logger.log(INFO, "Loading event items from file"); - List lines = getFileLines(filePath); - for (String[] line : lines) { - parseItemFileLine(events, line); + switch (type) { + case "EVENT": + parseEventFileLine(events, fields, formatter); + break; + case "PARTICIPANT": + parseParticipantFileLine(events, fields); + break; + case "ITEM": + parseItemFileLine(events, fields); + break; + default: + logger.warning("Unknown entry type in file"); } - } catch (IOException | CsvException exception) { - throw new IOException("Error loading events from file: " + filePath + "."); + } catch (Exception exception) { + logger.warning("File line cannot be parsed, entry not loaded"); } } - /** - * Parses one line of the CSV file containing event details into a {@code Event} in the given event list. - * - * @param events the given event list. - * @param fields the fields of the line of the CSV file being parsed. - * @param formatter the given date-time formatter (to parse event date and time). - * @throws IOException if line cannot be parsed successfully. - */ private void parseEventFileLine(EventList events, String[] fields, DateTimeFormatter formatter) throws IOException { try { - String eventName = fields[0].trim(); - LocalDateTime time = LocalDateTime.parse(fields[1].trim(), formatter); - String venue = fields[2].trim(); - Priority priority = Priority.valueOf(fields[3].trim().toUpperCase()); - boolean isDone = getIsMarked(fields[4].trim()); + String eventName = fields[1].trim(); + LocalDateTime time = LocalDateTime.parse(fields[2].trim(), formatter); + String venue = fields[3].trim(); + Priority priority = Priority.valueOf(fields[4].trim().toUpperCase()); + boolean isDone = getIsMarked(fields[5].trim()); events.addEvent(eventName, time, venue, priority, isDone); - } catch (DateTimeParseException | IndexOutOfBoundsException | NullPointerException - | IllegalArgumentException exception) { - logger.log(WARNING, "File line cannot be parsed, event not loaded"); + } catch (DateTimeParseException | IndexOutOfBoundsException | NullPointerException exception) { + logger.warning("File line cannot be parsed, event not loaded"); } } - /** - * Parses one line of the CSV file containing participant details into a {@code Participant} in an - * {@code Event} in the given event list. - * - * @param events the given event list. - * @param fields the fields in the line of the CSV file being parsed. - * @throws IOException if line cannot be parsed successfully. - */ private void parseParticipantFileLine(EventList events, String[] fields) throws IOException { try { - String participantName = fields[0].trim(); - String number = fields[1].trim(); - String email = fields[2].trim(); - boolean isPresent = getIsMarked(fields[3].trim()); + String participantName = fields[1].trim(); + String number = fields[2].trim(); + String email = fields[3].trim(); String eventName = fields[4].trim(); - boolean isLoaded = events.addParticipantToEvent(participantName, number, email, - isPresent, eventName); - logOnUnsuccessfulLoad(isLoaded); + boolean isPresent = getIsMarked(fields[5].trim()); + boolean isLoaded = events.addParticipantToEvent(participantName, number, email, isPresent, eventName); + eventUnsuccessfulLoad(isLoaded); } catch (IndexOutOfBoundsException | NullPointerException exception) { - logger.log(WARNING, "File line cannot be parsed, participant not loaded"); + logger.warning("File line cannot be parsed, participant not loaded"); } } - /** - * Parses one line of the CSV file containing item details into a {@code Item} in an - * {@code Event} in the given event list. - * - * @param events the given event list. - * @param fields the fields in the line of the CSV file being parsed. - * @throws IOException if line cannot be parsed successfully. - */ private void parseItemFileLine(EventList events, String[] fields) throws IOException { try { - String itemName = fields[0].trim(); - boolean isPresent = getIsMarked(fields[1].trim()); + String itemName = fields[1].trim(); String eventName = fields[2].trim(); + boolean isPresent = getIsMarked(fields[3].trim()); boolean isLoaded = events.addItemToEvent(itemName, isPresent, eventName); - logOnUnsuccessfulLoad(isLoaded); + eventUnsuccessfulLoad(isLoaded); } catch (IndexOutOfBoundsException | NullPointerException exception) { - logger.log(WARNING, "File line cannot be parsed, item not loaded"); + logger.warning("File line cannot be parsed, item not loaded"); } } - /** - * Returns a list of fields for each line of a {@code .csv} file at a given file path. - * - * @param filePath the file path of the {@code .csv} file. - * @return a list of fields for each line of the file at filePath. - * @throws IOException if the file at the specified file path could not be read. - * @throws CsvException if the reader could not read the file. - */ private List getFileLines(String filePath) throws IOException, CsvException { CSVReader reader = new CSVReaderBuilder(new FileReader(filePath)).build(); List lines = reader.readAll(); @@ -176,31 +98,20 @@ private List getFileLines(String filePath) throws IOException, CsvExce return lines; } - /** - * Returns true if the given mark status is "Y", returns false otherwise. - * - * @param markStatus the given mark status. - * @return {@code true} if the markStatus is "Y", {@code false} otherwise. - */ private boolean getIsMarked(String markStatus) { if (markStatus.equalsIgnoreCase("Y")) { return true; } else if (markStatus.equalsIgnoreCase("N")) { return false; } else { - logger.log(WARNING, "Cannot parse mark status, setting to false"); + logger.warning("Cannot parse mark status, setting to false"); return false; } } - /** - * Logs a warning message if a file entry was not loaded. - * - * @param isLoaded {@code true} if the entry was loaded, {@code false} otherwise. - */ - private void logOnUnsuccessfulLoad(boolean isLoaded) { + private void eventUnsuccessfulLoad(boolean isLoaded) { if (!isLoaded) { - logger.log(WARNING, "Associated event not found, entry not loaded"); + logger.warning("Associated event not found, entry not loaded"); } } } diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index b744663f5c..75353d2c12 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -8,200 +8,65 @@ import java.io.FileWriter; import java.io.IOException; -import java.util.ArrayList; import java.util.List; //@@author KuanHsienn -/** - * Represents the storage component for saving and loading events. - * - */ public class Storage { - private final String eventFilePath; - private final String participantFilePath; - private final String itemFilePath; + private final String filePath; - /** - * Constructs a Storage object with the given file path. - * - * @param eventFilePath The path to the storage file. - */ - public Storage(String eventFilePath, String participantFilePath, String itemFilePath) { + public Storage(String filePath) { if (!isTestEnvironment()) { - assert isValidFilePath(eventFilePath) : "Invalid file path: " + eventFilePath; + assert isValidFilePath(filePath) : "Invalid file path: " + filePath; } - this.eventFilePath = eventFilePath; - this.participantFilePath = participantFilePath; - this.itemFilePath = itemFilePath; + this.filePath = filePath; } - /** - * Saves the list of events to the file. - * - * @param events The EventList to be saved. - * @throws IOException if there's an error writing to the file. - */ - public void saveEvents(EventList events) throws IOException { - try (CSVWriter writer = new CSVWriter(new FileWriter(eventFilePath))) { + public void saveInfo(EventList events) throws IOException { + try (CSVWriter writer = new CSVWriter(new FileWriter(filePath))) { for (Event event : events.getList()) { - String[] fields = getEventFields(event); - writer.writeNext(fields); - } - } catch (IOException exception) { - throw new IOException("Error saving events to file: " + eventFilePath); - } - } + writer.writeNext(getEventFields(event)); - /** - * Saves the participants stored in the events in the event list to the file. - * - * @param events The event list with events containing participant data. - * @throws IOException if there is an error writing to the file. - */ - public void saveParticipants(EventList events) throws IOException { - try (CSVWriter writer = new CSVWriter(new FileWriter(participantFilePath))) { - for (Event event : events.getList()) { - saveEventParticipants(event, writer); - } - } catch (IOException exception) { - throw new IOException("Error saving events to file: " + participantFilePath); - } - } + for (Participant participant : event.getParticipantList()) { + writer.writeNext(getParticipantFields(participant, event)); + } - /** - * Saves the items stored in the events in the event list to the file. - * - * @param events The event list with events containing item data. - * @throws IOException if there is an error writing to the file. - */ - public void saveItems(EventList events) throws IOException { - try (CSVWriter writer = new CSVWriter(new FileWriter(itemFilePath))) { - for (Event event : events.getList()) { - saveEventItems(event, writer); + for (Item item : event.getItemList()) { + writer.writeNext(getItemFields(event, item)); + } } } catch (IOException exception) { - throw new IOException("Error saving events to file: " + itemFilePath); + throw new IOException("Error saving data to file: " + filePath); } } - /** - * Loads events from the file and returns an EventList. - * - * @throws IOException if there's an error reading from the file. - */ - public void loadEvents(EventList events) throws IOException { - FileParser parser = new FileParser(); - parser.parseEventsFile(events, eventFilePath); - } - - /** - * Loads participants from the file into the specified Events in EventList. - * - * @throws IOException if there is an error reading from the file. - */ - public void loadParticipants(EventList events) throws IOException { - FileParser parser = new FileParser(); - parser.parseParticipantsFile(events, participantFilePath); - } - - /** - * Loads items from the file into the specified Events in EventList. - * - * @throws IOException if there is an error reading from the file. - */ - public void loadItems(EventList events) throws IOException { + public void loadInfo(EventList events) throws IOException { FileParser parser = new FileParser(); - parser.parseItemsFile(events, itemFilePath); + parser.parseFile(events, filePath); } - //@@author KuanHsienn - /** - * Checks if the given file path is valid and matches the expected path. - * - * @param filePath The path to check. - * @return True if valid and matches, false otherwise. - */ private boolean isValidFilePath(String filePath) { - String expectedPath = "events.csv"; // You can change this if needed + String expectedPath = "data.csv"; return filePath.equals(expectedPath); } - /** - * Checks if the code is running in a test environment. - * - * @return True if in test environment, false otherwise. - */ private boolean isTestEnvironment() { return "true".equals(System.getProperty("test.environment")); } - /** - * Saves the data of the participants in a given event to a given file writer. - * - * @param event the event containing the participant data. - * @param writer the file writer. - * @throws IOException if the participant cannot be written into the file. - */ - private void saveEventParticipants(Event event, CSVWriter writer) throws IOException { - ArrayList participants = event.getParticipantList(); - for (Participant participant : participants) { - String[] fields = getParticipantFields(participant, event); - writer.writeNext(fields); - } - } - - /** - * Saves the data of the items in a given event to a given file writer. - * - * @param event the event containing the item data. - * @param writer the file writer. - * @throws IOException if the participant cannot be written into the file. - */ - private void saveEventItems(Event event, CSVWriter writer) throws IOException { - ArrayList items = event.getItemList(); - for (Item item : items) { - String[] fields = getItemFields(event, item); - writer.writeNext(fields); - } - } - - /** - * Returns an array of the fields for a given {@link Event}. - * - * @param event the given {@link Event}. - * @return an array of the fields of `event`. - */ private static String[] getEventFields(Event event) { - List fieldsList = List.of(event.getEventName(), event.getEventTimeString(), + List fieldsList = List.of("EVENT", event.getEventName(), event.getEventTimeString(), event.getEventVenue(), event.getEventPriorityString(), event.markIfDone()); - return fieldsList.toArray(new String[5]); + return fieldsList.toArray(new String[6]); } - /** - * Returns an array of the fields for a given {@link Participant} in a given {@link Event}. - * - * @param participant the given {@link Participant}. - * @param event the given {@link Event}. - * @return an array of the fields of `event`. - */ private String[] getParticipantFields(Participant participant, Event event) { - List fieldsList = List.of(participant.getName(), participant.getNumber(), - participant.getEmail(), participant.markFileLineIfPresent(), event.getEventName()); - return fieldsList.toArray(new String[5]); + List fieldsList = List.of("PARTICIPANT", participant.getName(), participant.getNumber(), + participant.getEmail(), event.getEventName(), participant.markFileLineIfPresent()); + return fieldsList.toArray(new String[6]); } - /** - * Returns an array of the fields for a given {@link Item} in a given {@link Event}. - * - * @param item the given {@link Item}. - * @param event the given {@link Event}. - * @return an array of the fields of `event`. - */ private String[] getItemFields(Event event, Item item) { - List fieldsList = List.of(item.getName(), item.markFileLineIfPresent(), - event.getEventName()); - return fieldsList.toArray(new String[3]); + List fieldsList = List.of("ITEM", item.getName(), event.getEventName(), item.markFileLineIfPresent()); + return fieldsList.toArray(new String[4]); } -} - - +} \ No newline at end of file From 2e55dc531ec1179f9b87886b36452e874e6e261e Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Mon, 4 Nov 2024 18:01:58 +0800 Subject: [PATCH 399/619] Add Sequence Diagram to list feature. --- docs/DeveloperGuide.md | 6 +++++- docs/images/ListCommandSequenceDiagram.png | Bin 0 -> 24076 bytes 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 docs/images/ListCommandSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 4fdc26debd..1314dc0a56 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -79,7 +79,7 @@ The `Event` component does the following: This section describes some noteworthy details on how certain features are implemented. -### List feature[TBD] +### List feature The `list` feature allows users to view all scheduled events in the system. It is implemented in the `ListCommand` class, which extends the base `Command` class and formats the output to display all events. @@ -109,6 +109,10 @@ Events are appended to `outputMessage` with numbered formatting for readability. 4. Output Generation: The method stores the generated `outputMessage` in `this.message`, ready for display. +The interactions between components during the execution of the `list` command are show in the **Sequence Diagram** below: + + + ### Add feature The `add` feature allow users to add events/participants based on relevant flags. diff --git a/docs/images/ListCommandSequenceDiagram.png b/docs/images/ListCommandSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..b6310c23bf4e28f2d5ad2259560ddaa75760ab18 GIT binary patch literal 24076 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 literal 0 HcmV?d00001 From 2844d3f7aaa2dad31b57277f1960608878278790 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Mon, 4 Nov 2024 18:11:34 +0800 Subject: [PATCH 400/619] Modify StorageTest --- src/main/java/seedu/manager/Main.java | 9 +- .../seedu/manager/storage/StorageTest.java | 156 ++++++------------ text-ui-test/EXPECTED.TXT | 44 +---- 3 files changed, 54 insertions(+), 155 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index a027f2f768..d306409fc2 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -13,9 +13,7 @@ public class Main { private static final Ui ui = new Ui(); private static EventList events = new EventList(); - private static final String EVENT_FILE_PATH = "events.csv"; - private static final String PARTICIPANT_FILE_PATH = "participants.csv"; - private static final String ITEM_FILE_PATH = "items.csv"; + private static final String EVENT_FILE_PATH = "information.csv"; private static final Storage storage = new Storage(EVENT_FILE_PATH); /** @@ -59,8 +57,6 @@ private static void runCommandLoop() { private static void loadData() { try { storage.loadInfo(events); -// storage.loadParticipants(events); -// storage.loadItems(events); ui.showMessage("Events loaded successfully."); } catch (IOException exception) { ui.showErrorMessageToUser(exception); @@ -74,9 +70,6 @@ private static void loadData() { private static void saveData() { try { storage.saveInfo(events); -// storage.saveParticipants(events); -// storage.saveItems(events); - ui.showMessage("Events saved successfully."); } catch (IOException exception) { ui.showErrorMessageToUser(exception); } diff --git a/src/test/java/seedu/manager/storage/StorageTest.java b/src/test/java/seedu/manager/storage/StorageTest.java index ecb01f1704..121291f748 100644 --- a/src/test/java/seedu/manager/storage/StorageTest.java +++ b/src/test/java/seedu/manager/storage/StorageTest.java @@ -1,8 +1,8 @@ package seedu.manager.storage; -import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; import seedu.manager.event.Event; +import seedu.manager.enumeration.Priority; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.AfterEach; @@ -14,15 +14,14 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.File; +import java.io.FileWriter; import java.io.IOException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; //@@author KuanHsienn public class StorageTest { - private static final String TEST_EVENTS_FILE_PATH = "test_events.csv"; - private static final String TEST_PARTICIPANTS_FILE_PATH = "test_participants.csv"; - private static final String TEST_ITEMS_FILE_PATH = "test_items.csv"; + private static final String TEST_FILE_PATH = "test_file.csv"; private static final String NON_EXISTENT_FILE_PATH = "non_existent_file.txt"; private Storage storage; @@ -32,26 +31,16 @@ public class StorageTest { @BeforeEach public void setUp() { System.setProperty("test.environment", "true"); // Set the system property for testing - storage = new Storage(TEST_EVENTS_FILE_PATH, TEST_PARTICIPANTS_FILE_PATH, TEST_ITEMS_FILE_PATH); + storage = new Storage(TEST_FILE_PATH); eventList = new EventList(); formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); } @AfterEach public void tearDown() { - File eventsFile = new File(TEST_EVENTS_FILE_PATH); - File participantsFile = new File(TEST_PARTICIPANTS_FILE_PATH); - File itemsFile = new File(TEST_ITEMS_FILE_PATH); + File itemsFile = new File(TEST_FILE_PATH); // Clean up the test files after each test - if (eventsFile.exists()) { - eventsFile.delete(); - } - - if (participantsFile.exists()) { - participantsFile.delete(); - } - if (itemsFile.exists()) { itemsFile.delete(); } @@ -59,67 +48,72 @@ public void tearDown() { @Test public void testLoadEventsFileNotExists() { - Storage nonExistentFileStorage = new Storage(NON_EXISTENT_FILE_PATH, NON_EXISTENT_FILE_PATH, - NON_EXISTENT_FILE_PATH); + Storage nonExistentFileStorage = new Storage(NON_EXISTENT_FILE_PATH); IOException exception = assertThrows(IOException.class, () -> { - nonExistentFileStorage.loadEvents(eventList); + nonExistentFileStorage.loadInfo(eventList); }); - assertEquals("Error loading events from file: " + NON_EXISTENT_FILE_PATH + ".", exception.getMessage()); + assertEquals("Error loading data from file: " + NON_EXISTENT_FILE_PATH + ".", exception.getMessage()); } @Test public void testLoadEvents() { try { - java.nio.file.Files.writeString( - java.nio.file.Paths.get(TEST_EVENTS_FILE_PATH), - "Meeting,2024-10-25 10:00,Conference Room,HIGH,Y\n" + - "Workshop,2024-10-26 14:00,Main Hall,MEDIUM,N\n" - ); + FileWriter writer = new FileWriter(TEST_FILE_PATH); + writer.append("EVENT,Test Event,2024-11-04 12:00,Test Venue,LOW,N\n"); + writer.append("PARTICIPANT,Alice,12345678,alice@example.com,Test Event,N\n"); + writer.append("ITEM,Test Item,Test Event,N\n"); + writer.close(); } catch (IOException exception) { fail("Failed to set up the test data file: " + exception.getMessage()); } try { - storage.loadEvents(eventList); - } catch (IOException exception) { - fail("Exception should not be thrown when loading events: " + exception.getMessage()); - } - - assertEquals(2, eventList.getList().size()); - - Event firstEvent = eventList.getList().get(0); - assertEquals("Meeting", firstEvent.getEventName()); - assertEquals("2024-10-25 10:00", firstEvent.getEventTimeString()); - assertEquals("Conference Room", firstEvent.getEventVenue()); - - Event secondEvent = eventList.getList().get(1); - assertEquals("Workshop", secondEvent.getEventName()); - assertEquals("2024-10-26 14:00", secondEvent.getEventTimeString()); - assertEquals("Main Hall", secondEvent.getEventVenue()); + storage.loadInfo(eventList); + } catch (IOException e) { + fail("Loading info failed: " + e.getMessage()); + } + + // Verify that the event was loaded correctly + assertEquals(1, eventList.getList().size()); + Event loadedEvent = eventList.getList().get(0); + assertEquals("Test Event", loadedEvent.getEventName()); + assertEquals(1, loadedEvent.getParticipantList().size()); + assertEquals("Alice", loadedEvent.getParticipantList().get(0).getName()); + assertEquals(1, loadedEvent.getItemList().size()); + assertEquals("Test Item", loadedEvent.getItemList().get(0).getName()); } @Test public void testSaveEvents() { eventList.addEvent("Meeting", LocalDateTime.parse("2024-10-25 10:00", formatter), "Conference Room", Priority.HIGH); + eventList.addParticipantToEvent("Alice", "12345678", "alice@example.com", false, "Meeting"); + eventList.addItemToEvent("Projector", false, "Meeting"); + eventList.addEvent("Workshop", LocalDateTime.parse("2024-10-26 14:00", formatter), "Main Hall", Priority.MEDIUM); + eventList.addParticipantToEvent("Bob", "87654321", "bob@example.com", false, "Workshop"); + eventList.addItemToEvent("Whiteboard", false, "Workshop"); try { - storage.saveEvents(eventList); + storage.saveInfo(eventList); } catch (IOException exception) { fail("Exception should not be thrown when saving events: " + exception.getMessage()); } - File file = new File(TEST_EVENTS_FILE_PATH); - assertTrue(file.exists()); + File file = new File(TEST_FILE_PATH); + assertTrue(file.exists(), "The file should exist after saving events."); try { String content = new String(java.nio.file.Files.readAllBytes(file.toPath())); - String expectedContent = "\"Meeting\",\"2024-10-25 10:00\",\"Conference Room\",\"HIGH\",\"N\"\n" - + "\"Workshop\",\"2024-10-26 14:00\",\"Main Hall\",\"MEDIUM\",\"N\"\n"; + String expectedContent = "\"EVENT\",\"Meeting\",\"2024-10-25 10:00\",\"Conference Room\",\"HIGH\",\"N\"\n" + + "\"PARTICIPANT\",\"Alice\",\"12345678\",\"alice@example.com\",\"Meeting\",\"N\"\n" + + "\"ITEM\",\"Projector\",\"Meeting\",\"N\"\n" + + "\"EVENT\",\"Workshop\",\"2024-10-26 14:00\",\"Main Hall\",\"MEDIUM\",\"N\"\n" + + "\"PARTICIPANT\",\"Bob\",\"87654321\",\"bob@example.com\",\"Workshop\",\"N\"\n" + + "\"ITEM\",\"Whiteboard\",\"Workshop\",\"N\"\n"; assertEquals(expectedContent, content, "The file content does not match the expected output."); } catch (IOException exception) { fail("Exception should not be thrown when reading the saved file: " + exception.getMessage()); @@ -129,8 +123,9 @@ public void testSaveEvents() { @Test public void loadParticipants_validEntry_success() { try { - java.nio.file.Files.writeString(java.nio.file.Paths.get(TEST_PARTICIPANTS_FILE_PATH), - "John Doe,9451 3230,jdoe@gmail.com,N,Meeting\n"); + FileWriter writer = new FileWriter(TEST_FILE_PATH); + writer.append("PARTICIPANT,John Doe,9451 3230,jdoe@gmail.com,Meeting,N\n"); + writer.close(); } catch (IOException exception) { fail("Failed to set up the test data file: " + exception.getMessage()); } @@ -139,7 +134,7 @@ public void loadParticipants_validEntry_success() { "Conference Room", Priority.HIGH); try { - storage.loadParticipants(eventList); + storage.loadInfo(eventList); } catch (IOException exception) { fail("Exception should not be thrown when loading events: " + exception.getMessage()); } @@ -150,8 +145,9 @@ public void loadParticipants_validEntry_success() { @Test public void loadParticipants_invalidEntry_failure() { try { - java.nio.file.Files.writeString(java.nio.file.Paths.get(TEST_PARTICIPANTS_FILE_PATH), - "John Doe,,,jb,\n"); + FileWriter writer = new FileWriter(TEST_FILE_PATH); + writer.append("PARTICIPANT,John Doe,,,jb,N\n"); + writer.close(); } catch (IOException exception) { fail("Failed to set up the test data file: " + exception.getMessage()); } @@ -160,7 +156,7 @@ public void loadParticipants_invalidEntry_failure() { "Conference Room", Priority.HIGH); try { - storage.loadParticipants(eventList); + storage.loadInfo(eventList); } catch (IOException exception) { fail("Exception should not be thrown when loading events: " + exception.getMessage()); } @@ -171,8 +167,9 @@ public void loadParticipants_invalidEntry_failure() { @Test public void loadItems_validEntry_success() { try { - java.nio.file.Files.writeString(java.nio.file.Paths.get(TEST_ITEMS_FILE_PATH), - "Black pens,N,Meeting\n"); + FileWriter writer = new FileWriter(TEST_FILE_PATH); + writer.append("ITEM,Black Pens,Meeting,N\n"); + writer.close(); } catch (IOException exception) { fail("Failed to set up the test data file: " + exception.getMessage()); } @@ -181,62 +178,13 @@ public void loadItems_validEntry_success() { "Conference Room", Priority.HIGH); try { - storage.loadItems(eventList); + storage.loadInfo(eventList); } catch (IOException exception) { fail("Exception should not be thrown when loading events: " + exception.getMessage()); } assertEquals(1, eventList.getEventByName("Meeting").get().getItemCount()); } - - @Test - public void saveParticipants_validItem_success() { - eventList.addEvent("Meeting", LocalDateTime.parse("2024-10-25 10:00", formatter), - "Conference Room", Priority.HIGH); - eventList.addParticipantToEvent("John Doe", "9451 3230", "jdoe@gmail.com", "Meeting"); - - try { - storage.saveParticipants(eventList); - } catch (IOException exception) { - fail("Exception should not be thrown when saving events: " + exception.getMessage()); - } - - File file = new File(TEST_PARTICIPANTS_FILE_PATH); - assertTrue(file.exists()); - - try { - String content = new String(java.nio.file.Files.readAllBytes(file.toPath())); - String expectedContent = "\"John Doe\",\"9451 3230\",\"jdoe@gmail.com\",\"N\",\"Meeting\"\n"; - assertEquals(expectedContent, content, "The file content does not match the expected output."); - } catch (IOException exception) { - fail("Exception should not be thrown when reading the saved file: " + exception.getMessage()); - } - } - - @Test - public void saveItems_validItem_success() { - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); - eventList.addEvent("Meeting", LocalDateTime.parse("2024-10-25 10:00", formatter), - "Conference Room", Priority.HIGH); - eventList.addItemToEvent("Black pens", "Meeting"); - - try { - storage.saveItems(eventList); - } catch (IOException exception) { - fail("Exception should not be thrown when saving events: " + exception.getMessage()); - } - - File file = new File(TEST_ITEMS_FILE_PATH); - assertTrue(file.exists()); - - try { - String content = new String(java.nio.file.Files.readAllBytes(file.toPath())); - String expectedContent = "\"Black pens\",\"N\",\"Meeting\"\n"; - assertEquals(expectedContent, content, "The file content does not match the expected output."); - } catch (IOException exception) { - fail("Exception should not be thrown when reading the saved file: " + exception.getMessage()); - } - } } diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 02f87c3153..9b27850df4 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -1,5 +1,5 @@ Welcome to EventManagerCLI. -Error loading events from file: events.csv. +Error loading data from file: information.csv. ------------------------ Enter a command: Invalid command! ------------------------ @@ -24,12 +24,8 @@ filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. find -e EVENT -p PARTICIPANT: Finds all participants with specified name in an event. exit: Exit program ------------------------ -Events saved successfully. ------------------------- Enter a command: There are 0 events in your list! Here are your scheduled events: ------------------------- -Events saved successfully. ------------------------ Enter a command: Invalid command! Please enter your commands in the following format: @@ -40,42 +36,26 @@ add -m ITEM -e EVENT ------------------------ Enter a command: Event added successfully ------------------------ -Events saved successfully. ------------------------- Enter a command: There are 1 events in your list! Here are your scheduled events: 1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: N ------------------------- -Events saved successfully. ------------------------ Enter a command: Event marked as done ------------------------ -Events saved successfully. ------------------------- Enter a command: There are 1 events in your list! Here are your scheduled events: 1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y ------------------------- -Events saved successfully. ------------------------ Enter a command: Event not found! ------------------------ -Events saved successfully. ------------------------- Enter a command: Event information successfully updated ------------------------ -Events saved successfully. ------------------------- Enter a command: There are 1 events in your list! Here are your scheduled events: 1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y ------------------------- -Events saved successfully. ------------------------ Enter a command: Participant added successfully ------------------------ -Events saved successfully. ------------------------- Enter a command: Invalid command! Please enter your commands in the following format: view -e EVENT -y TYPE @@ -83,60 +63,38 @@ view -e EVENT -y TYPE ------------------------ Enter a command: Participant contact information successfully updated ------------------------ -Events saved successfully. ------------------------- Enter a command: There are 1 participants in dinner party! Here are your participants: 1. Name: Mary / Number: 98624759 / Email: Mary@gmail.com [ ] ------------------------- -Events saved successfully. ------------------------ Enter a command: Event added successfully ------------------------ -Events saved successfully. ------------------------- Enter a command: Events successfully sorted by name! 1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N 2. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y ------------------------- -Events saved successfully. ------------------------ Enter a command: Events successfully sorted by time! 1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y 2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------- -Events saved successfully. ------------------------ Enter a command: There are 2 events in your list! Here are your scheduled events: 1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y 2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------- -Events saved successfully. ------------------------ Enter a command: Item added successfully ------------------------ -Events saved successfully. ------------------------- Enter a command: There are 1 items in anniversary celebration! Here are your items: 1. balloon [ ] ------------------------- -Events saved successfully. ------------------------ Enter a command: Item successfully updated ------------------------ -Events saved successfully. ------------------------- Enter a command: There are 1 items in anniversary celebration! Here are your items: 1. cake [ ] ------------------------- -Events saved successfully. ------------------------ Enter a command: Thank you for using EventManagerCLI. Goodbye! ------------------------ -Events saved successfully. ------------------------- From faf61a37749c43f3dfde03932c1b4b2eb99dc5ac Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Mon, 4 Nov 2024 18:18:00 +0800 Subject: [PATCH 401/619] Add newline character to Storage --- src/main/java/seedu/manager/storage/Storage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index 75353d2c12..cf9316b544 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -69,4 +69,4 @@ private String[] getItemFields(Event event, Item item) { List fieldsList = List.of("ITEM", item.getName(), event.getEventName(), item.markFileLineIfPresent()); return fieldsList.toArray(new String[4]); } -} \ No newline at end of file +} From 123a3dabfd6c716d7545d6366e962430a782d374 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Mon, 4 Nov 2024 18:28:40 +0800 Subject: [PATCH 402/619] Add JavaDoc comments --- .../seedu/manager/storage/FileParser.java | 60 +++++++++++++++++++ .../java/seedu/manager/storage/Storage.java | 53 ++++++++++++++++ 2 files changed, 113 insertions(+) diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index 0ad142cd8c..6043f2bb7b 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -15,9 +15,21 @@ import java.util.logging.Logger; //@@author KuanHsienn +/** + * This class is responsible for parsing event data from a CSV file. + * It handles the extraction of event, participant, and item information + * and adds them to the provided EventList. + */ public class FileParser { private static final Logger logger = Logger.getLogger(FileParser.class.getName()); + /** + * Parses the specified CSV file and populates the given EventList with the loaded data. + * + * @param events The EventList to load events into. + * @param filePath The path to the CSV file to be parsed. + * @throws IOException If there is an error reading from the file. + */ public void parseFile(EventList events, String filePath) throws IOException { try { logger.info("Loading data from file"); @@ -31,6 +43,13 @@ public void parseFile(EventList events, String filePath) throws IOException { } } + /** + * Parses a single line of CSV data and adds the corresponding event, participant, or item to the EventList. + * + * @param events The EventList to populate. + * @param fields The fields of the line to parse. + * @param formatter The DateTimeFormatter to use for parsing date and time. + */ private void parseLine(EventList events, String[] fields, DateTimeFormatter formatter) { String type = fields[0]; try { @@ -52,6 +71,14 @@ private void parseLine(EventList events, String[] fields, DateTimeFormatter form } } + /** + * Parses a line corresponding to an event and adds it to the EventList. + * + * @param events The EventList to populate. + * @param fields The fields of the event to parse. + * @param formatter The DateTimeFormatter to use for parsing date and time. + * @throws IOException If there is an error adding the event to the list. + */ private void parseEventFileLine(EventList events, String[] fields, DateTimeFormatter formatter) throws IOException { try { String eventName = fields[1].trim(); @@ -65,6 +92,13 @@ private void parseEventFileLine(EventList events, String[] fields, DateTimeForma } } + /** + * Parses a line corresponding to a participant and adds it to the associated event in the EventList. + * + * @param events The EventList to populate. + * @param fields The fields of the participant to parse. + * @throws IOException If there is an error adding the participant to the event. + */ private void parseParticipantFileLine(EventList events, String[] fields) throws IOException { try { String participantName = fields[1].trim(); @@ -79,6 +113,13 @@ private void parseParticipantFileLine(EventList events, String[] fields) throws } } + /** + * Parses a line corresponding to an item and adds it to the associated event in the EventList. + * + * @param events The EventList to populate. + * @param fields The fields of the item to parse. + * @throws IOException If there is an error adding the item to the event. + */ private void parseItemFileLine(EventList events, String[] fields) throws IOException { try { String itemName = fields[1].trim(); @@ -91,6 +132,14 @@ private void parseItemFileLine(EventList events, String[] fields) throws IOExcep } } + /** + * Reads all lines from the specified CSV file and returns them as a list of String arrays. + * + * @param filePath The path to the CSV file to be read. + * @return A list of String arrays, each representing a line in the CSV file. + * @throws IOException If there is an error reading the file. + * @throws CsvException If there is an error parsing the CSV data. + */ private List getFileLines(String filePath) throws IOException, CsvException { CSVReader reader = new CSVReaderBuilder(new FileReader(filePath)).build(); List lines = reader.readAll(); @@ -98,6 +147,12 @@ private List getFileLines(String filePath) throws IOException, CsvExce return lines; } + /** + * Converts a mark status string to a boolean value. + * + * @param markStatus The mark status string, expected to be "Y" or "N". + * @return true if mark status is "Y"; false if it is "N". + */ private boolean getIsMarked(String markStatus) { if (markStatus.equalsIgnoreCase("Y")) { return true; @@ -109,6 +164,11 @@ private boolean getIsMarked(String markStatus) { } } + /** + * Logs a warning if an event associated with a participant or item could not be loaded. + * + * @param isLoaded Indicates whether the loading was successful. + */ private void eventUnsuccessfulLoad(boolean isLoaded) { if (!isLoaded) { logger.warning("Associated event not found, entry not loaded"); diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index cf9316b544..3cfd0b9373 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -11,9 +11,19 @@ import java.util.List; //@@author KuanHsienn +/** + * This class is responsible for handling the storage of event data. + * It provides methods to save and load event information from a CSV file. + */ public class Storage { private final String filePath; + /** + * Constructs a Storage object with the specified file path. + * + * @param filePath The path to the file where event data will be stored. + * @throws AssertionError If the environment is not a test and the file path is invalid. + */ public Storage(String filePath) { if (!isTestEnvironment()) { assert isValidFilePath(filePath) : "Invalid file path: " + filePath; @@ -21,6 +31,12 @@ public Storage(String filePath) { this.filePath = filePath; } + /** + * Saves the event information to the specified file. + * + * @param events The EventList containing the events to be saved. + * @throws IOException If there is an error saving data to the file. + */ public void saveInfo(EventList events) throws IOException { try (CSVWriter writer = new CSVWriter(new FileWriter(filePath))) { for (Event event : events.getList()) { @@ -39,32 +55,69 @@ public void saveInfo(EventList events) throws IOException { } } + /** + * Loads the event information from the specified file. + * + * @param events The EventList to load events into. + * @throws IOException If there is an error loading data from the file. + */ public void loadInfo(EventList events) throws IOException { FileParser parser = new FileParser(); parser.parseFile(events, filePath); } + /** + * Checks if the provided file path is valid. + * + * @param filePath The file path to validate. + * @return true if the file path is valid; false otherwise. + */ private boolean isValidFilePath(String filePath) { String expectedPath = "data.csv"; return filePath.equals(expectedPath); } + /** + * Checks if the current environment is a test environment. + * + * @return true if the test environment property is set; false otherwise. + */ private boolean isTestEnvironment() { return "true".equals(System.getProperty("test.environment")); } + /** + * Retrieves the fields of an event as a String array for CSV writing. + * + * @param event The event to get fields from. + * @return A String array representing the event fields. + */ private static String[] getEventFields(Event event) { List fieldsList = List.of("EVENT", event.getEventName(), event.getEventTimeString(), event.getEventVenue(), event.getEventPriorityString(), event.markIfDone()); return fieldsList.toArray(new String[6]); } + /** + * Retrieves the fields of a participant as a String array for CSV writing. + * + * @param participant The participant to get fields from. + * @param event The event associated with the participant. + * @return A String array representing the participant fields. + */ private String[] getParticipantFields(Participant participant, Event event) { List fieldsList = List.of("PARTICIPANT", participant.getName(), participant.getNumber(), participant.getEmail(), event.getEventName(), participant.markFileLineIfPresent()); return fieldsList.toArray(new String[6]); } + /** + * Retrieves the fields of an item as a String array for CSV writing. + * + * @param event The event associated with the item. + * @param item The item to get fields from. + * @return A String array representing the item fields. + */ private String[] getItemFields(Event event, Item item) { List fieldsList = List.of("ITEM", item.getName(), event.getEventName(), item.markFileLineIfPresent()); return fieldsList.toArray(new String[4]); From 1068bb03c4f5487beb2e74119e1ed4e5bc81f564 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Mon, 4 Nov 2024 20:36:04 +0800 Subject: [PATCH 403/619] modify the diagram --- docs/diagrams/ListCommandSequenceDiagram.puml | 29 ++++++++++++++++++ docs/images/ListCommandSequenceDiagram.png | Bin 24076 -> 12960 bytes 2 files changed, 29 insertions(+) create mode 100644 docs/diagrams/ListCommandSequenceDiagram.puml diff --git a/docs/diagrams/ListCommandSequenceDiagram.puml b/docs/diagrams/ListCommandSequenceDiagram.puml new file mode 100644 index 0000000000..dd444f95e3 --- /dev/null +++ b/docs/diagrams/ListCommandSequenceDiagram.puml @@ -0,0 +1,29 @@ +@startuml +hide footbox + +participant ":Main" as Main +participant ":ListCommand" as ListCommand +participant ":EventList" as EventList + +Main -> ListCommand: execute() +activate ListCommand + + +ListCommand -> EventList : getListSize() +activate EventList +EventList --> ListCommand +deactivate EventList + +loop for each event in EventList + ListCommand -> EventList : getEvent(i) + activate EventList + EventList --> ListCommand + deactivate EventList +end loop + +ListCommand --> Main : outputMessage +deactivate ListCommand + + +deactivate Main +@enduml \ No newline at end of file diff --git a/docs/images/ListCommandSequenceDiagram.png b/docs/images/ListCommandSequenceDiagram.png index b6310c23bf4e28f2d5ad2259560ddaa75760ab18..aa2eb144543f25cfcb14872512bcfd4c126b5e4c 100644 GIT binary patch literal 12960 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 From 507b4043f78de348d564d96a808eba3e3b1d7d9f Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 4 Nov 2024 21:20:34 +0800 Subject: [PATCH 404/619] Fix CI issues and filepath --- src/main/java/seedu/manager/Main.java | 2 +- src/main/java/seedu/manager/parser/Parser.java | 4 +++- text-ui-test/EXPECTED.TXT | 8 -------- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index d306409fc2..117be74876 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -13,7 +13,7 @@ public class Main { private static final Ui ui = new Ui(); private static EventList events = new EventList(); - private static final String EVENT_FILE_PATH = "information.csv"; + private static final String EVENT_FILE_PATH = "data.csv"; private static final Storage storage = new Storage(EVENT_FILE_PATH); /** diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 66a9f5889c..1860f707d1 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -97,6 +97,8 @@ public class Parser { Invalid date-time format! Please use the following format for event time: YYYY-MM-DD HH:mm + + MM-DD has to be between 01-01 and 12-31, and HH:mm has to be between 00:00 and 23:59. """; private static final String INVALID_COPY_MESSAGE = """ Invalid command! @@ -152,7 +154,7 @@ public class Parser { */ public Command parseCommand(String command) throws InvalidCommandException { String[] commandParts = command.split(SPACE); - String commandWord = commandParts[0]; + String commandWord = commandParts[0].toLowerCase(); switch (commandWord) { case AddCommand.COMMAND_WORD: diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 7b9cd7b0fa..5da78f3bee 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -79,22 +79,14 @@ Enter a command: Events successfully sorted by time! 1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y 2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------- -Events saved successfully. ------------------------ Enter a command: Item added successfully ------------------------ -Events saved successfully. ------------------------- Enter a command: Item accounted for. ------------------------ -Events saved successfully. ------------------------- Enter a command: There are 1 items in dinner party! Here are your items: 1. curry chicken [X] ------------------------- -Events saved successfully. ------------------------ Enter a command: There are 2 events in your list! Here are your scheduled events: 1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y From 28a9ae980ae5e9249794616a04a312ba28848fce Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 4 Nov 2024 21:25:41 +0800 Subject: [PATCH 405/619] Fix I/O redirection test to new filepath --- text-ui-test/EXPECTED.TXT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 5da78f3bee..7d6fef2b2c 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -1,5 +1,5 @@ Welcome to EventManagerCLI. -Error loading data from file: information.csv. +Error loading data from file: data.csv. ------------------------ Enter a command: Invalid command! ------------------------ From 1a300a829c44315e08f5e4c9e81db305a35857a1 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 4 Nov 2024 21:50:29 +0800 Subject: [PATCH 406/619] Remove footboxes and remove colours --- docs/DeveloperGuide.md | 2 +- docs/diagrams/AddCommandSequenceDiagram.puml | 4 ++-- docs/diagrams/AddEventSequenceDiagram.puml | 18 +++++++-------- .../AddParticipantEventSequenceDiagram.puml | 18 +++++++-------- .../AddParticipantSequenceDiagram.puml | 10 ++++----- docs/diagrams/ArchitectureSequence.puml | 1 + .../CommandParsingSequenceDiagram.puml | 12 +++++----- docs/diagrams/MarkEventSequenceDiagram.puml | 12 +++++----- .../MarkParticipantSequenceDiagram.puml | 21 +++++++++--------- .../RemoveCommandSequenceDiagram.puml | 4 ++-- docs/diagrams/RemoveEventSequenceDiagram.puml | 16 ++++++------- docs/diagrams/RemoveParticipantFromEvent.puml | 16 ++++++------- .../RemoveParticipantSequenceDiagram.puml | 10 ++++----- docs/diagrams/ViewEventSequenceDiagram.puml | 8 +++---- docs/diagrams/ViewItemSequenceDiagram.puml | 14 ++++++------ .../ViewParticipantSequenceDiagram.puml | 14 ++++++------ docs/diagrams/style.puml | 2 +- docs/images/AddCommandSequenceDiagram.png | Bin 15950 -> 15009 bytes docs/images/AddEventSequenceDiagram.png | Bin 31247 -> 34001 bytes .../AddParticipantEventSequenceDiagram.png | Bin 33823 -> 34930 bytes docs/images/AddParticipantSequenceDiagram.png | Bin 22156 -> 25997 bytes docs/images/ArchitectureSequenceDiagram.png | Bin 23654 -> 19858 bytes docs/images/CommandParsingSequenceDiagram.png | Bin 18312 -> 18798 bytes docs/images/MarkEventSequenceDiagram.png | Bin 14374 -> 14395 bytes .../images/MarkParticipantSequenceDiagram.png | Bin 34473 -> 28036 bytes docs/images/RemoveCommandSequenceDiagram.png | Bin 15935 -> 15708 bytes docs/images/RemoveEventSequenceDiagram.png | Bin 29618 -> 27043 bytes .../RemoveParticipantEventSequenceDiagram.png | Bin 29123 -> 0 bytes docs/images/RemoveParticipantFromEvent.png | Bin 29540 -> 30636 bytes .../RemoveParticipantSequenceDiagram.png | Bin 23315 -> 24947 bytes docs/images/ViewEventSequenceDiagram.png | Bin 21996 -> 22033 bytes docs/images/ViewItemSequenceDiagram.png | Bin 19249 -> 19449 bytes .../images/ViewParticipantSequenceDiagram.png | Bin 23580 -> 23355 bytes 33 files changed, 92 insertions(+), 90 deletions(-) delete mode 100644 docs/images/RemoveParticipantEventSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 0b01e89105..7de285cf28 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -305,7 +305,7 @@ to indicate that the operation was unsuccessful. Otherwise, the operation return The interactions between components during the above operation are shown in the **Sequence Diagram** below: - + The operation logic for `EventList#RemoveItemFromEvent()` is similar to that for `EventList#RemoveParticipantFromEvent()`. diff --git a/docs/diagrams/AddCommandSequenceDiagram.puml b/docs/diagrams/AddCommandSequenceDiagram.puml index 6f0b193539..c7f8614fb4 100644 --- a/docs/diagrams/AddCommandSequenceDiagram.puml +++ b/docs/diagrams/AddCommandSequenceDiagram.puml @@ -3,10 +3,10 @@ hide footbox participant ":Main" as main -participant ":AddCommand" as command COMMAND_COLOUR +participant ":AddCommand" as command main -> command : execute() -activate command COMMAND_COLOUR +activate command alt participantName is not null ref over command : Add participant diff --git a/docs/diagrams/AddEventSequenceDiagram.puml b/docs/diagrams/AddEventSequenceDiagram.puml index 7930fae92a..711c68e1ec 100644 --- a/docs/diagrams/AddEventSequenceDiagram.puml +++ b/docs/diagrams/AddEventSequenceDiagram.puml @@ -2,18 +2,18 @@ !include style.puml hide footbox -participant ":AddCommand" as command COMMAND_COLOUR -participant ":EventList" as eventList EVENT_COLOUR -participant "eventList:ArrayList" as list EVENT_COLOUR -participant "newEvent:Event" as event EVENT_COLOUR +participant ":AddCommand" as command +participant ":EventList" as eventList +participant "eventList:ArrayList" as list +participant "newEvent:Event" as event group sd Add event - activate command COMMAND_COLOUR + activate command command -> eventList : addEvent(eventName, eventTime, eventVenue, eventPriority) - activate eventList EVENT_COLOUR + activate eventList eventList -> eventList : getEventByName(eventName) - activate eventList EVENT_COLOUR + activate eventList return :Event @@ -23,12 +23,12 @@ group sd Add event create event eventList -> event : Event(eventName, eventTime, eventVenue, eventPriority) - activate event EVENT_COLOUR + activate event return eventList -> list : add(newEvent) - activate list EVENT_COLOUR + activate list return diff --git a/docs/diagrams/AddParticipantEventSequenceDiagram.puml b/docs/diagrams/AddParticipantEventSequenceDiagram.puml index b5d48ce584..42faf987fe 100644 --- a/docs/diagrams/AddParticipantEventSequenceDiagram.puml +++ b/docs/diagrams/AddParticipantEventSequenceDiagram.puml @@ -2,30 +2,30 @@ !include style.puml hide footbox -participant ":EventList" as eventList EVENT_COLOUR -participant ":Event" as event EVENT_COLOUR -participant "participant:Participant" as participant EVENT_COLOUR -participant "participantList:ArrayList" as participantList EVENT_COLOUR +participant ":EventList" as eventList +participant ":Event" as event +participant "participant:Participant" as participant +participant "participantList:ArrayList" as participantList group sd Add participant to event - activate eventList EVENT_COLOUR + activate eventList eventList -> event : addParticipant(String, String, String) - activate event EVENT_COLOUR + activate event event -> event : getParticipantByName(participantName) - activate event EVENT_COLOUR + activate event return :Event alt participant already present event --> eventList:throws DuplicateDataException else else event -> participant : Participant(String, String, String) - activate participant EVENT_COLOUR + activate participant return participant : Participant event -> participantList : add(participant) - activate participantList EVENT_COLOUR + activate participantList return end diff --git a/docs/diagrams/AddParticipantSequenceDiagram.puml b/docs/diagrams/AddParticipantSequenceDiagram.puml index 656dd9e657..02227fac8e 100644 --- a/docs/diagrams/AddParticipantSequenceDiagram.puml +++ b/docs/diagrams/AddParticipantSequenceDiagram.puml @@ -2,16 +2,16 @@ !include style.puml hide footbox -participant ":AddCommand" as command COMMAND_COLOUR -participant ":EventList" as eventList EVENT_COLOUR +participant ":AddCommand" as command +participant ":EventList" as eventList group sd Add participant - activate command COMMAND_COLOUR + activate command command -> eventList : addParticipantToEvent(participantName, participantNumber,\n participantEmail, eventName) - activate eventList EVENT_COLOUR + activate eventList eventList -> eventList : getEventByName(eventName) - activate eventList EVENT_COLOUR + activate eventList return event:Event diff --git a/docs/diagrams/ArchitectureSequence.puml b/docs/diagrams/ArchitectureSequence.puml index ff3ea28e89..7cc0e2a929 100644 --- a/docs/diagrams/ArchitectureSequence.puml +++ b/docs/diagrams/ArchitectureSequence.puml @@ -1,5 +1,6 @@ @startuml !include style.puml +hide footbox Participant ":Main" as main Participant ":Ui" as ui UI_COLOUR diff --git a/docs/diagrams/CommandParsingSequenceDiagram.puml b/docs/diagrams/CommandParsingSequenceDiagram.puml index f3c6a0f942..9f94ab237c 100644 --- a/docs/diagrams/CommandParsingSequenceDiagram.puml +++ b/docs/diagrams/CommandParsingSequenceDiagram.puml @@ -3,23 +3,23 @@ hide footbox participant ":Main" as main -participant ":Parser" as parser PARSER_COLOUR -participant ":XYZCommand" as xyzCommand COMMAND_COLOUR +participant ":Parser" as parser +participant ":XYZCommand" as xyzCommand create parser main -> parser : Parser() -activate parser PARSER_COLOUR +activate parser return main -> parser : parseCommand(command) -activate parser PARSER_COLOUR +activate parser parser -> parser : parseXYZCommand(input, commandParts) -activate parser PARSER_COLOUR +activate parser create xyzCommand parser -> xyzCommand : XYZCommand(...) -activate xyzCommand COMMAND_COLOUR +activate xyzCommand return :XYZCommand return diff --git a/docs/diagrams/MarkEventSequenceDiagram.puml b/docs/diagrams/MarkEventSequenceDiagram.puml index cb74f51dc6..3407585946 100644 --- a/docs/diagrams/MarkEventSequenceDiagram.puml +++ b/docs/diagrams/MarkEventSequenceDiagram.puml @@ -3,21 +3,21 @@ hide footbox participant ":Main" as main -participant ":MarkEventCommand" as markCommand COMMAND_COLOUR -participant ":EventList" as eventList EVENT_COLOUR -participant ":Event" as event EVENT_COLOUR +participant ":MarkEventCommand" as markCommand +participant ":EventList" as eventList +participant ":Event" as event main -> markCommand : execute() -activate markCommand COMMAND_COLOUR +activate markCommand markCommand -> eventList : getEventByName(eventName) -activate eventList EVENT_COLOUR +activate eventList eventList --> markCommand : eventToMark : Event deactivate eventList markCommand -> event : setDone(isToMark) -activate event EVENT_COLOUR +activate event event --> markCommand deactivate event diff --git a/docs/diagrams/MarkParticipantSequenceDiagram.puml b/docs/diagrams/MarkParticipantSequenceDiagram.puml index 8c2ce1596d..d3f35cb05f 100644 --- a/docs/diagrams/MarkParticipantSequenceDiagram.puml +++ b/docs/diagrams/MarkParticipantSequenceDiagram.puml @@ -1,31 +1,32 @@ @startuml !include style.puml +hide footbox participant ":Main" as main -participant ":MarkParticipantCommand" as markCommand COMMAND_COLOUR -participant ":EventList" as eventList EVENT_COLOUR -participant "event:Event" as event EVENT_COLOUR -participant "participant:Participant" as participant EVENT_COLOUR +participant ":MarkParticipantCommand" as markCommand +participant ":EventList" as eventList +participant "event:Event" as event +participant "participant:Participant" as participant main -> markCommand : execute() -activate markCommand COMMAND_COLOUR +activate markCommand markCommand -> eventList : getEventByName(eventName) -activate eventList EVENT_COLOUR +activate eventList eventList --> markCommand : event : Event -deactivate eventList EVENT_COLOUR +deactivate eventList markCommand -> event : markParticipantByName(participantName) -activate event EVENT_COLOUR +activate event event -> event : getParticipantByName(participantName) -activate event EVENT_COLOUR +activate event return participant : Participant event -> participant : setPresent(isToMark) -activate participant EVENT_COLOUR +activate participant return diff --git a/docs/diagrams/RemoveCommandSequenceDiagram.puml b/docs/diagrams/RemoveCommandSequenceDiagram.puml index 0ac66cd943..613262f196 100644 --- a/docs/diagrams/RemoveCommandSequenceDiagram.puml +++ b/docs/diagrams/RemoveCommandSequenceDiagram.puml @@ -3,10 +3,10 @@ hide footbox participant ":Main" as main -participant ":RemoveCommand" as command COMMAND_COLOUR +participant ":RemoveCommand" as command main -> command : execute() -activate command COMMAND_COLOUR +activate command alt participant name is not null ref over command : Remove participant diff --git a/docs/diagrams/RemoveEventSequenceDiagram.puml b/docs/diagrams/RemoveEventSequenceDiagram.puml index c211d781a7..b881036512 100644 --- a/docs/diagrams/RemoveEventSequenceDiagram.puml +++ b/docs/diagrams/RemoveEventSequenceDiagram.puml @@ -2,24 +2,24 @@ !include style.puml hide footbox -participant ":RemoveCommand" as command COMMAND_COLOUR -participant ":EventList" as eventList EVENT_COLOUR -participant "eventList:ArrayList" as list EVENT_COLOUR -participant "event:Event" as event EVENT_COLOUR +participant ":RemoveCommand" as command +participant ":EventList" as eventList +participant "eventList:ArrayList" as list +participant "event:Event" as event group sd Remove event - activate command COMMAND_COLOUR + activate command command -> eventList : removeEvent(eventName) - activate eventList EVENT_COLOUR + activate eventList loop for event in eventList eventList -> event : getName() - activate event EVENT_COLOUR + activate event return :String opt event exists in eventList eventList -> list : remove(event) - activate list EVENT_COLOUR + activate list destroy event return eventList --> command : :boolean diff --git a/docs/diagrams/RemoveParticipantFromEvent.puml b/docs/diagrams/RemoveParticipantFromEvent.puml index c162b93abe..c23dd1e11f 100644 --- a/docs/diagrams/RemoveParticipantFromEvent.puml +++ b/docs/diagrams/RemoveParticipantFromEvent.puml @@ -2,25 +2,25 @@ !include style.puml hide footbox -participant ":EventList" as eventList EVENT_COLOUR -participant "event:Event" as event EVENT_COLOUR -participant "participantList:ArrayList" as participantList EVENT_COLOUR -participant "participant:Participant" as participant EVENT_COLOUR +participant ":EventList" as eventList +participant "event:Event" as event +participant "participantList:ArrayList" as participantList +participant "participant:Participant" as participant group sd Remove participant from event - activate eventList EVENT_COLOUR + activate eventList eventList -> event : removeParticipant(participantName) - activate event EVENT_COLOUR + activate event loop for participant in participantList event -> participant : getName() - activate participant EVENT_COLOUR + activate participant return :String opt name of participant equals participantName event -> participantList : remove(participant) - activate participantList EVENT_COLOUR + activate participantList destroy participant return event --> eventList : :boolean diff --git a/docs/diagrams/RemoveParticipantSequenceDiagram.puml b/docs/diagrams/RemoveParticipantSequenceDiagram.puml index b03a70c0e1..5a0fabfc24 100644 --- a/docs/diagrams/RemoveParticipantSequenceDiagram.puml +++ b/docs/diagrams/RemoveParticipantSequenceDiagram.puml @@ -2,16 +2,16 @@ !include style.puml hide footbox -participant ":RemoveCommand" as command COMMAND_COLOUR -participant ":EventList" as eventList EVENT_COLOUR +participant ":RemoveCommand" as command +participant ":EventList" as eventList group sd Remove participant - activate command COMMAND_COLOUR + activate command command -> eventList : removeParticipantFromEvent(participantName,\n eventName) - activate eventList EVENT_COLOUR + activate eventList eventList -> eventList : getEventByName() - activate eventList EVENT_COLOUR + activate eventList return event:Event diff --git a/docs/diagrams/ViewEventSequenceDiagram.puml b/docs/diagrams/ViewEventSequenceDiagram.puml index 9cba95737b..7a95559a74 100644 --- a/docs/diagrams/ViewEventSequenceDiagram.puml +++ b/docs/diagrams/ViewEventSequenceDiagram.puml @@ -3,14 +3,14 @@ hide footbox participant ":Main" as main -participant ":ViewCommand" as command COMMAND_COLOUR -participant ":EventList" as eventList EVENT_COLOUR +participant ":ViewCommand" as command +participant ":EventList" as eventList main -> command : execute() -activate command COMMAND_COLOUR +activate command command -> eventList : getEventByName(eventName) -activate eventList EVENT_COLOUR +activate eventList return eventToView : Event diff --git a/docs/diagrams/ViewItemSequenceDiagram.puml b/docs/diagrams/ViewItemSequenceDiagram.puml index e1047d1a23..1cd36bafb3 100644 --- a/docs/diagrams/ViewItemSequenceDiagram.puml +++ b/docs/diagrams/ViewItemSequenceDiagram.puml @@ -2,23 +2,23 @@ !include style.puml hide footbox -participant ":ViewCommand" as command COMMAND_COLOUR -participant "eventToView:Event" as event EVENT_COLOUR -participant "item:Item" as item EVENT_COLOUR +participant ":ViewCommand" as command +participant "eventToView:Event" as event +participant "item:Item" as item group sd view items -activate command COMMAND_COLOUR +activate command command -> command : getItems(event) - activate command COMMAND_COLOUR + activate command command -> event : getItemsList() - activate event EVENT_COLOUR + activate event return items : ArrayList loop for item in items command -> item : toString() - activate item EVENT_COLOUR + activate item return :String end diff --git a/docs/diagrams/ViewParticipantSequenceDiagram.puml b/docs/diagrams/ViewParticipantSequenceDiagram.puml index d54f437b39..d961387907 100644 --- a/docs/diagrams/ViewParticipantSequenceDiagram.puml +++ b/docs/diagrams/ViewParticipantSequenceDiagram.puml @@ -2,23 +2,23 @@ !include style.puml hide footbox -participant ":ViewCommand" as command COMMAND_COLOUR -participant "eventToView:Event" as event EVENT_COLOUR -participant "participant:Participant" as participant EVENT_COLOUR +participant ":ViewCommand" as command +participant "eventToView:Event" as event +participant "participant:Participant" as participant group sd view participants - activate command COMMAND_COLOUR + activate command command -> command : getParticipants(event) - activate command COMMAND_COLOUR + activate command command -> event : getParticipantsList() - activate event EVENT_COLOUR + activate event return participants : ArrayList loop for participant in participants command -> participant : toString() - activate participant EVENT_COLOUR + activate participant return :String end return :String diff --git a/docs/diagrams/style.puml b/docs/diagrams/style.puml index e00dc042bb..321b85eb7c 100644 --- a/docs/diagrams/style.puml +++ b/docs/diagrams/style.puml @@ -4,5 +4,5 @@ !define STORAGE_COLOUR #ffff00 !define COMMAND_COLOUR #66ff99 !define STORAGE_COLOUR #6699ff -!define EVENT_COLOUR #993366 +!define EVENT_COLOUR #AE487B @enduml diff --git a/docs/images/AddCommandSequenceDiagram.png b/docs/images/AddCommandSequenceDiagram.png index 02a43801d36a27e27b0957394305c0332094425a..7c92017b8a6be3b8e538968cfe64a950e51badc0 100644 GIT binary patch literal 15009 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 z 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 literal 31247 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 MtgZA!!Rp5U0KhTrYXATM diff --git a/docs/images/AddParticipantEventSequenceDiagram.png b/docs/images/AddParticipantEventSequenceDiagram.png index 6bb3e57f575c73ec95452dcb2c23b5f76bc5644a..d068a04bcf3fe75ce687351255f200279c25ee91 100644 GIT binary patch literal 34930 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 literal 33823 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

    jQKaJJ$?UxK@fOZ%eJ z093A@Kfac*Y^{zH=tZ3@h2LUabQjOzU&Vk0<$a`(49>Ez6IfP5ac(yENo@)&}M*;Y^zrC!r zkHe~x$Ojk^M$TDnGbDu|5dc`Hy6VbCKza=WK^>PmPRq&4;?qia&38wCthSGJD{iqI z?LLnX?4FpQiG6I(f4p=?i-L;kTr@dp+EFnEC05La&8XKPGWd@-Lu1?@E%cH*Cv)8_ z>7k}~c6JtZhnw$ABH210&uiwe5yOqSYOZ{7zIO(Ur^9qP93e!NJF=lUIix@d%>jQHcF7mT1-sLyk+dT#TUz&Y>agUk5ttCoADS>t1LcW z&_l%6w5^JeDorINYY^ybpI-T!Se)X&=gK;fanom1R6en8dfHt72qa3UjvQS&+k?^E z>}w+z@+hjD)QRaibql+bg*Z1YgZVV{^z>4zvePh{n^k(%H|Y&x5D;%~-6D4X>N~&_ z=g0cfcLvi?3ub~I+e;d0Vh=j3c%EP_p9>#I7K$w#>g(eiQ)%+rr#nk?)wN~vIUVpm ze;co(!+l_Tp`LN2U4s$_Dsg>l$9Oca9`0~-(KR7)nvRbSKyq{!ZJhg>SeP&2)cH$aP)qHW$3c4i+!>WMbwF8I zSY#4)1>NLlI;{vSONL&Bhlxo>dO}6FPPpfry7WXTsRmn3*S0%~6pzqhvf)YqrQ6<{ zYil9*Y%}LgQmoPWX_Hgl2l&yT(!@2!3ba^z5S>8?J#p@~l3>!m90RS&r-|Lxy zRV4W6hwDD`FeG8`)>`BDOF_iS_O$XoV8F*{tdWPTfUR704Xz^fbKE0$MJyCey zUdaIkOoPaN9-a867!oj~8BgY@Czh2@($Ue;Io!+vr8$~AkIqk=-1$1%_wybUpL<9y zjm&`Bt+acZd#n0VD|o*>9d>n3^W2KAqn`(Q;8+2zRZExnxiu&mcu)1&)hdW)O{$H? zuAc|r?+hgC{2(xfh~b{hh}Um?cpu_}E`;!sSWDmY=X5=YoT)-k%7DXs*vk*eh2@*? zAp^8SIXuV>O<&#XoTX>GB&cgN*A{rrqCImLBH4z^;rY2~>9n*o$>YO{HiU%~X1B{0 zcNHg|XM@Zl4}9*iF^e8i%|dG3L&mWfIG~o7$E}NHwfmHvChznoTEHo6ZgJMg6{xH5 z9^HQIs)QKNQ=@$)#BieN=dRK6Ev4yy&+YC5sSj!;sNjk6+V z!j6+GmPe+HUi=VM)JH(?e*XMfRpi_o#|~wKJRz&}id#8wVOWUR!|nXw;MYKbRTQuK z?G6nMz15A~Z=;5sbO+1m5(K z=K!)8cIRH__^H;{zs+O1ev>%&6N1;c_Jq%mHJ{^fMX)%0m4_3~l^uh&3+W<3*LC$l zy>|Fe-Wi8Ls_2ZyvZzX#Pm^Wwt2~0-RJYzxi4oL*hN!+L2phm(d}kRmb<-Zi+EjCt zt(ePVM5W^Y;WR+<6CC?b%F4>NlDt(Biz#=SY5VlbMS7eAOo2=p+zrA0R{yj9{{D=> z4jdrr(bZjj3A|QYnX=(sU0u}xC&0dJY~dmx%Xxp?=Qp#9O$+j!dd|nda7uTy#7xp7 z`x7FX-58oOC$#oK{;KE_v}U3c`=d1K>+0ax4*_Fe-COXZ4aZ(D(ldKRetYiQw@CcH zICjQ)MTxdJqpY4ork1MJau^Om5<;<$)OOTm_xxfsdK&2)1P!%%K?=;;)*}$ z?{%=h57hn^oB|);Ixqn;one_ASVHT?0*x$euQH{l9N=R-Z3+leB|5KpK-Tu(9PRQm zq2zuu2QX??t#NEVmSaZvb=yfzDz z`XC&-;-CdiA&sBxw@C>li zG~`AhjN)tJO2?{t3jNtr?QbCJx*9BY`EtT&E#p`?0>wPm%|Ddi8g{3gkD;NUI2)+C zD!BO%K76X`>}@%uD?@+~hw?kTj!H0koc(cfzCn)hKXyKP$MLKkqCM^JHl2Qb!VdlrTnW*9VhY(T|(nzL*U z+Ud*jZWqhpdOIPk++iet$jGrV=g6#KH4LjBv(LvTvEJSXfy=BISn4pFYazI>44XO7q2^pcO)Bd`08gG#FS|uutMXDl~1p$}0|J${EVA0+Okt z3CFn*h@&r)$1=*fvX>D`jqXuA!yPh z9)`L_^zfILlZzK3y>#i@+}zgw=X6#_2Xb4|xLWwdUO(_FE6s%i17hvOwiHW79 zrJ%CV1zNBB`jC){nJBL#X2=NC4GuiB?vmysLyU^Bt(*D#j@7@qC{2v3FExK6v2@uc zoP#WY8lgJBft_H+k}7Dc3FaQHq&L@78@kocaKzwjXy~%~a_r<(31Vu@FSRifzUNBv zV5J%Caj-Y{k8^u`g`~#KsyYT&;plzb`TKnQD5(whwA|YjJ?; z(j^cDuCcucLYk`qF&!NpKq;C)&4GR(#K*TE&h7zwOT8Y%rt@4^mBYkUVPUt${-j}V zaN-25yNSxqRu+KIDD&b_HiL2|Y`TG` z4=r0Ep}vk3Fm3`}0&=myl+?9X*4})4WF&FCxgS6}_f}qGs{OWl@DIJE61d}lC8~`0gU^v3HV@0)o+y%}8 zMHJwfZ+l^Lp$~cyy-ztQ?mA93;8uWx)&a#`wWnxfC`;b4VMA^xQ#M*Y7d+axRS@9P zubyYHrGktF!BPDT3_~wT7*yTU+FkjeS7HkK=P5*dSW4b3!47CK6B84##~*;ua%}#I ze*OBaMDTciJ}3b>3)beJyHv(XwRG9s;J-ivQ2gG!0tz8CeTOZ;=Aoyjm83fV64^ZN z&o?O|j@wH^fq3NO_3pgmUT`0+t*x`ei@sQALGK*zZCL3uj%)$<0c7#dPqIdb7)Z^4 z;N*KTkRmd-WbU}s21Hd__BKeTrluw+^qBiCwP@!vw7cbOsS#<)l+>OE>B*M}X=g5# z-Iu!gAa*d%HP~>Q;HjARp{NXLW<;?D!P!+%Vs7;isUW=>c-?SFJ3A~7XLD4it?>R) zKSfDW0{A-|z^Y^*^e0Bw0;_;g6yIgMjKJ>aYKISMV0F#k~^Z=nc zYjC0RHNjbYgtdTCmbEM}nyAP~Vfanb(+Hr|uv56@&wUAwpds0O_SWfF_Q7+JZ*rV! zn#Id6m5bdU$0i`60Z%vSU?!NhLt^H2sak}=`5g#LmaSO9?sM%y?oyji%7n`jsh8@< zsP;am`_NUv=?0&)YImP}ARni^#geY}N+|3dYcFuC(Lw{PoURYA+}G0BRz?b91tnRw z&RZdJ62P10{0)ZDV@wf1inc!7Nmt~Zn3%|*fgtfO-0LG!$}8>K+uLjO{0`nBp)S*e z#!ui`P$GmxRY96%M8MvKleqJMG$}sQFO?Jh6vwWWjeV*I!GEH_sVx8(B&rN{omP#5 z3H5Co8=GhbS!@Do8#o%KRtPilpgXIcD3%I?S%tulJ8M(4!R*@`>oe^vNkUSZoH{Q? zfS2vle1WoS<| zlSG{}yUps|RE-P$2z82$4ekP{(KQL>ZwN-n6lmr={QixbM})_?R=r$qW8#|cIHKNl zc@u5q7&;C}=LHSTC!qht#l*7DN=&YNZ9}-|jhxm8; zV!T9_EuCSYA{Lzb&-0%a5~p6h&jEP~g^Oi6~oZ_$}1z?jqu!-Uq8S|K2L6UU9(H zRIt85o|)9Uk)ttz)b=DmjfsUNC@?Too^x6Sqy-t3VPzL^9t-J>mR^X17dkJo&k7V2 zYK%u&qo7)G7}u715Z!^o1P)a0yn8+r5L*FdQ}8QlfG0RkNkC&FV!*noEK+LkNl%#2 zB|xjm2cO^2Kx(~4QMq@XkE{c}xI_`eAsiYS%C1|OxZMgDcjA7#LWe}2N|K*R=s8a+ zVY}=5;1-$MpwKMU03^c|qM%dSUir&F0XgkbdwT%ERI(tAy`aLT7yJ!k=XbPXkD^(pKi0xvx+Dh&2ZWmV!)+pw z=U`@O>FJFw4y2?M>N8@#g_WLe2IbFO52EP%?rzWzHq22Ren$+|H#bXGV=Q-y<9YO0 zrR}@!ZiVx=AqQBtxaXi>wAhzW(vSolys)48m0do^KPk@oJv-d&<5d?=U^2IYCK{;wd5KW)SSn>mg|XKB9k7{f-Rr$@@nY4RD3Zb7a-3u zR->1@L{?Q^s*&(UfCrc>%eVXikR z*dXcktL>7ui{1fNN-fAXfipRaSByWSmiZUc{zY9O7a_O_&Ygn>Z9Ba6?)w+-U%A}5 zbxuC3HsCfZpr`-f%g2vTEce(vyLjbZ_UzY)Y6d|;SLn?^l?LajIz65CNSH6lr=tvn z3qY)1^-bFU!13KjkuQy?@KU&H0z@wu1#aY}dyhkCW7t``gvmp@Hc=)frtQ^_dIooq zM|*QoxvD9EeQE|76tIJ(iTav7pM3js0UluQ0#1IJY&-z$;KHNeHnfg9R!`}>@=v-7 zWIF;o!R4QX8W+R#C33I-LkTcGu%M*ETUY`M&D!`+VHVY(q`J!oEPe&`hsCqvSxMsu zfn;ga_G(BY5_mHOwebgB(;fq~04im{Dj;7GxgDk|mz*YO`!0pz#j~i{6E%hk;5h#i-l;Ppw zvSDPQVPR4gU)3Ke=3hZ?!yY33OdbN(wJ==*C4=%vVZ#tp7YfBcQDG zdV40dID8W|BK*%;%2GD-z38m!f({%R^vj{~FSQ6iSK5CRUMR*@B>h*O#26yugyWh< z^~G!|NBrx?E9F4_{&&2=!~U1`{BPTcz^2ur!;D@15$iB{1G4#F z6#}y*rz@=g<86N{uV3d5$B@DwmmycWkz?qwF_3zaLKjI?U zU*x|GGj<0vMhD=8vV290-tJGtc-oj=(lEdUnEVX1w6tar!%Is`K+DBF)=w}4jX{96 zd7B~4$iQ$HUARBtK9%7FgFZ0I1Ox^cXNp}39Hs!*Uo6HF1%nDSqE6F5n^bQj16H}C z%kIACh-1_O?K9*JVh+ZYASqLXkQWfN-~xec#dLz;C5>x7M_z=4QP3*A!CCeZlyl|+ z_?3?yJ%VL>0%jWwGGVp7CJVs~^8GDp%H*z;c0tQ`Bz_1gLmYIXrv?YtpiwW9)SR&g z-5drG=SQ6sW@5ryz%lAxz4{51x3mjvl(HJ2A=A=y{QN^5*G7`C{}qoNm(Vuw)v2Wq z6`x_=2-*{KAn~DV0>)4O#Dq9djUxfDkqv7_e^V@W39KSZ)9qhrz?;;9S8ff%dyXuGFulIo5%6dPiTsAgChX+Anv|f`?xs{K&`@G z58%K&KnR34aE&wA*cYJL2mVXk=s1-rvY+W+XP}7Ju5WC7o{+EvxU;o2Q{e_U^a@R^ zQg&F!V*gdU8u%hQJ3Gs7^`T+b1lo+uk(zSlBwVTO02D_E*3P&-KSJUmUj#*Z8EqRI?#Om=cS+y3aO~A z`Yu<=_hre~fkNEXxE+VBqZjV$&)^x=% zD+A#qPl6hF9s~|_nR_o(GvcEuK}u0mf2u<2-IDDct8q-Ez$4N`lUPMmW?O zc1}$!;dJnR%C%*+wMW2ld74v@4FO(cSfv?%H4^wcw@KYLj06Md5DIUB`emoONRC;= zpTwfW>;rurU2FS}Wu+7_%P$_rh(r zwaK5m9~~vV_S6lc5p}N1r;Ie?Uvz^nm*Ut|z@^Fz(xCVk5IS?g6k^^E08AZNb(k5e zhD4XV#~7Az{Eh%q9)2ILNs%)UKXxUKFk55e$7=&Vyq%^~!}+N#bCo0{pM09kdaQmDo=; ziPv$O)CmUcHGZFjR^5}a&#dWQnptuv4xJa~jvlYzD!|6TKok4Q?8}m-yWnzz;w+5? zSb=H0OOv4wz>TI7RzvK$fE)DqI<0Pu zV*GLt(J=2_+743*mU^Ofm{HhWNRF{=u(1GaCg3-X4T5Z;D_}Edd?;j^ChB~OrpTne z8UUQ_b-<^lN7t@iMQj1!6~TlTjKGAW6%-!+Ci=IDDpl1?UZx9Of-xEZQvm@IxiiR) zYW)M!TWB1{8x{%*-OzD~qxy(bOI+8Y5O>y!23peBii?XeS;lV_1PaR)KM(^`c+%FqII1OIm8Q;sZ=4mkAk=k$JkRR76xTl?$XE zSPn~>V1=?&IJD_q;L?Aat4dYb;I@kRA+-oze$Y2YEM&*cdyD-Zeg0R+p*k8 zEFKIvtNAC(;M88f*x1lOWCAJE8_P;a&{D7NROA=saU|<0FVW|+x`~a>|G&qWt)_gHS z42<)HAKP{>L6@MWE6&w-qc%~MU>`=^Mbmo@O{C#lnCGpaCkgF1`2*m5DKSP?7%sO7 zRD^K~G60@+E*kS^aC*Gq{OJpa5;-QiWb>R*b>b$%_0GU`};~#s5+ti_JYRU&{RvQAk`@V(^ zGTZ{-NxSn;WyrzTniQ`7RzQD;nH1e5*icWN5G9_}#`)m<~`;H`VQCfL7cXoF#@tL0pAgqEq z-(CuXg}2H+gW$tKiaAZ6xC?E6Ums{&A00n3O5%yAh8WJgk$AD-9nj5Bjh+-uA>uH) zX*r+R=rB=7&sYV`%d*lga9&gTwNMkuQ2ocqeiO65H|@PWByST{^d?Ol0^YdnvkVxU zXN*^@P?q_&>T=LcfjOvkXn4rT%HGI;o+c`WUOK1+H7yOJ#2Er7F8O1x!KemI^)Vx< zh3>}H*B@X?Uy)G)vvNFKHD}>Qpb3~sFkkbzC-yU3I25NXW#_lNY|}7BZOmnYq?Yt< z=<(_S=CSlt&(zlupGtTI+H&%Wc6MC5=LewxLA51jl=JZLfVtrvXnsn|Jw#yV@q!0A zhE*L?Cv1?+6KhvV$HP->-s%SAeLdyYMDptikMlQJ1dV zJ59wP#bwAyO&kcIR_nfY>DQloQl!V=s*uZPZ(0GTnT2 z3t-c|sCPFWVuC`hoAwC*{CQ9(ba)@DkiiMSx3BUNjkoyDj#JRF>EOS$f^P@JP%>7N_Cf1v|O4D-A6RiZq0RbYVrQt2^Lf66UPwg^D2 zO=*$ssD?hMTAaZg+;5;&U{DZ;$W6{=ZA@6GE_yzXN%DnbZXw7?z=O~DVfSioN%z7R zxbF?415a0L9(oa)vLw@*-h|l3-5jte`;z`ddreg=@7~H7zwE0jD~-pB*X4(m6B*jB z&?_!pa4*Y#mHMG$8QuEc{4xGLlV zUog4#Oyiek|1C1l|9a@g^rx4uC9(*{wN;Ki=6Frup`sNihc<56IusO5(bAwaN}VJla&Z z_+JKOxg3GqfIPn#aTF@s$)9uNz!5cA4MMgBg3^;* zX%l&{d6pfcH3uyK5ZK+2i|oOU$_SV{Vd2;3`3cxf2eHtVzXL&SIl{;F?n{_m5)50UWd+XvP)E(;jNQyEJLrrcv)fV6ko$nuw z*ueb|OA$I#)0#G-wI(B3FybPEl9G~{7n1kbj~^8wki-wZQ7K2#!M!Houj7z)eG{&| ziK8Fyca2)Pzjp=fXOkVC85H9QkjH;jaVK|#t%xHzb1kBRQcg!uTR z{ZTyPDp^WX0fu1)dmubBv9TEd+~P}qH(^Tt?Z^#&08u~AVvd$MfljpTg;O|F{W#fa z`k8bbJB=Q@8=Qiw5jNp{+Rkp<0iPff=UJF=A_m`uqx^qp> zPM#EB-tC0A93JeF?cLp*T2!;S-RDc&0hNWt7k$&dPF-4gK zd*+Zms>wDB%VP~qD`L_rK{ z@9VU=5`?B{mxS_f!!76sEkXQ20RdrYgDBtDUBO!xf{wV)l1x~FjpUdVv+-<%As=kW z+AX>=jsvWvBSaUma_KBZ2e!_GyfDv$$GUhK$qZ-XlQBK!H7`Eetrxl+6rrFwX>8YJ3&sui=c@j z70P}EurlfeMP+4;n>*KT+Li+L(fq|~k~piVg>TC+C}NSQPFK#cLNwo6ToXD%TC)Z& zy=7f+>~wW>aDP3K&<*aC%wUW&44jv$8Mil4HDcQZkOp#gOiWDmI2mFsL3xc^(&%ih z(y6=+GmNC{F(>Knxba66Vz%${LeTbyaw5UL*yC5U_(>GA=IlCHW9;Y^-OsOWy^-g3 z^`;NhV__%5n7M5^_1g%`^A+WKJp-R|ibT{bal*Y_`S)fV*fwLF@Z{~=0tG+D84+1w z9{mExbX1q8lw=wN4b0(|hfNfbCs_T)4MHX0Kh9UTRQrD-&s%eq@1pNI153BQTf zZn#!x^;NXNl)n6lXQ@9{>dSyKPw-F*vmv669xY~^$}s+-W8Kz{-Z;MD=OcjAW;5N- z_hh5P*H$&(*!P#d^@TXqpW%BtK;VnW4ARuWIC^E*lRjYnW!7H%eZ0I(&ve{|_5Ddl zK*1M6C8pOsJo~H{CA$F2_Z%(j>68u`GQ1BpQCWDii(E%jvi35K zzl7b&YwZfJcRMc2e)qHD}6sF!vKy6-OYH;+{7;=L|7UnC0V!Z>-(e_y*Htv z%a<a!Cxj}gP<Yg&Sb0gKyTA- zJ$bxkA*>f0X4y`&Ed;>3;g_bh*T^+6Ffga;n*?Jh=PUMdua*^m%0S{HZ0TCT4`$YT zuX!6LBdT^EEvlQUo<&lR&sZ5F0v}d-83`-!s1gx`e6YB9@AUM)GX5gwISz%8mq}?wC zK0x?iX|JPO`7gk}{akucng|~s z-_D(`pfpchC?QOtS>9mIgJaGtkg@@mh8e{BMnZ#zm! z^%=Sum|u^2ybsA%IjbD{PRTmtyMfQ2KX-SZn;iK(OG8K?oM%D{7o{eOk$J2;w^TKx zkDZ+m)rplswkt&Zz_laNGNEUo_EbIwUX346q#s8H$0Z971)L3r$PMf`pCNA*`z&ui zrx+}k`{LlxkUN$|I5TupbXEw%Q3ynA9=dBa(foGd!Ue%&#vr}nzS#}P$_C?)IK?ox z4-5&!_)w|8c0r`XO7I;vgLfTG{lS(Jx>@%XfKrUP@E!@p<1G1ICe2>-!9yi9XzNsw zlCGdGfC(S#XmFpw)>W2ZK2d^ z&3~36_WOU%3l($0YnH|TYkSO9M*r8dh@Q^>&#C>xyU${nzmL-IE2A!lelUwUXMYLu z#=j?Vqs`G6)PdXmz;J(qBuXfKO3|qMXlD@09U;+H?-T=!E31o0JgIp0pUe~WJRD%k;BtLp+GWFhg9g6c_3Q;%;_2+*SK#M^mzqU%$RXg!3;-QIuXinJE&Bipef#zs zJ5HBxROx=uHwpO^^f%FwsN(Raw7s)6&}pFMqLYb%m}PbN3K|-kl`AJfzJ`BETZ5JY zhKb^_uge5eL)s%L5>_N$#~ zR!=|TUMu+Em8#nIT%PPx`*PHut8Wnwx)6QA-=Adseadsj1rHmmN4ITTZ%oLC-p_+l zF;2iOgXenQMoBGUStA70f6t@kB&eRe6~7E4ySlp}za`6NpfLt5jQae7f<%A3zJ3e( zuw2Im3{Ywk)+nRpn|`2mGFeXxI$7uA{^ooOsQ6Cr>?;=i0~CJe&PJ_Mm0-M-`-Ri_ z(S>&%79)>zweR()3Q>mj1X%t+jAWe7s5(7K{1fz$`g>ccW0UsqwTox3 z_;@W$nQXkaOU;@sDEdimOn@$cyaC++5X-2kXQ06N52x-3F6>KBJ5s>X;TvA+091y|>uj@R=1Ngf zM}40EUh(FXL;bkz&Wf0r7#wul)|`FzyR&zJ0&70fnq0cC_(A7=28BMtO7Bs+c1(+m)I*IeCMvr9RLiz=eL7`PLC%cI7C9&C z%|Pt>iZM4L00eOh(gIY21`G)a0bVzT9XziL{=JQxHgza*&{aS>u`ke<@|>OmhDR$X zKU!bG!egk8(pS^t_aC+x%E`$Y8XAKAE@Q!_xZI|hy*APaJ$*PTKm>0nTD+&IoKy>X zPpA*9FjEXB5c~{BTsIjwNL>I!Q@LNFZ}O4$C_^(XsZh zbMH;3(u=(h-@C4Qn*P`?$fpyEbfKekcUj~aQL4L9>Z}iAWU8$;W`$b6*4HDWF5eSH zWTzS?zWu)7GBh^0E~jO^;Qgc;TYO2PDB8M#-nrnH!)ZX_vqeBa`$L@ZeN(E?WfKli zqDm`}2^yRznMBC}oAbMB7&eSi)tz16lo0iD9|#wuA*Isx6>|2EBU^9FEji_m)kfLR zwfz*UZhUa?i59xW4Cx8wMz*%Lnwpw+cHfB^9+RJV?ZX)kU}{5F>3g$}t-JIxisZ@a z-0t;j_>t27<$^(`}s`|j8 zn!393^3w%h9$>rjlzqRQe45FeE4Ufuw0z&M4<;Wz%v_ClAu~+SRd68orlqA3g58xX zCvDZ~9|dle9eFA5%)chUEO9Jp@Z%AuwzW)5!#GdJj~z?dasHXlkJlQqqr=1U9FWE+ z2&m(SpYd*ZFwt;O1ODKBf{|P%byZ7aj%`2s&S8i@HKbBCL*0DvQMu_q3bc$Xt9Y)) z#O)21)CUY!n)3U>UvCT)+}GIXL}|1FPTa4i#*_emtHDi$`uVuavr)(zRoN|Wp_#!k#}cy|+nrcAB#6fJV%U2d>8`i@#@ zTBQ!&bb8OQ1uQ?;XzItEdPRwxXPt_{uZMD*oZTI~- z{*;<44esx^k()PfUf$??0}X7KCKH^U#-onMYT;*K&ZltkH|QpieDj*Cs;W+y*qC(E zk@OOrcbG`Jj_}7nf*|X!Lk28lsA;td=XwuUYRdT)<0dq@q`~_TaFXS_OJ6fr{^!P+ zI73c>p9_qm5xcEXrr8xka;LoiB_nd>?$I?HqG_q_rkB69El}Te+!7|Nmg!9M3UG8+ zzCbc2Z3znvZLrdLF;;X`0`_m4cX?WZ@GVUV*Zs&n1m0k3_|{CCkqNnVSF>(HzP8TC z;+bEk74AmIX~+zE$w`>$6gu78yZQ&{qeqWPx%62NNX7Y%oDV5Vf-v<{?p?ys+D=gl zj4#POPCAd|l9$hOC?UFe_VHjui8OZImsVR-^P1DT)I<~bqD+(_q&Ba+OG}qGB*N%M zdEy~LyCAw{>T+PsaEF;w^O%2wF)Xo@XenY=mq0RP7`zz%l!eo6fZ&NfzmFsEYUk8O zo{SqIA(>!GF`);wz~(w9#Y{$yr0`G)c&?f94;Ie2eK`Mvupk+kf|1F)>|2QpX?i*& z#aC@Gt_niWix{bcA!F}ulhjmIQM*l4$WAkK5dP8dOiDR;&y<@fdnt`+24_H<5j;?l zlDv0AVv4=Yw4lE%-K?M!C)pd2uF(|;*HJ`@1F-q(>Y5OU{t8b)j zzuT44hz=Kl=o`8M+OspO0%mad(5*TCjBEOKx{?fO{4H~hf`TZK;tj|Ox(+s^NL})M zyNI{N!TR2h{` z#63ZemGrm5>@cS4eW!Z84TiyNDJv=-<;C9$MY#&LKkyy?@R;lO+$U*-SxgxaQ+C5DHL`WVfe>@ zHb^%C9WsS*g7Z*w&`~coEEJx4d%F1O&-{C9^kPo?I(>R6_fFi_46bL$0XpJ4(sk~T zI-o1cNusHVH#hUm)RcQBr{`vDESA5Pqe5IrK!EX^=K4K+)h1NVJ+*A3Y3m}QPp~pp ztU5$t8XRq~EV1!Bcqfw~rw2T1V;pSn$B!TH?dj=z?91@*9J+G8kj#PPX2vUI8@>&) ziCWOa8wdu_o4sFC@)guq{`!)nvp;h7-*O-Fo7}a#_0@TpR!~ojf2cXxP9@i4#kI05 z@kU*3t%9w;Ww6~@$%(M z;0Fxec?bYJJUGZueC0IIOlJ*U8-xd~!NEbIRxEI|0kLnWZtoFwRq|PRy4|;ul9E@i zUjy{O0=av1>u2C3SaO)vKif%Snp$i`#JRRc)rtingHj)G(f#Dsk6KJ<8@Wc=KX$7e zwyjR}mK1Fxqba!1Ym|3x`G$uDE$A`c;ZqUFmf%4jFXiv=kKKj2BhqNJ^Gfh&dA=qY z@3IdLD55WSVh?uzK`slg1m~HZe0;~?6|m%V?b3@6ULpDXRLT5#mLyj#rKv!oG}{RX z9KV4~ziX&F<}c`1dUAh{<})oCIy#{*FM0nn3tAp9=h-1A*{R|4EE9R;*L4M1dp`l6 z#uI;_Bk_F|4Gnr)TILl*dV!3QmzUSjpktpFG90|WJp1V1x5L8*_ai(&&q_){!@|zp zvhI@Em=YU!_yDJ+1fzl9>+A1UR}q5|VO{(3RFR`jKEAJN!Q-Thiix2Es{3-l&KMts z#xVPus)RHpo-OvIu%FPyWwvhp;!VBooFu(p%0Kh3zf+t~x?N^t*x)JF8{2H9T*4bw zEH)i5&stI^FUnTzQo*<2>H`;uo3_fC1@^?LpZ{_u$!6iQ(n-=+S)?ib_wT*%&iv2s z{`Gjo1t_kff8WO6&xqe%aQ9hn#UF!Q)JOZtK{>gnqnBsCA#4z)B9HXchQs3CHw~Pg z15JsEi6Ll?tP|a6TWQ*hT~Mb$+p<=V|&L}C3p z1**-SX);%+es?J6Q{Ca3gK}?(ET1DtPqum+)WT;j+muQAz%Y2TN zfi}&H$_OJHr7uf>b}3u_!F~8S8knGk*y1GW!`M&_-&sdKY>te2%tUR@9Op>pImFv; z*g|5VW0wpL5BIVhKyT$o;zdQA!Q>Fc8<5<<_S-D0nUO%DO&qhZphyStmG|oc*dNY0 zAp%o_1;67EWJo=M@kN~;=MgcG-k|0{z{5XrGL81aoS-|(b`>%kMgL=kj32wZAc-48 z1;xyo;-Ts-kU1VBn*r6|+<9&{T4L}cr{3ieH4G9`>6LH!{X*g|ku1o9@-lH_S=reU z*55R5?Q&!JxeWpwz!SI7x4e&Z;!%@)!YqAF=>@PIo;q`zNjJkFn-5xHS=6mtGZ3&) zVsKZEeftn(D<4NR9oBnK|3qzo+5vgt1&Y)5(AHlS=Rh)L97#}V^gWEGMkejGHI=zU ziM9Ssk=qUuvxd69ltpDQF|OzqVO>Wl51fc>mqDSZv`wJT{PvfZPtmWZP)W4)ocGD! zOTU4W|4uKqF37`4PtO~kGtxq7=Qr-UB;CUuLZzGVZ>=SrBoa@}oj48hdJ+SIm|0jn zhM(^+Q$KKkPL+o0j%4Z}Cb}^8=YC7|w<4wy)*m%neftT#lL_hN=ur0MW@b$J+K_w@ zb?Y=F)U~~CPmw^LW-o13Tgq0VW+aLE7B{p7#_1#;tQqh+FMpYs?Sr?U7lHDjv(wCI z`NONL4@8M7+UtIVExs`|^_ym@G#49N)U|7TN`zBw;I*##1lOK{S^x;%CUB)5pgvZ9 zh~pDjwJ_x1C@78iKJ(a16wGY@AiMRqWG39ZcN$RJ-QB%(qJ*N9b2IOb5gFVO>dE2< zi8FW8l?IKoFNDeq$I5zozjeT+YJ{4 z7z0DJVIb=dnrmx^8j?{o^p$m4DVTTwRhTgsJaqhGXd`iLhN>a2GrQp}= z<-VMtk_Q#Vu!?)P;k5K&``V&YPqH;KHukD#A;6I?Dh^l(%F4_A4+bjIcK7rU<~ZP8 zj-~dl7 z{hPRPFwtmL#2CZkol9Bq{;oNawOu9RYweuwpS~Hh#-?SHVoEvDt4@s$j%`UB)3sGk$HQY9R@@Qmdp;GayT=LM zv9M64t-4y~LdyExp$`sKxv1!9$*eE`0}`sbPsT(tl;reQJh-DX*FI(Vyvcv zn8+8ZoFIQ79#u1mReZb6I@#(S^SzMMf1cO-nVCS*47l7`HdwoBVJcsO_FvzrJ_PJ z6w;xhpb&9<{s67LS>6|??CCiJz0I4Kf#K1=1!rt|=gWj=9l^!-LVSHGGV@3*IrR0o zcky~}il}q+;;0L+YyT`i5aNJRjJ|r8?n1UErrctOyVO5ScF}MCEF2(V+xP!QyN=KP zgU(>QEAnQw#=#B$@nt54kVEsggNyq5ru_*BG35#h7Hj7p9SD(!Cv~2-`(J(yx3Wd+ zZzAFAjdHxIp>KEJ12=e14|9zIz3hP5^3Ltsrfm{%{=BHI72LeJ-YEGL0-jUjM}E*^v#zNEO@ z@c=f}=#L-tD_6FnXdczu+K5(tm|WZh1x+4LfvIYwmj*S(wIdFou&}T&FHbUa3Y>c4 zojXRd2O<`7mR2J&LUVBMtJ|YZqU4`R_EC-FmApaj-=9+J?~!=#+MnKM2?cTJH@rJy zo`z{q#BB2zpGEdZetnmKH>2sELltUkxN00TF}I-%1XrbxPO|8@!+}41`)o1pLc(L` z0Da+Pp!A0=b(zs6+fS~vSbRY2PZ-(MoHPjk@1;wZAbv*t z!Bug!LqkJI?9*cpi#enmx{~k4mdI*ok$tnFYoOFlN=%Gn>PQ z72`C8*$E`loq0Xz*I?w}NdGFszz}h3KIA>xP7bjL!O6>_s;WvT_?~{ihQ>h1sL{)o zVL~O~yS&av4cT8_JP^y$^n(VN8YMA^6W&R~H0E2@w2mujX-9^JtUf$0a(?>*qty1S zGmFd1V;yXUOAAN^{B38xe-DRME(xzoi(+;blnOHKYh7NJHF>lAEsfE;fIv)-TG~Wd z(l?wYa z3W5VgL`3|vNg(PojFmE!;I|5occoH1vz?Y@YHF%s6a|F({{1>J$K8MQHLfZkkx0nq zuZdsg&dCSP+M__s!BV=*j7lKh)F9Q2_*~UDG9Z zeg)sFbwpl4q1$3UZ)B){93OYKf4>4QkzbxM-zEra0)i!r$)#)%k2Cfj84N|NjEp?f zH+iP94hk5MVo=JWnpzGVfQe4ZG4~xX(gaTquwxXGk_oVJ>-<<$d~!K*J{En$>dY$@ zoNlzqDQ-Tlh&K9l&!3l_1HFTqp$CFIi2JgM^Lz9sN|`kH6X!PES3$5|{r01nqM5n> z(51VZ|E63(p`r<4(z5p^Prq^OA z;zE$IQdv(nB>{)bat#$C_ zd@Ddp;W6q0w0VGF{9HRvFdlSp$ZDxuojM2&zM`mH2}+|MmpxU;b)7@w5&SybPzN;B z)SeZ){<^@uFvvvS9Yk|5!en>$9?V0rL)2@l21nb~)%D5aqZ-5)aMfu?&d3Ajb#hoO zaef-?c@ws*;|QRCXEjclGvS{Py00B=NkhqniXUORkIe(Avi_2Nf-k9qaVe z9h`A9Fff?R)LxjZ4J65!7q;>7zKZ=;61sj+8{x|M+^pS=3~qE`X4&eME8)ub4G2(E zSKm7PlJ~bzW;HUhbuQ_!JbuS`Xsz|#LCg-yIllh}{!xJqQc?!RO@~mPd=&Ohb^tzT z_O+v3y;@OnyLD6T_@5sk)VBGw9qDIR_?9>YP&qe)5L+O~X-5GCRGyKrX=V1r575db zbA^4n#Z~odAxf|%b>>{hln||pc%Pq$aswSh+8wWNZe{ze>)}caZR`r7#6T9~LiBQ-THc}@?W0I?-Snz3ygxV=P+u(mscle~b>vee_t@!)uRkr%%F204o3d9XY9Xi*? z(~SuNrP)U-)deQbDt|SdKdM3+A0f$Mo4_{&&8@G(*LR?z`>wPD*Zhs8e470UNL}DE zFr*DiqM>2**To77V>-2~_O0th!1OpK>@W6JU?;gzJ_!2&5;m=J3b6tI!kCX_$YpUA-@n^=^B&szUtg9Y zPZS)bR1Z2m`#Zo$lKp%u1&I6AeL#ZqZ)RP<_~hh)Gb5Y7$OiV^+hZX+2Tyg3q7wBY zP;KK+Y)#%sN)qXegTu7d=3cpIuUFI0DAOwy#-5$rub|MhxBfHli+x}BG^f@(OzmN9 zTMFLT_BZh6t>mbjKOb|pfgXk~I*U23cEDS>mp~~&8=N)}qUpad+-2#bCBNy@f{q#~ z0>Ur+r8&4wd?@v_#E@QQ2#1aX30lb`zjqfKGl^6Kau`OH*r=#vE?&{d8Ulb-*MYS|Dr?KKRMYuLcw^r% zhFDh1V)cA$H#)UHHzM~vErYiV7>Jsh+I&-3$f?BIlWE0^Lv9R;FC(OQ^IW0MERgKs`K8ewyJ6(l`It`!52Qpr8KIyA?xAYSXb3z|H`v-w?lu4q*L>fLbADf z%lgg@+G77pvqbunlRa_zWCh2kceQ5Ob}XuonFQmTWee8AA8h!-OxLt;qWW9V$mv-wq{FT++|Rd@97o9W#)zjE@KB)@@6XRiObdD~d4E@kVg z*Y)-Ou0BE5=q1OX|cR3S)5kRno)UPY89MQW(hs|8S0nhGLPlqy{kKoJF` z2`U-{kshQ34CKz}+Dq5^_8s@!G0q=njI+lYd#?>4dEe)q&z!&ZB+1lRkAaSdj)a7S z!9ZX86bT7gDG3Q_C=D6>w@Xd|Zmt5(Ap#x& z0lxk!GBUmwoxB4Ay)H_-_;>}qe#sASQE~pXb-;gqPC^Rr6MTE|REPJ3?4Fi+$%eZu z0<^b^tk3c%mwTxkF&uX`2piX_=CX=9$$i*ODiZNhmq)B*-JYM~I~I#g!qhk~Dzi0i zyC3X}Jzg4|GgX>8)^sCyp4aES!~GLZ<3riExL#l7?|R=@)bILQ!z#0mKq6LiCJjYz zdV~DLr!3DqHg9KannJGhVa?|K=qq$1U3b4IN7-3vsa!5E<1(2}oG*I7 zKe1M;?2z~UW?#sQD}-mZQTmo6%&B^uUpaG%4Seo%TUtNgqUaiZfs^1iaa{Ljko#cO zGCjp3!5NEMvYd~dcCGQrq$tK{huj?1K3R0dt&D`k z#nnLj_~~H#g*(*2Y&wK)a*-^O;{pQlreqXk`ZscTLYeOwSZFXalbyOJzW;crUdTa- zQh`C$#F)Xb8y{6^TSV44UhcFJ^4uofHoeDerC;pd+&Q-Si@#aF%lSr|BS9S>ZD6+U6dSa z-fgvg_j}*f&W}Af8RnIJxr2J#XSw|#d`>zycIrBcq$q4Qp68s}>pLl3ow>^^G`iSp zRu~oxVX29~rMWqDlh0#MQg?o2g;w-6vC7%iA8XvF@AX6umAG`_Gml>Iy((hR+!Ar> zfziABh9+Ugfp_$h*$yHJ5z%sps~9m6K3U;iX5p?7?w;&JP1W~YGSc>Krt+zo-RsS% zeBaII3L7Q&z^DSY4)p|PhaKo8(>*k8{%+=*TwA$HQALW?w0f=wpmq@ zB9Ta6M6wgr&VvPG7ie)!35(dGM0MAy}HHTB&FozD1^ z+T#y!Ci$)L3i`--k#nzYx#m;1ve*!E$AuCj(aC9&R^Ar*&Z~Jx&Y!|xAuBO)C_U8Z zHBq?S`U6`(IU{XTXDPYcwtE(F=}WL{8D_F+^Lj=`<&qKCVOOIH+Yn#6q>?;^#hv9y zF~auzLM-*0q}wfFCPi0;^6LCSun* z_Pg)aDnk!E9Il`vUgP15N2c>5>m2D2oOmQ2L8%z% zFC_72qYv}MYTUEH@9sWKbE_)KRSP>vMRAn6n7d0l%l=uw(XRW-{=24?gOxV*^aG0% zj4ro2xUKS>vVkOVbjE?C~b|_G62wj_6)T1kOp+p$p>7^i!3&NaWq&)`TXT*shM8Hc++wBGN0`nz)7t8D`r)Y-?WDow zW^+^a$cef;Ro5%+nvnYX9nud1;DVyKxM4KemHDCbQ6B`m-@IXDrM&*)jw<7L)P9R{Yj)P_>HC}9-rQyV zdWeJKWFGQ>1Yx$=AR(~!E0@8skvPe0_@Eo!!wD;Q7Zo|Lw2nEkOl zs#}{|2^&a+YXjBh`+1Vf6@~h67l#!;J^SJHov_3s9PH-@@7+1~u}+QU^iAq(5#fIbD*1zj#3>BrN&6D089g}%#! z+fru^ze*Q=EI(iWG1Mkvw9Vj}$rapa`MbSOoo7;vj-iu8P#NaTmyRwO9`ijcW^k2a zJ*C8JA}D^j`a%Qu@aw!yt9yao=|>I>WQ|xB)**M|b+8*2(!?y%VrpAH zzK`mI61zhWC*L=1x_%)zv>i)SL3@0EX}D8{D>1$kYnS-ykj;iw+1lL(#}|e>BGOP> zwHcGhyswLk_w*{9Nf5>XPG;N8WB>Y&GGc#%#%HZ}+=M|ir$>pZOMy^}P ztY18$-n!*p6?8T#qOgu(Ur=XXu2RY?`EwP*<}D5nY#UElzt=m9o-BDIkoB&xb5wIK zSjxVcWqNpDLbLmbMT^8^V`cfUlC2`MeN70qvJJOEJ+Ve=5b2fvXwLke>(5s@lpQ~ zPV#hVk>x(7Og{fBJ!6Udo!9g8`E_pyYIT(^BXm#UMZ86x;3gy6>gwz3E0_0Sq76tm zwtZLdTfNxGO8aNskgl}7h|o3d+ojf?F3&4w z@|FB3YY*At6phUS71GYD9?p?EBYGEekxh|G6R-4D=fI^*nL+WSRg9MU$vg$Usp<#N z3z)lN$SCPxVJa=t^%lq1<>&;mpzkd{-g8s_+xlK}!&#QtDU_8WDk{oJ@UQ|Vqvj)GZ9p&I^%YLxQkli0khNK~ zesVr44aG)ijVSS(aU7_ex%lo0!r-cil49JqVH+#dgbx$KC|^)Zcijd0#0E14;rmJI z!RO8df|U&+ic~l=WaU%iavOoRB<&fyvB*$e$anRU#L3V;hY$i^2DE_}XvViLtI~&w zeVyYJabNp!63WjQ%F=z7>XLBy@@a@;xiy74`^Gn(#s_KaY*Dv6!G^ku@SG z7C5Jf-dC*bKl1>W)Cn~RwJGmE<1DhhzK@3~(|%Kp-N|X%Fh@E;8;iN`IaEr1^!X;c z#A#+sx70qu_GI{X!qKVgG<#m%L*A~`%Ydl_W62%Woo@G>jnsH&?vZ`g$ob>9j+_tM zz;k??>Xso^{MgHb82)3y0nY+RF|msK6qh>oXxUCb727qw^X%N4yXMXN$6$oYw04{5 zlR2Bq+IS7+`WF#yu!NLV3R4gvRr z;|9EDmG(PwpWDB5-o=^Rd3Lr9>EbY{DEqC0O+;K=9&Mr@<79$=*0kMnvGC)K_l^D; ziXZi*UmfBr);-xS5cQ5kH&?=YZ;9x7RdKIAk$r}<* z7u~p_>_5VG@Kk}O-}I?+ZV9W33d;%rRX=aBI`ra1kjG@}+h<0zL2nNp^!!Q{?$X#C7c~K8n(qQYNqQ1DrD!+eIx40g7v8NuCV+`I7{U zSRCf^2Y6ZH+d>>|Aid6rd6FJ>b6ydJGkKA))m`O8{0R5< zsL}A_tBdtoYeY1OD#j%+@*isL$!4VHYa^)p3>4}7LY(iOel^P5Xq%)C>Eq+NB)2k` zaWgXq-f*%tBJ4}gKrA&Q{}B%^{_2Q}?;Fg1L1d@SuH&)sJSHmthRBoXcTe0>)Ki!= zZ_{;iV`73UaC#XtlyaK-_~(A{4FYgsaVSpSbBXktfL`^(JO24YOe5y&NyWHKT>R7? zzvIWOegSymOaB1y#P?vr9EZ0KdCMRu()w9R%a)0eg)rgM_V~@9Kn9CuBKgWxIEu0m z$Nt4klg5uEIUhc`E#}w>8o|99SXRzBj8&!{tssh29EpiB#nY{d3&tst_$&!aCmP|Y z_wsrWcs?&L6IvpehJ8Mf?%A($dXgEaguSYeu&_mAFN#qvm>I4J)wi`ANqF>fXBbmy z@o2&O?`&7O62kR96tBD6H_ebKf)b{TK=SRLd1j64|GQ+r3 zL!0dKC+BBUL@91&X+s6j!M)LvAYSXS>`%@YCt?y3HiSU{ivvDvbLozH#CD-p!WyaM zBg@B{Y;J4OoMRK=eYcMGw1saykw&E3wju3AvZd`*E{v4t#1f|Fh98anKoIc7j3|b{ zWh^P|Br*-`HEl608sUth8QOYlg7`*0Fkn?-OG`teQRCisYkQ1-!OOlW$m`2KF$zDY zL11N%EZM)|x4ySwyY|U+6T06$Jy*SX;)cXG^7I&Pqs^rcO#$DE7?q%w;WjX0N$G|u zk#j>2X+#aKq9!JO^kfNdSFwlXbtmAii5gN(rmV$K()Ty#OcBT>cO8&hZcs1VQN>aY zt-J}}(VPym(8jix3$|x{L*E{J>+NsH3Ap)G+(@VYlQSR16NTn}LC0=Tj_W zRdVflZ-7-g)@?4`>EiuOmwk>-ew>-8_o=je%(FURERu?GXz+E~TAe=kDi^!^WBKdL z8;{(2vtcr8AYEO*oXd}hXYl{h6U|WXH4*SoXJTJe!a|F2_9Yn5%gnodRs=SC|t=;ntXU0$0t zliD1h;x#rkHJu-M?7*9LjX8g6vL&p3*Fp@6gNL~d<51(l{8I7anD0=j8C;>^ts@Wn z_Z>+JmwE|L&A)ucE1A$9O)l>6!06`N5|ba>+wL!}PIsm46LR(UA3NgGm8!0;ZdzQ` zYKCV$V5IRNKYucTA8GyYl<2*EM?9kN06;Y7`tlTg-acSp$t@OOy%R$=7Fg|!93PW`Y>|&V~f7ysMkbY-(5A;@n+9qiN*W7){ATPlSr-TFE6gudk)jd zliaIjM`awO9Lz;H@!V4uD2eVWM!q_|CZjAEmpPh(V<#{o@KLKwWAF#nycvm!8V9t~ zUp>D4{lPZup#wX@HObk3=2cRi^iIMa z?kE0Vjf-(7mrf`0`;*;!laHw6JKt(CqwH=k^8>DWZaF2RdHhEH{+ z1&=rQxtLMahH#@Y&=K%VTgtCdl~)NG-pkVH`8Xpacz~_|F2X(t1uRb=%a(Hf*avsY zt6eIpUgI^+TYNj3_|A9+bH)0DNbHA%rl7@BDLQT8{to3q5-7rA{bcg<*49?%46GRP zY(A6bv1A-OLMa@#GSio*m&(P=!Eu1XA4)~$(ST00OdEc%S74Wtozk?%}ZipVu0jSd4G6TT3Y()ljDN)_7z-r z`u<1WON)zMY?06@OfSB;Dyr{tIpW6#TIHiS@|r3;hF{6IKs?nhQ4PSub4fmw$vo@T z_LUj+tFx#|+>f>ZitW~3 z7!_)BeR1{egOlbHta=_1nk;JGV}L$;~DlP`wYFScF|jU z-mgmlc!Spkgr^rjIxLiO)S2%?yBJYqeLV z*voECvC%vX1LWj{zCMkn@})0Kg-V*Rve3w(mpNeRrR|#=d?s4~JAPYbWWym`FvUa(Z#w)03vUM0t4T^{Ea zPDl00$!naOBd<;v5fiB{z!?->W5QhCf0}xp9BWXtaGLC~iN25~wEJ#mY(hc;;q%>3 z*B=3(UisX)9*q+*3-V;d9#X4O7fhmr$(NKaj1lu@cnliZU84n*jJo6`%$mSTN??C) z&z;ZI`*1yyuwz9iV$r0*ia3iQUC!6fKzWZ4e@6=g`7)~XQnJHwJ{WwO@0p8V9z;@x zTxZhc{W;pY|Nb5Ir|vENBA3(3=*nM{nz%M{Ww(D%7RFe~o?;mCKc`=+L=AV#LX~kFCE=k zs8YkvoZ)zE_gIShsNeykTv_k;N+J@cO9jRk=I8U&!h*8y9=(u_jOA>GISdnr15NSR zrhbGoS#6w;#Q*E-#j)z*1AG^T$d84ritM(mf9BK=RjmWz=ydqCtGExIuS$pdp@b$w zzTP3Q2O13V{n+}N4?Cxlv90}#TG09&TuX0q&D*erZvM#YykvrvqPjOG_T!}LPBb08 zRNGs8$^PK(%Nvr9wyfFRUS5Ckg;JxL;^>7Dwr?dS`Ew(!5^u_9{r6*H8P&OtdR|u$ zv#Gnty4(sE z$7;^M)yBY_ErprHGXkU*z($HnT7oYYqjOpb)&>BMbD%mBAM9#;N9Cwi{GPF(SGjV| zS}BLHE|l@(@L{o?si~=KHxM>ejx9_m4zJ>-#b0F0F&_i<~*Z?3nJ9wWy)F6>x*seGG5WogT9jBEi2X}$^JTSOM zMQQp9~MkxSa5r3#) zErvXu?gH}ML8^CvtAY3Lbi`6~Ji=9f4q(tsn9YQGO7aR@n;mEl@fVRDaiQ|vSU6*3 zD?6KVnaMZm3O#36Rf-%>x6=7Rk)iTMQr>hGVY$eAN*et9`6_{P_>Bo4sG?Jhrl6Ur zIVUwjJA%rJ+}-+`Yn;@TNI$CI9tj($^K*NvbNo<+ohlbwQH=0sM&1;3s3@;0k4k`e zC`&>r1L%a2iEV8JC==M0DK5uV&DiZPV;PG*UwuT7OB^S?$9&?}k%N|xlvH@($<%P{ zTswNf68k1fnRS=@^=)P0?QZ?|VW8Z}e3M&~7(dg7j974+etBc8I2UoerX_4sR}}U^ zw`6*?&Jo(LWGd8RI#=k}3+z+Y-Lr@Up07rG&?Q(<;JlxQ2bKMawJKa?*T<~c;YXaI zd<36h<&}(ND(iBLo&oPc`yAxXcHyRMTg_|j++tVQA5LRfjryLMzN5jEO?L|5%RRM34`Hfiwdsr4boO@;jX%;&a zi)63Imq{IvUhnj`9!frf%9cO(8mj+nIY#ExJ$*L@=X)QUL*&zGVwE=1U9`z%UD_+K zn@KmI{W&tbSMwD-6PBVw>o9vUQczP9)<+$Lyms{q2q%$X}g>AI+>TB$iRhyB7iW=BgbkCI8^J#PVLx)*F8w1hN(TQa|PdDF0 zwY<5lZ2n~`U(btn*Um{eu1cT%1C4-kj|H17%O;;W8Xnrfqg?J3j}(qWvhupqFqU;4 zl2%Ji@g5?#?tN^R3)@(Lu61@#&i3MZt{OHa@=(h9bFM*Wx|E0HGpC5<9K&f-Xpy^y zhY_^#%q;AH%AVijvt@SY$7b91oTL=z;C(}CM4^_fF0{nQep6kZH(5kaXk7BWTE|lE zZGq*Kw7i&i<3rPB7twp!%&as+d+s=LAM!rj?Hem-%_f^1`K2ez`a;=Jni>qJ;VDu} z1lNccUksPfu%cV_lbeXhR&*TBPl_pOo2_r3dUyl+^?f9%J3A3--#U8X5>P_5=f0pz z()LG*)}lkBFsn-K$&G-bvva~o=#|#9FMijfOLKa1|0B5*TVxu~QIw#^Kr;WlSyqz4 z9?v>!8C#c-a2#%TnVH>MxoWfo}>ONpE|4~ZOZe*AD*q1FlNFty1uz%~##QMp%fAQA}r@m+kp-Dpg)f3zB ztG%bd<6e&{{0gYR*_Bt$Id0oso@p7oJXTGST=UtLX?qnhP8 zMvJ|zOtBb;{?R8hha&`D4c4<{2Thh-TO9b?V|1>^ccz-oB2fiQrFqHgOhK)o5}g!| zoo^-iQm3$t`xF+QzESVQFbYfEym8VSLz6efOb^w%?ruW^2Q5E(E4(_DKTpQY*I z+|S8{&WLw9AXXH7$X5wy#Yl1_;BBGgoIQqGB2}KKGApU=$end73;bM~%Oz|qtC%rv zYwNhCrpv}Icfga;B>q7G2h0#Eb5LQp zO%1&d&jRUhuGC8)v5^--Zr~2Z^L17~`YND#7Mo%eh8ew^n(HThwx-8k(esUVLLngS zpZL{LCV9FxRLdOZN=tc;T*iLY>|-I9u-u1AdwRF|5Z5zA3udLoN$05=an zdBrS#eYUFa69o;*TTtzxyZDejDHC;GPpy}4XsHMZX-e*bw%}~7N7Q^VE@ldh9d~hZ zRU31|hJE#1sEp71QWX3SadxMZ?kv1}3OfmA+vPK{+aIX7HsxJ=qV_WT3>Oy{ylIX2 zakgAic>x-n0=jZB8nD9WhvJUA`hh&=jHZjxz%X6=ZdvGuzPx@gx9g0(J+?T+Lw=7{ zp(f>#eKOp8M7(V}ler&-`=OuT#rZA3mdKcPON$2EbFW)m*TRl`51P@USX9!gqQ+XL zuviOqi_dWDj_T#)s}g?8a_c0bY6n6C7sjeN=F{kvg38zHeJ0Z%-VL6bf?nBkaiZ=q zIvpn`gBl{`sMil8(oiNUq5BJR!4R@VVd5Nv!}L_fw3CG%^^Q@I@> zk>*r9G;xd~3E%sE(bCv)k`-7hE?)<3s z=sI=~W&l7zW^;->%;*M5m+AU`j_-P9Z*xPV#`!dyE+&pL`|~(aKE@3M2as(yJ9Wlm zjCISS2Fk9A8aiJ)9!qr}NU}T$xNO^Fy>ps(y85pv1r^GL5%yfd+LSw7jEYaXu>Se; zXH1MaXz)Y5BE*GXBpsiJ-W)hL)Nv;200ZB#F=w??yllI6hSnXDl5^DucR>Lzk}IV! zj5NqlL*lszW=smZSA2^;=l9*inQ3*zP|B^NA}ez<&nyHKZy2#HA4rr`td1e7dOxX+ zNU|W6p~d>#eLCJK?Ae?oLE*!PPenwY-pe6r&ECPi9YrN|6g8(uKi3`akt^+xdJpF4 zoLv}MSb`(#!fWfN>DCq=jKO9@><0P{b2W&b&LE9^ryuu zoKPIM8=qOB#?n*(lLc+BosU?0^ixFqi(G!7Tx6N6rJ(Oyb_i#Ya!Nnl^g4(WgtaGt zsO{XJujMYC7`#C4z6JAS^eYQyFPDY1s!rPd4?KcQGc{ItlB1EQe>(u z4XcEAfViMISsGMn-?{+h~IBu{%zd^uXtd=NG{}eKG zZ(bfnQ*3@e^)mhD}2uHOMc|8S=*DlOw@mG7J-beEFindGRgx;%H+Lb$h~tQ3}eFH zX@I9oMoym6`l=W05N?k)}(_r&ZV32wOEB@OOb7lkj-oP>oBw9S+$Cesx>hpw`RF zAAu&=6=^4d3Id?iCVVCgG-F8ATm;oLOGxK=XJ<=GOA4n-|FJid#ao| zkvr?7pd!tHP7M1H*goJHZk}u4#1Bz1kFz2+R+7T$gTnjhKf`#I)ssQ<`*4s14&@~7~65TrZ3 z!0E84ED{EvcyN1teiD>afbkDc-5;;_;a`=TnElYS3GcnJJjqCiAYkYhpozx5bi#m| z)?UjoUzu?ay4}J3O2~i-VcJH_us*V_t>~m>^|S7avHx zWCKMC*K)Q&E`xm02q`(0#us`HDSb%UfJrUOu92T8)7la^pAE+PVLz#{b$CXmPa+As zW9vY>v?pY}R6^Ip9~{U<6*!rhnSpbCJg10Ca2MG3=V>NHVgY+wOZo|5?V(h9@GK4- zStjx}0yPy?@)q?0lUZ>in#`ofAP0-4Q=UZkI;}RjgSI>@`%Ax~WNOQdLvO2jSoaB6 zLtDY#SzKYlr|C4KC3ZoZ4b)mc)h2mlwvON1V;>Cp!$9jpdZCbTT4P0VnSP)k(Et*bxZT zI^qJD;l5!G2c^`==>EVmNWY=d{=R>bII%(S8;ohK|X**>GW;ClP=ft*-e^|~odI{CU zK3Ac07N7p^FIs>NbE_)IS44J$l72D&F$(Swa5ZSpc+xW_1_Oyt)moYh1^? zRur83GOs+H@4eBwFg4p`^HeW;V^bEK(S(=jgUAbNgRxW$MEM_->6$*Kwi-!|$}(1U zXvs2vb!Spkn^PxMmVJY-AV;k}o4Dzx6q#10lwF6&9Sioh4J(f{OhV?6jB&!(s-ofK z$)Ct_-%cxj)o>{C+n{J7$9jqbh0jR&%{log#=KjcZGAONhz)uJ*hLf6;pTGlf z-9t}rp8vcXlePf^8hUjQECMtD4rO2!g9?lnmOwo73X`g2L2zv5-YMV{M9S}XVITW->xHncuGZ;=996 zXV{I{`VVPld-y}wLhmq<^zEgkHJiMf3sQ=sV?je%TiB-eksnaT8z{!6&AH*;)h9U8 z0~Q`nnc8lqA5P}4Jovyb`1qlbdW9d$~14LOCN?@;NT6g6A_*+q?6WHZB>gftP z4%8jPK7}}z%%r2@BbA^)#RU{*f_mUcRlphv+byow0_(EA2YU|cSxJdYndycx9*`3) z1H(zE-e5yMg))b>T|k5u&rkf=SkzGiweE%_M+Xr-B~JFX*Lh8VA_`4NqXIaNjz#~W z?Q_t0b+Ily(Y$_YTD>q-1`IKGVpdjs*R@hrFE43_tjCh)ZbD;~2Xh1j$M&UupX{6o zmw`m0V+sZfD7qEKc#ipV6wUU{-B6@(-$_vS#SFp9hasH^a0M`TBAJrsqFbbP(<&UEwVagj<)aLwM zUQBgo2nz`fDehkwcxHE7l)=od0+G?MKa^iH!~TrK^S=hMnO`G&R9ao`P@4 ztRqOSQIr~vj*eIiTFm4w{w4jNu7D;DbNkMjr|#&)EchjK*)2+vkMF@h{~L#$KD|jU zqN$~I(w;;>ed_29+|`g=< zE}NwXG2CAW4Wa@xr{{rqjn0JOS39)%L{Z=VHY}V6-VayWVdgU#4?w2C__ytGEq^NK zUq1_0nrUk^QO^aVL+SU`8VT_m0b;!U3vd$?3kS0P^@mK?dZ<~!TPgYNq8NOMO*(cW z@$GMrDe^xqjb+PGD1!y_8+ghk5pQh&)YkW}Le*gRp{eYp=armgKqF)smOk^ub-2s| zhUE4o9@xzBSHZA4?VqXp8tUfg{o7qY)geAv@FtM2h#KN&G328&`G`n$b!1x@6f*$- z?e}BY)UO->}o=v^C=U(2V+aT3lIH8;XT`2C#6;QQ|_YgCd;IurN%& zCot^GmUHPM+z8`Ngtp#2I(ix4l@P>s2%i)9U*{tn^5>5Y@o6x+Ji7)sVSVB@#sCk9 z<@K$j^WZtGMO!=nZE^j4IAt-P`3zt6_xES0Z_k2zz$NdV+LI6YIzUTw98zNd_5p-A zMT0n>1aQZq!j@YBd{0m>cR;ok+JPGc2^T!;_s*pZ${^c4wGE9*g8XAz?@Dun6ClkTMpjQR2 zslU{$7!?m|rfUHczUx30#QJQi(i1EPXp7pR4K)SM$14<1gNV<5lbM+rLa}C(=3@Yv z!AWXf?ObCNyvElS zC#)joxc=T%x!T0NAmM8S&Aadg2%@dvbmGPul$3>EKpuD8gvEgf z1}8?wwqfOsrR;uMTH2dRenJY(;ai7?f`K*ObLt0f&!^<8k;qSUgi{y}@nD5NfBg!n zK;99nf0}?Drc(K;>7$x12i(^dPiLg$Mm!^SVa2)Q= z;Lp%vqHc&JAZvmkb!Cbq?CyYYvH9f%tJnq!YO>&XEQD7IclsN3gpu8Q=Rowge#giq zOTu7Z+~1^JquP4b zCGAnu5aWG|5!v7s$1hrk08Xd}%x0pu?T-d{R4RDLoO^w{NI{8~E-^j54pd+S%*&&X zPnVjKW zlQNtI8=i%Tsuz|m2ls0_DXRXnb0#A@IB=8*3nTf$Pva^FCVh~g&Zq08?U`?HVHRV5}= z43z-7iNOh4Nin^>XTVzU8Nvw%Ca1bD)j^-Ju6l6d1|7X^SncsJASJAM8ZL8gAz{nd zPNT7={s~B>6rM^6q$2vPDZ2OqC@*V!7f#PR0LLH=9Q-Wc8=O@jlT2Y0XwSmTJ=2GT ztno>o@fzB*S7>UzUgs&w6j@h3+Ux)hL3?sAn|YZ==@Ip5EFx@U&)alh2cNz-`;D`Nu56oC0IW!6kBr~LJ;Zob4U!3P zomDvoSf7bHhHFU>J?Kag>UQ_)w+FXV=fTOvZz#qp^{#PF+9OKvVxkm3HGCOMZl6dP zDAt45To@|NDrJ32!DiovYzaQ61`x4KxYmA1c@<&+RkhppyCBMCAs4GzLULw*P4YRHTrYiV6?wL$Kwb_;esAcJki-uD`)@ET!Z?biRrCDBic#BU&$5K|wtxJ1RKItuyzlPD z*&2`NH4q~Nk+tp)4wLYZU2aOgv?;$VCIGzQKIWk@z5wpN=r!zmS_V$gE@2ROY(X09 zf?TlKSN)VgPQZ^Ev9Re-73mOE#(pNs(q!&NddD&zIas3UKegTk{czTm;Q<5$Fd?k*4tOQNgV|2$7kc~= zaW9f@>I5AdC^6wLUtMqX?gdS0|7PXl)3HKn)BIL@!)X`& zWB&*K)bk5Clk)Dbd|xUya3^`WB&z-!h`7P}EJEHQPjPwVvCX=im{Y49D&k)Nsn$9N z2NM?RB;YS79ywB<>#-+<;V)_lERzT^S=bHnU`23BoEDdrWl9RJZPgj)S{--%$8yP) zNn>H&K6Rw_nVs{hppl#W)La^vz%k2k-DAuoQoE<)BkH#sL9q&g1}chuQu2OfBg@|AQUa zTH?XR@C2<(+8=N>*H;jw0a*p0c^v`%K}z%O*Q*qNu&IV}oZP+9@-yZ+2T=roQFh4p zTaX5ZH0%90qO^Z-C%)H zIB~vMJ|5p#oY1KO#~HLmaUi~MP)#LZb_Mcg&{4j?)PldrM{XaatMMH61o@TY$Ip;) zjakfPg5wwgK!Gy{v$J1~A*P%9pM;WTb} z-N$hvbiWG(br9nN$r#I5fJ;8qUf^6)zAz%?8Xp%2*uV3S+}Y z4%y`84^8!G2_(*DXauepj$WO;m$NMipz4ekh|!v|n{l+PnYrMrLINZcz@whm+)_+z zEHSc)IP;# z80f%30p$>ZrK^e*@`wNghJf9g+)=45tpocW(?!++e8t7tISw}rXRrPvGZR}coM-~| z5WI|7H?_exchzFOA@MDs2@H^dmiEO>`I6vJATtO=8(^BV<@r5&tqt|BAK=hZr0i$Q zH)kQc`*Kwi580=Na#D*VQ1iS}K0M?nyZxsc2dN=gr7>2-tq+f^WRB*GaQv=MktGZ@ zWOQUq3p9LveSrf27V@8d$(}`kO#KIgh)o(^I9zjuH5c_k)qv}dsY29SSh=dV z#VQqlU&>F~`#&V00g8A@q)Gel+9GN`N22{6c4Y=X|MyQnCr`5eb1wf=mHG+HVHfzr zrV$ z-jq2~?~7jM{$tQ>ITqR zKuHlRieqBol+B&(=49aY{GzR^JLjf_>Dr{ap(+iBKjD-WjUV4esupio>1soA8<0$` z4+*fd_Km@gcyfQBf1vf$o)P6M})a>QzfuW z-H|MB0@O{8?xUash#@HyK=y>;4t5mHZqX`K_?#h==0ztTS>~SNyQ%MqYqvkI0Fw`a zY~X3t;Zmjr?Lc*f4`0DmzlZo9jl>>0I?oT!)_W(E8M;vjXmBETkA=ic%Zw9c9(c$C zCD5c{i?O01?v;3uo&_*QDPRB)TcI6`Yk~t9TLQ;_zE@RM@gs4h%J~r++_%h1O$A>C zYIDoN3W9>@0n#;4P!C}DrZ{Nv{rk|#>_5P*LmQ_}fbv!wjK%b5?mY~(R5VBjBkshGK{XnNkqAf zmJV%!jL^fErkE1sf-XK!iUjQtghsHVGeuDuUQX9N(r|`1B(A*r^yw2!@HxdGmQ3-W z=uHAQ~$^0WGAW(%CL&$}w&4PFaI-_GZP+Ov@q?61BZr8*UH%N`dk(?K)^O=

    @eQ&Vrj+=UiYSPa(4vCy?y0RLM* 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 Ax&QzG diff --git a/docs/images/CommandParsingSequenceDiagram.png b/docs/images/CommandParsingSequenceDiagram.png index f8c66dce95d4932800153fc65bf07c9d808255db..6c38118e5f4c7cfb16e9a652a15daa722d60c6a9 100644 GIT binary patch literal 18798 zcmb8XbzGHQw>3;j#CCw(i37}V325Ps2E~kVDVvKU|z<@ zf@eI*MZ)0^pS!BLyPeBjZ|Cbb+%eRz-?{E~&HcJPE7F_Q(cS&-J!xU#yUy3{xZl6+ zEM(_$+v9UL3tS@F$=KZepXV_!;W}QKYspi3??p&ErZy@hz3HO_Vo6)%Y1xa&u5fO1 zEL(mh6#qI_aEstzWIQfTXIi1R(Asxu+?77d24=Box_Qe1oO zK+6~ydYX2cl%~h=F71Iri=Yv2I+k4Rz`Fayv-5fM4gxJ6hz85q-KdcdUk4apxl=Hn zddC-E;IpOOHs)^>8#{a=^4v1oMa_}zdnC}c@UjB@xXfWCI*JO zlcvfgW3Q`gPYJw89F8KWs)&%6LspaUkwj7cQ^jS*HS)$Lz0|6=1#jwPjl657Ni zd3JwJcs?x1N=)qf`;5Lq7^%`nj9q1XwpQZ*?LqVS;*W1{o;ZA&6p82XIyn}ctMhBm z&!?QL>sCR*aCElC54%#h^&Sdb8LpV(LwwF43%C98**dP{a!QuXn<$Dxh7OZ+%MqkX z&dIfddXx3uM>|Wx2zc-4XQ7C<0q;L>)ZRh$NS2Ekz_5@h`DO~DqA~%ea=O(yS>m_l zc}%)ZmgW2otQ!4(tqeM`F8w&zia9;mPe?iU$-M6FudbAI)y)x`+T&d_EPBh@^@*yv z=4Wyp&vl=^v+w%Sk1-d8p4%s!4Tr^7UfqeI-iQ(3Ie%+d>Da1PXs>|t#%squT5uXV0J-#>^sJUo0V<2i7k zLvs0f0L&n+W<|i>x?EM@sb*iem;ONYoe6o#1Aek%gFIa?ul)QhW;q|vrG6cECMh@h zTf?OW1}p9r%N>)A%`KsYy^{?`8n2zdnwE~*9zU11MUc|8v% zA*>T7VLD-Z#eO{)RXFi4Y7*Kam#N?@FYO74EMNToNIfix zf$XnyJNNchcd^b8zUN{WT5=ex_I`8k$KH;>+NxEqdcx$;3zLnhQwAn+?wNF8?92V@`0`7j9m~Q7Oil4 zY(&Qn53lB?1wi<{ASQz?DV&3zo(xR%%0|*<|9Mch^FbW}PZwpUp`Re7`k%4@KWeiN z8?M0TSimChb(=xfd)vM@JLhQc>4lTfN@_{LD=%jg6khYz29qL_^c7U%Dl5+n&oZN9 zBu_oT><%_tD|=2rBt08jO5Ce@F1rzIb^$u&JS@SH37LcFK>K$ENJ=qTT`HoloA6Hi4?k8pOKhYY1eV~I*TR) z++i-6#S(X!I^v~$*X-P!QCm=LttV{TheFmb7*qQ)<$PbmCB9@S1RiX%P40jH^rV}N zlLYQPQq8d-tD3n!Jiuf98*f9Vq${!|A1q%JV+)N6b(@a2V;m#G!_U%+Ob-Pl zpBqH5sc?KO%|adRbGWSx3s(R5_{gX!z#oA?81pem+)+^}9PmHh>agpG7c_eQ5xz;{ z_Ly;@E|ZPT)LABJMrn5qfon&5YdViFT-r?0lh@SM6@SLh%S#aMyR(=?n;^Qkw^!>j zb+SQEYSLev^~%8|atV@Pd&Bcg7;fpAd&@tT1`7R;_I9_om3-TxsS32xLX69;--%y) zANKwMk%I4@02^D&=g;e?{VAK5_L?wTFcC;Qy9%48lL^nM7Kx0Nji%GjSqi7iLnUl! zqIT^EzkcN;CV#oVHQV;}l|${F35&+FX?!LYH8;~_mHOG`4!_oWds5SVeKl_Kg0j-F zPp_RrM+9=FInj;YguJ}Gl9G~`n9Jo>Z!$A8!{Xq|Fw562JW~j4yge>XtQ?G$lpQS8 zx-r>6RIHsPkLoYDy!ntP!)JGS=$+?A;MLjh-}jC-ntFa~S@RXhudNonS_*s#%mU_>w)^W7@S>FK zERGfWb$%ZN>2+;&?_OO9F`J?+EfWUM6nPmigT$nAzpuY_VQD*bxtwxFd#f59

    NcClD-#uLU^u9dq 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 literal 14374 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

    S!{!DJa+z@5td2(PdRi%v| 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 MO#_WgHJjl70aOH}cK`qY literal 34473 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 P{%D*zr}9+EBJh6!_GI;q diff --git a/docs/images/RemoveCommandSequenceDiagram.png b/docs/images/RemoveCommandSequenceDiagram.png index 0083f19ef8e7e651fdb750cd2f2f30f9fd35bc1d..1f0714a4cc5409c73ccae475a423dcba96329d21 100644 GIT binary patch literal 15708 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 S2!7^#MOIQlBJYu|=l=pL>&TV> literal 15935 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 bU1GDI+>S*@&}f4vxzQA5Rb?ur%!B?9Kct`@ diff --git a/docs/images/RemoveEventSequenceDiagram.png b/docs/images/RemoveEventSequenceDiagram.png index e44f76edeea97090c0b06747c420d2cfea93519d..7dd3ae150e0b9e53c32eba6dc33621edf3f7d790 100644 GIT binary patch literal 27043 zcmb?@bySsE8!vf~P6;Uq=|)0Qq*M?@DHTbPF6jp860kr)DG>w&jw0Qyv`8qO(%pHV zqvMP-^UYd!-F5$%C386EJ^Ow4-p{X|P1sd6WkS4DcxY&7gqJQVTth>{@IymGk34|^ zuQUV&K7@a`oD_APOziC4txfMbp(&f%n%*;VGQD%!*!{G*lasxp1V6vMwUMopvyC;M ziJgs0`zJ=YM6-pauG6pA(a_;KZi$Q6T5JadNXpl_3(wuap>-hn!l{8}`=}t(sz`BR zQcZ>S37R6F*NN2;*Go5uGum({ni*IfTwU%y{g%F7yLXjyOKnas2%}~#e$1EHti~b;TLS$si6!oFH=6{KeT*)9)kJBU-*1zdOlLs9U#-G0nJh z5Z*zRe^?rz+una?-3F%}D}jY#^3x~pl`l!iC+1j#IE$u1bUwYAIz=O8Sc9`lH`B7k zSLYmr(S{AwWLq-LKjKQ+_VdbwB}+L^zE1XS7&F>7^=Rn55GVJzKI-`p_4o%Iwf25S z3bb_$1G>K0WpB0-%1L0!BWvo|{G2Z2>$S^?A#tZ3HNs9!xo%SRW6A5<}73=v+3dr=*- zjGMC=buzn?j%v6GGKWq(p`<3ZL#64AtONd5bTVFNb9I)mvf1@0_!g(zs1Xir&z%Dh zvm-5Gs4pH461)Dp`3FYXVG`&d9UIqZ8AL?v2WY)HytQgokS) zc(+yj@buRQ8flH++c;@|G-p3=&VdU5DOr~PvQ_iqQ(bk1TBUjf} z1r?R}UVDBd!M$5uoDh>2bsgh%ioEg+&PNvl8lel7_LAuxGPJo>cg2*VPVrU+k+btg zQOjYYFFc$o!n!HpDH^OVq;Q``z-43YgTv)&iW3L|--rBzYGIWq?|^hX2_*`9KO^Q!crKwU>-NeZ_D?x(3wm8=bf{mXsx_7(J)ta1Bi z+;8za$fkPQcRw6F$Htybo&PLCQ_bJFn!kJ{Nx}Bj+V_$XDMFyYww6>{8e2h_@%Fs(VONsnMEwW&|z*&L|fhATzX^Nz_r$C@@yj1 zs?RoVK0+ZW{~~_{#jB({VPqd)kk3!HoNK-$f+^!PV|{!SFm+Fu>P;d>vtQS~=k}3* zfmz3Dx{9y&?o=%-k%v~#lb-V2c*b*MP3^^SQ_0v=me#G>+S&*z{xf}=TuAg5s$3P_ zf#ME%H)r)S7y2hwjeJud$t7$DS!1`&FWxF#hz^Zs`)!~MGF}YZQ%|@mx{4j}Z$x>n znOFNBIGBFPJTacfOwR5#UO)9hGFn^@G5BFVq|^dY6+1#!_UZ+uEmi3Co-;iJZnc4S z_XFO4oVv?*?cCR|emXh*EAx38%*2=sLX!qe6A5C9Y0XJqZ8Cep&5h zc{nZifu!T~eL)j8>j9VM)$L7Ng`m-``Ep-rbm;FV;OXy3&HM8iO6dIn7UY_dHNXq;`q*8vR%d$-HW>CX^1C_yI|7y|h#}*uNwC(Mi z?{%Gw-*}ug)RWO%eS1BUJ?Bi0jJWM|EB|OBJs;-L#&u%fXM@W_5AceWExJR2 zvx2^;Ve4ptMR(Xy!``K5LT9+*xOHY>IAq#;Jv#62O}9ox2?gU6spXYld!_aQaYp5- z94=R#sfO8nZ-D#ybVnS2j_pwJGhs7}&ScI#dXoS=0c(e3f6S0^-e$v_cba36PP6w! zta??FWH7Z);fdKD(Ql*UQyne%*e>Bdjs9f%>9Oy6+qXB@GZ;jz>F|&`jb&Nd-sF9{ znO8ORE*9BV*q=JdRsNFo5*ZTLe5e%jLC}8QDG|%`OOFuSoA!HLT9#NiA<1ma_a~MW zh0s6Wvg>I`XX?(>aD40F)L@nOgi9mUX}mtnXn;sZptdC@W}&#B?%X}oj+c)Jb=4|7 ziJ_W4YWBP}Z~|wAcrk#peq-`uQr(=QyW37nyvF97NUfB@EAo>9`qbtGrcW&#^BX8E$C5ÐZckOH#gpE3y|5M+l}~8%M&G$iwKI=@(ad1 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 UiGbx0el3Y)q;IB|u45ncFGm`u(*OVf literal 29618 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 z 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 diff --git a/docs/images/RemoveParticipantEventSequenceDiagram.png b/docs/images/RemoveParticipantEventSequenceDiagram.png deleted file mode 100644 index 6f69b12df09fa019663c5e04a9a7f66cf3b00bfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29123 zcmb5W1yogS*EXsM(v5(CbazRYv;qQ(ib^XI(p{U9MoJM-6eI;jLX;5LbO=a`gtF;| zO>dfi;`=<$`+VOy|2X4}p~E5Wwf4I2d(LZK*EQ!dQt!G3F##RHnKNgIuWG8^ICBOo z=ggV25qMbe6O0)N8T`TPre^5&z|qOu&hnAl84XJZOBZuD%ZJPs-ptl+ZceT;LPAb< z<_>P|_I82~9PK^2+L_=sxHblcZh!y$%vrdP*XtjND8~_DvR2g5onK#Ryw1ER3w{<( z@X_)IZDN#Z(Tl5sFLRo@7-Z>A5Gy_GJE|XS`*UM(>vk}!3dj!0=gRu|Zb{EbpN8kh zk`cITmZXo?ICd61U>PtuWM-GVM*Zov3yxL&XVt>l0zE4w!a5(E{@+{Xn{HLFh06I9 zv-=pPMp7iVx>&vJPVSTx_H-yw@VJqvVe@sWMy81-vC1ZKm??-G6l4>aW|hC%$@AP) zW(X{}A*+4qUHiH3J=TNQMAO`KsrK=Q2yU>r^jk0VimnO@sN~q^@h5yBWv+kk^KKL` zwY^BPAnBUHJr}&#@fBp-1t(uFa^JgaRk`_+`1h;uH-(Q{-2H6d#Tg47ek`l}ibu%N zT(7p?6(=dHc023VITEF-_8R3htZF0Ynd2f34*K$kj8HE|ry}=0b+J5eF|4)7jGJ1Y znQ_`>Jb9gn{3+wU=J+-D`sO>LezRjlkyp+MVQNL=Zt|s#6uPJt3lfg@V0@A%$IW}q zw*m(4-o$y_IpK%>#96q44CiZ(h-mkg7clW2p1ktn}2G zP2_sT$tmgL!l!NGE!@2#?|nXRQ77>Q!>x=nXB@9wRlQ>1WwQJR*Ndw8BwR%^@C<$p zHr`pRAhLVbeZG_nm$&G0FtM7?Ip1n%`GszR_>q|pQ&k{nWd_#tDgh&~WB_vyF-WUF4pHV?k z!k;`$`)Op#cvtt>Q_(_4KDnkfJ8!fGmZ*$mLj``fUygcJVmNB9{47G3x^P)PBl5UT zi$kkiG)CQX1@qH1z@{~nc5|Yj+}XH~l#_$eJxGW^pC?4G>oS$rT%jq#;B&DsI)>7s_wOXtitb^PujOR%d-kVkaCd==OW3 zj7^O|%AY<)kk+0_fKQ7zqx9)bT6>WJ8kM(~HdlCb8q{W@nMl-&}n>| zn<`vE)Y~#1*PMirzD!wc zRy$doa`)@a>=JZBQElh99LI@$=|0QBIoLw3SmwKa>0ByFxqM>N#mHyWmS1(L{ z=+--ebBSZ~D;kp()AC%sS&@c}HSE-)EFNgTaO1K@u>up)F|8x8(FrY|ODp%m=yr=L=QoRq;B$9IAZxng^_qoT!qz;_f2R_4$QkMtPubLn4 z`wXupw13>KS4$nYjS#z@G^whz5E3r|AB__nQ*KiCdMRK$tM1(%<*JdE(SQ*O|NO)5 z$wty3_X{Cs;ul=YL>!41$p&^~h9axvt@4oga6C`_;vSD|-MF-VNBWV8UU)+V?IiEW z+vPCv+l}IE(;$)N^y8o04EM64PB2A* z;|GE`kK5cW@V5!MQ@_M(F8NaJZ3Q|?*V=h9#0-t#{hUwmzxoX+G?7~CSJuF4KkaMu zuFu=2CWnYRsSM{mRc8t%zR^ul?;O&d?{`@4Cp@+3#~83uEMH%4CaXQX@^X{9cBQ2Ac!Q%W;k& z?l_pVIcgO8z$0On<8U3@VxK?aj_rGdic1==xleEXH zyqPKMgPK}lb%-t1NNA7Y+v0vO;s%d1QRflLxR9KkVK|3d&W=~>&l-)9q#eb)X8PuNc_vFD=+Srf~q!sh-4Y^C9R|D~qiiz-Sr(bdslUyi~ zrQ^YU;m5NRyJf1HuwT5uFtes4mjqene}(w6hh6;K0(o$bHntU1Pp^38}l-?L6F_;yx1i8TA)S{*wnr&;iw^n)B%p>htB+g%q; zcX>_9Gf0)3(mZo89yPo4!d$PHv#s-ug4P#?W=qQ^26xwRbzWq0+}rE;_Hoa#tZrv7 z%wcqn8V9WAl`M}8oi5rxKapma!8Rc7Od-SvunO)_m&G=?If(l2mimT#+^~GXP=CvX ziqghthBMg?C6t#?%xS>o5nkPK>D{FdbNnVE_sJ`jMVtqQoPF|RGpW*AIxd!^A9M=z z+Z(LUN`;WwM&HGe5E?))sG0Cf`Am#xK9Fs|NY$;;5dPBVFIBV?(At)dG9X!|-s6oT z_ygChs8(-9#f^n8xop8<-j-Et5&3VI<04t?g$Hv=srUh6jL5!37>i!sQMvL|LC`i~ zeM{a$Oi&lHMlFl17B38HH0+frrxvpX;dZ@{;0)RzLNEB4x|DUPmlYKae+Yl5*v#!a z4msA0@4~9tqHdn&YWABc<)!@Vi$5OR!=bWgi$G@=lp=z7Q-VLxHwSBF1JwGT*4`$} zr2kVxr%JvLej_nQq4J@P=W#DAa(gUuc!c}$vt5@>>b_l(v~e-sr+3Kt%CalHW8xA| zEK|XI!`bSwG#f(8_FJ-dzF{dy)3uD~A8m6NOmoaUVPunCM9+0_bTO*&;(C&}@;Yf6&1(Q{@0b^<4 zvGc{I;@Uhf?u~^UG>*B(8}vy4TJwZupQ7BjnSxOd0Z~aOdp!z)MfY=2oYBTaXf!L# z?m^UXkM?=BnmJ-z-&r<8xr~+L zh#=y_Qe9?@Gi|hP^3!EQAGOt zkt=Q*!{Z*(OIit%<>%{=uZ9cD9DuMBwWtzfE)YB)hy6NHY>#9Qb()<)vk)?c75 zoz^y4*xY-VZuAL}jj+lydSW#1dmyro$k48Id538fIrrQ>=CbLE5l4-DzXk4$=3I2d zZSUpkmo1ot_cd%sH2Hq9&spqcjJ}FQQgsJgFGuk4#@^6YdV<(w$&NKZPDJhx_gOY1 zjbp_QMq76ANeEq+wfMU5qJ{Et#AhD`Q$gn)?v1-Bjj!r)TUyt45R)`UvyYNiAI`=3 zn_Z`|aw{~|v-emKG%Ve}|K7UU`iA;x=u94H&Mc__38lt#3(yz_sOLM8f4MIh(KYk@ zeWa0-&g;#s!W0R`uI727oIhyMLn>%dyqjr7dXDIzpznNV&|JBuu@KyawUYM;O3;>_md9dn>Kt7@V9`l;2Sn8d| zRt-J>mb^3eRt?CK1Cb3x71pg+yeLA?u1{}`x*J})beJmWoQ-z%`TIV9$rLt}t22=8 z|Az+opZCi^|Mr33X8)hE=teNQ>V@}y0M?B)(ZX&s`*i%P;#0UW159@LP8Z1;Gfp+y z{McU_?QXx-U%D=Cb*nFRX5~l#tNgzD9fw+pMYcbeeo#EL_Iq=3Z0`2nnEK9=q;LC& zkqnmesx_GUdEVHgSScD@f&NkAkz(^F9&wzB4>ylY1CB1|pR}Xa{oXEky+p#?omcv zU?X%RE^pP~|FsPAZ|H+`|9zVu?{C!}ZbZv$PJes;!6Gs$3QoLnqA~o(g&SuiFT@X3 zc?x~?-rusZk1a1M zfi>dkQ@f$!3<*ijT$ON=p=U%FMTuyImF~}uJ^{SsS@^4ZT?65 z+k`ZNTbr9IU7je!yTV!IK%p`HZ*u>UFOPp#p^?6e13d5*3P)T0FZk}*x>8;l`D`N+ z-ZR_MM8$Wzv$YjhA6Zs6qaXJUya}E0Dg8fN7Sf1N3^+a{xWG%rYmf)e$9KDc>}7?Z zCwi>LYkgASei?&;Uqu4?U}uHTl}^&(DZ@O|g6mvY&F*A0$F;;flNuRq9^R)6(iEHL zyh`kbKXGU!soqD|U`$?$TE_cB^s8O^9BoGD$bYAhVWh@wfkL$R+8Y`7uGi9Ri=SDFj7bU0q*}793&+YpG7E zgb+_%eneWSWk=Ym*>_ow1Ve91N)SV_DS{HBK^Y#iB-AZoY z>H~(Jnes6o!k38st*g&Db#k>|7W0a8*#-+5e`WrJ+1XK7$Yow6K3*>E)-(V9>N2-- zRSezbk+1F_yl8eh^7OM>VlUnQY~B0*)`!)x8hV=n@72n=p39XkXVu+Xo?e{4Bys*n zp>dVRL_?_0_Tq#Y*@ajJ>0nO1kSz#-h)Y3(sp2-lE94g@m&r*iw!K=)k`g1(C?+W< zCEsgg$`PsKhA1|1jU$hhk?(J0X~wphQ`JOrFRwvn9ZqC zZce_urwL3lZr1Rzj6Ej*-Ltaf_@<_&pEGylAF-rhXKN)Fx-Si;Fn^HT9V&UiS)n)Wt_hap_zgiu*2br2r6D?%=?KCpcyAZbX6=r# z4ZeabP?h23$T46Ltq*uLpx{Lkz}r( zxn6S=(-5n9a=6*8NlGVdd1N|wK4Nk#K$`y?_GFMj{ZUa^a>sxUcAue?Dtd-E$Rd& z1_pjneHM*a2G)-OEo;9jT^ZX4bclFbsD&`AzoUOgNzQhs2aJ~4w_Ox{sQJ{Tv|gq1 zISa2Zx91a!r@qt7sGB<>@l;P9AV^~w<)a?&zm|4=f2T-L@C}}deBxVE16nz+;_x7J z^BgAPl9~Z-&csZTzFb?HLDS`*;iYehAyl=+u_H z1Y;y1Oq9%!Spo6ypSxqn>LLyoA3RyUW8&S+HW-Unu(Dp`^MpM4V0YK3!ihy)M6!&F zot<5MUH%@q`&)a}Io6LD`RX(PHH+q`NS5D~u3X1a^yh|3Ee=I^R5@KZwNnCL1LRK3 z93LGx<4qJtimWEE`RNXi;xonlAtP)M18Zqy#zfrDx1y%8G>7xunCSAkCD@LRwy|gn$C z@T($7Grl88)#DgfGUUu@vO=cxzJz0Cnmd!C`Y@VPj&Q!s^dfV50adzw0>yWVOhmc5 zZnG=bT;RJ+L`pr~5lSs%dyTb-(PX}Oi~^0IQN-CRJfA;~HKYd|S3*_J z)F zIE4P|%`~6#;JDk2kbae&FBJn6a!uQs)}MSE1W_i(+HNiR!6l85dEgRFnuyJEx)844x&XaXHm+1&Ex<&@K zxp(RQGM=li%a{eVTf|KCcGg3a?@ZoU3lwj-h}2EU`>`bcET`81$1?qlmp8{LQD&o< zJcx*h(8*6DRXijcyCmb5S5}w6u9cOKyPhSJi13^Ei`A$q`{`<43q3_OgULDHb>qD& zPtGG&!X9>~As#x3W#QzENX8qqKxxjCpTuWj&mmJpEj_Lxhpmb!Sj+4UzOh0Nd^J8X zcx)UvW(e7{z8?D5z^a?hDKM)2;brs0*MWOap8Y#W{{FjA(SLZ=p9|R;|E6*OFaKQA zQNofGLoexoLLQ-OPX-5tXMh6jMthnQk9;yj0>N7PS@hVIGRj)N7zz!LzdVAe7^Bp0 z>c_iNajkJoKW90qdMDu|g)L5w4~jZ9=%g`d)XB;FuE}o26QdfR?WLkxQW%PtAmwGESe!L59@K6tobe$TlZ$3 za;8XtIO3&V>egpK6(I`lrKU2&!SM%F%x*38|M+kx;Ba@n^wwlOMCkt30$U#^{V)_- zSPVRU2t!E`a-V=r!e`6+uG{gU_cZNyX@=IIbGRNLRiki&=F+l~`&FC%tux$Y%J{4B)-m$h1HlqkLa@ zBt9FYlj7mp6HU+go{8tW3f^UM{^Rk!6QMM!BM;e__^eMKM`U+wbX3;(tJ?tvO{4a0 z=HSuySHz5RhDZh|5HEOdsos+xvDM!BLJoT=WLP{7@ckJFYD5s6=#iKm=qKRSE2HJ4 zgoIU~4TejtWZf4HGF2m?;0IuSduEbk3L1R4{gE!yiKwd_*p4IRt%eK4a4!_qX8ZG%Cp-ihh1SqOJ(GCN7?{ZXfg9O)_kMk{By<5)6>df|%0NL8JS2Xn(5N};LMj|hb2JS^jL=}<$B(x@+y)X1 z-_W#u$ymy5K3=mLLIhUFd-v1y@^I;l)mb);Sie&as|Tet;As2K!%XSVqP7Fv1-PTd zu5;HPlF&irh{~jyRaed%AnjOk>J_?=$xyVtGiUgu{vVVc6wFf%~_+ zw1h|Cp#_Y;ik~M|1MpuStEuu~Ti?0;@t*lDT0ZkCs0QYxYFLe9*;gsIzB;0i@TJLy z@BH5iGaF7sUEpg^4>tI5;>N+lt4#r@NEaQyUPVeOqq=5VQVzebxKhAEU~e%JS>0ZWoz+{MM8d zM=PR?Y1sdN& zQP@^N{U9okpvSMuV+HiilYAvJGv+~j8jCMK3yn*8n7;4t?wZ|FJUJ{aDnf&9EIH=6 znLF;npDF$Y%_Qd~Y*u$BkHkitoQy26tT^qW*dwLu@$KtVt>iDtta~SGFk=TZ$)(6?3aF5Nhb1qWp;SM78KbKNy)|R?seUeOrYWIkiRzPTT0cs zwx+`Db{sapFSFQKFHs8*-ZKx>QZ`{9MT}@c4RctT%7OtgZ)P;RvU! zQOm?$sdAob8T@!(gqc>wpzApo>DCEgh1qk?>#yLpZNg%j@q6Bi zOp%>0#R8xX8Cu=P$qH%+G{ZG_2qJGZVzD3jJdgM2kxNqu8vVN}{A|5j>kcqU&r^zG zJM=h(X?%d})pVY)PZa)PE1IlfNAriFKI3qH?}XWu6I3 z!Ed)%r!uwX@lQd6CpzXr?0W34o_oH_IR|GS&U_=WrKw4&yvzzARL+!2M@=2p1X8Y9 z%rl;8TEEapI(3plwIq|1iq%oNO|}y>Od^wimMAt)-x+6#fnX8vRUB1G9#N!VN5ll7 zMedUCEgtMyu>CB!d+ufw!l#e6Y7x zqZ1h>LQ`*~v(LB`^g@JA!jfp6dOdEtN5&)5&>Z;LbW%uo_=8{Lcd9Q1G#?w6Sm1C5 zX9jc36AlLEKLpr!o$cgdYJHwXjCxR~mOFykM}%yaL-w;$?zftABH|=-uRfnOms2GC z$9njaT6GxZ7BfK9iq$zimL`1CZ?ZXyR_*a&DUcVg?5ZSnKQ4BuW0e?#iIb3bw=}nc z#<<8tUUh77JNiD7cC)Rm?dSjl(s^27m1s0EwGotHphl@xH;L<8IwArT+p{F5M@tA4 zP(18}OoPmwBTz!Bvtu>BC67{F&|h!9yH0jan`oGAw~R+HVMM7)IYi<`5ZSMexmvxu zAtP9w?oDFO(KJGZMwO!X>YK2xyz8O87xY3+rv`26yYhuo=T%eTg5m&@2E&e>VpG56 zOp-`Twx@JPhJ*2P&jBOzBq<5W@%B$sOUa3YFk<@2;`(1XP7@6gY4+Ea@amiI55$qN z#$?n@pO?6WHWk?{RXvI!$_54L$sTQ#ov0LEv6uW}@L zzs!z|UXE+9ABi{sWQekrm^t@o{fIlxO0hPXh*6GKEDUm{ezo@GxN1v2_}*O&H1r;Q zz7^AxFMrvH5 z4DmL7fjyjM@o+^wAQUmKBcb?R4X)9o9Z~46ErSm)qR6AV1)~wi*nFtsUyp|3BPGCz-1eyvbOrWs%H#55^mltG^!TZ(8j?deSQ7o z6bm7(X9_&d39d9yK7@-RjpRq~_=TRc+Bs5c09i zYRVUTGUZL3ll$TT)EA27U=zoY&);%?=_^%pXZA@M2fIO(0g64k=@9?B?+|Yfc%kGv%Pn-!T0*GBd>nH z35nPKc(A}mjFy`X)j@vqU@Z4nN_}0FgFjG|`PkjVNhn+Mq8>Rqb6zoMk@qQzk+_pR zY~tC-IhMMIO9S~gUv;X-&;d&7Fc77%nth=q5V`s+%f1#Z5(t&(5Os1KzTyq{k~c_4 zK{1yX7S_vN3IB`0pOVVsivvhpG73BPRU!>l)rh>`zc3OrKh2yn!bhCl9e%ujaafZG zwAWf4lpn>5mEG$H-|L{?_mYH(BFg@KAD9#$SCQe!4?vz`kPGvyg7U-bjN7|+# zUHTU(qeU&-%?bmx*F)qoA67RNhlGZHvFXo+nx-6Yi(-;?!Pa@8-BcDCV+4e3F%jqz zxD%7l{lB0~Zl(0p?dw%IS-n1IIqfTLL5CVmbf)|r^0B1e`batyq9H0n7$Z*suqEc< z07eV}6}MiNI`L65O1Po)(f7WGnQEOx!Y7UF=jip2e%|ZyIH|UuS1>g?FI_S+z&HgC zLkuGWB|*g0l*wN8|1sa`G9;xCj%TsM@D_mdjbQOPIny}5lO|=9Q>wF_lfPx4V!4T1 zP@KR2g$1{!C*X~-)HY|+ZThjnwFTE?E(3}?UV^CSZexv@4cDi=I#ad3zS^fRn3T_`3;M~ z6+bfu;B_i$Qnk`%z+_wK&1xkSsul)OvG=l}ErCsqPWA&-?uY}C3w5i}jupCi&N^G? z-=XoZt|;xXu&{ukEF}aF@-t7LE$kqqLe}R=KQuW`5>2bU)~gAKF!;`%TjzCaK;xyv zD+c%<3f%iV4_p4lQs(nJCYG+??xl+vl3t73H9N#1*%mvizv*ddxu=ca8{~sC4Zj$RB~2PuHfv z%*FP|2!7_3tmZ}6(x&9_@BErVWsJWR9yPAL^4A7+@!~U^e6xLuxiBUpIiO8!1?ZO zbsG79KbIVeY85+8-ZV0cv;Te?<Dz2v++j@PTa1CO> zoJoE8352~;?fE~QAk{08=u~=vKP{?BuX|r?Ehnwvd%>O*<+MEQ3vDfdvK{nDi60

    13sGI|?P_1r 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

    Q(6jlz060wg+YWH`OoSrVaWMb>n@b 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 Wt}MlUf&T;55%mj~lq(g@!u|(M>hLrG literal 19858 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 Re9eNSD696mOxh&me*n-vzu^D? literal 9166 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 literal 9527 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 diff --git a/docs/images/StorageEventLoadingSequenceDiagram.png b/docs/images/StorageEventLoadingSequenceDiagram.png index fdb9581dd7c1634ba8249e2ca32ee91223d0b5ff..cd2f25f498be1c63bf82eefe7c14921c8139c418 100644 GIT binary patch literal 24513 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 diff --git a/docs/images/StorageEventSavingSequenceDiagram.png b/docs/images/StorageEventSavingSequenceDiagram.png index 945397f583a9f0faab17d1f2ee804f385d1ed49d..64bffb9e3f94c6534edbdf85075ebb1bd28fb7ea 100644 GIT binary patch literal 11943 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νUb*kB_7CL_Lj3~#74J<0TBhpgSbjwcTUuJ?j9zYv znT>M|a?Nu6+!I_*?I`oKs#8kjGHDA-x0wX-zkmK1-Gq#hP+(y9|9#=s6=N0oPu>ddLXSR? zGlX}(&4Q93zOnGeL`D!Z#hjf=HzEEX5B`t0-BM&cF5~DKFmV zGEoZ)J(>t4k8e_$&8+x&EF5w@(-bV~MpOtRGLLx#e1!h`XtUjk^k<-h$wQJ@u$b?s z9vw{D7#SHkEgf#ow(q^Z9;h$YLe}wXp;bKhLtEt7-!EY_R8bjlW_KymQ;WFtWPK7Dx=(?`-zHSSr{A_MM z_#SU6)A|*=W|3Z_PdEktfaX{*f%p;1%GWny95e)XQ!a}`Z$0nnGooq_T2UT~jXz38R--$s2AX znF@>HJ9qA!ou4P%*6+fG7CNp^47ayutLJMRc`hrJ+s-41LBHMjF`Vy8PE9Qa`WhN0 zJ|hd3+~LNwT|q*E<|`(p=NHE-l!DLbwi>aIrLVSvB==y z9L*0j5$j;})+eh}o`Wu8_pPmVyNz-Lu3VBm!dHFmWQyS{g3WM)+-JgRk{ z?{WGu{Kxn2A>z5pX-y!=!-w~jpBb)=mE2&{DA29CO?lrGUY9|qwCt#< zsaeB0;dwaiQeipj?BdcspCKDL@@Ay6cos%2>Z~Y{1wk~{F-=t4F~GXYpAL2W^% zZoA6?bj6XDe%*8dE;DYJc*|c>5*{zBf<@CU(i2{*KVDARUHPgxi+}euOVG{!I^{IP z4~{MB>##K5eiT|cmKSNqbW09RE|W^dNOx7_WQrTu8jbWfQk^sy2Nn?{fHwS3ZOXcycxP^2;tbKb_97%{KAgQp%sa@Is zAYOovE3n(toL!u5mPFEJJ#O@!XhZ3h_A4&tT4VU&sG>o4U`W`ayz0{$O8S|_3v$aS z+o(MP>*c2Hm*8%q9)rA(Yq&4lIo@f)h>YZ&ahOE!rMynV#t&HF)T?eVP7AHHLVX%s zjDDKD3SxyvDd4Em&~ERCfyecop15YMFAdGouMEr!Vd|rds&Ks@GlqvxCZ!TEEo>Yz z`^LQ6%I{F%_&KbSoyt>FQ&Emr>G_kU(q@!E< zNe2kmi&F3qU4nJs!lsN<-DdfPa*<47;oEoyH{Ly{sU)p4&SnS+MPX=|==zB$N9 zf{~F?QeJ&a_>S|M)*_wO+uNxjV`xkT4vcz6ZDEFy3IKY8qyx6D;jn{h&==XkckVde zT^VO!W-37MR^+o9<5~mRN+~K-h+~%Coxr*B^{s@<#uUJ@rtp=nxbErcbMOc(Q$_#& z0PK8?!cQjM@kRQd7X*fNjUHGxMoL@+C)i>(aig;X&}PpDaIEWltROvFBCuwA1N{Zd zRlzwp<68cogXRK!M_&R^zTG75Y5Q0f==XjFgiS zIU%_O50We3G3i=NH#S?Js4$v!qZRi|6!UJqw=tZb00xVGlb~tAPNl(2T!Z0MY{nl8 zmT32mH`7CCJ@;Yu7=4GIa-DG}(ZK)_OcL|8s7u@NJZa?+=vck@nv$nGOWkE`jVUxD zj=^y$d@8;>PKIypxb=|<;@i=+8!xe+HizePK-1>D#*-|E^8$wW8_%+uNY~1LNU>q? zXdmFA5Qzm(-c)(dB#M35UB0oj6i~Ihy=|vrFE3EKioKp>K*>)LV^IVX$)un@O%C>H zSzPRVwbpIJAvdLU-w@xkn4v=0c`b26P*lsqs$Yj7hBFNFHo>WG)iWn~&$TapY$2hc zg9*vk4qNLoM>TEdXdb*3_u5{N_6oSwM^LTysy<3)t<7GM1H3;-N}enhed$=o%BsMX zSoNjAtyh0uESo528g=rKW!3@{0|S5$u8N|fVptv2ko%LFlt_ahQ@v@cp z@+QzjFmTBT2?<{iW4KKXjY8lO+rLkecYuXb4&KQI?W@__o z4s~kW_wO0R#%3ub)OjBB(9=tLUxz{g+Ze2R&N0S+w)<5=Xr(!bphEq@n>&(el}Jp{ z15lA5hX+Qr1Do5TUGaXsMK!U*P%)YB7RdVHm?y6cRs#Y8zPu6BHOMmrc?Yn+1^@J| z;Ey81`KEvqG}Q=qyhvJ!Hr-SqJA|&s_ko+l77FEnm3r=UGF#Q_e|GNg@0b6H)fB(= zj9ZjH{JoB-D3=OAoxQBecYsF#?lhRdv~zas;No%!mYW==w71ZTkX2CBA1$ARet^ot-|^7J|??k6puoPHL= zZrs@4_`G>?a^ei8A}&sIQ_yDS3g36wQ^`wuQiUCqgLg@9sb&Hq#cSGg1cK`4>w9)~ zwpB+@PhWk94?;lTeY##X-uWe|BXAV3GNC-cWvmQFOWGr8IRVuJQTyz?-bHbAbhI}8 z`LNy(tLgpLv*=Nz7S_zn4C!sX1|o}*0`ho4Y=F9xU;_D?A1H7!Admq``hk~{ei$Vg zfq0Yv4Foe{p1eEgiem$oPvePRt$T$EH#B~#ibB9@?8Oc+oJ_tX?*oo8=6$qf2;g*K zVd4I3kvQfDZ^9`BpPXZ2VkU4J(45?jcm=FE@G2=c0Ms3^w_rttq2%f0;+{giT&6vV zpouL+jg4su3Rdx3j?AS3I!cKC8DR>i%C8NRjiedhqEJi*9@J4pfS7DJ#c;8qlpdNT zE;BwE*If@G$uYti4v7T+bIV>*aV#L@yd9a8I1Y9v3!dU8s^Iz zY=J_MYjU}&SqGc5k^F&d?cN3~be=i-pDR_kRX|cxST?wu+60+Uk&pzw220Fu-iIOz zm_G=lpeWkb*49{sC8_S$(GLb@vh>a`n8K2KAh&Z=GGr7Laq&O8Y|?~!*{%VI?!Y%> zvKY#VKH#C#pnT*vhGY`eNO^t54FK)X^mB3_gZ>XqCWAu}DZbv`dlv zP+~umS%5;@-`c+|ffz^Ep8>&CK=Sqs@<5B%feG;q^*T1)n=WAd0>@t2*A`1SbOHrB z0$88Z?A>h=z|61B;L}fTOn-(_Iej0v9w0XedT=j3G_gZtlujVJGh#Ri;?gqsSZWLD)C|GG|xSR0=J~pqRI+l#-b+UKs;rp-?6K7Xf*ASwcT11X(W86qW z2yKrxiVY}MNXCv_jzRtNf=chp3lMq%*0e8xA!^g}LXGokF-SzntsU`tkRUfyzJkB- z+GnXVD)H;~%NXBv;sP?^pqfKEkxCXp^b7NLk|7G$X?M18G;}&+ZdO@O1|mF{86IsN z9)1AaS56KRLwAsf#%D8AW4GWUH3ymjF(0bE?)O!HaT#f{qfAx_>z9{gX||*3g32pME0r?EG*R$fK79 zN*wag4=#95K+UGvR;wH{L4C+-0tGIqA7AseV^pR7llk`u=xh+)KNPZz0f{#>G{hvJ z+1uWJI$oMZ@eb-=I5&-8vL_4{^7Zu{!sH$RHZg2pgr330#id0SENn->Lkc+5U)Z%O zDg*+JQUTKiUadONF`AmAU|??%j7{!W7lVx-^VmB$uoWqn8p~rxL)ZYk2ZW3fGpAn9 zv^uf@z9<6&!@d*MNh6agmiv>}cT~OVi7f%g5+TD@3V}af)G)z2KiNU zM+$LXJwL<|XOjfDDmVTYUw$(JxOA{SL(xsD5VicUzog*5e!JoY*d>-N75)s-7IE8G z)IfvYIlMaFmQl5k=NCI*{htGsgZ{^KL0BOx(qNi}OT`kr

    it9|tP!$4)XUQ){M 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 literal 12085 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 QSEXnw3hMGDvc`e`52GaV00000 literal 0 HcmV?d00001 diff --git a/docs/images/StorageParticipantLoadingSequenceDiagram.png b/docs/images/StorageParticipantLoadingSequenceDiagram.png index 66ddf057000bd7c7443cc8cf59528ed8a776ed18..100b50138b048091fea3d3d2c20ea9ea85a9c982 100644 GIT binary patch literal 26761 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 literal 26075 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 nf>AY!eLuiv5z_JeVeY&&D|%`$|15` diff --git a/docs/images/StorageParticipantSavingSequenceDiagram.png b/docs/images/StorageParticipantSavingSequenceDiagram.png index ce3fd2f85bbc4eee3d46850fc8b1301a305d17e0..050f2883ea7076eb619ce6126592655b499a3106 100644 GIT binary patch literal 26418 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 Sj6Yt(V{P#h<(j!;@P7dVbT~Kw literal 26293 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 XFQUWGvVHOY$B<0dZ>C?S*#-X(uDV3X From 12eacf77f08a3fbf68d50884bc9c374936998d68 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 4 Nov 2024 23:22:36 +0800 Subject: [PATCH 408/619] Update non-functional requirements --- docs/DeveloperGuide.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 0b01e89105..53e22d649e 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -636,8 +636,11 @@ The user is able to organise and manage his events more quickly and efficiently ## Non-Functional Requirements -* Should work for any **mainstream OS** as long as Java 17 is installed. -* Should be able to store data for up to 1000 events without any loss in performance. +* Should work for any **mainstream OS** (Windows, MacOS, Linux) as long as Java 17 is installed. +* Should be able to store data for up to 1000 `Event`s without any loss in performance. +* Should be able to execute any command within 1 second of receiving user input. +* Should be able to load a corrupted save file without crashing. +* Should be able to work in any directory that the `JAR` is copied to. ## Glossary From edc230919bb2f7157d7c8d0a7d3464674602fcdc Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Mon, 4 Nov 2024 23:40:15 +0800 Subject: [PATCH 409/619] .\docs\team\kuanhsienn.md --- docs/team/kuanhsienn.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/team/kuanhsienn.md diff --git a/docs/team/kuanhsienn.md b/docs/team/kuanhsienn.md new file mode 100644 index 0000000000..e69de29bb2 From cc6b3d75b2e622d6e2c3b1669e39d99eeea52878 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Mon, 4 Nov 2024 23:42:08 +0800 Subject: [PATCH 410/619] Add Project Portfolio Page --- docs/team/kuanhsienn.md | 43 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/docs/team/kuanhsienn.md b/docs/team/kuanhsienn.md index e69de29bb2..925f04f5fe 100644 --- a/docs/team/kuanhsienn.md +++ b/docs/team/kuanhsienn.md @@ -0,0 +1,43 @@ +# Liang Kuan Hsien - Project Portfolio Page + +## Overview +EventManagerCLI is a desktop CLI application meant for managing small-scale events organised by one person. It is written in Java, and has around 7kLoC. +The app is optimised for quick, command-based interactions, ideal for users who prefer or need a text-based interface for efficient event management. + +### Summary of Contributions +* **New feature**: Added the feature to add events. + * What it does: Allows the user to add events by specifying details such as event name, datetime, venue. + * Justification: This feature is a core functionality of the application, enabling users to keep track of planned events and manage their schedules effectively. + * Highlights: The add event functionality includes validation of input formats (such as date and time) and prevents duplicate event entries. + +* **New feature**: Added the feature to remove events. + * What it does: Enables users to delete events they no longer need, helping them keep the event list relevant and up-to-date. + * Justification: This feature is essential for maintaining an organised event list. Users can remove events that are canceled or no longer relevant, which helps in decluttering their schedule. + * Highlights: This feature also checks for invalid entries or non-existent events, providing error messages to guide users, thus enhancing usability and robustness. + +* **New feature**: Added the feature to save/load EventManager details to/from hard disk + * What it does: Enables users to save event details (such as event list, participants, and items) to a file on the hard disk and load it back when the application is restarted. This ensures data persistence between sessions. + * Justification: Persistent storage is a crucial feature for any event management tool, as it allows users to retrieve previously entered data and continue their work seamlessly. + * Highlights: The storage feature supports loading from a single CSV file, handling all event-related data in one file. It includes validation checks to ensure data integrity, and if any data entry is corrupted or unreadable, a warning is logged without crashing the application. + +* **New feature**: Added feature to edit participant's contact info. + * What it does: Allows the user to update the contact details (phone number and email) of participants associated with any event. + * Justification: Contact information can frequently change; this feature allows users to keep participant details current without needing to re-enter or delete participant records, maintaining data accuracy for effective communication. + * Highlights: Provides validation for input formats, such as phone numbers and emails, and gives feedback when inputs are incorrect, ensuring data integrity + +* **Code contributed**: [RepoSense link](https://nus-cs2113-ay2425s1.github.io/tp-dashboard/?search=&sort=groupTitle&sortWithin=title&timeframe=commit&mergegroup=&groupSelect=groupByRepos&breakdown=true&checkedFileTypes=docs~functional-code~test-code~other&since=2024-09-20&tabOpen=true&tabType=authorship&tabAuthor=KuanHsienn&tabRepo=AY2425S1-CS2113-W13-3%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=docs~functional-code~test-code~other&authorshipIsBinaryFileTypeChecked=false&authorshipIsIgnoredFilesChecked=false) +* **Project management**: + * Managed release `v1.0` (1 release) on GitHub + +* **Enhancements to existing features**: + * Fixed input formats of email and phone number of participants (Pull request [#]()) + +* **Documentation** + * User Guide + * Added documentation for `sort` and `find` commands. + * Added documentation for storage features + * Developer Guide + * Added design details for `add`, `remove` and `view` components + * Added implementation details for the `add`, `remove`, `view`, `copy`, `sort` and `find` feature (Pull requests [#128](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/128), [#142](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/142)) +* **Community** + * PRs reviewed (with non-trivial review comments): [#119](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/119), [#130](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/130), [#149](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/149) From 72f5b86b0e56c66f89101f44f4f38d64f8a7b0fe Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 5 Nov 2024 00:23:50 +0800 Subject: [PATCH 411/619] Add validation for phone and email formats --- .../java/seedu/manager/parser/Parser.java | 59 ++++++++++++++++++- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 1860f707d1..b51bc1ed82 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -26,6 +26,7 @@ import java.time.format.DateTimeParseException; import java.util.Set; import java.util.logging.Logger; +import java.util.regex.Pattern; import static java.util.logging.Level.WARNING; @@ -72,6 +73,14 @@ public class Parser { mark -p PARTICIPANT -e EVENT -s STATUS mark -m ITEM -e EVENT -s STATUS """; + private static final String INVALID_PHONE_NUMBER_MESSAGE = """ + Invalid phone number! + Please enter a valid phone number with digits only. + """; + private static final String INVALID_EMAIL_MESSAGE = """ + Invalid email format! + Please enter a valid email address. + """; private static final String INVALID_EVENT_STATUS_MESSAGE = """ Invalid event status! Please set the event status as either "done" or "undone" @@ -145,6 +154,8 @@ public class Parser { private static final String FIND_REGEX = "\\s*(-e|-p)\\s*"; private static final String VIEW_REGEX = "(-e|-y)"; private static final String MARK_ITEM_REGEX = "-m|-e|-s"; + private static final Pattern PHONE_NUMBER_PATTERN = Pattern.compile("\\d{8}"); + private static final Pattern EMAIL_PATTERN = Pattern.compile("^[A-Za-z0-9+_.-]+@[A-Za-z0-9-]+\\.[A-Za-z0-9-]+$"); /** * Returns a command based on the given user command string. @@ -263,7 +274,7 @@ private Command getAddEventCommand(String input) throws IndexOutOfBoundsExceptio * @return an {@link AddCommand} that adds a participant with fields parsed from input. * @throws IndexOutOfBoundsException if not all fields are present. */ - private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsException { + private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException { String[] inputParts = input.split(PARTICIPANT_REGEX); logger.info("Creating AddCommand for participant with details: " + inputParts[1].trim() + ", " + inputParts[2].trim()); @@ -271,6 +282,17 @@ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsEx String participantNumber = inputParts[2].trim(); String participantEmail = inputParts[3].trim(); String eventName = inputParts[4].trim(); + + if (!isValidPhoneNumber(participantNumber)) { + logger.log(WARNING, "Invalid phone number format"); + throw new InvalidCommandException(INVALID_PHONE_NUMBER_MESSAGE); + } + + if (!isValidEmail(participantEmail)) { + logger.log(WARNING, "Invalid email format"); + throw new InvalidCommandException(INVALID_EMAIL_MESSAGE); + } + return new AddCommand(participantName, participantNumber, participantEmail, eventName); } @@ -422,12 +444,23 @@ private Command parseEditCommand(String input, String[] commandParts) throws Inv * @return an {@link EditParticipantCommand} that edits a participant with fields parsed from input. * @throws IndexOutOfBoundsException if not all fields are present. */ - private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsException { + private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException { String[] inputParts = input.split(PARTICIPANT_REGEX); String participantName = inputParts[1].trim(); String newNumber = inputParts[2].trim(); String newEmail = inputParts[3].trim(); String eventName = inputParts[4].trim(); + + if (!isValidPhoneNumber(newNumber)) { + logger.log(WARNING, "Invalid phone number format"); + throw new InvalidCommandException(INVALID_PHONE_NUMBER_MESSAGE); + } + + if (!isValidEmail(newEmail)) { + logger.log(WARNING, "Invalid email format"); + throw new InvalidCommandException(INVALID_EMAIL_MESSAGE); + } + return new EditParticipantCommand(participantName, newNumber, newEmail, eventName); } @@ -469,6 +502,28 @@ private Command getEditItemCommand(String input){ return new EditItemCommand(itemName, itemNewName, eventName); } + //@@author KuanHsienn + /** + * Checks if the phone number is valid. + * + * @param phoneNumber the phone number to validate. + * @return true if the phone number is valid, false otherwise. + */ + private boolean isValidPhoneNumber(String phoneNumber) { + return PHONE_NUMBER_PATTERN.matcher(phoneNumber).matches(); + } + + //@@author KuanHsienn + /** + * Checks if the email address is valid. + * + * @param email the email address to validate. + * @return true if the email is valid, false otherwise. + */ + private boolean isValidEmail(String email) { + return EMAIL_PATTERN.matcher(email).matches(); + } + //@@author glenn-chew /** * Parses the input string to create a {@link Command} based on the provided command parts. From 8caf8a9e66ac0e178545cbe980de4b3940cc3d79 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 5 Nov 2024 00:27:49 +0800 Subject: [PATCH 412/619] Remove bug where trailing whitespaces cause invalid command --- src/main/java/seedu/manager/parser/Parser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index b51bc1ed82..6f9627f5a8 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -164,7 +164,7 @@ public class Parser { * @throws InvalidCommandException if the given command string cannot be parsed to a valid command. */ public Command parseCommand(String command) throws InvalidCommandException { - String[] commandParts = command.split(SPACE); + String[] commandParts = command.trim().split(SPACE); String commandWord = commandParts[0].toLowerCase(); switch (commandWord) { From 1e23f40f386c0ea863d956bc9f56e30e4181f869 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 5 Nov 2024 00:32:00 +0800 Subject: [PATCH 413/619] Update PPP --- docs/team/kuanhsienn.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/team/kuanhsienn.md b/docs/team/kuanhsienn.md index 925f04f5fe..0ac2de41d9 100644 --- a/docs/team/kuanhsienn.md +++ b/docs/team/kuanhsienn.md @@ -30,8 +30,9 @@ The app is optimised for quick, command-based interactions, ideal for users who * Managed release `v1.0` (1 release) on GitHub * **Enhancements to existing features**: - * Fixed input formats of email and phone number of participants (Pull request [#]()) - + * Fixed input formats of email and phone number of participants (Pull request [#150](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/150)) + * Fixed trailing whitespace bugs in causing invalid command (Pull request [#150](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/150)) + * **Documentation** * User Guide * Added documentation for `sort` and `find` commands. From 14d016ad9cc967de43bdf35996ffdc0ee3472a11 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 5 Nov 2024 00:35:16 +0800 Subject: [PATCH 414/619] Add PPP and extract screenshots --- docs/team/ltk-1606.md | 71 ++++++++++++++++++ .../screenshots/CopySequenceScreenshot.png | Bin 0 -> 38098 bytes .../screenshots/FilterFeatureScreenshot.png | Bin 0 -> 71665 bytes .../screenshots/FilterSequenceScreenshot.png | Bin 0 -> 31628 bytes .../screenshots/FindSequenceScreenshot.png | Bin 0 -> 24527 bytes .../screenshots/SortSequenceScreenshot.png | Bin 0 -> 28156 bytes .../screenshots/TKUserGuideScreenshot.png | Bin 0 -> 80525 bytes 7 files changed, 71 insertions(+) create mode 100644 docs/team/ltk-1606.md create mode 100644 docs/team/screenshots/CopySequenceScreenshot.png create mode 100644 docs/team/screenshots/FilterFeatureScreenshot.png create mode 100644 docs/team/screenshots/FilterSequenceScreenshot.png create mode 100644 docs/team/screenshots/FindSequenceScreenshot.png create mode 100644 docs/team/screenshots/SortSequenceScreenshot.png create mode 100644 docs/team/screenshots/TKUserGuideScreenshot.png diff --git a/docs/team/ltk-1606.md b/docs/team/ltk-1606.md new file mode 100644 index 0000000000..c2008e3f35 --- /dev/null +++ b/docs/team/ltk-1606.md @@ -0,0 +1,71 @@ + +# Lim Tze Kang - Project Portfolio Page + +## Overview +EventManagerCLI is a desktop CLI application meant for managing small-scale events organised by one person. It is written in Java, and has around 4kLoC. + +## Summary of Contributions +* **New feature**: Added a participant list to each event and the ability to add and remove participants from said list. (Pull request [#53](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/53), [#54](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/54)) + * What it does: allows the user to add or remove participants from specific events. + * Justification: This feature improves the product significantly as it allows the user to account for new people coming to their event or for people pulling out from their event. + * Highlights: This feature required the modification of multiple existing classes, and significant changes had to be made in several areas (like in the command parsing) to enable this feature. It is essential for the application and was used and built upon by others as additional commands were implemented. + + +* **New feature**: Added the ability to copy participant lists from one event to another. (Pull request [#116](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/116)) + * What it does: allows the user to duplicate participant lists in different events. + * Justification: This feature improves the product significantly as it allows the user to quickly replicate similar/overlapping participant lists without having to manually re-enter each participant's information for each event. + * Highlights: This feature required the creation of a new command class and significant changes had to be made in several areas (like for the command parsing) to enable this feature. + + +* **New feature**: Added the ability to search for specific participants in an event. (Pull request [#115](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/115)) + * What it does: allows the user to find specific participants that are coming to their event. + * Justification: This feature improves the product significantly as it allows the user to easily track a specific person's attendance or to find out his contact details. + * Highlights: This feature required the creation of a new command class, new methods in existing classes and significant changes in other areas (like in the command parsing) to enable this feature. + + +* **New feature**: Added priority attribute to events. (Pull request [#110](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/110)) + * What it does: allows the user to set the importance of their events. + * Justification: This feature improves the product significantly as it allows the user to account for which events are more important or urgent. + * Highlights: This feature required the creation of a new enumeration class and significant changes had to be made in several areas (like in the command parsing) to enable this feature. It was later used and built upon by others as additional commands were implemented. + + +* **New feature**: Added the ability to filter a list of events according to priority. (Pull request [#112](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/112)) + * What it does: allows the user to look for events based on how important the event is. + * Justification: This feature improves the product significantly as it allows the user to quickly find events that match their interests, saving them the time and effort of looking through a complete list. + * Highlights: This feature required the creation of a new command class, new methods in existing classes and significant changes in other areas (like in the command parsing) to enable this feature. It was later built upon by others as additional filter functionalities were added. + + +* **Enhancements to existing features**: + * Added parse methods for `Add`, `Remove`, `Filter`, `Find` and `Copy` commands. (Pull request [#53](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/53), [#54](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/54), [#112](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/112), [#115](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/115), [#116](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/116)) + * Added functionality to `sort` command so events can be sorted by priority. (Pull request [#110](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/110)) + + +* **Team-Based Tasks**: + * General Code Enhancements: Update all functional code and tests cases etc after implementation of new priority attribute to event classes. (Pull request [#110](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/110)) + + +* **Code contributed**: [RepoSense link](https://nus-cs2113-ay2425s1.github.io/tp-dashboard/?search=LTK&sort=groupTitle&sortWithin=title&timeframe=commit&mergegroup=&groupSelect=groupByRepos&breakdown=true&checkedFileTypes=docs~functional-code~test-code~other&since=2024-09-20&tabOpen=true&tabType=authorship&tabAuthor=LTK-1606&tabRepo=AY2425S1-CS2113-W13-3%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=docs~functional-code~test-code&authorshipIsBinaryFileTypeChecked=false&authorshipIsIgnoredFilesChecked=false) + + +* **Documentation** + * User Guide + * Added documentation for `copy`, `sort`, `filter` and `find` commands. (Pull request [#126](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/126)) + * Developer Guide + * Added implementation details for `filter` feature. (Pull request [#142](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/142)) + * Created sequence diagrams for `copy`, `sort`, `filter` and `find` features. (Pull request [#129](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/129)) + + +* **Community** + * Helped teammate update PR to resolve merge conflicts and pass CI checks (Pull request [#118](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/118), [#127](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/127)) + +## Extracts + +### Developer Guide +Filter Feature Extract Screenshot +Filter Command Sequence Diagram Screenshot +Copy Command Sequence Diagram Screenshot +Find Command Sequence Diagram Screenshot +Sort Command Sequence Diagram Screenshot + +### User Guide +Copy, Find, Filter, Sort Commands User Guide Screenshot diff --git a/docs/team/screenshots/CopySequenceScreenshot.png b/docs/team/screenshots/CopySequenceScreenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..7f87689ea7108d1013b0a88965f532f45528e352 GIT binary patch literal 38098 zcmd43byQUA`!}qJbT?8GGANB8F#;0OAYf3^9SVpJASlw^2#5?Jf&t19V$dZZAtekU zB`Dw!A`(*XHR$o2^Zovw^*ryh-ap>8WXYP@%-;Ln_kCTTx+hX!Po0wN2-$%H2Pic) zR1FUtAQ(Sz;NVjd0(j-Jd#ykGcjEe4k&4%ZK;+h4W6W_{h>?x>CLQK#$I zJ-p;ZMLpcCuU@}##ZAQ4{R*n<9T$AWvhxMw>wmp|;2?aCPiE|SrK=-iG*#ajqcd^A z!7?QCDFQ+LrI-8f_U2r==J+sHrH|oHozz|#le4~Twls9V zh{oatO7tgM>h}56QrdU*hu?=@U_L6;Z4+|r%^bb?pz_7QBtBl{;oNKY%0=p&QB=IS zu6eF9G>4oE&Cc6w?2%V?i+hI-aHPkK*5kU&Chja5S5P6&^J^iHlL?t6eB82MYa*f%Jr_VF|jzQ4l0~!Z8 z%Y)0WUgi>bB-3bp4HFQ?YLY?Ktg_x`zi}rFZCi6N;&irA?$cID+s2@(O`A6s?3a2^ z`Sl#)c$R(l$~u)x`6Zl~!s$0|>lT3)On#$&?dN=nIF1Ou2-=+a@!?13j7=#cRRy;0 z1HtF)&F$3p%$S`^2kOtCYO7_oYE;c#iH!AkMi*z7#?BIMyWCBdy0$TtGhB4r-|fs( zIp^}H$9q4^D$*)^>_|!>{MioAv}DRkdWe3QAzW2@iiL1 zer&L&WP!0wvjrU+)Am`(2L?jMHqry9Q?a@jn@J3>jgsoªvyNhLuV{t97zi_@B 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

    ^1a#~yAINLfn;^qU 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 I%2)*cFWWPud;kCd literal 0 HcmV?d00001 diff --git a/docs/team/screenshots/FilterSequenceScreenshot.png b/docs/team/screenshots/FilterSequenceScreenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..0592e16d0e92ce694d6486c5e5ddceda3b795edf GIT binary patch literal 31628 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 literal 0 HcmV?d00001 diff --git a/docs/team/screenshots/FindSequenceScreenshot.png b/docs/team/screenshots/FindSequenceScreenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..de756e7acb347cfcba3ebbd96eff566b70fedf3c GIT binary patch literal 24527 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 V8gJRS4$1mryO<7)Qo2{nzX4UV&Taqz literal 0 HcmV?d00001 diff --git a/docs/team/screenshots/SortSequenceScreenshot.png b/docs/team/screenshots/SortSequenceScreenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..d75e7624efdc4e06524e5812707bc84b7acdb7aa GIT binary patch literal 28156 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
    * **New feature**: Added priority attribute to events. (Pull request [#110](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/110)) * What it does: allows the user to set the importance of their events. @@ -58,6 +59,8 @@ EventManagerCLI is a desktop CLI application meant for managing small-scale even * **Community** * Helped teammate update PR to resolve merge conflicts and pass CI checks (Pull request [#118](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/118), [#127](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/127)) +
    + ## Extracts ### Developer Guide @@ -67,5 +70,7 @@ EventManagerCLI is a desktop CLI application meant for managing small-scale even Find Command Sequence Diagram Screenshot Sort Command Sequence Diagram Screenshot +
    + ### User Guide Copy, Find, Filter, Sort Commands User Guide Screenshot From 831a61bc09a442204d222ddda658f1b60ba71ec1 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 5 Nov 2024 01:23:45 +0800 Subject: [PATCH 421/619] Update manual testing for add and remove commands --- docs/DeveloperGuide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index e190674ee7..f47aee9ddb 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -707,6 +707,7 @@ The user is able to organise and manage his events more quickly and efficiently 1. Removing an `Event` from the `Event` list 1. Prerequisite: An event with the name `Event 1` is present in the list. + An event with the name `Event 2` is not present in the list. List all `Event`s with `list` after each test case. 2. Test case: `remove -e Event 1` From 3cc2a932bed98606eac87a6d65c3332531938937 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 5 Nov 2024 01:28:54 +0800 Subject: [PATCH 422/619] Fix terminology in mark and add command sections --- docs/UserGuide.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index e0ae62e60b..03a0484fad 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -72,6 +72,7 @@ Format: Remarks: * `TIME` must be entered in the format `yyyy-mm-dd HH:mm`. +* `PRIORITY` must be either `HIGH`, `MEDIUM`, or `LOW`. Examples: @@ -148,8 +149,8 @@ Format: `mark -p PARTICIPANT -e EVENT -s STATUS` Examples: -* `mark -p John Tan -e Origami workshop -s done` marks the participant `John Tan` in the `Origami workshop` event as present. -* `mark -p John Tan -e Origami workshop -s undone` marks the participant `John Tan` in the `Origami workshop` event as absent. +* `mark -p John Tan -e Origami workshop -s present` marks the participant `John Tan` in the `Origami workshop` event as present. +* `mark -p John Tan -e Origami workshop -s absent` marks the participant `John Tan` in the `Origami workshop` event as absent. ### Marks an item as accounted for: `mark` @@ -161,8 +162,8 @@ Format: `mark -m ITEM -e EVENT -s STATUS` Examples: -* `mark -m Origami paper -e Origami workshop -s done` marks the item `Origami paper` in the `Origami workshop` event as accounted. -* `mark -m Origami paper -e Origami workshop -s undone` marks the item `Origami paper` in the `Origami workshop` event as unaccounted. +* `mark -m Origami paper -e Origami workshop -s accounted` marks the item `Origami paper` in the `Origami workshop` event as accounted. +* `mark -m Origami paper -e Origami workshop -s unaccounted` marks the item `Origami paper` in the `Origami workshop` event as unaccounted. * ### Copies participant list: `copy` From ece2af5eda38e2b17038eb36ac7013129a081492 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 5 Nov 2024 01:38:41 +0800 Subject: [PATCH 423/619] Update screenshots --- .../screenshots/FilterFeatureScreenshot.png | Bin 71665 -> 89593 bytes .../screenshots/TKUserGuideScreenshot.png | Bin 80525 -> 94866 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/team/screenshots/FilterFeatureScreenshot.png b/docs/team/screenshots/FilterFeatureScreenshot.png index 86420eaf6017b2d888995844157485497d021bd2..c5d866507b8e80ef9e421d3ee8d44444744865ad 100644 GIT binary patch literal 89593 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 z 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 Date: Tue, 5 Nov 2024 02:10:07 +0800 Subject: [PATCH 424/619] add Edit feature to DG --- docs/DeveloperGuide.md | 34 ++++++++ .../EditEventCommandSequenceDiagram.puml | 38 ++++++++ .../EditItemCommandSequenceDiagram.puml | 82 ++++++++++++++++++ ...EditParticipantCommandSequenceDiagram.puml | 39 +++++++++ .../EditEventCommandSequenceDiagram.png | Bin 0 -> 36456 bytes .../images/EditItemCommandSequenceDiagram.png | Bin 0 -> 33140 bytes .../EditParticipantCommandSequenceDiagram.png | Bin 0 -> 38140 bytes 7 files changed, 193 insertions(+) create mode 100644 docs/diagrams/EditEventCommandSequenceDiagram.puml create mode 100644 docs/diagrams/EditItemCommandSequenceDiagram.puml create mode 100644 docs/diagrams/EditParticipantCommandSequenceDiagram.puml create mode 100644 docs/images/EditEventCommandSequenceDiagram.png create mode 100644 docs/images/EditItemCommandSequenceDiagram.png create mode 100644 docs/images/EditParticipantCommandSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 486d81f990..d08a4e8d37 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -357,6 +357,40 @@ The values of `eventName` and `isViewingParticipants` are set by the user throug The `Parser` assigns the event parameter directly to `eventName`. Conversely, it sets `isViewingParticipants` to true if the type parameter value is `participant`, to false if the type parameter value is `item`, and treats any other value entered as invalid. +### Edit feature + +The `edit` feature allows users to edit the information of an event, or the information of a participant/item in an event. +This feature is implemented in the `EditEventCommand` `EditParticipantCommand` `EditItemCommand` classes, which extends the `Command` base class and utilises the flag to determine the edit content. + +The feature comprises three operations, namely: +* `EditEventCommand#execute`, which edits the information of an event. +* `EditParticipantCommand#execute`, which edits the information of a participant in an event. +* `EditItemCommand#execute`, which edits the information of an item in an event. + +The above three operations override the `Command#execute()` operation in `Command`, +and is invoked when the latter operation is called. + +#### Feature implementation + +Given below is an example usage scenario and the behaviour of the `edit` feature at each step: +1. The user enters the command edit followed by a flag (-e/-p/-m) to edit the information of event/participant/item. +2. If the flag is `-e`, `EditEventCommand` calls `EditEventCommand#execute`, which calls `EventList#editEvent` to edit the event. +3. If the flag is `-e`, `EditParticipatCommand` calls `EditParticipatCommand#execute`, which calls `EventList#editParticipant` to edit the participant. +4. If the flag is `-e`, `EditItemCommand` calls `EditItemCommand#execute`, which calls `EventList#editItem` to edit the item. +5. After Editing, a success message `outputMessage` will be printed. + +The interactions between components of `EditEventCommand#execute` are shown in the **Sequence Diagram** below: + + + +The interactions between components of `EditParticipantCommand#execute` are shown in the **Sequence Diagram** below: + + + +The interactions between components of `EditItemCommand#execute` are shown in the **Sequence Diagram** below: + + + ### Mark/unmark feature The `mark/unmark` feature allows users to mark and unmark `Event`s in the `EventList`, or `Participant`s or `Item`s stored in an `Event`. The feature comprises the abstract `MarkCommand` class, diff --git a/docs/diagrams/EditEventCommandSequenceDiagram.puml b/docs/diagrams/EditEventCommandSequenceDiagram.puml new file mode 100644 index 0000000000..d44748eb67 --- /dev/null +++ b/docs/diagrams/EditEventCommandSequenceDiagram.puml @@ -0,0 +1,38 @@ +@startuml +hide footbox + +participant ":Main" as main +participant ":EditEventCommand" as editCommand +participant ":EventList" as eventList +participant ":Event" as event + +main -> editCommand : execute() +activate editCommand + +editCommand -> eventList : editEvent(eventName, eventNewName, eventTime, eventVenue, eventPriority) +activate eventList + +loop for each event in eventList + eventList -> event : getEventName() + activate event + event --> eventList : eventName + deactivate event + + alt eventName matches + eventList -> event : updateEvent(eventNewName, eventTime, eventVenue, eventPriority) + activate event + event --> eventList : updated + deactivate event + eventList --> editCommand : true + end + +end + +alt no match found + eventList --> editCommand : false +end + +editCommand --> main : message +deactivate eventList +deactivate editCommand +@enduml \ No newline at end of file diff --git a/docs/diagrams/EditItemCommandSequenceDiagram.puml b/docs/diagrams/EditItemCommandSequenceDiagram.puml new file mode 100644 index 0000000000..cd8debf8d9 --- /dev/null +++ b/docs/diagrams/EditItemCommandSequenceDiagram.puml @@ -0,0 +1,82 @@ +@startuml +hide footbox + +participant ":Main" as main +participant ":EditItemCommand" as editCommand +participant ":EventList" as eventList +participant ":Event" as event + +main -> editCommand : execute() +activate editCommand + +editCommand -> eventList : editItem(itemName, itemNewName, eventName) +activate eventList + +loop for each event in eventList + eventList -> event : getEventName() + activate event + event --> eventList : eventName + deactivate event + + alt eventName matches + eventList -> event : updateItem(itemName, itemNewName) + activate event + event --> eventList : item updated + deactivate event + eventList --> editCommand : true + + end + +end + +alt no match found + eventList --> editCommand : false +end + +editCommand --> main : message +deactivate eventList +deactivate editCommand +@enduml + 39 changes: 39 additions & 0 deletions39 +docs/diagrams/EditParticipantCommandSequenceDiagram.puml +Original file line number Original file line Diff line number Diff line change +@@ -0,0 +1,39 @@ +@startuml +hide footbox + +participant ":Main" as main +participant ":EditParticipantCommand" as editCommand +participant ":EventList" as eventList +participant ":Event" as event + +main -> editCommand : execute() +activate editCommand + +editCommand -> eventList : editParticipant(participantName, participantNumber, participantEmail, eventName) +activate eventList + +loop for each event in eventList + eventList -> event : getEventName() + activate event + event --> eventList : eventName + deactivate event + + alt eventName matches + eventList -> event : updateParticipant(participantName, participantNumber, participantEmail) + activate event + event --> eventList : updated + deactivate event + eventList --> editCommand : true + end + +end + +alt no match found + eventList --> editCommand : false +end + +editCommand --> main : message +deactivate eventList +deactivate editCommand + +@enduml \ No newline at end of file diff --git a/docs/diagrams/EditParticipantCommandSequenceDiagram.puml b/docs/diagrams/EditParticipantCommandSequenceDiagram.puml new file mode 100644 index 0000000000..1302f73046 --- /dev/null +++ b/docs/diagrams/EditParticipantCommandSequenceDiagram.puml @@ -0,0 +1,39 @@ +@startuml + hide footbox + + participant ":Main" as main + participant ":EditParticipantCommand" as editCommand + participant ":EventList" as eventList + participant ":Event" as event + + main -> editCommand : execute() + activate editCommand + + editCommand -> eventList : editParticipant(participantName, participantNumber, participantEmail, eventName) + activate eventList + + loop for each event in eventList + eventList -> event : getEventName() + activate event + event --> eventList : eventName + deactivate event + + alt eventName matches + eventList -> event : updateParticipant(participantName, participantNumber, participantEmail) + activate event + event --> eventList : updated + deactivate event + eventList --> editCommand : true + end + + end + + alt no match found + eventList --> editCommand : false + end + + editCommand --> main : message + deactivate eventList + deactivate editCommand + + @enduml \ No newline at end of file diff --git a/docs/images/EditEventCommandSequenceDiagram.png b/docs/images/EditEventCommandSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..6c2b42ed30e6d01f18953ea57c64cb6ee2d87d3b GIT binary patch literal 36456 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 G`+op{TPBDA literal 0 HcmV?d00001 From fcaebcf56911451a1fbecf2a071724e5750c6e48 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Tue, 5 Nov 2024 02:12:59 +0800 Subject: [PATCH 425/619] Add edit feature to UG --- docs/UserGuide.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index c5076888a3..6fca5850a4 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -122,6 +122,22 @@ Examples: * `view -e Origami workshop -y participant` shows a list of all participants for the event `Origami workshop`. * `view -e Origami workshop -y item` shows a list of all items for the event `Origami workshop`. +### Edit the information of an event or a participant: `edit` + +Edit the information of an event/participant/item. + +Format: + +* `edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY` for editing an event's basic information. +* `edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT` for editing a participant's contact information in an event. +* `edit -m ITEM > NEW_ITEM -e EVENT` for editing an item's information in an event. + +Examples: + +* `edit -p Mary -n 9182 3213 -email mary@gmail.com -e CS2113` +* `edit -e CS2113 -name CS2113T -t 2024-10-25 16:00 -v LT16 -u HIGH` +* `edit -m balloon > cake -e anniversary` + ### Mark an event as done: `mark` Marks an event in the event list as done or not done. From 9d151d228f3143b9e0a51b5a731858d5d49754b4 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 5 Nov 2024 02:28:03 +0800 Subject: [PATCH 426/619] Update Storage in DG --- docs/DeveloperGuide.md | 71 +++++++++--------- docs/diagrams/LoadingSequenceDiagram.puml | 4 +- docs/diagrams/SavingSequenceDiagram.puml | 4 +- .../StorageEventLoadingSequenceDiagram.puml | 42 ----------- .../StorageEventSavingSequenceDiagram.puml | 21 ------ .../StorageLoadingSequenceDiagram.puml | 49 +++++++++--- ...rageParticipantLoadingSequenceDiagram.puml | 42 ----------- ...puml => StorageSavingSequenceDiagram.puml} | 23 ++++-- docs/images/LoadingSequenceDiagram.png | Bin 9166 -> 7552 bytes docs/images/SavingSequenceDiagram.png | Bin 9527 -> 7738 bytes .../StorageEventLoadingSequenceDiagram.png | Bin 23812 -> 0 bytes .../StorageEventSavingSequenceDiagram.png | Bin 12085 -> 0 bytes docs/images/StorageLoadingSequenceDiagram.png | Bin 0 -> 37644 bytes ...orageParticipantLoadingSequenceDiagram.png | Bin 26075 -> 0 bytes ...torageParticipantSavingSequenceDiagram.png | Bin 26293 -> 0 bytes docs/images/StorageSavingSequenceDiagram.png | Bin 0 -> 31751 bytes 16 files changed, 94 insertions(+), 162 deletions(-) delete mode 100644 docs/diagrams/StorageEventLoadingSequenceDiagram.puml delete mode 100644 docs/diagrams/StorageEventSavingSequenceDiagram.puml delete mode 100644 docs/diagrams/StorageParticipantLoadingSequenceDiagram.puml rename docs/diagrams/{StorageParticipantSavingSequenceDiagram.puml => StorageSavingSequenceDiagram.puml} (66%) delete mode 100644 docs/images/StorageEventLoadingSequenceDiagram.png delete mode 100644 docs/images/StorageEventSavingSequenceDiagram.png create mode 100644 docs/images/StorageLoadingSequenceDiagram.png delete mode 100644 docs/images/StorageParticipantLoadingSequenceDiagram.png delete mode 100644 docs/images/StorageParticipantSavingSequenceDiagram.png create mode 100644 docs/images/StorageSavingSequenceDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 16f15e8009..619f13175c 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -534,67 +534,70 @@ The interactions between components of `FindCommand#execute` are shown in the ** ### Saving and loading of data -As mentioned in the _Storage component_ section, the program automatically saves any stored data in `EventList` into several `.csv` files, and loads -the data from these files when it is run. +As mentioned in the _Storage component_ section, the program automatically saves any stored data in `EventList` into 'data.csv` file, and loads +the data from this file when the program runs. -There are three `.csv` files used for storing data, for `Event`s, `Participant`s and `Item`s respectively. Within each file, each -object (like an `Event` in the `Event`s) file is stored in one line in the following format, +In `data.csv`, each line represents an object (`Event`, `Participant`, or `Item`), organised in the following format: ``` -FIELD,FIELD,... +EVENT,FIELD,FIELD,... +PARTCIPANT,FIELD,FIELD,... +ITEM,FIELD,FIELD,... ``` -where `FIELD` represents a value for a member of the object (like the name of an `Event`). +where `FIELD` represents a value corresponding to a property of the object (e.g., `Event` name or `Participant` email). -This functionality is implemented by the `Storage` and `FileParser` classes, and has two operations, namely: +This functionality is implemented by the `Storage` and `FileParser` classes, encompassing two main operations: +* `Main#loadData()`, which loads data from the `data.csv` file into `EventList`. +* `Main#saveData()`, which saves all data stored in `EventList` (including its `Events`, `Participants`, and `Items`) into `data.csv`. -* `Main#loadData()`, which loads the data from the `.csv` files into the `EventList` amd its `Events`, -* `Main#saveData()`, which saves the data stored in `EventList` and its `Event`s into the `.csv` files. +#### The `Main#loadData()` operation works as follows: -The `Main#loadData()` operation works as follows: - -1. `Storage` loads the data for the `Event`s from the `.csv` file into `EventList`. -2. `Storage` then loads the data for the `Event`s' `Participant`s into `EventList`. -3. `Storage` then loads the data for the `Event`s' `Item`s into `EventList`. +1. `Storage` initializes `FileParser` to read data from `data.csv` into `EventList`. +2. `FileParser` processes each line, identifying whether it represents an `Event`, `Participant`, or `Item`, and appropriately adds each object to the relevant `Event` in `EventList`. +3. Lines with insufficient or invalid fields are skipped, while lines with extra fields have the additional fields ignored. The interactions between classes during the `Main#loadData()` operation is shown in the **Sequence Diagram** below. -The logic for the loading of `Event`s is as follows: +#### Loading Events, Participants and Items -1. `Storage` creates a `FileParser`, and passes the event file's filepath to `FileParser`. -2. `FileParser` adds a new `Event` to `EventList` with the fields in each line of the event file. -3. If a line in the file has insufficient or invalid fields, the `FileParser` skips past the line. +For `Event` loading: +* `Storage` creates an instance of `FileParser` and provides the file path to `data.csv`. +* `FileParser` reads each line, and for `Event` lines, it adds a new `Event` to `EventList` using the fields from the line. -If a line has more fields than required, `FileParser` will ignore the additional fields. +For `Participant` and `Item` loading: +* The logic mirrors the loading of `Events`, where each `Participant` or `Item` is associated with the correct `Event` based on its specified fields. -The interactions between classes during the loading of `Event`s is shown in the **Sequence Diagram** below. +The **Sequence Diagram** below demonstrates the interactions during loading. - + -The logic for the loading of `Participant`s and `Item`s is similar to that for `Event`s. +The logic for the loading of `Item`s is similar to that for `Participant`s. -The `Main#saveData()` operation saves data in the same order as `Main#loadData()`. The interactions between classes during the operation is shown in the **Sequence Diagram** below: +#### The `Main#saveData()` operation saves data in the same order as `Main#loadData()` and works as follows. - +1. `Storage` retrieves `Events` from `EventList` and writes each `Event` and its associated `Participants` and `Items` to `data.csv`. +2. Each line is formatted based on the object type, either as an `Event`, `Participant`, or `Item`. -For the saving of `Event`s, `Storage` gets the list of `Event`s from `EventList`, and writes a line of event data into the `.csv` file for each `Event`. +The **Sequence Diagram** below illustrates the class interactions during the `Main#saveData()` operation. -The interactions between classes during the saving of `Event`s is shown in the **Sequence Diagram** below. + - +#### Saving Events, Participants, and Items -The logic for the saving of `Participant`s is as follows: -1. `Storage` gets a list of `Event`s from `EventList`. -2. For each `Event` in the list of `Event`s, `Storage` gets its list of `Participant`s. -3. `Storage` then writes the `Participant` data for each participant into a line in the participant `.csv` file. +For saving `Events`: +* Storage obtains the list of Events from EventList and writes each Event line by line to data.csv. -The interactions between classes during the saving of `Participant`s is shown in the **Sequence Diagram** below. +For `Participant` and `Item` saving: +* For each Event, Storage retrieves the list of Participants and Items, writing each line in the respective format. - + The class interactions during saving are displayed in the **Sequence Diagram** below. -The logic for the loading of `Item`s is similar to that for `Participant`s. + + +The logic for the saving of `Item`s is similar to that for `Participant`s. Reading and writing from and to the `.csv` storage files is done through operations from the **OpenCSV** library, namely: diff --git a/docs/diagrams/LoadingSequenceDiagram.puml b/docs/diagrams/LoadingSequenceDiagram.puml index 97420cc95b..57040a4fc9 100644 --- a/docs/diagrams/LoadingSequenceDiagram.puml +++ b/docs/diagrams/LoadingSequenceDiagram.puml @@ -8,9 +8,7 @@ Participant ":Storage" as storage STORAGE_COLOUR main -> main : loadData() activate main -ref over main, storage : Loading of event data -ref over main, storage : Loading of participant data -ref over main, storage : Loading of item data +ref over main, storage : Loading of event, participant and item data return diff --git a/docs/diagrams/SavingSequenceDiagram.puml b/docs/diagrams/SavingSequenceDiagram.puml index 10554b2390..4d3ed5e80d 100644 --- a/docs/diagrams/SavingSequenceDiagram.puml +++ b/docs/diagrams/SavingSequenceDiagram.puml @@ -8,9 +8,7 @@ Participant ":Storage" as storage STORAGE_COLOUR main -> main : saveData() activate main -ref over main, storage : Saving of event data -ref over main, storage : Saving of participant data -ref over main, storage : Saving of item data +ref over main, storage : Saving of event, participant and item data return diff --git a/docs/diagrams/StorageEventLoadingSequenceDiagram.puml b/docs/diagrams/StorageEventLoadingSequenceDiagram.puml deleted file mode 100644 index 2add2fbbd3..0000000000 --- a/docs/diagrams/StorageEventLoadingSequenceDiagram.puml +++ /dev/null @@ -1,42 +0,0 @@ -@startuml -!include style.puml -hide footbox - -Participant ":Main" as main -Participant ":Storage" as storage STORAGE_COLOUR -Participant ":FileParser" as parser PARSER_COLOUR -Participant ":EventList" as events EVENT_COLOUR - - -group sd Loading of event data -main -> storage : loadEvents(EventList) -activate storage STORAGE_COLOUR - -create parser -storage -> parser : FileParser() -activate parser PARSER_COLOUR -return - -storage -> parser : parseEventFile(String) -activate parser PARSER_COLOUR - -loop for line in file -parser -> parser : parseEventFileLine(...) -activate parser PARSER_COLOUR - -parser -> events : addEvent(...) -activate events EVENT_COLOUR - -return - -return - -end - -return - -return - -end - -@enduml \ No newline at end of file diff --git a/docs/diagrams/StorageEventSavingSequenceDiagram.puml b/docs/diagrams/StorageEventSavingSequenceDiagram.puml deleted file mode 100644 index 75a3471836..0000000000 --- a/docs/diagrams/StorageEventSavingSequenceDiagram.puml +++ /dev/null @@ -1,21 +0,0 @@ -@startuml -!include style.puml -hide footbox - -Participant ":Main" as main -Participant ":Storage" as storage STORAGE_COLOUR -Participant ":EventList" as event EVENT_COLOUR - - -group sd Saving of event data -main -> storage : saveEvents(EventList) -activate storage STORAGE_COLOUR -storage -> event : getList() -activate event EVENT_COLOUR -return :ArrayList - -storage --> main -deactivate storage -end - -@enduml \ No newline at end of file diff --git a/docs/diagrams/StorageLoadingSequenceDiagram.puml b/docs/diagrams/StorageLoadingSequenceDiagram.puml index 33c205200c..8652dffbb8 100644 --- a/docs/diagrams/StorageLoadingSequenceDiagram.puml +++ b/docs/diagrams/StorageLoadingSequenceDiagram.puml @@ -4,20 +4,49 @@ hide footbox Participant ":Main" as main Participant ":Storage" as storage STORAGE_COLOUR -Participant ":Parser" as parser PARSER_COLOUR -Participant ":EventList" as event EVENT_COLOUR +Participant ":FileParser" as parser PARSER_COLOUR +Participant ":EventList" as events EVENT_COLOUR -main -> storage : loadEvents(events : EventList) +group sd Loading of event data +main -> storage : loadInfo(EventList) activate storage STORAGE_COLOUR -storage --> parser : parseFile(events, FILE_PATH) + +create parser +storage -> parser : FileParser(EventList, String) +activate parser PARSER_COLOUR +return + +storage -> parser : parseFile(EventList, String) activate parser PARSER_COLOUR -parser -> event : addEvent(eventName, time, venue) -activate event EVENT_COLOUR -event --> parser -deactivate event + +loop for line in file + + + parser -> parser : parseLine(events, fields, formatter) + activate parser PARSER_COLOUR + + alt EVENT + parser -> events : addEvent(...) + activate events EVENT_COLOUR + return + else PARTICIPANT + parser -> events : addParticipantToEvent(...) + activate events EVENT_COLOUR + return + else ITEM + parser -> events : addItemToEvent(...) + activate events EVENT_COLOUR + return + end + return + deactivate events +end + + parser --> storage deactivate parser -storage -> main +storage --> main deactivate storage +end -@enduml \ No newline at end of file +@enduml diff --git a/docs/diagrams/StorageParticipantLoadingSequenceDiagram.puml b/docs/diagrams/StorageParticipantLoadingSequenceDiagram.puml deleted file mode 100644 index 31fdd2f857..0000000000 --- a/docs/diagrams/StorageParticipantLoadingSequenceDiagram.puml +++ /dev/null @@ -1,42 +0,0 @@ -@startuml -!include style.puml -hide footbox - -Participant ":Main" as main -Participant ":Storage" as storage STORAGE_COLOUR -Participant ":FileParser" as parser PARSER_COLOUR -Participant ":EventList" as events EVENT_COLOUR - - -group sd Loading of event data -main -> storage : loadParticipants(EventList) -activate storage STORAGE_COLOUR - -create parser -storage -> parser : FileParser() -activate parser PARSER_COLOUR -return - -storage -> parser : parseParticipantsFile(String) -activate parser PARSER_COLOUR - -loop for line in file -parser -> parser : parseParticipantFileLine(...) -activate parser PARSER_COLOUR - -parser -> events : addParticipantToEvent(...) -activate events EVENT_COLOUR - -return - -return - -end - -return - -return - -end - -@enduml \ No newline at end of file diff --git a/docs/diagrams/StorageParticipantSavingSequenceDiagram.puml b/docs/diagrams/StorageSavingSequenceDiagram.puml similarity index 66% rename from docs/diagrams/StorageParticipantSavingSequenceDiagram.puml rename to docs/diagrams/StorageSavingSequenceDiagram.puml index de348991cc..540e2d1c2e 100644 --- a/docs/diagrams/StorageParticipantSavingSequenceDiagram.puml +++ b/docs/diagrams/StorageSavingSequenceDiagram.puml @@ -8,22 +8,30 @@ Participant ":EventList" as eventList EVENT_COLOUR Participant "event:Event" as event EVENT_COLOUR group sd Saving of participant data -main -> storage : saveParticipants(EventList) +main -> storage : saveInfo(EventList) activate storage STORAGE_COLOUR + +loop for event in event list + storage -> eventList : getList() activate eventList EVENT_COLOUR return :ArrayList -loop for event in event list +loop for participant in participant list -storage -> storage : saveEventParticipants(...) -activate storage STORAGE_COLOUR - -storage -> event : getParticipantsList() +storage -> event : getParticipantList() activate event EVENT_COLOUR return :ArrayList -return +end + +loop for item in participant list + +storage -> event : getItemList() +activate event EVENT_COLOUR +return :ArrayList + +end end @@ -31,4 +39,5 @@ return end + @enduml \ No newline at end of file diff --git a/docs/images/LoadingSequenceDiagram.png b/docs/images/LoadingSequenceDiagram.png index abfc2e99fdafcf0cf116535e8b111686deb6af06..1957624f44582f8165884bf5eada636e46ef009c 100644 GIT binary patch literal 7552 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 literal 9166 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 W;*U6tQ{WI6;~ynW#cFxW5C01^J&qLs literal 9527 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 diff --git a/docs/images/StorageEventLoadingSequenceDiagram.png b/docs/images/StorageEventLoadingSequenceDiagram.png deleted file mode 100644 index fdb9581dd7c1634ba8249e2ca32ee91223d0b5ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23812 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 diff --git a/docs/images/StorageEventSavingSequenceDiagram.png b/docs/images/StorageEventSavingSequenceDiagram.png deleted file mode 100644 index 945397f583a9f0faab17d1f2ee804f385d1ed49d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12085 zcmZvCWmr^SySEC+&@nL5QUcNqg7iqYfOLa&2`DYi&>$(&A}AdaQqm2Aba!`2^Dh2z z-sd^j`2u@t@4eQ#?_aHrP*#+}LMK7LckdpSj5J*J-o5+&;J6R+0Q?=H3EKhx7@c2e zI-A%#xY?MQJKvKsvomutayB!iG|$%fYGQBe+TZ;coF>as zP1E_`_wU^Y=Xv+(yQ-ej6gz=eW8)&W{$#KQfwF7?TD(}021)40isBD4cARow$X!VNhcC*u~dfJ@o1*qXzGPStvt^`&}M7CKS z6~Rbx+BGB!k!bb-%qoP%)t_{*3(?5*9)IEBuFF&$#l+r}m`^6esyb%V@tTm^86i#> zc0~1wzBN|<;G#`kJNR)=`)bT?lc!F`y^l5jQ>5O#E;7T_Fa*7q2$Mf8f<`RY* zn)Bc6b=45R0gU>p!?X&Imyd~$U#>`Kc3{{@lV;K?wy(WjOI+HZT!2Bp9oU3^h*l^X zHx2Fb3bpls_@7CINn6nyp6v#;e1)6l(rynE&Rg|B{Apdk&!gMUHsUH;A(0U2Im*? zBU--v>wEWDh-BbmYVY)SQc*S4q%N!Q;5q0T?t6I|L@!>HnAm6dQI3nMZ6lr}yh5pM z4?^)8A?VF-m(D`8<6{tIm$n~9k@$y}G7aV-2G_kCw>>|R^&34($mwlV=C9$ z_NUa;l(l4kF(olvWR=l%8B&NJr7Sroo*1qfPI3rkNLjEv92Y*39glEw@|IK7-%r2o zO%@iavFQmX?n1?(NQjK;>>0b{^uW;@|8ct*EuG42o0R~M)OEkSdASj>LHEbIi(OD;$F@^tW?{}DaMq2DjTZCW zP$l(sXX1*huJ?mIpZ|PGp$(E`wdZEwp={8FO=}OeS`K+=L}<{7(^B(^6DKS$*9=kN z*D!0>y*qQ?XdZ1F;&3fJo^}4PezCKRQT;p~?RqKaPXS4xd_aYCkv}K%(HdJEc1)+) zU{>3qdSO^j%X=r|EQWO6!x5dd?lW(RyDxL9yzrH8B{ikyFwF{mkQ~C-2{-P96QXe9 z*+(Ntuw=acL;WdXNZ@Lv+@FL0I@?wf|alw&+VV zVpv%k`hx9;_1;ve>Ju-5UKQKix6NPDO@gUoy|EE93?eyka)F#NftiT3@TUI46`?TY zj3nt`SQrUBTevHqzUXhH8Yy7taz-enefH{{lim1KYqP6#cRK$v`Sadvt%9pK zRaU}2cxu7b>+@5>#FZPQyK5Wbj=#3M?o=D06Tf^HRdo1fY{BhlkX{`uWkAfaYh%u3T z+sXgt>MW-%?3LHqf<~r)9hjDkc6fbmDq6Z@+6Y$u$4cUhuMQ06T`ij~(}PsT{cPA+ zKPJze*EtRZT^Xp)wNsibGie&&j2+rRMHl%!nZ^kRi4{opgN9F{>&$7&h zC$U?8qZWHo=~mueZEGNjz-h>WUpi1*cjQdA+cs@nug&5L$jR354RY_za(Omuk<)Ej z&&kiy*XXwr6zezlnB5?CxH*e424AS&j`Js0N_?8?Eu2dy*PF3e*L+JxE-+dDTQpaL z%j>f2^j)HBHzXe`Agdc*?sa)h|CT-M+IUfS63fLdO!AzNmj273VHS)V>h}TEEaQ-(<*SSw#UJ!7w8;bMxrvY+D-()0R;sgJ4)h1O~*y%G!FY z!7KM8kF|%}xo+c)=FOLGrVj|Utaf;%zHKULVCj!|>oD!e`!jPr;X0R+)2OcOg$stp zmTM!N*la1spLA-zq4k%YLO3{!dyWHovFGG;@3R!`!G9Wz$XiXiR~x(*m zjTHaFI^<+8SRKzuiFm!GeTwCXt_b%iek!8I^VMi+u=`1dlDdgpo~-cj8M+}g8`qR% zLVrO~H#~bHno|JpS(=W5E%XN00n5HE*dTa(^<9BX*itt`J_Q4FXmWw}8X2Gnw)tSY`jb=SX+jVrDe8t|U z+XHz%x7R30NdC4{4GE2wyvfomR`LY(^Sp2F%PvoEMPoGRtA~FR9NxnxsIhYBe!LwW zof>$%=BJ+{tJmSxGkGmRpFHLmrgOx{rQ(mhm*u$raqL7p%6KyL)kDE}#*Me+KDayW zs~UZmtR_2HlM#>P)qeL6H2x+SoxPsHOk#CkAU{>r?XE|_xIRd!{1`6}h zuidFO7!oGPGzBTCDiM%NShuW#>6?NBy@6fj_U4C!y>M}lFl~Khb*qIkt|s`-7O#cP zMl%UicPe=JG)7lUzk3$G*es8HGCuKaekGaf6$>+Sv0g1(5@ZEnSR{qepDy}zrDV?E zze>G%>#1H;S+cyjEz&p@XVMS zJrw{&^H{0Dkh(dw^zxisp;uT%(b2m7$K$kOgBsb6)?(bV3>;4W(agDRre1gn6=Sti ztxea)rePz(vmI8UMaa6f0l?YREbc-Qb69?cr|3N-9r9#ZfH7!afS9Z#qT|-qv2B7`& z=7x|1m+yA8HGXyb7Sw9)eYbi$H5ySmKgf4)1deSr&$1L65InloOt;&kFrpJ550owbqlCT}CLP*l94k(Tj~@FSFpl(Z$r=~gz8M_% zxy!lK?ZMsD!MsU061siXhOm)?!8fN{!S;jnE1??wfHU+%)l)h@Szdd^*Dg))&Kj$+ zqOj)E6ci}cl>1)2WuB-cjbwOBM4{fLBX4qEwTcNfB&(4+AIFG0)w?!Kl z!&kRCvx|p8LiAoy*(a0Xl}C0W4jcBRkDnJ=sb99KU~PRW|K#Zvanr9DR1!~H9cY%cabnj3K8OwIN+)J!&$DkdpmF&=lb5HMC{4+ zvlD9dWQ(sp%#(l*v_>o-T!Tb^`WN}MnK)JQCxz|4XxKz~R(R0s5+@QGh5=@W9JdUwRamn`*D+X$h%^wcwm`1;es;5rQ%2kuEou% zf=B>TA!eOQ5F`C2J6Q6Q>)B z7pJ2>^nDDq)ar!)Q0;`nh5xrc#7xf15~W+j;*25s|AJFH*`huCnG<=OkyeRe%$+Je zTJ0nKlj*F!WxOGf_bG{?Qbp=~lSRqQcpI`IlrPBy?MrVw8_Kb%!R!9~ImcE>Nh$G8 z-)@Z-{!ZA9WwV)K^iL2W<}pjYQ^hh!lFatU10p>PiDn9&oq=yw<@U6Aw3F92e&=F5 zVpUX3OON9&wvlr>tP2mv+&BxVGc`AlOsiuzA6{ICr!tqCB*Q8MzI zg1_Aq|7lV%ppFfRk_7mF|Gt_XZ*AZaLR|dsb0mi_@LEu~1szRLLGjui_R$PD2n(80 zXN_mLEfe>@4*u^S4=1l*ogdMlW##pz3ch_RmPaQjs8bRl0A1+$ECoywC$m9=Zizw@ z-R9)?EnUA~0oB#~o^SA>&_pQQ`*?fer3rK)EM5ZlW67H}Mb9_baZ z+X!e4;Ak`j(|uOG9|SO1LP7$a5aokpkstzcau%UzjO}NRi>;1J?J_uV?55P%RL~VF z1E|;4L5IcmMEP3R2YN0pE>d2bki^YLnPjc-+v`1_w>y(hgp}p0Yij{I8QIF=#9{6= z-UGbG(MS*l-VDkCcT{=48S2P#@x)1l8Y7E)&0j>~R?U$uH}5Nv_P*GlcLkF5CZ16}G$MkW*M^7@myATvWiy~3lA$d1dYI34lD5A; z2%9|gM|?bC>+o7G-1@*=oLs(?#?8T0$+F@>|rPx1_#Xq4cR=ElZ;3sknP z1F%eyVJ)4mvxB9~q;Kl^#%fZLWJc*o0-~m?tE;%kn?$6#51&@p&ry(T6zivE8|Te= zUls-jqi#l!@MxEtN9?=a+k^`;BW`%CM+xl2Zp514XY7ObMTjJ$D6rV(TRNm?J@$l> zAUnU(&$`>%_7_?l9Wj+Iyr@HTWk=zf+Urs2`vCO>y|2#tQuyA)B^WUUpAfSfzEA6g zKkK%|E9e3XwfVGZ^Mz@^Y5uEXV=Zx9RBW<5^?X=BV7u*9W#&Kt8dSMsGY}H}u}h)C zYJ_pP%4Wh(U>C(DfT#q`J*&Z}<)KhA0+%NP&)<}-wC>>WXh1}YTuc^>pf&aWr!efN zPoL(|6c4{F5*;?eZB;%)9xXN~&b`8F+;D;*u*f@8RXSC6g}KNg2|C}c0@;KD{1Wl- z@CtB>zR+{wabg7EYchriN5^GyT^#SukOr5$r+QRiB_}5bCsS6BZB z+=_GcsZMaz#;yFdLjjIX#7O?D*K*uaZFD`LgHN3LVzYb81C%HYpi~;-sF=N)h&0Y) ziOcSIrjs~1@};K1f`S4ik!u2$5QL@@a(Hz%*@%R?8TGVZYASht`9Q*qc*Enkarl`{ z3_Z1QvrhRt+_{H?fnoQDa8;zi0zK>g^^g&enphZ&WjqmIB;X{@7k`W0YM22`>A1<$ z0`=2amXi5-!{JQQ0GwcK@@Da7#Q#X%tiX108807;d0?`4$R=-*62Z%WR#lhNU4CZ-#G6tj% zC7Hy}*o1_3ryoE8f^}(=>bNNRje>hGtKOi|J36kaimw(${qb;ih$bO z5;8p#7S>lX&muFU2x!X&WqDLeGO@SRm&_GRj4B}UBe>`0Y$*&}t<>v0b z`SgtpZ}}NR>nm1HaqiZUx2e%TN4Db%5Jb}Q{i%W-6y9NCi|tP6>hq|Aswuy7mE^o% zqgqF?Xzz#}2A==iSDyQBov6QCSw$93%fuu%`R&2bw(RugYoOV*IO=@+V?y1Lffa zq<6AwWV>?)XxP8SnU(9Z-9j@wr!vtMP^2^Qo$NSe!ndDmi054~TWXK6pRMca>WYb^ z6uQn$_l`Yf#kau(9L!gAzT5>p$OM8WTVy7f8z}qxZch{De#yzmXq6fVR;agvegy0ufqt3JC)*zV@gt*<*qZ>3=N_k+_Kv69 zS_gyaJ~zY>i?F+Sl?cK#I@#af2c2BkftJM|Q~P4&)yo(Idp%S-tHG?mitqgEgV`Nf zFTy?-*3`M5bPo<500k1N3$6FQ)}EBH4&Yd}rp{PZ;26{U;cRpQ8twe@a!p7Pw+%7P zqMHIivKTMPOiwrP^t@W?h$8GJFli1zQ%K=;adg}mEhH^tSr)8!Kf%`^A0lIx{!HJ= z2?(qHAr=X@^(fF<3fp;%P_LWwH85RJeZ^!>v#CnkJhEp_pCy8^_4V}!2M6EoPK)&b zz^9?6j()w+9b%?Yq>GT$Z3K#McXwAVf%$wXN(3JtzplRipg~4PhKNGob5728>#;~Z z-FQT(Bj))>$m{R6Qwbwa9&aaey?*}uIf!Klq0knAckb@qmpfIrY4W&jq0=l^A0bRl zBO@mO-8IDltv4S^E`{LH2)J&)1Gl%mZ3BS}iO~#&a+tK2l+!7EBp@ZtSN=l8?|yx8 z@_}B-*b7LBT=X17$+9qBsn?}z#ax|RxokWm4#jiPYaj+CB_*}Av_x*svXhf1092OT z0L0l?T0-)o?D(o%w|levE1*hFPfv9! zZJKymnwu#hyyE86pO`4xLC=QWjZ(U^fB7-<_A{5wVNf9^m<3#)_yLm~Y#^(Icg{2i zA`WNdE>~0R_a!J|n)hUJmoo4~>V2+HUa9Ffcs_f(tD68P6LPPxoB0vqkNbXnVuD=Q zlgJvAro+d8N$l)bo!gthAvoYid!`3l$@Sz3j+sv)lzXHVLh?`IpK5}>U_O?Eaq7X7J#p%BW@ICRg7j8RQfro=+%+k)0 z$EVWpxPV^}X=|()2OS+>9~SGm7Bi3hPj|-c9ko^2&(YD-OK=1Q1xYLQr;9|jTaOjJ zkd!nQ%OWQc_ihp};Q^)lNMtAG`$8)ycrf)N1isEPnF4}HkdM(ynL|L`B9r8a!szJe z7Q-l!jJLGj$p_u{Je_!r9)p5AL)pQ>%Nuk!e)|y?5n?@0=NkHLTVBP}MA<&eQ$!Pi za1d)XXzme@-FuGz2>=h6)M7+5C*|PJGBL7%?-7Qm5hq(?QoK#gSy-gJ5IR5Ol5JE_ z=^m#xb#=}g_=kxiw^tv?+myTm=nGO9p_%15IZqa!zIk(W2L&h#_)f4)Bz5DO1Uo)EvqKSTr*_3JdG#?6g?xPeorTu17{iEtf`}u6ct>j4J-H^0%*i zUr&$q#qmZSjaiF3HU`E^1_fln={^jdBg3=(1v@*t=9cY>3T|s_>jdOfVJ{Lq0v)A%IMoM;6<0`es!%ux>F&DSV2j_8F)e|?9^?5s-gnq9g8-JGY_1!R`Tb`Z1B1rb18JR)Ie1^cevN~JL)O>bt;%4}PEGBX z+AL2?#myZ@&XT~v4n_Ey1(Y9N8?xzEzsG^uw-yoOr_pRbHHEYfN-BrA@0t52&O-M{!Buk3ypA>gu8~tVyWx0vMO= zfZgAG9}ci@dwUybRvTMeV3}p9@H2&+s-h7g4-7fWs;a6~jZI7>z?)C*_=ozGklq>P zv&~s?ZS5rxNjV*+()1||G!`8{46EH6q@~9jeMEZtMFBQmUtMWe+SJ(12*9A39K!0E z-=Yy`zWM5OcRZ?$`a2qUS0Hh9_4I)Maa(Lfb42BgDf&6W_~DLQ^8ze8+uJ3{kYy;L z8|b=)oHaTi_P8MvbnTs*(xLc|xBsSXx(|B`=zWHiDVrAQ+g&{$GP{#w|7ykSZ$&IBT=2e0zw z|2>D^zr*>3{vX$L{GKRjfeccwd8_!YJB)?Q-t;cFg*}RTEW-NCd8r-iE0x>bM+YkJlkUK>q&LrD(hsz>vho8j*5x9pTw;Hj? z3ww)x;7tr4f+NuEH#ax8r!=yU?q)VXgP;#y3?%UF^&jBkwX5u|H*(Y4TU$#`X`~{Z z*MHsL`ImOV%>wT={aNM%$Pt#Uvw;2ugVN8uVwyrjLz|tQ1wvF#R@NN|^Dhc1Acfx9 z-EA=K!gm&30ji=I0TP8fL%Sc#pzxPg(%s3yBT?aoDtzKE1+hsYn}M+7VnBI$d47Jr z`1xy(zTRHf?eY7leV?BF?&v^m7Uv9XKR!MN4ZC7ZO(mEj?B%{UTkp6FCU<9N2N=;q z;H-fVP)K`z4l48!tFEZclUXhjKD+5WmF$4T6^j2_UodVSt6~0k`;__i)73G_46Lkn z<0VGLZycSRCadhzvof~j+3~{te?8^mg02a>A46`{L(0l=z(#87+u4{;L<9u1c2DOV zzIXrCP}(ZU(CeGay)*rpYDfS20Kp^#Ks6I%W7U_)LrgC+6^@TLUYfeKx3{m0IL!b2 z^ocC66E6L0veK4G_@I11SYrIi|2o_KH*elhX^sDIVd7E&YT%1vD&ujD*X5lvCkW&n zv~RqA*ir9!?sR)|4T;Rk&L*UW+5-7y`TNTvbZ`hTw4>a4&_8YWD>N(FqBR5$BtH%v zAig8vv1*l%OGq%cwe{K>Wf@jV7q+#q02BF1qI= za`N)wp`oe_JG^Gy1Ztd|oSVa6TOv8ZYQsoLnf|?fAcOy1S|OhsGBmY9?e73aRH>ru_09IL9>2q_QTb-+@d?w=h zlk0ETVEBl@U8Nil@I2cG0*#EEe4^i3#-C?X^4reR{D@P>=P^`yTmxDmF1Y(w*A#?gQ6&4nfa$A%* zt;nWg#Qal6+)%tpBw}FJCa0!o`dWQxXlPs*;IXxVAddYTVDd1HIK>@IbC3ynsPO+n zrN0e}I1M^Cp2|h_j~^7z-ziTrN(dzW3kn4Qr;d@c&Z0Zu-rnBezM1L7<*Y>OzNuEe z{L9|}AXCwznxNmDYiu-450U@OVM;v{D6d8b8R&2Q3tHP9{<-?`)8##A3?c*_8L-XM zt3AyRe;tS1;WUb$d@DeqtOsIri!jcZ_Fs|Tcg6oXeCY{Jc=u@p6?B8ulp4^GC1$ep zTM%qwBukqBhy{=hPC_CfIQq}w|2iL@iZ25>RIkDFJioXhw$iEtq?oB`X*a+@$z1Zy zc^>UANXTUWoT{?VQE;26dGp#`pOcF#Cp8rAYtP~<4_Bjy46i4R(3^}Ew; z;)YoODDf3jlamwz&eB7j)jqf0Jqav1g>GN9zkdr3mUJ6Bg%n-86Hb3PMgW(8h= zH`KqWB|mpN1j5M&B(M?^EueFJ&K80pFv)PD!BUeBQa(FTQQ#dn2eVNxE-xayIOu3;uI z{s|`w-BBsu?FVG-U?cNCV(@!Hz%7S9SOD_MZ}#lSz{99W(IJ16f9a=kS5LsiZQ{ z&=@5G@&Rm&!!7#MeuiBbS!fmy^0hOsB8{Ff#rYJG@VXtZ$GAhOe)`S`pUwM&0yarq zTV7^>PY@S{zrm}V&s%m*f*5J*;6dhor2+1spom0oMebOb;j^C&pK?pZFlK`Lps(DU zXLJ2-)DjdyA*4;!-QPOT`YR*`5(J*U8Y1G1*;O5)6E_F@Rjc{P6R?J88$sf`hY|?4 zke~ouF?@a#e#KR#c!!SeA9QtfMbO=6-l|+>H`AP02rMW1$R)fv@&rUMzE==0Ls%{ykgcm8wcKBAT%59ct!ib07wj`nQ13 z@(m^t%xGiIE-r!PxS0%UDG*S*)KC4DxHviYod5)|XjkAyE}F;SGad@peMo@}LhbH* z#m2_AYGsmv?KfWrG$@ttWW5I;qjV%LIs%94x7g5~xlpHbzdS7j%?esd#phu0g@Z#0 zhz|t=h)^e@qqjJqw5f!Oj=B26T9gf-_L_ z1suqC#^eLVZxT((8&bYrW6hyhS01nr_80^n@}`*ZCxPd+B!Q@6)1aG{9TUhx3fO0m z@5n>^CDe$xSf`4WfdQfl=2XOKIpnhhnlC?-fPgk6oACkQj!bgvnVfw(W3lM`eCrQ% z3c$jUk&($NNZi{{S5qU%!rAaWyz9mFrwzNR8HfPNJRmfH?=DeQ?I!t_6pi2xlK)&w zU_s5t$9FY0I-2k-WaJeHkz}M&6@*6Qvh*oK%Ow70aSfDY2*+S=GMA8$kgbi)_yY$= z$ETSQR^nLy*b*R~EvPf;he{Pw1vnl*6A*|EmnHsJWV#l(BsQmnPz6Yjj*fyLgf?5% z|1UN6h>qI%k%9v4d)%*J&ys*xUH%{DH-&N>UXxpAP5;BlEDCV7e?AifIph1ky-7W{ zIL-gq5mtG%`J)$;3iE($i-fvN@8!a@(A=sXJ1LE-r@4`IpL{ z2U0v+DhhVVKue2^Mgrnlm7D0=z(-It&x5u{fR3d5D6>Jt9*ZXyCjx%a567f}`^AFi zZ)GHrRnov$F`!>37lBa;Fl4*>u0Xd5&9U&AH~ht~16M=eP`2SCv0|hVBd&7S>rs1=-tJSf_g6 z|Cb0(!QY68?s~$1xSVckJDJ+rJ+^va=7c5xz~+I2vC{(-v&my-3nwQ#M^QdLJ1b)w zCueJ`%ci#0E+5`A!7U6QYHBUyA`X`z%2DQ}J`I{~7 zH^=%aOglSJ2J0v-cG>sut(c#tpf$~oD~k-av(E7N@a{-BTaUaT?5Zzmc(5Y5M$fRN z^qZa@FH?60qAY_p*C&B;Wzi1;xa-TVx9m{IGTdQIE8JC5D9ifh(C~DCbiRA7e8U;( zy72m&Vhg2memc5<$FU6A*6#L0ta}6TA<^MmnO*|nP`HEBrw>V)Ev<54tgYhG_o74A z&W5?2ZVTZ&m20!;T}V_RFi?Fd>So=A6)ZyP35uIOBc}smpMBFut7lzZX&|I0?PUxp z9=LaV#EISR?L)=8EFx*&cyVNoepf^j#Qca$Nak17u$3)*jD@vjo3ZvZ{&m*U7ga+` z@ms7Ld?=;(7iD+m4WfBjLdO|3MfP;;d?E#7Ik{3F=_U>r_+Hzu*(kcP&wGXCmct_@ zg509G}6x6_OH#&BQn2=c+X4RqPgZs)VY3f682<43y|yHGA?d z>x)N;2hL^&&ed*43y+Ujjv8IjCNFJYqxb>`cNvpoc$*(IQ!5ulY=p0meO-8Tim~Cr z?Nv=z{PIdytj(3WjAV`YS_(anRRz=A$#oqv#s)PJucr(4u`bV~N(-6%`r;qjU%!60 zcy|@2gmqS_Z^a%W_X(Dwtdypk!Q%7Np2QECI@tm@WeFd$-lB{7F1w;1ZO6jSFhH@C zW}vzfc_(spmLczXt9@Qo>!mzLgKq@V717^2FYO;KZahovSuDC$rf6n%Jk{s9{&@T0 zM$h8%LF1K;o(|cYWVljfxG^}%1Xl?BnBjlK*oye@H&SFGr~cP(q~Ef$@$!1L1QZy0 zU9%s`CwyENe*U`g%H(0o+NDU{-|3#8EVaITPpKU5i~i~tQ}yc__wF*~Ob|J)ltO6T zy*Q6y%X5s{RqqUW19=5lB7(dp7tnEfq9o?Z$P21zE;G^&4(q0uc)F8{b<52n>_XnZ zkZD=GJSD!Io*%p7w^kLE!TXsXp7Ij;RLP;xw_5hZm7*@ZR6*k|&Kbc4;<4E9f$WPR z{$A%VQ(jP^Akomd`u(a5!`lZ{L%)P&s*T~LZoe=saGxD5eEGo0iS(~)G_qfEAnxR< zP{IX6Pqq9|LqBfBN|6P;{6VHI&ybu@;W;3oTHPyxqZpLNjD|Jp!c#yJ2iWBC5;3vojQB!OSF@SZ}4 zpMyQoduK`>qMO6SWtryo^DXQ4+HJdgJnv(OEiEl6DdP;i$2$Acu354mvtNjY{&G}S zSO1|H*FdxIOIrb1;*{oHvQ@w(nOZHa%yhd(~hkEO3b7T37(PE}+-*+jw zsxq9Oe{)JbuGKl#e{L>WG_e&N5|dZwv*Tl?M!!9&$>wg{YCtcUvG4cmZFidaR$cMy zkKgu_i<#b@-ki~!4Gu?_lj%d{KQHIZM&U+8B*kY*-Nw<94p^W zzP+UF?Ygq}^B1eLG5t8Zsa`=}!=7-mea^V^S|Q`ggoT{K#kVhVFF#n~E$rVtaL~s) zOZn|GV))hYqwxw3Skn0(o$yB8w~L4Qr>3r2(?y<9K^n2+5z)Ldc;_N38=tCcZ)-dC z^5qa}aw&Fnw0iv;cU?`5kVXGXJL9}3PcnavFooWGwLGT4(aM{dey@fg(Pg_p>!s{& zqCZIouV-hmf0M0lS8Hyj$BhW#daH3;dF)?)MMuu{@89|+X|AkVyKcRq@r)nvPw*1R z2-8rfR8DQN@!dLn)iz3Vc}Bgbc%te!^Zro4Yr#kx)pY98+wA@3?`&SjkWO$K-RT-G ze(SpX_Itg{!b+RWk}76d=U`c}U2MLcaWAb9M1TJ}A>3H7n^u-loeZ;D2T9s_ReBpYZ3!v4Z1iz|7@dwPmNCISS=G)cL(#|UNM#v58or~fn@gVi2)4Gka_E zrFb^s0(~jUDec)QNuwXzaYc1I!z~w)jS2qpcI7{p7JMXDIJjqRlALr`JH{t#^vX4O z8WpFkbIoWnA{txRvsGI8be<17@A0$!C~A<6;mdfq!MDwNwrZ7UqISRKw}MdERQLrI ztypo`vpGtqeX`M<5_OA!4ur% z^SdgIB%#k=B?c+{=DJ@0tGxX^j}Pezz6vr3zry6~gombUIahqLB067#y{V)A#-T~` z&s4T!ACmTJb{s8ZOUtUq8|n66b1SVUuy@l?g@%p2t*sxMn+13Zln);bn z)LVrCqAJK29mnlRWBToz^<(-8{TEt$cnj$|ZKb%EWASy*)Z$7Z$HRp~-=1&o6_;tL z$_W)52%{yszL~HZe1ki_MBqQ>5jBh)`;)@3)N_z8<2{8%Ptg+!xlr zW;$!O1efZb>r0XIupO}-Z<|lLkEsdacTwHid z;8S9{s}zK8ax0TKCEVvOA4sII%TSK9IaxONeVCzc%=2pNorfM200jTBK1g?iNyuDH?ky@M*%^B-X9siK8=c0R6859yYF4C5ai~6qaq(6 zIm%&+CKK0hVQ0H^X}GzWyrXGd1f49hq07z9&BP>m?_SkqeRs`Qnw5r)&1iPSv;GT+ zgFIzX)mv*k6Li>6#dCszOPSMs@%(uzw~hHZ7bO_NnxcWQeP`~G)4E!6tVx+1*| z@n=?Bbl0N8?)n#*;14Ai@0FL+zCnc~^({1nJhP*|z|yrMy0X%@AiiMWlAdrhGa0rg zLLSi_?0vz&RISK?C>&R!dGO18qhNUnF_S|w_tJXrN2vZA7d;7RVu}5j*&_wfT}J@Q zk`$Ylt{tgVyQNUmy@&E0clGy#bu-=`+Y+$$_X+1ka z7XSM@3^jT{V6LY1?0m@tpZ&wY}-DPj5P-m=?^<;sALW-E>`+W$fk6 zr!?Ow1^w-wwtXMS4!lMzTj#RW-joE&4;9ze_9`E)IWXogjf{x{QQ&_k>`Hq{X3lT)h6uIOlLP+H1c^kR;gZ<(O zQ6-b1l-znS-;?sKJL&i4X5sCe_k%ggI`dnP(?(xH3p>myyw-Z- z>FL?h(gGK>ev4uh6J%$9DH}?mO@5BYm?DDiT1yze1A8*cYO3L#)|>mQ;a4kXncvxe z?V!8%DDyt-(mRje(Z{PZGEUmHPCw32a~-UY%D%5&IM{oWtF>86evb(#RXyWcG%}Ym<3U_Qa@KbGOMAXp?+ovfkY9kFZ5+ZIen>h zZai4;Zh_6@RA=Vk__nm${k=Wb-WQ8)p_DN} z=UEyp23}lv(TzoVUYt|+EzdfAfz+u|2JiklS6h1e)PvoPDw{8KTV29+;w2@$4wwVvR}4&aT7VssZgv_9`riO z(LJOE0y4&+3>6xxfV3-$QXx)%x7eSBV{o+jQB8p@>>QV7h#?{%I5@i{<%)T9y7*({ z;IENlH67L3>rLB9zU6;3zcGSg(9XdF2aqtbm@}w&mjQ~ z|BW4pL^d0i$k_*)npCg-Csj5R!-LM!Kl3CWW=0|hWf_yR_yz_B7U|@g{qSN4CycK5 zJr_&5YxAivC6op|T4{N1P|RiVMy+{Yx`LRnaCL2MSrFaDtKsxQBqcoN-rFyy5SlRbaV`GREa&q#A2r=L22wH)bj~^+WNAEItD!DPzV<9o6(3IJn zgYDMgXiJt%aIWg}`)}@Fqq%1nX7!?>zL^Umzf;y0{X~)Zcp<~bjE`HZFeK?-vB3jU zCmtaBlkYqVKZH_V98D2zx%j$g*~TJ19I7SrJI4jpxTu(k&d$?ZO_$&C=+_R(vLhB* zd#9WI$CL%jQM>Ek9^PlinXr73J`>`5xIJO(bFg;0PNmFxLU8WhD^2v=S3G}6`7&$C zEPPWj=bxI-wzH%ORIV!G3pT%hA9hPXr_P0U0=N3yP?lNmvxQ;ia_fn=eyaS$lv@vC z>4j`~v`d;~4|mC&(iyw>p~O333ZGx#Hoz?yi$*USOKp+C(24uqX0WLTH-sW z$!KXqSjEJ|J~7;%{`oWPjdqO#hb1*+c&=CeXinjW;>M%*Z%8(mCeH0V78iSpP$fFiA;lylByORc6J-ySDc^DU>yww3mHCO5V12G}G(RHHIn2yt78JCg z{H;lpNQWk!gnqqpGOy<#9%Dr>l9B~r1 zUd-q&Tu4dt4{63~ZtFF6GpFj3Gjwj>xdXX&afjuM6Q1u4vTx?O1>6~uJ_c#UsnDEh zRs>QHN*{F7SY4Z~D2aUrnSOzTgV3?^NmG=>*4QIr+KH}or$hEp>hD@#SDX#rxhH(t zoWY48GhY{bytB&Uk}L6bi0S0}ud|@lg|p=%S`ue@Bw1NsXqN&JH9Jjuo=S^#Gl&?V zm9$UzedO%ytRVOETd9IufES=getVzrTDNMs;^D`DYXt9%8>??(_A2Y5-1W6MW+V{; z169alMbJi#;xW@0|| zl#Lfye`7AkX=+Pcx%0Am}f&} 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 nf>AY!eLuiv5z_JeVeY&&D|%`$|15` diff --git a/docs/images/StorageParticipantSavingSequenceDiagram.png b/docs/images/StorageParticipantSavingSequenceDiagram.png deleted file mode 100644 index ce3fd2f85bbc4eee3d46850fc8b1301a305d17e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26293 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 XFQUWGvVHOY$B<0dZ>C?S*#-X(uDV3X diff --git a/docs/images/StorageSavingSequenceDiagram.png b/docs/images/StorageSavingSequenceDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..270e5d6f0a03f943fbf699ae09f6f33d5c72e3b9 GIT binary patch literal 31751 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 Pd)78h{Vf^lmVW;Oi Date: Tue, 5 Nov 2024 07:46:12 +0800 Subject: [PATCH 427/619] Add manual testing for all other commands (except edit) --- docs/DeveloperGuide.md | 151 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 136 insertions(+), 15 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index f47aee9ddb..320a758578 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -666,18 +666,18 @@ The user is able to organise and manage his events more quickly and efficiently 1. Prerequisite: An event with the name `Event 1` is not present in the list. List all `Event`s with `list` after each test case. - 2. Test case: `add -e Event 1 -t 2024-10-10 -v Venue 1 -u HIGH` + 2. Test case: `add -e Event 1 -t 2024-10-10 -v Venue 1 -u HIGH` Expected: No `Event` is added. A date-time format error message is shown. - 3. Test case: `add -e Event 1 -t 2024-10-10 18:00 -v Venue 1 -u top` + 3. Test case: `add -e Event 1 -t 2024-10-10 18:00 -v Venue 1 -u top` Expected: No `Event` is added. An error message is shown. 2. Adding a duplicate `Event` to the `Event` list - 1. Prerequisite: An event with the name `Event 1` is present in the list. + 1. Prerequisite: An event with the name `Event 1` is present in the list. List all `Event`s with `list` after each test case. - 2. Test case: `add -e Event 1 -t 2024-10-10 18:00 -v Venue 1 -u HIGH` + 2. Test case: `add -e Event 1 -t 2024-10-10 18:00 -v Venue 1 -u HIGH` Expected: No `Event` is added. A duplicate entry error message is shown. ### Adding a participant @@ -688,7 +688,7 @@ The user is able to organise and manage his events more quickly and efficiently A `Participant` with the name `Participant 1` is present in `Event 1`'s `Participant` list. List all `Participant`s with `view -e Event 1 -y participant` after each test case. - 2. Test case: `add -p Participant 1 -n 9212 8765 -email part@gmail.com -e Event 1`. + 2. Test case: `add -p Participant 1 -n 9212 8765 -email part@gmail.com -e Event 1`. Expected: No `Participant` is added. A duplicate entry error message is shown. ### Adding an item @@ -699,7 +699,7 @@ The user is able to organise and manage his events more quickly and efficiently A `Item` with the name `Item 1` is present in `Event 1`'s `Item` list. List all `Item`s with `view -e Event 1 -y item` after each test case. - 2. Test case: `add -p Item -e Event 1`. + 2. Test case: `add -p Item -e Event 1`. Expected: No `Item` is added. A duplicate entry error message is shown. ### Removing an event @@ -710,10 +710,10 @@ The user is able to organise and manage his events more quickly and efficiently An event with the name `Event 2` is not present in the list. List all `Event`s with `list` after each test case. - 2. Test case: `remove -e Event 1` + 2. Test case: `remove -e Event 1` Expected: The `Event` with name `Event 1` is removed. A success message is shown. - 3. Test case: `remove -e Event 2` + 3. Test case: `remove -e Event 2` Expected: No `Event` is removed. An error message is shown. ### Removing a participant @@ -725,10 +725,10 @@ The user is able to organise and manage his events more quickly and efficiently A `Participant` with the name `Participant 2` is not present in `Event 1`'s `Participant` list. List all `Participant`s with `view -e Event 1 -y participant` after each test case. - 2. Test case: `remove -p Participant 1 -e Event 1` + 2. Test case: `remove -p Participant 1 -e Event 1` Expected: The `Participant` with name `Participant 1` is removed from `Event 1`'s `Participant` list. A success message is shown. - 3. Test case: `remove -p Participant 2 -e Event 1` + 3. Test case: `remove -p Participant 2 -e Event 1` Expected: No `Participant` is removed. An error message is shown. 2. Removing a `Participant` from an invalid `Event` @@ -736,7 +736,7 @@ The user is able to organise and manage his events more quickly and efficiently 1. Prerequisite: An event with the name `Event 1` is not present in the list. List all `Participant`s with `view -e Event 1 -y participant` after each test case. - 2. Test case: `remove -p Participant 1 -e Event 1` + 2. Test case: `remove -p Participant 1 -e Event 1` Expected: No `Participant` is removed. An error message is shown. ### Removing an item @@ -748,10 +748,10 @@ The user is able to organise and manage his events more quickly and efficiently A `Item` with the name `Item 2` is not present in `Event 1`'s `Item` list. List all `Item`s with `view -e Event 1 -y item` after each test case. - 2. Test case: `remove -p Participant 1 -e Event 1` + 2. Test case: `remove -m Item 1 -e Event 1` Expected: The `Participant` with name `Participant 1` is removed from `Event 1`'s `Participant` list. A success message is shown. - 3. Test case: `remove -p Item 2 -e Event 1` + 3. Test case: `remove -m Item 2 -e Event 1` Expected: No `Item` is removed. An error message is shown. 2. Removing a `Item` from an invalid `Event` @@ -759,5 +759,126 @@ The user is able to organise and manage his events more quickly and efficiently 1. Prerequisite: An event with the name `Event 1` is not present in the list. List all `Item`s with `view -e Event 1 -y item` after each test case. - 2. Test case: `remove -p Item 1 -e Event 1` - Expected: No `Item` is removed. An error message is shown. \ No newline at end of file + 2. Test case: `remove -m Item 1 -e Event 1` + Expected: No `Item` is removed. An error message is shown. + +### Viewing an event + +1. Viewing the `Participant`/`Item` list of an `Event` + + 1. Prerequisite: An event with the name `Event 1` is present in the list. + + 2. Test case: `view -e Event 1 -y person` + Expected: An error message is shown. + +### Marking an event as done + +1. Marking an invalid `Event` as done + + 1. Prerequisite: An event with the name `Event 1` is not present in the list. + List all `Event`s with `list` after each test case. + + 2. Test case: `mark -e Event 1 -s done` + Expected: No `Event` is marked. An error message is shown. + +### Marking a participant as present + +1. Marking an `Participant` from an `Event` + + 1. Prerequisite: An event with the name `Event 1` is present in the list. + A `Participant` with the name `Participant 1` is present in `Event 1`'s `Participant` list. + A `Participant` with the name `Participant 2` is not present in `Event 1`'s `Participant` list. + List all `Participant`s with `view -e Event 1 -y participant` after each test case. + + 2. Test case: `mark -p Participant 1 -e Event 1 -s present` + Expected: The `Participant` with name `Participant 1` is marked as present. A success message is shown. + + 3. Test case: `mark -p Participant 1 -e Event 1 -s done` + Expected: No `Participant` is marked. An invalid status error message is shown. + + 4. Test case: `mark -p Participant 2 -e Event 1 -s present` + Expected: No `Participant` is marked. An error message is shown. + +2. Marking a `Participant` from an invalid `Event` + + 1. Prerequisite: An event with the name `Event 1` is not present in the list. + List all `Participant`s with `view -e Event 1 -y participant` after each test case. + + 2. Test case: `mark -p Participant 1 -e Event 1 -s present` + Expected: No `Participant` is marked. An error message is shown. + +### Marking an item as accounted for + +1. Marking an `Item` from an `Event` + + 1. Prerequisite: An event with the name `Event 1` is present in the list. + A `Item` with the name `Item 1` is present in `Event 1`'s `Item` list. + A `Item` with the name `Item 2` is not present in `Event 1`'s `Item` list. + List all `Item`s with `view -e Event 1 -y item` after each test case. + + 2. Test case: `mark -m Item 1 -e Event 1 -s accounted` + Expected: The `Item` with name `Item 1` is marked as accounted for. A success message is shown. + + 2. Test case: `mark -m Item 1 -e Event 1 -s done` + Expected: No `Item` is marked. An invalid status error message is shown. + + 3. Test case: `mark -m Item 2 -e Event 1 -s accounted` + Expected: No `Item` is marked. An error message is shown. + +2. Marking an `Item` from an invalid `Event` + + 1. Prerequisite: An event with the name `Event 1` is not present in the list. + List all `Item`s with `view -e Event 1 -y item` after each test case. + + 2. Test case: `mark -m Item 1 -e Event 1 -s accounted` + Expected: No `Item` is marked. An error message is shown. + +### Copying the participant list + +1. Copying a `Participant` list of size 0 + + 1. Prerequisite: Events with the names `Event 1` and `Event 2` are present in the list. + `Event 1` has no `Participant`s in its `Participant`s list. + + 2. Test case: `copy Event 1 > Event 2` + Expected: The `Participant` list in `Event 1` is not copied over to `Event 2`. An error message is shown. + +### Sorting the event list + +1. Sorting the `Event` list by name + + 1. Prerequisite: Events with the names `Doughnut making`, `Chocolate making` and `Bread making` are present in the `Event` list. + + 2. Test case: `sort -by name` + Expected: A list of `Event`s is shown, with `Bread making` coming before `Chocolate making`, and `Chocolate making` coming before `Doughnut making`. + +### Filtering the event list + +1. Filtering out `Event`s by name + + 1. Prerequisite: Events with the names `Knitting class` and `Crochet class` are present in the `Event` list. + + 2. Test case: `filter -e class` + Expected: A list of `Event`s, including `Knitting class` and `Crochet class`, is shown. + +### Finding a participant + +1. Finding `Participant`s in an invalid `Event` + + 1. Prerequisite: An event with the name `Event 1` is not present in the `Event` list. + + 2. Test case: `find -e Event 1 -p John` + Expected: No `Participant`s are listed. An error message is shown. + +### Saving and loading of data + +1. Loading from a corrupted data file + + 1. Prerequisite: Multiple `Event`s are present in the `Event` list. + + 2. Exit the program by entering `exit`. + + 3. Remove one field from one of the lines in the `data.csv` data file. + + 4. Run the program by opening a new terminal window and entering `java -jar manager.jar`. + The program would give a warning that a line cannot be loaded, and the `Event` represented by the line would not be present in the `Event`s list. From aa422fc2163d46cb9387f0eccc47b88affe15341 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 5 Nov 2024 08:03:28 +0800 Subject: [PATCH 428/619] Update manual testing for edit command --- docs/DeveloperGuide.md | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 320a758578..9d53c9ebe7 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -762,6 +762,38 @@ The user is able to organise and manage his events more quickly and efficiently 2. Test case: `remove -m Item 1 -e Event 1` Expected: No `Item` is removed. An error message is shown. +### Editing an event + +1. Editing an `Event` in the `Event` list. + + 1. Prerequisite: An event with name `Event 1` and venue `Function Room` is present in the list. + List all `Event`s with `list` after each test case. + + 2. Test case: `edit -e Event 1 -name Event 1 -t 2024-10-25 16:00 -v Billards Room -u HIGH` + Expected: The venue for `Event 1` is changed to `Billards Room`. A success message is shown. + +### Editing a participant + +1. Editing a `Participant` in an `Event` + + 1. Prerequisite: An event with the name `Event 1` is present in the list. + A `Participant` with the name `Jonathan` and number `97835365` is present in `Event 1`'s `Participant` list. + List all `Participant`s with `view -e Event 1 -y participant` after each test case. + + 2. Test case: `edit -p Jonathan -n 91823213 -email jona@gmail.com -e Event 1` + Expected: The number for `Jonathan` is changed to `91823213`. A success message is shown. + +### Editing an item + +1. Editing an `Item` in an `Event` + + 1. Prerequisite: An event with the name `Event 1` is present in the list. + A `Item` with the name `Toilet roll` is present in `Event 1`'s `Item` list. + List all `Item`s with `view -e Event 1 -y item` after each test case. + + 2. Test case: `edit Toilet roll > Kitchen towel -e Event 1` + Expected: `Toilet roll` is no longer present, and `Kitchen towel` is present, in the `Item`s list. A success message is shown. + ### Viewing an event 1. Viewing the `Participant`/`Item` list of an `Event` @@ -783,7 +815,7 @@ The user is able to organise and manage his events more quickly and efficiently ### Marking a participant as present -1. Marking an `Participant` from an `Event` +1. Marking an `Participant` in an `Event` 1. Prerequisite: An event with the name `Event 1` is present in the list. A `Participant` with the name `Participant 1` is present in `Event 1`'s `Participant` list. @@ -799,7 +831,7 @@ The user is able to organise and manage his events more quickly and efficiently 4. Test case: `mark -p Participant 2 -e Event 1 -s present` Expected: No `Participant` is marked. An error message is shown. -2. Marking a `Participant` from an invalid `Event` +2. Marking a `Participant` in an invalid `Event` 1. Prerequisite: An event with the name `Event 1` is not present in the list. List all `Participant`s with `view -e Event 1 -y participant` after each test case. @@ -809,7 +841,7 @@ The user is able to organise and manage his events more quickly and efficiently ### Marking an item as accounted for -1. Marking an `Item` from an `Event` +1. Marking an `Item` in an `Event` 1. Prerequisite: An event with the name `Event 1` is present in the list. A `Item` with the name `Item 1` is present in `Event 1`'s `Item` list. @@ -825,7 +857,7 @@ The user is able to organise and manage his events more quickly and efficiently 3. Test case: `mark -m Item 2 -e Event 1 -s accounted` Expected: No `Item` is marked. An error message is shown. -2. Marking an `Item` from an invalid `Event` +2. Marking an `Item` in an invalid `Event` 1. Prerequisite: An event with the name `Event 1` is not present in the list. List all `Item`s with `view -e Event 1 -y item` after each test case. From ac372664111d077a04987aef955f6376e9390102 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 5 Nov 2024 08:10:20 +0800 Subject: [PATCH 429/619] Link PPP to ABoutUs page --- docs/AboutUs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index a66547d92d..fe33d8ca2f 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -5,5 +5,5 @@ Display | Name | Github Profile | Portfolio ![](https://via.placeholder.com/100.png?text=Photo) | Liang Kuan Hsien | [Github](https://github.com/KuanHsienn) | [Portfolio](docs/team/johndoe.md) ![](https://via.placeholder.com/100.png?text=Photo) | Lim Tze Kang | [Github](https://github.com/LTK-1606) | [Portfolio](docs/team/johndoe.md) ![](https://via.placeholder.com/100.png?text=Photo) | Glenn Chew | [Github](https://github.com/glenn-chew) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Jeremy Goh | [Github](https://github.com/jemehgoh) | [Portfolio](docs/team/johndoe.md) +![](https://via.placeholder.com/100.png?text=Photo) | Jeremy Goh | [Github](https://github.com/jemehgoh) | [Portfolio](docs/team/jemehgoh.md) ![](https://via.placeholder.com/100.png?text=Photo) | FU Yixuan | [Github](https://github.com/MatchaRRR) | [Portfolio](docs/team/yixuan.md) From 7a447b4388a000929104b67c6b102fc87ec03ec0 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 5 Nov 2024 10:17:50 +0800 Subject: [PATCH 430/619] Update PPP --- docs/team/kuanhsienn.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/team/kuanhsienn.md b/docs/team/kuanhsienn.md index 0ac2de41d9..f24a81e9ab 100644 --- a/docs/team/kuanhsienn.md +++ b/docs/team/kuanhsienn.md @@ -35,10 +35,11 @@ The app is optimised for quick, command-based interactions, ideal for users who * **Documentation** * User Guide - * Added documentation for `sort` and `find` commands. - * Added documentation for storage features + * Added documentation for storage features (Pull request [#156](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/156)) * Developer Guide * Added design details for `add`, `remove` and `view` components - * Added implementation details for the `add`, `remove`, `view`, `copy`, `sort` and `find` feature (Pull requests [#128](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/128), [#142](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/142)) + * Added implementation details for the `add`, `remove`, `view`, `copy`, `sort` and `find` feature (Pull requests [#128](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/128), [#142](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/142)) + * Added documentation for storage features (Pull request [#156](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/156)) + * **Community** * PRs reviewed (with non-trivial review comments): [#119](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/119), [#130](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/130), [#149](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/149) From 509a27706a086208068efff4db945b0d8e589b8a Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 5 Nov 2024 10:23:10 +0800 Subject: [PATCH 431/619] Update PPP --- docs/team/ltk-1606.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/team/ltk-1606.md b/docs/team/ltk-1606.md index 1524562004..731ef2e5b7 100644 --- a/docs/team/ltk-1606.md +++ b/docs/team/ltk-1606.md @@ -48,6 +48,10 @@ EventManagerCLI is a desktop CLI application meant for managing small-scale even * **Code contributed**: [RepoSense link](https://nus-cs2113-ay2425s1.github.io/tp-dashboard/?search=LTK&sort=groupTitle&sortWithin=title&timeframe=commit&mergegroup=&groupSelect=groupByRepos&breakdown=true&checkedFileTypes=docs~functional-code~test-code~other&since=2024-09-20&tabOpen=true&tabType=authorship&tabAuthor=LTK-1606&tabRepo=AY2425S1-CS2113-W13-3%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=docs~functional-code~test-code&authorshipIsBinaryFileTypeChecked=false&authorshipIsIgnoredFilesChecked=false) +* **Project management**: + * Managed release `v1.0` (1 release) on GitHub + + * **Documentation** * User Guide * Added documentation for `copy`, `sort`, `filter` and `find` commands. (Pull request [#126](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/126)) @@ -57,6 +61,7 @@ EventManagerCLI is a desktop CLI application meant for managing small-scale even * **Community** + * PRs reviewed (with non-trivial review comments): [#156](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/156), [#158](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/158) * Helped teammate update PR to resolve merge conflicts and pass CI checks (Pull request [#118](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/118), [#127](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/127))
    From f7348390316b5e1bba990125d10d739fa70428ea Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 5 Nov 2024 10:25:55 +0800 Subject: [PATCH 432/619] Update page breaks --- docs/team/ltk-1606.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/team/ltk-1606.md b/docs/team/ltk-1606.md index 731ef2e5b7..213fc54933 100644 --- a/docs/team/ltk-1606.md +++ b/docs/team/ltk-1606.md @@ -22,7 +22,6 @@ EventManagerCLI is a desktop CLI application meant for managing small-scale even * Justification: This feature improves the product significantly as it allows the user to easily track a specific person's attendance or to find out his contact details. * Highlights: This feature required the creation of a new command class, new methods in existing classes and significant changes in other areas (like in the command parsing) to enable this feature. -
    * **New feature**: Added priority attribute to events. (Pull request [#110](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/110)) * What it does: allows the user to set the importance of their events. From d8794bc4cd8ff9cbf74943b23c8187fe01c127a5 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 5 Nov 2024 11:02:20 +0800 Subject: [PATCH 433/619] Fix UG and DG in line with PR comments --- docs/DeveloperGuide.md | 11 +++++++---- docs/UserGuide.md | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index b74cf87437..5d9ae84927 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -641,7 +641,7 @@ The user is able to organise and manage his events more quickly and efficiently ## Non-Functional Requirements * Should work for any **mainstream OS** (Windows, MacOS, Linux) as long as Java 17 is installed. -* Should be able to store data for up to 1000 `Event`s without any loss in performance. +* Should be able to store data for a large number of `Event`s without any loss in performance. * Should be able to execute any command within 1 second of receiving user input. * Should be able to load a corrupted save file without crashing. * Should be able to work in any directory that the `JAR` is copied to. @@ -667,13 +667,16 @@ The user is able to organise and manage his events more quickly and efficiently 1. Adding an `Event` to the `Event` list - 1. Prerequisite: An event with the name `Event 1` is not present in the list. + 1. Prerequisite: An event with the name `Event 1` is not present in the `Event` list. List all `Event`s with `list` after each test case. - 2. Test case: `add -e Event 1 -t 2024-10-10 -v Venue 1 -u HIGH` + 2. Test case: `add -e Event 1 -t 2024-10-10 -v Venue 1 -u high` + Expected: An `Event` with name `Event 1` is added to the `Event` list. A success message is shown. + + 3. Test case: `add -e Event 1 -t 2024-10-10 -v Venue 1 -u HIGH` Expected: No `Event` is added. A date-time format error message is shown. - 3. Test case: `add -e Event 1 -t 2024-10-10 18:00 -v Venue 1 -u top` + 4. Test case: `add -e Event 1 -t 2024-10-10 18:00 -v Venue 1 -u top` Expected: No `Event` is added. An error message is shown. 2. Adding a duplicate `Event` to the `Event` list diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 03a0484fad..5c98752cd8 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -73,6 +73,7 @@ Format: Remarks: * `TIME` must be entered in the format `yyyy-mm-dd HH:mm`. * `PRIORITY` must be either `HIGH`, `MEDIUM`, or `LOW`. + * The values entered for `PRIORITY` are case-insensitive. Examples: From 323fff33e935c35dcbe4cc0c7b646c74e8624c73 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 5 Nov 2024 11:09:25 +0800 Subject: [PATCH 434/619] Make summary fit in 2 pages --- docs/team/ltk-1606.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/team/ltk-1606.md b/docs/team/ltk-1606.md index 213fc54933..653affec0f 100644 --- a/docs/team/ltk-1606.md +++ b/docs/team/ltk-1606.md @@ -5,43 +5,43 @@ EventManagerCLI is a desktop CLI application meant for managing small-scale events organised by one person. It is written in Java, and has around 4kLoC. ## Summary of Contributions -* **New feature**: Added a participant list to each event and the ability to add and remove participants from said list. (Pull request [#53](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/53), [#54](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/54)) +* **New feature**: Added a participant list to each event and the ability to add and remove participants from said list. (PR [#53](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/53), [#54](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/54)) * What it does: allows the user to add or remove participants from specific events. * Justification: This feature improves the product significantly as it allows the user to account for new people coming to their event or for people pulling out from their event. * Highlights: This feature required the modification of multiple existing classes, and significant changes had to be made in several areas (like in the command parsing) to enable this feature. It is essential for the application and was used and built upon by others as additional commands were implemented. -* **New feature**: Added the ability to copy participant lists from one event to another. (Pull request [#116](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/116)) +* **New feature**: Added the ability to copy participant lists from one event to another. (PR [#116](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/116)) * What it does: allows the user to duplicate participant lists in different events. * Justification: This feature improves the product significantly as it allows the user to quickly replicate similar/overlapping participant lists without having to manually re-enter each participant's information for each event. * Highlights: This feature required the creation of a new command class and significant changes had to be made in several areas (like for the command parsing) to enable this feature. -* **New feature**: Added the ability to search for specific participants in an event. (Pull request [#115](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/115)) +* **New feature**: Added the ability to search for specific participants in an event. (PR [#115](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/115)) * What it does: allows the user to find specific participants that are coming to their event. * Justification: This feature improves the product significantly as it allows the user to easily track a specific person's attendance or to find out his contact details. * Highlights: This feature required the creation of a new command class, new methods in existing classes and significant changes in other areas (like in the command parsing) to enable this feature. -* **New feature**: Added priority attribute to events. (Pull request [#110](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/110)) +* **New feature**: Added priority attribute to events. (PR [#110](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/110)) * What it does: allows the user to set the importance of their events. * Justification: This feature improves the product significantly as it allows the user to account for which events are more important or urgent. * Highlights: This feature required the creation of a new enumeration class and significant changes had to be made in several areas (like in the command parsing) to enable this feature. It was later used and built upon by others as additional commands were implemented. -* **New feature**: Added the ability to filter a list of events according to priority. (Pull request [#112](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/112)) +* **New feature**: Added the ability to filter a list of events according to priority. (PR [#112](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/112)) * What it does: allows the user to look for events based on how important the event is. * Justification: This feature improves the product significantly as it allows the user to quickly find events that match their interests, saving them the time and effort of looking through a complete list. * Highlights: This feature required the creation of a new command class, new methods in existing classes and significant changes in other areas (like in the command parsing) to enable this feature. It was later built upon by others as additional filter functionalities were added. * **Enhancements to existing features**: - * Added parse methods for `Add`, `Remove`, `Filter`, `Find` and `Copy` commands. (Pull request [#53](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/53), [#54](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/54), [#112](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/112), [#115](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/115), [#116](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/116)) - * Added functionality to `sort` command so events can be sorted by priority. (Pull request [#110](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/110)) + * Added parse methods for `Add`, `Remove`, `Filter`, `Find` and `Copy` commands. (PR [#53](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/53), [#54](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/54), [#112](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/112), [#115](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/115), [#116](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/116)) + * Added functionality to `sort` command so events can be sorted by priority. (PR [#110](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/110)) * **Team-Based Tasks**: - * General Code Enhancements: Update all functional code and tests cases etc after implementation of new priority attribute to event classes. (Pull request [#110](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/110)) + * General Code Enhancements: Update all functional code and tests cases etc after implementation of new priority attribute to event classes. (PR [#110](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/110)) * **Code contributed**: [RepoSense link](https://nus-cs2113-ay2425s1.github.io/tp-dashboard/?search=LTK&sort=groupTitle&sortWithin=title&timeframe=commit&mergegroup=&groupSelect=groupByRepos&breakdown=true&checkedFileTypes=docs~functional-code~test-code~other&since=2024-09-20&tabOpen=true&tabType=authorship&tabAuthor=LTK-1606&tabRepo=AY2425S1-CS2113-W13-3%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=docs~functional-code~test-code&authorshipIsBinaryFileTypeChecked=false&authorshipIsIgnoredFilesChecked=false) @@ -53,15 +53,15 @@ EventManagerCLI is a desktop CLI application meant for managing small-scale even * **Documentation** * User Guide - * Added documentation for `copy`, `sort`, `filter` and `find` commands. (Pull request [#126](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/126)) + * Added documentation for `copy`, `sort`, `filter` and `find` commands. (PR [#126](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/126)) * Developer Guide - * Added implementation details for `filter` feature. (Pull request [#142](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/142)) - * Created sequence diagrams for `copy`, `sort`, `filter` and `find` features. (Pull request [#129](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/129)) + * Added implementation details for `filter` feature. (PR [#142](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/142)) + * Created sequence diagrams for `copy`, `sort`, `filter` and `find` features. (PR [#129](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/129)) * **Community** * PRs reviewed (with non-trivial review comments): [#156](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/156), [#158](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/158) - * Helped teammate update PR to resolve merge conflicts and pass CI checks (Pull request [#118](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/118), [#127](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/127)) + * Helped teammate update PR to resolve merge conflicts and pass CI checks (PR [#118](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/118), [#127](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/127))
    From feeb89179c905017c347623628bd308c440fddd7 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 5 Nov 2024 11:20:50 +0800 Subject: [PATCH 435/619] Edit sequence diagrams --- docs/DeveloperGuide.md | 8 -- .../StorageLoadingSequenceDiagram.puml | 18 ++-- .../StorageSavingSequenceDiagram.puml | 79 +++++++++++++++--- docs/images/StorageLoadingSequenceDiagram.png | Bin 37644 -> 50411 bytes docs/images/StorageSavingSequenceDiagram.png | Bin 31751 -> 89496 bytes 5 files changed, 80 insertions(+), 25 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 619f13175c..3c0e8767d6 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -557,10 +557,6 @@ This functionality is implemented by the `Storage` and `FileParser` classes, enc 2. `FileParser` processes each line, identifying whether it represents an `Event`, `Participant`, or `Item`, and appropriately adds each object to the relevant `Event` in `EventList`. 3. Lines with insufficient or invalid fields are skipped, while lines with extra fields have the additional fields ignored. -The interactions between classes during the `Main#loadData()` operation is shown in the **Sequence Diagram** below. - - - #### Loading Events, Participants and Items For `Event` loading: @@ -581,10 +577,6 @@ The logic for the loading of `Item`s is similar to that for `Participant`s. 1. `Storage` retrieves `Events` from `EventList` and writes each `Event` and its associated `Participants` and `Items` to `data.csv`. 2. Each line is formatted based on the object type, either as an `Event`, `Participant`, or `Item`. -The **Sequence Diagram** below illustrates the class interactions during the `Main#saveData()` operation. - - - #### Saving Events, Participants, and Items For saving `Events`: diff --git a/docs/diagrams/StorageLoadingSequenceDiagram.puml b/docs/diagrams/StorageLoadingSequenceDiagram.puml index 8652dffbb8..9b3af65afb 100644 --- a/docs/diagrams/StorageLoadingSequenceDiagram.puml +++ b/docs/diagrams/StorageLoadingSequenceDiagram.puml @@ -7,16 +7,15 @@ Participant ":Storage" as storage STORAGE_COLOUR Participant ":FileParser" as parser PARSER_COLOUR Participant ":EventList" as events EVENT_COLOUR -group sd Loading of event data -main -> storage : loadInfo(EventList) +main -> storage : loadInfo(eventList) activate storage STORAGE_COLOUR create parser -storage -> parser : FileParser(EventList, String) +storage -> parser : FileParser(eventList, filePath) activate parser PARSER_COLOUR return -storage -> parser : parseFile(EventList, String) +storage -> parser : parseFile(eventList, filePath) activate parser PARSER_COLOUR loop for line in file @@ -26,17 +25,26 @@ loop for line in file activate parser PARSER_COLOUR alt EVENT + parser -> parser : parseEventFileLine(events, fields, formatter) + activate parser PARSER_COLOUR parser -> events : addEvent(...) activate events EVENT_COLOUR return + return else PARTICIPANT + parser -> parser : parseParicipantFileLine(events, fields) + activate parser PARSER_COLOUR parser -> events : addParticipantToEvent(...) activate events EVENT_COLOUR return + return else ITEM + parser -> parser : parseItemFileLine(events, fields) + activate parser PARSER_COLOUR parser -> events : addItemToEvent(...) activate events EVENT_COLOUR return + return end return deactivate events @@ -47,6 +55,6 @@ parser --> storage deactivate parser storage --> main deactivate storage -end + @enduml diff --git a/docs/diagrams/StorageSavingSequenceDiagram.puml b/docs/diagrams/StorageSavingSequenceDiagram.puml index 540e2d1c2e..89df1c8431 100644 --- a/docs/diagrams/StorageSavingSequenceDiagram.puml +++ b/docs/diagrams/StorageSavingSequenceDiagram.puml @@ -4,32 +4,87 @@ hide footbox Participant ":Main" as main Participant ":Storage" as storage STORAGE_COLOUR -Participant ":EventList" as eventList EVENT_COLOUR Participant "event:Event" as event EVENT_COLOUR +Participant "eventList:EventList" as eventlist EVENT_COLOUR +Participant "participant:Participant" as participant +Participant "item:Item" as item -group sd Saving of participant data -main -> storage : saveInfo(EventList) +main -> storage : saveInfo(eventList) activate storage STORAGE_COLOUR +storage -> eventlist : getList() +activate eventlist EVENT_COLOUR +return event list + loop for event in event list -storage -> eventList : getList() -activate eventList EVENT_COLOUR -return :ArrayList +storage -> storage : getEventFields() +activate storage STORAGE_COLOUR -loop for participant in participant list +storage -> event : getEventName() +activate event EVENT_COLOUR +event --> storage +storage -> event : getEventTime() +event --> storage +storage -> event : getEventVenue() +event --> storage +storage -> event : getEventPriorityString() +event --> storage +storage -> event : markIfDone() +event --> storage +deactivate event + +return event fields storage -> event : getParticipantList() activate event EVENT_COLOUR -return :ArrayList +return participant list -end +loop for participant in event's participant list -loop for item in participant list +storage -> storage : getParticipantFields() +activate storage STORAGE_COLOUR + +storage -> participant : getName() +activate participant +participant --> storage +storage -> participant : getNumber() +participant --> storage +storage -> participant : getEmail() +participant --> storage +storage -> event : getEventName() +activate event EVENT_COLOUR +event --> storage +deactivate event +storage -> participant : markFileLineIfPresent() +participant --> storage +deactivate participant + +return participant fields + +end storage -> event : getItemList() activate event EVENT_COLOUR -return :ArrayList +return item list + +loop for item in event's item list + +storage -> storage : getItemFields() +activate storage STORAGE_COLOUR + +storage -> item : getName() +activate item +item --> storage +storage -> event : getEventName() +activate event EVENT_COLOUR +event --> storage +deactivate event +storage -> item : markFileLineIfPresent() +item --> storage +deactivate item + +return item fields end @@ -37,7 +92,7 @@ end return -end + @enduml \ No newline at end of file diff --git a/docs/images/StorageLoadingSequenceDiagram.png b/docs/images/StorageLoadingSequenceDiagram.png index 6a1ccc1b5c5b252c9ab35c13e803e8f798ad9aa0..1d84434d94aa431a52030438a87f63071cc9a077 100644 GIT binary patch literal 50411 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
    * Highlights: The storage feature supports loading from a single CSV file, handling all event-related data in one file. It includes validation checks to ensure data integrity, and if any data entry is corrupted or unreadable, a warning is logged without crashing the application. * **New feature**: Added feature to edit participant's contact info. @@ -37,7 +38,7 @@ The app is optimised for quick, command-based interactions, ideal for users who * User Guide * Added documentation for storage features (Pull request [#156](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/156)) * Developer Guide - * Added design details for `add`, `remove` and `view` components + * Added design details for `add`, `remove` and `view` components [#128](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/128) * Added implementation details for the `add`, `remove`, `view`, `copy`, `sort` and `find` feature (Pull requests [#128](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/128), [#142](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/142)) * Added documentation for storage features (Pull request [#156](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/156)) From c48ece1af179ee4fd15b3f03480ed41e0bf7c551 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 5 Nov 2024 13:21:10 +0800 Subject: [PATCH 440/619] Update png files --- docs/DeveloperGuide.md | 8 +++----- docs/images/StorageLoadingSequenceDiagram.png | Bin 50411 -> 52158 bytes docs/images/StorageSavingSequenceDiagram.png | Bin 89496 -> 90801 bytes 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 8443e8de5d..3c453818b9 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -909,10 +909,8 @@ The user is able to organise and manage his events more quickly and efficiently 1. Loading from a corrupted data file 1. Prerequisite: Multiple `Event`s are present in the `Event` list. - - 2. Exit the program by entering `exit`. - - 3. Remove one field from one of the lines in the `data.csv` data file. - 4. Run the program by opening a new terminal window and entering `java -jar manager.jar`. + 2. Run the program by opening a new terminal window and entering `java -jar manager.jar`. The program would give a warning that a line cannot be loaded, and the `Event` represented by the line would not be present in the `Event`s list. + + 3. Essentially all corrupted rows are ignored and file parsing will still work \ No newline at end of file diff --git a/docs/images/StorageLoadingSequenceDiagram.png b/docs/images/StorageLoadingSequenceDiagram.png index 1d84434d94aa431a52030438a87f63071cc9a077..81a72df3cff0171f4008e79432277f3dcc8b59c0 100644 GIT binary patch literal 52158 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¨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 literal 50411 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

    - * This method attempts to remove the specified participant from the list of - * participants associated with the event. It returns {@code true} if the - * participant was successfully removed, and {@code false} if the participant - * was not found in the list. - *

    - * - * @param participantName the name of the participant to be removed from the list. - * @return {@code true} if the participant was successfully removed; - * {@code false} if the participant was not found in the list. - */ - public boolean removeParticipant(String participantName) { - return this.participantList.removeIf((participant) -> - (participant.getName().equalsIgnoreCase(participantName))); - } - - /** - * Updates the details of a participant in this event. - * - * @param participantName the name of the participant to be updated. - * @param newNumber the new contact number of the participant. - * @param newEmail the new email address of the participant. - * @return {@code true} if the participant was successfully updated; - * {@code false} if the participant was not found. - */ - public boolean updateParticipant(String participantName, String newNumber, String newEmail) { - for (Participant participant : this.participantList) { - if (participant.getName().equalsIgnoreCase(participantName)) { - participant.setNumber(newNumber); - participant.setEmail(newEmail); - return true; - } - } - return false; - } - - //@@author MatchaRRR - /** - * Updates the details of an event. - * - * @param eventNewName The new name of the event. - * @param eventTime The new time of the event. - * @param eventVenue The new venue of the event. - * @param eventPriority The new priority of the event. - */ - public void updateEvent(String eventNewName, LocalDateTime eventTime, String eventVenue, Priority eventPriority) { - this.eventName = eventNewName; - this.eventTime = eventTime; - this.eventVenue = eventVenue; - this.eventPriority = eventPriority; - } - - //@@author MatchaRRR - /** - * Updates the details of an event. - * - * @param itemName The name of original item. - * @param itemNewName The name of the new item. - */ - public boolean updateItem(String itemName, String itemNewName) { - for (Item item : this.itemList) { - if (item.getName().equalsIgnoreCase(itemName)) { - item.setName(itemNewName); - item.setPresent(false); - return true; - } - } - return false; - } - /** * Retrieves the number of participants in the participant list. * @@ -166,33 +75,6 @@ public int getParticipantCount() { return this.participantList.size(); } - //@@author jemehgoh - /** - * Adds an item with a given name to the event's item list. - * - * @param itemName the name of the item to be added. - * @throws DuplicateDataException if an item with the same name is already in the list. - */ - public void addItem(String itemName, boolean isPresent) throws DuplicateDataException { - if (getItemByName(itemName).isPresent()) { - throw new DuplicateDataException(DUPLICATE_ITEM_MESSAGE); - } - - Item item = new Item(itemName, isPresent); - itemList.add(item); - } - - /** - * Returns true if an item with the given name is successfully removed from the item list, returns false - * otherwise. - * - * @param itemName the name of the item to be removed. - * @return {@code true} if an item with itemName is successfully removed, {@code false} otherwise. - */ - public boolean removeItem(String itemName) { - return itemList.removeIf((item) -> (item.getName().equalsIgnoreCase(itemName))); - } - /** * Returns the number of items in the event's item list. * @@ -255,13 +137,6 @@ public String getEventPriorityString() { return String.format("%s", eventPriority); } - /** - * @return true if the event is marked done, false otherwise - */ - public boolean isDone() { - return isDone; - } - /** * Sets a new time for the event. * @@ -288,7 +163,7 @@ public void setEventVenue(String eventVenue) { public void setParticipantList(ArrayList participantList) { this.participantList = participantList; } - + /** * Sets a new priority level for the event. * @@ -316,77 +191,146 @@ public String markIfDone() { } /** - * Returns true if the participant with the given name can be marked present or absent. - * Returns false otherwise. + * @return true if the event is marked done, false otherwise + */ + public boolean isDone() { + return isDone; + } + + //@@author LTK-1606 + /** + * Adds a participant to the participant list for the event. * - * @param participantName the participant name. - * @param isPresent true if participant is to be marked present, false if he is to be marked absent. - * @return {@code true} if the participant with participantName has been marked present or absent, - * {@code false} otherwise. + * @param participantName the name of the participant to be added to the list. + * @param isPresent {@code true} if the participant is to be present, {@code false} otherwise. + * @throws DuplicateDataException if a participant with the same name exists in the list. */ - public boolean markParticipantByName(String participantName, boolean isPresent) { - Optional participant = getParticipantByName(participantName); - return markParticipant(participant, isPresent); + public void addParticipant(String participantName, String participantNumber, String participantEmail, + boolean isPresent) throws DuplicateDataException { + if (getParticipantByName(participantName).isPresent()) { + throw new DuplicateDataException(DUPLICATE_PARTICIPANT_MESSAGE); + } + + Participant participant = new Participant(participantName, participantNumber, participantEmail, isPresent); + this.participantList.add(participant); } + //@@author jemehgoh /** - * Returns true if the item with the given name can be marked present or absent. - * Returns false otherwise. + * Adds an item with a given name to the event's item list. * - * @param itemName the name of the item. - * @param isPresent true if the item is to be marked present, false if it is to be marked absent. - * @return {@code true} if the item with itemName has been marked present or absent, - * @code false} otherwise. + * @param itemName the name of the item to be added. + * @throws DuplicateDataException if an item with the same name is already in the list. */ - public boolean markItemByName(String itemName, boolean isPresent) { - Optional item = getItemByName(itemName); - return markItem(item, isPresent); + public void addItem(String itemName, boolean isPresent) throws DuplicateDataException { + if (getItemByName(itemName).isPresent()) { + throw new DuplicateDataException(DUPLICATE_ITEM_MESSAGE); + } + + Item item = new Item(itemName, isPresent); + itemList.add(item); } //@@author LTK-1606 /** - * Finds participants in the event whose names contain the specified person name. + * Removes a participant from the participant list. + * *

    - * This method iterates through the list of participants and checks if their names - * contain the given {@code personName}, ignoring case and leading/trailing spaces. - * If a match is found, the participant is added to the result list. + * This method attempts to remove the specified participant from the list of + * participants associated with the event. It returns {@code true} if the + * participant was successfully removed, and {@code false} if the participant + * was not found in the list. *

    * - * @param personName the name or part of the name of the participant to search for - * @return a list of {@code Participant} objects whose names contain the specified {@code personName} + * @param participantName the name of the participant to be removed from the list. + * @return {@code true} if the participant was successfully removed; + * {@code false} if the participant was not found in the list. */ - public ArrayList findParticipants(String personName) { - ArrayList participants = new ArrayList<>(); + public boolean removeParticipant(String participantName) { + return this.participantList.removeIf((participant) -> + (participant.getName().equalsIgnoreCase(participantName))); + } + + //@@author jemehgoh + /** + * Returns true if an item with the given name is successfully removed from the item list, returns false + * otherwise. + * + * @param itemName the name of the item to be removed. + * @return {@code true} if an item with itemName is successfully removed, {@code false} otherwise. + */ + public boolean removeItem(String itemName) { + return itemList.removeIf((item) -> (item.getName().equalsIgnoreCase(itemName))); + } + + //@@author MatchaRRR + /** + * Updates the details of an event. + * + * @param eventNewName The new name of the event. + * @param eventTime The new time of the event. + * @param eventVenue The new venue of the event. + * @param eventPriority The new priority of the event. + */ + public void updateEvent(String eventNewName, LocalDateTime eventTime, String eventVenue, Priority eventPriority) { + this.eventName = eventNewName; + this.eventTime = eventTime; + this.eventVenue = eventVenue; + this.eventPriority = eventPriority; + } + + //@@author KuanHsienn + /** + * Updates the details of a participant in this event. + * + * @param participantName the name of the participant to be updated. + * @param newNumber the new contact number of the participant. + * @param newEmail the new email address of the participant. + * @return {@code true} if the participant was successfully updated; + * {@code false} if the participant was not found. + */ + public boolean updateParticipant(String participantName, String newNumber, String newEmail) { for (Participant participant : this.participantList) { - if (participant.getName().toLowerCase().contains(personName.trim().toLowerCase())) { - participants.add(participant); + if (participant.getName().equalsIgnoreCase(participantName)) { + participant.setNumber(newNumber); + participant.setEmail(newEmail); + return true; } } - return participants; + return false; } - //@@author glenn-chew + //@@author MatchaRRR /** - * Formats eventTime to a string in "yyyy-MM-dd HH:mm" format + * Updates the details of an event. * - * @return eventTime as a formated {@link String} object. + * @param itemName The name of original item. + * @param itemNewName The name of the new item. */ - public String getEventTimeString() { - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); - return formatter.format(eventTime); + public boolean updateItem(String itemName, String itemNewName) { + for (Item item : this.itemList) { + if (item.getName().equalsIgnoreCase(itemName)) { + item.setName(itemNewName); + item.setPresent(false); + return true; + } + } + return false; } - //@@author MatchaRRR + //@@author jemehgoh /** - * Returns a string representation of the event, indicating its name, time and venue. + * Returns true if the participant with the given name can be marked present or absent. + * Returns false otherwise. * - * @return A string that shows the event's name, time and venue. + * @param participantName the participant name. + * @param isPresent true if participant is to be marked present, false if he is to be marked absent. + * @return {@code true} if the participant with participantName has been marked present or absent, + * {@code false} otherwise. */ - @Override - public String toString(){ - String eventTimeString = getEventTimeString(); - return String.format("Event name: %s / Event time: %s / Event venue: %s / Event Priority: %s / Done: %s", - eventName, eventTimeString, eventVenue, eventPriority, markIfDone()); + public boolean markParticipantByName(String participantName, boolean isPresent) { + Optional participant = getParticipantByName(participantName); + return markParticipant(participant, isPresent); } /** @@ -407,7 +351,6 @@ private Optional getParticipantByName(String participantName) { return Optional.empty(); } - //@@author jemehgoh /** * Returns true if the given participant can be marked present or absent. Returns false otherwise. * @@ -425,6 +368,20 @@ private boolean markParticipant(Optional participant, boolean isPre return true; } + /** + * Returns true if the item with the given name can be marked present or absent. + * Returns false otherwise. + * + * @param itemName the name of the item. + * @param isPresent true if the item is to be marked present, false if it is to be marked absent. + * @return {@code true} if the item with itemName has been marked present or absent, + * @code false} otherwise. + */ + public boolean markItemByName(String itemName, boolean isPresent) { + Optional item = getItemByName(itemName); + return markItem(item, isPresent); + } + /** * Returns the {@code Item} with the given name in the item list. * @@ -437,7 +394,7 @@ private Optional getItemByName(String itemName) { return Optional.of(item); } } - + return Optional.empty(); } @@ -456,4 +413,54 @@ private boolean markItem(Optional item, boolean isPresent) { item.get().setPresent(isPresent); return true; } + + //@@author LTK-1606 + /** + * Finds participants in the event whose names contain the specified person name. + *

    + * This method iterates through the list of participants and checks if their names + * contain the given {@code personName}, ignoring case and leading/trailing spaces. + * If a match is found, the participant is added to the result list. + *

    + * + * @param personName the name or part of the name of the participant to search for + * @return a list of {@code Participant} objects whose names contain the specified {@code personName} + */ + public ArrayList findParticipants(String personName) { + ArrayList participants = new ArrayList<>(); + for (Participant participant : this.participantList) { + if (participant.getName().toLowerCase().contains(personName.trim().toLowerCase())) { + participants.add(participant); + } + } + return participants; + } + + //@@author glenn-chew + /** + * Formats eventTime to a string in "yyyy-MM-dd HH:mm" format + * + * @return eventTime as a formated {@link String} object. + */ + public String getEventTimeString() { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + return formatter.format(eventTime); + } + + //@@author MatchaRRR + /** + * Returns a string representation of the event, indicating its name, time and venue. + * + * @return A string that shows the event's name, time and venue. + */ + @Override + public String toString(){ + String eventTimeString = getEventTimeString(); + return String.format("Event name: %s / Event time: %s / Event venue: %s / Event Priority: %s / Done: %s", + eventName, eventTimeString, eventVenue, eventPriority, markIfDone()); + } + + + + } diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index a52cb4d852..e73dde3255 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -49,6 +49,23 @@ public ArrayList getList() { return this.eventList; } + /** + * @param index The index of event in the list (0 based indexing) + * @return The specific event in the event list. + */ + public Event getEvent(int index) { + return eventList.get(index); + } + + /** + * Adds an event to the event list. + * + * @param event the event to be added to the list + */ + public void addEvent(Event event) { + eventList.add(event); + } + /** * Adds a new event to the event list. * @@ -87,21 +104,69 @@ public void addEvent(String eventName, LocalDateTime time, String venue, eventList.add(newEvent); } + //@@author LTK-1606 /** - * Adds an event to the event list. + * Returns true if a participant can be added to a specified event, + * returns false otherwise. * - * @param event the event to be added to the list + * @param name the name of the participant to be added. + * @param number the contact number of the participant + * @param email the email address of the participant + * @param eventName the name of the event to which the participant will be added. + * @return {@code true} if the participant can be added to the event, {@code false} otherwise. */ - public void addEvent(Event event) { - eventList.add(event); + public boolean addParticipantToEvent(String name, String number, String email, String eventName) { + return addParticipantToEvent(name, number, email, false, eventName); } /** - * @param index The index of event in the list (0 based indexing) - * @return The specific event in the event list. + * Returns true if a participant can be added to a specified event, + * returns false otherwise. + * + * @param name the name of the participant to be added. + * @param number the contact number of the participant. + * @param email the email address of the participant. + * @param isPresent {@code true} if the participant is to be marked present, {@code false} otherwise. + * @param eventName the name of the event to which the participant will be added. + * @return {@code true} if the participant can be added to the event, {@code false} otherwise. */ - public Event getEvent(int index) { - return eventList.get(index); + public boolean addParticipantToEvent(String name, String number, String email, boolean isPresent, + String eventName) { + for (Event event : eventList) { + if (event.getEventName().equals(eventName)) { + event.addParticipant(name, number, email, isPresent); + return true; + } + } + return false; + } + + //@@author jemehgoh + /** + * Returns true if an item with a given name is successfully added to a given event, returns false otherwise. + * + * @param itemName the name of the item to be added. + * @param eventName the name of the event the item is to be added to. + * @return {@code true} if the item is successfully added to the event, {@code false} otherwise. + */ + public boolean addItemToEvent(String itemName, String eventName) { + return addItemToEvent(itemName, false, eventName); + } + + /** + * Returns true if an item with a given name is successfully added to a given event, returns false otherwise. + * + * @param itemName the name of the item to be added. + * @param eventName the name of the event the item is to be added to. + * @return {@code true} if the item is successfully added to the event, {@code false} otherwise. + */ + public boolean addItemToEvent(String itemName, boolean isPresent, String eventName) { + assert itemName != null : "Item name should not be null"; + Optional event = getEventByName(eventName); + if (event.isPresent()) { + event.get().addItem(itemName, isPresent); + } + return event.isPresent(); } //@@author jemehgoh @@ -140,42 +205,6 @@ public boolean removeEvent(String eventName) { } //@@author LTK-1606 - /** - * Returns true if a participant can be added to a specified event, - * returns false otherwise. - * - * @param name the name of the participant to be added. - * @param number the contact number of the participant - * @param email the email address of the participant - * @param eventName the name of the event to which the participant will be added. - * @return {@code true} if the participant can be added to the event, {@code false} otherwise. - */ - public boolean addParticipantToEvent(String name, String number, String email, String eventName) { - return addParticipantToEvent(name, number, email, false, eventName); - } - - /** - * Returns true if a participant can be added to a specified event, - * returns false otherwise. - * - * @param name the name of the participant to be added. - * @param number the contact number of the participant. - * @param email the email address of the participant. - * @param isPresent {@code true} if the participant is to be marked present, {@code false} otherwise. - * @param eventName the name of the event to which the participant will be added. - * @return {@code true} if the participant can be added to the event, {@code false} otherwise. - */ - public boolean addParticipantToEvent(String name, String number, String email, boolean isPresent, - String eventName) { - for (Event event : eventList) { - if (event.getEventName().equals(eventName)) { - event.addParticipant(name, number, email, isPresent); - return true; - } - } - return false; - } - /** * Removes a participant from a specified event. * @@ -201,30 +230,19 @@ public boolean removeParticipantFromEvent(String participantName, String eventNa return false; } - //@@author KuanHsienn + //@@author jemehgoh /** - * Edits the details of a participant in a specified event. - * - *

    - * This method searches for the event with the given name in the event list and - * attempts to update the specified participant's phone number and email. If the event - * is found and the participant is successfully updated, it returns {@code true}. - * If the event does not exist or the participant is not found, it returns - * {@code false}. - *

    + * Returns true if an item with a given name is successfully removed from an event, returns false otherwise. * - * @param participantName the name of the participant to be edited. - * @param number the new contact number of the participant. - * @param email the new email address of the participant. - * @param eventName the name of the event associated with the participant. - * @return {@code true} if the participant was successfully edited; - * {@code false} if the event does not exist or the participant was not found. + * @param itemName the name of the item to be removed. + * @param eventName the name of the event the item is to be removed from. + * @return {@code true} if the item is successfully removed from the vent, {@code false} otherwise. */ - public boolean editParticipant(String participantName, String number, String email, String eventName) { - for (Event event : eventList) { - if (event.getEventName().equals(eventName)) { - return event.updateParticipant(participantName, number, email); - } + public boolean removeItemFromEvent(String itemName, String eventName) { + assert itemName != null : "Item name should not be null"; + Optional event = getEventByName(eventName); + if (event.isPresent()) { + return event.get().removeItem(itemName); } return false; } @@ -258,6 +276,34 @@ public boolean editEvent(String eventName, String eventNewName, LocalDateTime ev return false; } + //@@author KuanHsienn + /** + * Edits the details of a participant in a specified event. + * + *

    + * This method searches for the event with the given name in the event list and + * attempts to update the specified participant's phone number and email. If the event + * is found and the participant is successfully updated, it returns {@code true}. + * If the event does not exist or the participant is not found, it returns + * {@code false}. + *

    + * + * @param participantName the name of the participant to be edited. + * @param number the new contact number of the participant. + * @param email the new email address of the participant. + * @param eventName the name of the event associated with the participant. + * @return {@code true} if the participant was successfully edited; + * {@code false} if the event does not exist or the participant was not found. + */ + public boolean editParticipant(String participantName, String number, String email, String eventName) { + for (Event event : eventList) { + if (event.getEventName().equals(eventName)) { + return event.updateParticipant(participantName, number, email); + } + } + return false; + } + //@@author MatchaRRR /** * Edits the details of an event in a specified event. @@ -282,50 +328,6 @@ public boolean editItem(String itemName, String itemNewName, String eventName) { return false; } - //@@author jemehgoh - /** - * Returns true if an item with a given name is successfully added to a given event, returns false otherwise. - * - * @param itemName the name of the item to be added. - * @param eventName the name of the event the item is to be added to. - * @return {@code true} if the item is successfully added to the event, {@code false} otherwise. - */ - public boolean addItemToEvent(String itemName, String eventName) { - return addItemToEvent(itemName, false, eventName); - } - - /** - * Returns true if an item with a given name is successfully added to a given event, returns false otherwise. - * - * @param itemName the name of the item to be added. - * @param eventName the name of the event the item is to be added to. - * @return {@code true} if the item is successfully added to the event, {@code false} otherwise. - */ - public boolean addItemToEvent(String itemName, boolean isPresent, String eventName) { - assert itemName != null : "Item name should not be null"; - Optional event = getEventByName(eventName); - if (event.isPresent()) { - event.get().addItem(itemName, isPresent); - } - return event.isPresent(); - } - - /** - * Returns true if an item with a given name is successfully removed from an event, returns false otherwise. - * - * @param itemName the name of the item to be removed. - * @param eventName the name of the event the item is to be removed from. - * @return {@code true} if the item is successfully removed from the vent, {@code false} otherwise. - */ - public boolean removeItemFromEvent(String itemName, String eventName) { - assert itemName != null : "Item name should not be null"; - Optional event = getEventByName(eventName); - if (event.isPresent()) { - return event.get().removeItem(itemName); - } - return false; - } - //@@author LTK-1606 /** * Sort the event list by name, alphabetically. diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 6f9627f5a8..3e4e935574 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -62,10 +62,6 @@ public class Parser { Please enter your commands in the following format: view -e EVENT -y TYPE """; - private static final String INVALID_TYPE_MESSAGE = """ - Invalid type! - Please set the type as either "participant" or "item" - """; private static final String INVALID_MARK_MESSAGE = """ Invalid command! Please enter your commands in the following format: @@ -73,6 +69,38 @@ public class Parser { mark -p PARTICIPANT -e EVENT -s STATUS mark -m ITEM -e EVENT -s STATUS """; + private static final String INVALID_COPY_MESSAGE = """ + Invalid command! + Please enter your commands in the following format: + copy FROM_EVENT > TO_EVENT + """; + private static final String INVALID_SORT_MESSAGE = """ + Invalid command! + Please enter your commands in the following format: + sort -e EVENT -by name/time/priority + """; + private static final String INVALID_FILTER_MESSAGE = """ + Invalid command! + Please enter your commands in the following format: + filter -e/-d/-t/-x/-u FILTER_DESCRIPTION + """; + private static final String INVALID_FIND_MESSAGE = """ + Invalid command! + Please enter your commands in the following format: + find -e EVENT -p NAME + """; + private static final String INVALID_DATE_TIME_MESSAGE = """ + Invalid date-time format! + Please use the following format for event time: + YYYY-MM-DD HH:mm + + MM-DD has to be between 01-01 and 12-31, and HH:mm has to be between 00:00 and 23:59. + """; + private static final String INVALID_PRIORITY_MESSAGE = """ + Invalid priority level status! + Please use the following format for priority level: + high/medium/low + """; private static final String INVALID_PHONE_NUMBER_MESSAGE = """ Invalid phone number! Please enter a valid phone number with digits only. @@ -81,6 +109,10 @@ public class Parser { Invalid email format! Please enter a valid email address. """; + private static final String INVALID_TYPE_MESSAGE = """ + Invalid type! + Please set the type as either "participant" or "item" + """; private static final String INVALID_EVENT_STATUS_MESSAGE = """ Invalid event status! Please set the event status as either "done" or "undone" @@ -93,50 +125,19 @@ public class Parser { Invalid mark status! Please set the event status as either "accounted" or "unaccounted" """; - private static final String INVALID_SORT_MESSAGE = """ - Invalid command! - Please enter your commands in the following format: - sort -e EVENT -by name/time/priority - """; private static final String INVALID_SORT_KEYWORD_MESSAGE = """ Invalid sort keyword! Please set the sort keyword as either "name"/"time"/"priority" """; - private static final String INVALID_DATE_TIME_MESSAGE = """ - Invalid date-time format! - Please use the following format for event time: - YYYY-MM-DD HH:mm - - MM-DD has to be between 01-01 and 12-31, and HH:mm has to be between 00:00 and 23:59. - """; - private static final String INVALID_COPY_MESSAGE = """ - Invalid command! - Please enter your commands in the following format: - copy FROM_EVENT > TO_EVENT - """; - private static final String INVALID_PRIORITY_MESSAGE = """ - Invalid priority level status! - Please use the following format for priority level: - high/medium/low - """; - private static final String INVALID_FILTER_MESSAGE = """ - Invalid command! - Please enter your commands in the following format: - filter -e/-d/-t/-x/-u FILTER_DESCRIPTION - """; private static final String INVALID_FILTER_FLAG_MESSAGE = """ Invalid filter flag! Please set the filter flag as either "-e/-t/-u" """; - private static final String INVALID_FIND_MESSAGE = """ - Invalid command! - Please enter your commands in the following format: - find -e EVENT -p NAME - """; private static final String INVALID_FIND_FLAG_MESSAGE = """ Invalid find flag! Please set the find flag using "-e" and "-p"" """; + private static final String EVENT_FLAG = "-e"; private static final String PARTICIPANT_FLAG = "-p"; private static final String ITEM_FLAG = "-m"; @@ -168,30 +169,30 @@ public Command parseCommand(String command) throws InvalidCommandException { String commandWord = commandParts[0].toLowerCase(); switch (commandWord) { + case MenuCommand.COMMAND_WORD: + return new MenuCommand(); + case ListCommand.COMMAND_WORD: + return new ListCommand(); case AddCommand.COMMAND_WORD: return parseAddCommand(command, commandParts); case RemoveCommand.COMMAND_WORD: return parseRemoveCommand(command, commandParts); case EditParticipantCommand.COMMAND_WORD: return parseEditCommand(command, commandParts); - case ListCommand.COMMAND_WORD: - return new ListCommand(); case ViewCommand.COMMAND_WORD: return parseViewCommand(command, commandParts); - case MenuCommand.COMMAND_WORD: - return new MenuCommand(); - case ExitCommand.COMMAND_WORD: - return new ExitCommand(); case MarkCommand.COMMAND_WORD: return parseMarkCommand(command, commandParts); case CopyCommand.COMMAND_WORD: return parseCopyCommand(command, commandParts); - case FindCommand.COMMAND_WORD: - return parseFindCommand(command, commandParts); case SortCommand.COMMAND_WORD: return parseSortCommand(command, commandParts); case FilterCommand.COMMAND_WORD: return parseFilterCommand(command, commandParts); + case FindCommand.COMMAND_WORD: + return parseFindCommand(command, commandParts); + case ExitCommand.COMMAND_WORD: + return new ExitCommand(); default: throw new InvalidCommandException(INVALID_COMMAND_MESSAGE); } @@ -717,6 +718,39 @@ private boolean toMarkItem(String status) throws InvalidCommandException { } } + /** + * Parses the input command to create a {@code CopyCommand} object. + *

    + * This method checks if the command input starts with the specified command word + * and then removes it from the input. It splits the remaining input at the '>' character + * to separate the source and destination parts. If the split does not yield exactly + * two parts, an {@code InvalidCommandException} is thrown. + *

    + * + * @param input the full command input string to be parsed + * @param commandParts the parts of the command, typically split by whitespace + * @return a {@code CopyCommand} object with the parsed source and destination + * @throws InvalidCommandException if the command is missing required parts or has an invalid format + */ + private Command parseCopyCommand(String input, String[] commandParts) throws InvalidCommandException { + assert commandParts[0].equalsIgnoreCase(CopyCommand.COMMAND_WORD); + + try { + String commandInput = input.replaceFirst("^" + commandParts[0] + "\\s*", ""); + String[] inputParts = commandInput.split(ARROW); + + if (inputParts.length != 2) { + throw new InvalidCommandException(INVALID_COPY_MESSAGE); + } + + return new CopyCommand(inputParts[0].trim(), inputParts[1].trim()); + + } catch (IndexOutOfBoundsException exception) { + logger.log(WARNING,"Invalid command format"); + throw new InvalidCommandException(INVALID_COPY_MESSAGE); + } + } + //@@author MatchaRRR /** * Parses the input string to create a {@link Command} based on the provided command parts. @@ -791,39 +825,6 @@ private Command parseFilterCommand(String input, String[] commandParts) throws I } } - /** - * Parses the input command to create a {@code CopyCommand} object. - *

    - * This method checks if the command input starts with the specified command word - * and then removes it from the input. It splits the remaining input at the '>' character - * to separate the source and destination parts. If the split does not yield exactly - * two parts, an {@code InvalidCommandException} is thrown. - *

    - * - * @param input the full command input string to be parsed - * @param commandParts the parts of the command, typically split by whitespace - * @return a {@code CopyCommand} object with the parsed source and destination - * @throws InvalidCommandException if the command is missing required parts or has an invalid format - */ - private Command parseCopyCommand(String input, String[] commandParts) throws InvalidCommandException { - assert commandParts[0].equalsIgnoreCase(CopyCommand.COMMAND_WORD); - - try { - String commandInput = input.replaceFirst("^" + commandParts[0] + "\\s*", ""); - String[] inputParts = commandInput.split(ARROW); - - if (inputParts.length != 2) { - throw new InvalidCommandException(INVALID_COPY_MESSAGE); - } - - return new CopyCommand(inputParts[0].trim(), inputParts[1].trim()); - - } catch (IndexOutOfBoundsException exception) { - logger.log(WARNING,"Invalid command format"); - throw new InvalidCommandException(INVALID_COPY_MESSAGE); - } - } - /** * Parses the input command to create a {@code FindCommand} object. *

    diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index 6043f2bb7b..ec28ad0fc7 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -43,6 +43,21 @@ public void parseFile(EventList events, String filePath) throws IOException { } } + /** + * Reads all lines from the specified CSV file and returns them as a list of String arrays. + * + * @param filePath The path to the CSV file to be read. + * @return A list of String arrays, each representing a line in the CSV file. + * @throws IOException If there is an error reading the file. + * @throws CsvException If there is an error parsing the CSV data. + */ + private List getFileLines(String filePath) throws IOException, CsvException { + CSVReader reader = new CSVReaderBuilder(new FileReader(filePath)).build(); + List lines = reader.readAll(); + reader.close(); + return lines; + } + /** * Parses a single line of CSV data and adds the corresponding event, participant, or item to the EventList. * @@ -132,21 +147,6 @@ private void parseItemFileLine(EventList events, String[] fields) throws IOExcep } } - /** - * Reads all lines from the specified CSV file and returns them as a list of String arrays. - * - * @param filePath The path to the CSV file to be read. - * @return A list of String arrays, each representing a line in the CSV file. - * @throws IOException If there is an error reading the file. - * @throws CsvException If there is an error parsing the CSV data. - */ - private List getFileLines(String filePath) throws IOException, CsvException { - CSVReader reader = new CSVReaderBuilder(new FileReader(filePath)).build(); - List lines = reader.readAll(); - reader.close(); - return lines; - } - /** * Converts a mark status string to a boolean value. * From 98882479904f891eee8041b3e8d0d020bc031449 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 5 Nov 2024 14:58:21 +0800 Subject: [PATCH 443/619] Update expected text --- text-ui-test/EXPECTED.TXT | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 7d6fef2b2c..0f281dc1b9 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -5,8 +5,8 @@ Enter a command: Invalid command! ------------------------ Enter a command: Here are the possible commands: +menu: List commands. list: List events. -view -e EVENT -y TYPE: View the list of participants or items of an event. add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. add -m ITEM -e EVENT: Add an item to an even. add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. @@ -14,8 +14,9 @@ remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. -edit -m ITEM > NEW_ITEM -e EVENT: Edit an item in an event. edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. +edit -m ITEM > NEW_ITEM -e EVENT: Edit an item in an event. +view -e EVENT -y TYPE: View the list of participants or items of an event. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. mark -m ITEM -e EVENT -s STATUS: Mark an item as accounted or unaccounted. From 3e9c624e2bde79dfd2f820bc03b3d3988b33d2b6 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Tue, 5 Nov 2024 17:02:51 +0800 Subject: [PATCH 444/619] Update kuanhsienn.md --- docs/team/kuanhsienn.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/team/kuanhsienn.md b/docs/team/kuanhsienn.md index 562618bc1f..82225ff145 100644 --- a/docs/team/kuanhsienn.md +++ b/docs/team/kuanhsienn.md @@ -18,8 +18,9 @@ The app is optimised for quick, command-based interactions, ideal for users who * **New feature**: Added the feature to save/load EventManager details to/from hard disk * What it does: Enables users to save event details (such as event list, participants, and items) to a file on the hard disk and load it back when the application is restarted. This ensures data persistence between sessions. * Justification: Persistent storage is a crucial feature for any event management tool, as it allows users to retrieve previously entered data and continue their work seamlessly. -

    - * Highlights: The storage feature supports loading from a single CSV file, handling all event-related data in one file. It includes validation checks to ensure data integrity, and if any data entry is corrupted or unreadable, a warning is logged without crashing the application. +
    + + * Highlights: The storage feature supports loading from a single CSV file, handling all event-related data in one file. It includes validation checks to ensure data integrity, and if any data entry is corrupted or unreadable, a warning is logged without crashing the application. * **New feature**: Added feature to edit participant's contact info. * What it does: Allows the user to update the contact details (phone number and email) of participants associated with any event. From ec57e67338d6d52a65ec0301e03bbe1869f1fe64 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Tue, 5 Nov 2024 17:06:23 +0800 Subject: [PATCH 445/619] Update kuanhsienn.md --- docs/team/kuanhsienn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/team/kuanhsienn.md b/docs/team/kuanhsienn.md index 82225ff145..1137915cdd 100644 --- a/docs/team/kuanhsienn.md +++ b/docs/team/kuanhsienn.md @@ -39,7 +39,7 @@ The app is optimised for quick, command-based interactions, ideal for users who * User Guide * Added documentation for storage features (Pull request [#156](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/156)) * Developer Guide - * Added design details for `add`, `remove` and `view` components [#128](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/128) + * Added design details for `add`, `remove` and `view` components (Pull request [#128](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/128)) * Added implementation details for the `add`, `remove`, `view`, `copy`, `sort` and `find` feature (Pull requests [#128](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/128), [#142](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/142)) * Added documentation for storage features (Pull request [#156](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/156)) From 96e337b5cc9222c9505d28c01432f10fbfa1c1aa Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 5 Nov 2024 17:23:33 +0800 Subject: [PATCH 446/619] Add Javadocs for getParticipants and getItems method --- .../seedu/manager/command/ViewCommand.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/command/ViewCommand.java b/src/main/java/seedu/manager/command/ViewCommand.java index 0a761904bc..3fd94fbd3f 100644 --- a/src/main/java/seedu/manager/command/ViewCommand.java +++ b/src/main/java/seedu/manager/command/ViewCommand.java @@ -19,8 +19,8 @@ public class ViewCommand extends Command { "Here are your items:"; private static final String INVALID_EVENT_MESSAGE = "Event not found!"; - protected String eventName; - private boolean isViewingParticipants; + private final String eventName; + private final boolean isViewingParticipants; /** * Constructs an ViewCommand object with the for the specified event. @@ -48,7 +48,14 @@ public void execute() { } } + /** + * Gets the list of {@link Participant}s for a specified {@link Event}. + * + * @param eventToView the specified {@link Event}. + * @return the list of {@link Participant}s stored in eventToView. + */ private String getParticipants(Event eventToView) { + assert eventToView != null : "eventToView cannot be null"; StringBuilder outputMessage = new StringBuilder( String.format(VIEW_PARTICIPANT_MESSAGE, eventToView.getParticipantCount(), eventName) + "\n"); int count = 1; @@ -60,7 +67,14 @@ private String getParticipants(Event eventToView) { } //@@author jemehgoh + /** + * Gets the list of {@link Item}s for a specified {@link Event}. + * + * @param eventToView the specified {@link Event}. + * @return the list of {@link Item}s stored in eventToView. + */ private String getItems(Event eventToView) { + assert eventToView != null : "eventToView cannot be null"; StringBuilder outputMessage = new StringBuilder( String.format(VIEW_ITEM_MESSAGE, eventToView.getItemCount(), eventName) + "\n"); int count = 1; From a3dfa138a60773f6a6a8f3f1c9e7ee848750be17 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 5 Nov 2024 18:21:43 +0800 Subject: [PATCH 447/619] Consolidate index out of bounds exception handling --- .../java/seedu/manager/parser/Parser.java | 291 +++++++++--------- 1 file changed, 145 insertions(+), 146 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 3e4e935574..f6b1a71d4b 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -146,7 +146,7 @@ public class Parser { private static final String ARROW = ">"; private static final String EVENT_REGEX = "(-e|-t|-v|-u)"; - private static final String EVENT_ATTRIBUTE_REGEX ="(-e|-name|-t|-v|-u)"; + private static final String EVENT_ATTRIBUTE_REGEX = "(-e|-name|-t|-v|-u)"; private static final String PARTICIPANT_REGEX = "(-p|-n|-email|-e)"; private static final String ITEM_REGEX = "(-m|-e)"; private static final String REMOVE_PARTICIPANT_REGEX = "(-p|-e)"; @@ -167,38 +167,44 @@ public class Parser { public Command parseCommand(String command) throws InvalidCommandException { String[] commandParts = command.trim().split(SPACE); String commandWord = commandParts[0].toLowerCase(); - - switch (commandWord) { - case MenuCommand.COMMAND_WORD: - return new MenuCommand(); - case ListCommand.COMMAND_WORD: - return new ListCommand(); - case AddCommand.COMMAND_WORD: - return parseAddCommand(command, commandParts); - case RemoveCommand.COMMAND_WORD: - return parseRemoveCommand(command, commandParts); - case EditParticipantCommand.COMMAND_WORD: - return parseEditCommand(command, commandParts); - case ViewCommand.COMMAND_WORD: - return parseViewCommand(command, commandParts); - case MarkCommand.COMMAND_WORD: - return parseMarkCommand(command, commandParts); - case CopyCommand.COMMAND_WORD: - return parseCopyCommand(command, commandParts); - case SortCommand.COMMAND_WORD: - return parseSortCommand(command, commandParts); - case FilterCommand.COMMAND_WORD: - return parseFilterCommand(command, commandParts); - case FindCommand.COMMAND_WORD: - return parseFindCommand(command, commandParts); - case ExitCommand.COMMAND_WORD: - return new ExitCommand(); - default: - throw new InvalidCommandException(INVALID_COMMAND_MESSAGE); + try { + switch (commandWord) { + case MenuCommand.COMMAND_WORD: + return new MenuCommand(); + case ListCommand.COMMAND_WORD: + return new ListCommand(); + case AddCommand.COMMAND_WORD: + return parseAddCommand(command, commandParts); + case RemoveCommand.COMMAND_WORD: + return parseRemoveCommand(command, commandParts); + case EditParticipantCommand.COMMAND_WORD: + return parseEditCommand(command, commandParts); + case ViewCommand.COMMAND_WORD: + return parseViewCommand(command, commandParts); + case MarkCommand.COMMAND_WORD: + return parseMarkCommand(command, commandParts); + case CopyCommand.COMMAND_WORD: + return parseCopyCommand(command, commandParts); + case SortCommand.COMMAND_WORD: + return parseSortCommand(command, commandParts); + case FilterCommand.COMMAND_WORD: + return parseFilterCommand(command, commandParts); + case FindCommand.COMMAND_WORD: + return parseFindCommand(command, commandParts); + case ExitCommand.COMMAND_WORD: + return new ExitCommand(); + default: + throw new InvalidCommandException(INVALID_COMMAND_MESSAGE); + } + } catch (IndexOutOfBoundsException exception) { + logger.log(WARNING, "Invalid command format"); + String errorMessage = getErrorMessage(commandWord); + throw new InvalidCommandException(errorMessage); } } //@@author LTK-1606 + /** * Parses the input string to create an {@link Command} object based on the provided command parts. *

    @@ -233,14 +239,11 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval logger.log(WARNING, "Invalid command format"); throw new InvalidCommandException(INVALID_ADD_MESSAGE); } - } catch (IndexOutOfBoundsException exception) { - logger.log(WARNING,"Invalid command format"); - throw new InvalidCommandException(INVALID_ADD_MESSAGE); } catch (DateTimeParseException exception) { - logger.log(WARNING,"Invalid date-time format"); + logger.log(WARNING, "Invalid date-time format"); throw new InvalidCommandException(INVALID_DATE_TIME_MESSAGE); } catch (IllegalArgumentException exception) { - logger.log(WARNING,"Invalid priority level status"); + logger.log(WARNING, "Invalid priority level status"); throw new InvalidCommandException(INVALID_PRIORITY_MESSAGE); } } @@ -251,8 +254,8 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval * @param input the given user input. * @return an {@link AddCommand} that adds an event with fields parsed from input. * @throws IndexOutOfBoundsException if not all fields are present. - * @throws DateTimeParseException if the time parameter is not entered in the correct format. - * @throws IllegalArgumentException if the priority parameter is not valid. + * @throws DateTimeParseException if the time parameter is not entered in the correct format. + * @throws IllegalArgumentException if the priority parameter is not valid. */ private Command getAddEventCommand(String input) throws IndexOutOfBoundsException, DateTimeParseException, IllegalArgumentException { @@ -268,6 +271,7 @@ private Command getAddEventCommand(String input) throws IndexOutOfBoundsExceptio } //@@author LTK-1606 + /** * Returns an {@link AddCommand} that adds a participant with fields parsed from a given user input. * @@ -275,7 +279,7 @@ private Command getAddEventCommand(String input) throws IndexOutOfBoundsExceptio * @return an {@link AddCommand} that adds a participant with fields parsed from input. * @throws IndexOutOfBoundsException if not all fields are present. */ - private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException { + private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException { String[] inputParts = input.split(PARTICIPANT_REGEX); logger.info("Creating AddCommand for participant with details: " + inputParts[1].trim() + ", " + inputParts[2].trim()); @@ -298,6 +302,7 @@ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsEx } //@@author jemehgoh + /** * Returns an {@link AddCommand} that adds an item with fields parsed from a given user input. * @@ -315,6 +320,7 @@ private Command getAddItemCommand(String input) throws IndexOutOfBoundsException } //@@author LTK-1606 + /** * Parses the input string to create a {@link Command} based on the provided command parts. * @@ -334,27 +340,23 @@ private Command getAddItemCommand(String input) throws IndexOutOfBoundsException */ private Command parseRemoveCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(RemoveCommand.COMMAND_WORD); - try { - String commandFlag = commandParts[1]; - - switch (commandFlag) { - case EVENT_FLAG: - return getRemoveEventCommand(input); - case PARTICIPANT_FLAG: - return getRemoveParticipantCommand(input); - case ITEM_FLAG: - return getRemoveItemCommand(input); - default: - logger.log(WARNING, "Invalid command format"); - throw new InvalidCommandException(INVALID_REMOVE_MESSAGE); - } - } catch (IndexOutOfBoundsException exception) { - logger.log(WARNING,"Invalid command format"); + String commandFlag = commandParts[1]; + + switch (commandFlag) { + case EVENT_FLAG: + return getRemoveEventCommand(input); + case PARTICIPANT_FLAG: + return getRemoveParticipantCommand(input); + case ITEM_FLAG: + return getRemoveItemCommand(input); + default: + logger.log(WARNING, "Invalid command format"); throw new InvalidCommandException(INVALID_REMOVE_MESSAGE); } } //@@author KuanHsienn + /** * Returns a {@link RemoveCommand} that removes an event, with a given user input. * @@ -368,6 +370,7 @@ private RemoveCommand getRemoveEventCommand(String input) throws IndexOutOfBound } //@@author LTK-1606 + /** * Returns a {@link RemoveCommand} that removes a participant, with fields from a given user input. * @@ -381,6 +384,7 @@ private RemoveCommand getRemoveParticipantCommand(String input) throws IndexOutO } //@@author jemehgoh + /** * Returns a {@link RemoveCommand} that removes an item, with fields from a given user input. * @@ -398,14 +402,7 @@ private RemoveCommand getRemoveItemCommand(String input) throws IndexOutOfBounds *

    * This method checks the command flag extracted from the command parts. If the command * flag is "-e", it splits the input string to create an EditCommand - * for editing an event. If the command flag is "-p", it creates an EditCommand - * for editing a participant's details. If neither flag is matched, it throws an InvalidCommandException - * with an error message. - *

    * - * @param input the input string containing the command details. - * @param commandParts an array of strings representing the parsed command parts, - * where the second element is the command flag. * @return a Command object representing the parsed command. * @throws InvalidCommandException if the flags are not matched in the command parts. */ @@ -425,9 +422,6 @@ private Command parseEditCommand(String input, String[] commandParts) throws Inv logger.log(WARNING, "Invalid command format"); throw new InvalidCommandException(INVALID_EDIT_MESSAGE); } - } catch (IndexOutOfBoundsException exception) { - logger.log(WARNING, "Invalid command format"); - throw new InvalidCommandException(INVALID_EDIT_MESSAGE); } catch (DateTimeParseException exception) { logger.log(WARNING, "Invalid date-time format"); throw new InvalidCommandException(INVALID_DATE_TIME_MESSAGE); @@ -438,6 +432,7 @@ private Command parseEditCommand(String input, String[] commandParts) throws Inv } //@@author KuanHsienn + /** * Returns an {@link EditParticipantCommand} that edits a participant with fields parsed from a given user input. * @@ -466,6 +461,7 @@ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsE } //@@author MatchaRRR + /** * Returns an {@link EditEventCommand} that edits an event with fields parsed from a given user input. * @@ -488,6 +484,7 @@ private Command getEditEventCommand(String input) throws IndexOutOfBoundsExcepti } //@@author MatchaRRR + /** * Returns an {@link EditItemCommand} that edits an event with fields parsed from a given user input. * @@ -495,7 +492,7 @@ private Command getEditEventCommand(String input) throws IndexOutOfBoundsExcepti * @return an {@link EditEventCommand} that edits an event with fields parsed from input. * @throws IndexOutOfBoundsException if not all fields are present. */ - private Command getEditItemCommand(String input){ + private Command getEditItemCommand(String input) { String[] inputParts = input.split(ITEM_REGEX); String itemName = inputParts[1].split(ARROW)[0].trim(); String itemNewName = inputParts[1].split(ARROW)[1].trim(); @@ -504,6 +501,7 @@ private Command getEditItemCommand(String input){ } //@@author KuanHsienn + /** * Checks if the phone number is valid. * @@ -515,6 +513,7 @@ private boolean isValidPhoneNumber(String phoneNumber) { } //@@author KuanHsienn + /** * Checks if the email address is valid. * @@ -526,6 +525,7 @@ private boolean isValidEmail(String email) { } //@@author glenn-chew + /** * Parses the input string to create a {@link Command} based on the provided command parts. * @@ -551,22 +551,23 @@ private Command parseViewCommand(String input, String[] commandParts) throws Inv return getViewCommand(input); } - logger.log(WARNING,"Invalid command format"); + logger.log(WARNING, "Invalid command format"); throw new InvalidCommandException(INVALID_VIEW_MESSAGE); } catch (IndexOutOfBoundsException exception) { - logger.log(WARNING,"Invalid command format"); + logger.log(WARNING, "Invalid command format"); throw new InvalidCommandException(INVALID_VIEW_MESSAGE); } } //@@author jemehgoh + /** * Returns a {@link ViewCommand} with fields parsed from a given user input. * * @param input the user input to be parsed. * @return a {@link ViewCommand} with fields parsed from input. * @throws IndexOutOfBoundsException if not all fields are present in input. - * @throws InvalidCommandException if the status parameter in input is invalid. + * @throws InvalidCommandException if the status parameter in input is invalid. */ private ViewCommand getViewCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException { String[] inputParts = input.split(VIEW_REGEX); @@ -583,7 +584,7 @@ private ViewCommand getViewCommand(String input) throws IndexOutOfBoundsExceptio /** * Returns a {@link MarkCommand} to mark an event, participant or item based on a given input string - * and command parts. + * and command parts. * * @param input the input string containing the command details. * @param commandParts an array of strings representing the parsed command parts, @@ -593,22 +594,17 @@ private ViewCommand getViewCommand(String input) throws IndexOutOfBoundsExceptio */ private Command parseMarkCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(MarkCommand.COMMAND_WORD); - try { - String commandFlag = commandParts[1]; - - switch (commandFlag) { - case EVENT_FLAG: - return getMarkEventCommand(input); - case PARTICIPANT_FLAG: - return getMarkParticipantCommand(input); - case ITEM_FLAG: - return getMarkItemCommand(input); - default: - logger.log(WARNING, "Invalid command format"); - throw new InvalidCommandException(INVALID_MARK_MESSAGE); - } - } catch (IndexOutOfBoundsException exception) { - logger.log(WARNING,"Invalid command format"); + String commandFlag = commandParts[1]; + + switch (commandFlag) { + case EVENT_FLAG: + return getMarkEventCommand(input); + case PARTICIPANT_FLAG: + return getMarkParticipantCommand(input); + case ITEM_FLAG: + return getMarkItemCommand(input); + default: + logger.log(WARNING, "Invalid command format"); throw new InvalidCommandException(INVALID_MARK_MESSAGE); } } @@ -618,7 +614,7 @@ private Command parseMarkCommand(String input, String[] commandParts) throws Inv * * @param input the given user input. * @return a {@link MarkEventCommand} with fields from input. - * @throws InvalidCommandException if the status parameter is invalid. + * @throws InvalidCommandException if the status parameter is invalid. * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getMarkEventCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException { @@ -642,7 +638,7 @@ private boolean toMarkEvent(String status) throws InvalidCommandException { } else if (status.equalsIgnoreCase("undone")) { return false; } else { - logger.log(WARNING,"Invalid status keyword"); + logger.log(WARNING, "Invalid status keyword"); throw new InvalidCommandException(INVALID_EVENT_STATUS_MESSAGE); } } @@ -652,7 +648,7 @@ private boolean toMarkEvent(String status) throws InvalidCommandException { * * @param input the given user input. * @return a {@link MarkParticipantCommand} with fields from input. - * @throws InvalidCommandException if the status parameter is invalid. + * @throws InvalidCommandException if the status parameter is invalid. * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getMarkParticipantCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException { @@ -678,7 +674,7 @@ private boolean toMarkParticipant(String status) throws InvalidCommandException } else if (status.equalsIgnoreCase("absent")) { return false; } else { - logger.log(WARNING,"Invalid status keyword"); + logger.log(WARNING, "Invalid status keyword"); throw new InvalidCommandException(INVALID_PARTICIPANT_STATUS_MESSAGE); } } @@ -688,7 +684,7 @@ private boolean toMarkParticipant(String status) throws InvalidCommandException * * @param input the given user input. * @return a {@link MarkItemCommand} with fields from input. - * @throws InvalidCommandException if the status parameter is invalid. + * @throws InvalidCommandException if the status parameter is invalid. * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getMarkItemCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException { @@ -713,7 +709,7 @@ private boolean toMarkItem(String status) throws InvalidCommandException { } else if (status.equalsIgnoreCase("unaccounted")) { return false; } else { - logger.log(WARNING,"Invalid status keyword"); + logger.log(WARNING, "Invalid status keyword"); throw new InvalidCommandException(INVALID_ITEM_STATUS_MESSAGE); } } @@ -727,31 +723,25 @@ private boolean toMarkItem(String status) throws InvalidCommandException { * two parts, an {@code InvalidCommandException} is thrown. *

    * - * @param input the full command input string to be parsed + * @param input the full command input string to be parsed * @param commandParts the parts of the command, typically split by whitespace * @return a {@code CopyCommand} object with the parsed source and destination * @throws InvalidCommandException if the command is missing required parts or has an invalid format */ private Command parseCopyCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(CopyCommand.COMMAND_WORD); + String commandInput = input.replaceFirst("^" + commandParts[0] + "\\s*", ""); + String[] inputParts = commandInput.split(ARROW); - try { - String commandInput = input.replaceFirst("^" + commandParts[0] + "\\s*", ""); - String[] inputParts = commandInput.split(ARROW); - - if (inputParts.length != 2) { - throw new InvalidCommandException(INVALID_COPY_MESSAGE); - } - - return new CopyCommand(inputParts[0].trim(), inputParts[1].trim()); - - } catch (IndexOutOfBoundsException exception) { - logger.log(WARNING,"Invalid command format"); + if (inputParts.length != 2) { throw new InvalidCommandException(INVALID_COPY_MESSAGE); } + + return new CopyCommand(inputParts[0].trim(), inputParts[1].trim()); } //@@author MatchaRRR + /** * Parses the input string to create a {@link Command} based on the provided command parts. * @@ -767,28 +757,23 @@ private Command parseCopyCommand(String input, String[] commandParts) throws Inv * @return a {@link Command} object representing the parsed command. * @throws InvalidCommandException if the flag is not matched. */ - private Command parseSortCommand(String input, String[] commandParts) throws InvalidCommandException{ + private Command parseSortCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(SortCommand.COMMAND_WORD); - try { - String[] inputParts = input.split("-by", 2); - if (inputParts.length < 2) { - throw new InvalidCommandException(INVALID_SORT_MESSAGE); - } - - String keyword = inputParts[1].trim(); - Set validKeywords = Set.of("name", "time", "priority"); - if (validKeywords.contains(keyword.toLowerCase())) { - return new SortCommand(keyword); - } - throw new InvalidCommandException(INVALID_SORT_KEYWORD_MESSAGE); - - } catch (IndexOutOfBoundsException exception) { - logger.log(WARNING, "Invalid command format"); + String[] inputParts = input.split("-by", 2); + if (inputParts.length < 2) { throw new InvalidCommandException(INVALID_SORT_MESSAGE); } + + String keyword = inputParts[1].trim(); + Set validKeywords = Set.of("name", "time", "priority"); + if (validKeywords.contains(keyword.toLowerCase())) { + return new SortCommand(keyword); + } + throw new InvalidCommandException(INVALID_SORT_KEYWORD_MESSAGE); } //@@author LTK-1606 + /** * Parses the input string and command parts to create a {@code FilterCommand} object. *

    @@ -807,22 +792,16 @@ private Command parseSortCommand(String input, String[] commandParts) throws Inv */ private Command parseFilterCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(FilterCommand.COMMAND_WORD); - - try { - String[] inputParts = input.split("(-e|-d|-t|-x|-u)"); - if (inputParts.length < 2) { - throw new InvalidCommandException(INVALID_FILTER_MESSAGE); - } - - Set validFlags = Set.of(EVENT_FLAG, "-d", "-t", "-x", "-u"); - if (validFlags.contains(commandParts[1].trim().toLowerCase())) { - return new FilterCommand(commandParts[1].trim().toLowerCase(), inputParts[1].trim()); - } - throw new InvalidCommandException(INVALID_FILTER_FLAG_MESSAGE); - } catch (IndexOutOfBoundsException exception) { - logger.log(WARNING,"Invalid command format"); + String[] inputParts = input.split("(-e|-d|-t|-x|-u)"); + if (inputParts.length < 2) { throw new InvalidCommandException(INVALID_FILTER_MESSAGE); } + + Set validFlags = Set.of(EVENT_FLAG, "-d", "-t", "-x", "-u"); + if (validFlags.contains(commandParts[1].trim().toLowerCase())) { + return new FilterCommand(commandParts[1].trim().toLowerCase(), inputParts[1].trim()); + } + throw new InvalidCommandException(INVALID_FILTER_FLAG_MESSAGE); } /** @@ -835,27 +814,47 @@ private Command parseFilterCommand(String input, String[] commandParts) throws I * an {@code InvalidCommandException} is thrown. *

    * - * @param input the full command input string to be parsed + * @param input the full command input string to be parsed * @param commandParts the parts of the command, typically split by whitespace * @return a {@code FindCommand} object with the parsed event and person names * @throws InvalidCommandException if the command is missing required flags or has an invalid format */ private Command parseFindCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(FindCommand.COMMAND_WORD); - try { - if (!input.contains(EVENT_FLAG) || !input.contains(PARTICIPANT_FLAG)) { - throw new InvalidCommandException(INVALID_FIND_FLAG_MESSAGE); - } - - String[] inputParts = input.split(FIND_REGEX); - if (inputParts.length < 3 || inputParts[1].isBlank()) { - throw new InvalidCommandException(INVALID_FIND_MESSAGE); - } + if (!input.contains(EVENT_FLAG) || !input.contains(PARTICIPANT_FLAG)) { + throw new InvalidCommandException(INVALID_FIND_FLAG_MESSAGE); + } - return new FindCommand(inputParts[1].trim(), inputParts[2].trim()); - } catch (IndexOutOfBoundsException exception) { - logger.log(WARNING,"Invalid command format"); + String[] inputParts = input.split(FIND_REGEX); + if (inputParts.length < 3 || inputParts[1].isBlank()) { throw new InvalidCommandException(INVALID_FIND_MESSAGE); } + + return new FindCommand(inputParts[1].trim(), inputParts[2].trim()); + } + + private String getErrorMessage(String commandWord) { + switch (commandWord) { + case AddCommand.COMMAND_WORD: + return INVALID_ADD_MESSAGE; + case RemoveCommand.COMMAND_WORD: + return INVALID_REMOVE_MESSAGE; + case EditParticipantCommand.COMMAND_WORD: + return INVALID_EDIT_MESSAGE; + case ViewCommand.COMMAND_WORD: + return INVALID_VIEW_MESSAGE; + case MarkCommand.COMMAND_WORD: + return INVALID_MARK_MESSAGE; + case CopyCommand.COMMAND_WORD: + return INVALID_COPY_MESSAGE; + case SortCommand.COMMAND_WORD: + return INVALID_SORT_MESSAGE; + case FilterCommand.COMMAND_WORD: + return INVALID_FILTER_MESSAGE; + case FindCommand.COMMAND_WORD: + return INVALID_FIND_MESSAGE; + default: + return INVALID_COMMAND_MESSAGE; + } } } From facc3336c90755bd6441a3a3b4b1a426095c5e40 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Tue, 5 Nov 2024 21:12:09 +0800 Subject: [PATCH 448/619] Update UserGuide.md --- docs/UserGuide.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 9b2cbe16cf..22eae2e5f3 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -34,8 +34,8 @@ Here are the possible commands: menu: List commands list: List events. add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. -add -m ITEM -e EVENT: Add an item to an even. add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. +add -m ITEM -e EVENT: Add an item to an even. remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. @@ -288,9 +288,8 @@ If the above format or parameter constraints are not followed, the `Event`, `Par * List possible commands: `menu` * List all events: `list` -* View all participants for an event: `view -e EVENT` -* Add event: `add -e EVENT -t TIME -v VENUE` -* Add participant to an event: `add -p PARTICIPANT -e EVENT` +* Add event: `add -e EVENT -t TIME -v VENUE -u PRIORITY` +* Add participant to an event: `add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT` * Add item to an event: `add -m ITEM -e EVENT` * Remove event: `remove -e EVENT` * Remove participant from an event: `remove -p PARTICIPANT -e EVENT` From bb1b8438a81632415ee426775a1f3386cf8d9215 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Tue, 5 Nov 2024 21:12:45 +0800 Subject: [PATCH 449/619] Update MenuCommand.java --- src/main/java/seedu/manager/command/MenuCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 464ab9b2ac..e179498c79 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -12,8 +12,8 @@ public class MenuCommand extends Command { menu: List commands. list: List events. add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. - add -m ITEM -e EVENT: Add an item to an even. add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. + add -m ITEM -e EVENT: Add an item to an even. remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. From 904592ee53499a6b747aab93c98bb22b1ea6814c Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Tue, 5 Nov 2024 21:15:25 +0800 Subject: [PATCH 450/619] Update EXPECTED.TXT --- text-ui-test/EXPECTED.TXT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 0f281dc1b9..b97ce60fe7 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -8,8 +8,8 @@ Enter a command: Here are the possible commands: menu: List commands. list: List events. add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. -add -m ITEM -e EVENT: Add an item to an even. add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. +add -m ITEM -e EVENT: Add an item to an even. remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. From 78e6402b46039ec3465f93ff4aeb5b8842643f97 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Tue, 5 Nov 2024 21:22:31 +0800 Subject: [PATCH 451/619] Update EXPECTED.TXT --- text-ui-test/EXPECTED.TXT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 0f281dc1b9..b97ce60fe7 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -8,8 +8,8 @@ Enter a command: Here are the possible commands: menu: List commands. list: List events. add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. -add -m ITEM -e EVENT: Add an item to an even. add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. +add -m ITEM -e EVENT: Add an item to an even. remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. From 7c29014e3261b06057b9ebc07b3d0cac68ed3d6c Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Tue, 5 Nov 2024 21:48:26 +0800 Subject: [PATCH 452/619] add some detailed information --- docs/UserGuide.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 6fca5850a4..402eb5d003 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -134,9 +134,9 @@ Format: Examples: -* `edit -p Mary -n 9182 3213 -email mary@gmail.com -e CS2113` -* `edit -e CS2113 -name CS2113T -t 2024-10-25 16:00 -v LT16 -u HIGH` -* `edit -m balloon > cake -e anniversary` +* `edit -e CS2113 -name CS2113T -t 2024-10-25 16:00 -v LT16 -u HIGH` edits the information of the event CS2113. +* `edit -p Mary -n 9182 3213 -email mary@gmail.com -e CS2113` edits the contact information of the Mary in CS2113. +* `edit -m balloon > cake -e anniversary` edits the item balloon in the anniversary to cake. ### Mark an event as done: `mark` @@ -176,7 +176,7 @@ Examples: * `mark -m Origami paper -e Origami workshop -s done` marks the item `Origami paper` in the `Origami workshop` event as accounted. * `mark -m Origami paper -e Origami workshop -s undone` marks the item `Origami paper` in the `Origami workshop` event as unaccounted. -* + ### Copies participant list: `copy` Copies the participant list from one event to another event. From d66b9d7e57dcf9b72a2f075029ca7c4ee1bb79be Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Tue, 5 Nov 2024 22:07:30 +0800 Subject: [PATCH 453/619] add some details --- docs/DeveloperGuide.md | 31 ++++++++++-------- .../EditEventCommandSequenceDiagram.puml | 6 +--- .../EditItemCommandSequenceDiagram.puml | 5 +-- ...EditParticipantCommandSequenceDiagram.puml | 5 +-- .../EditEventCommandSequenceDiagram.png | Bin 36456 -> 32976 bytes .../images/EditItemCommandSequenceDiagram.png | Bin 33140 -> 29838 bytes .../EditParticipantCommandSequenceDiagram.png | Bin 38140 -> 34689 bytes 7 files changed, 20 insertions(+), 27 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d08a4e8d37..66365345e2 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -363,9 +363,9 @@ The `edit` feature allows users to edit the information of an event, or the info This feature is implemented in the `EditEventCommand` `EditParticipantCommand` `EditItemCommand` classes, which extends the `Command` base class and utilises the flag to determine the edit content. The feature comprises three operations, namely: -* `EditEventCommand#execute`, which edits the information of an event. -* `EditParticipantCommand#execute`, which edits the information of a participant in an event. -* `EditItemCommand#execute`, which edits the information of an item in an event. +* `EditEventCommand#execute()`, which edits the information of an event. +* `EditParticipantCommand#execute()`, which edits the information of a participant in an event. +* `EditItemCommand#execute()`, which edits the information of an item in an event. The above three operations override the `Command#execute()` operation in `Command`, and is invoked when the latter operation is called. @@ -374,20 +374,23 @@ and is invoked when the latter operation is called. Given below is an example usage scenario and the behaviour of the `edit` feature at each step: 1. The user enters the command edit followed by a flag (-e/-p/-m) to edit the information of event/participant/item. -2. If the flag is `-e`, `EditEventCommand` calls `EditEventCommand#execute`, which calls `EventList#editEvent` to edit the event. -3. If the flag is `-e`, `EditParticipatCommand` calls `EditParticipatCommand#execute`, which calls `EventList#editParticipant` to edit the participant. -4. If the flag is `-e`, `EditItemCommand` calls `EditItemCommand#execute`, which calls `EventList#editItem` to edit the item. -5. After Editing, a success message `outputMessage` will be printed. +2. If the flag is `-e`, `EditEventCommand` calls `EditEventCommand#execute()`, which calls `EventList#editEvent()` to edit the event. + It looks for the event, modifies the information and returns true if the event exits. Otherwise, it returns false. +3. If the flag is `-p`, `EditParticipantCommand` calls `EditParticipantCommand#execute()`, which calls `EventList#editParticipant()` to edit the participant. + It looks for the event and the specified participant, and then modifies the contact information and returns true if the participant is found. Otherwise, it returns false. +4. If the flag is `-m`, `EditItemCommand` calls `EditItemCommand#execute()`, which calls `EventList#editItem()` to edit the item. + It looks for the event and the specified item, modifies the item and returns true if the item is found. Otherwise, it returns false. +5. After Editing, a message `outputMessage` will be printed. -The interactions between components of `EditEventCommand#execute` are shown in the **Sequence Diagram** below: +The interactions between components of `EditEventCommand#execute()` are shown in the **Sequence Diagram** below: -The interactions between components of `EditParticipantCommand#execute` are shown in the **Sequence Diagram** below: +The interactions between components of `EditParticipantCommand#execute()` are shown in the **Sequence Diagram** below: -The interactions between components of `EditItemCommand#execute` are shown in the **Sequence Diagram** below: +The interactions between components of `EditItemCommand#execute()` are shown in the **Sequence Diagram** below: @@ -397,16 +400,16 @@ The `mark/unmark` feature allows users to mark and unmark `Event`s in the `Event which extends `Command`, and three child classes, `MarkEventCommand`, `MarkParticipantCommand`, and `MarkItemCommand`. The feature comprises three operations, namely: -* `MarkEventCommand#execute`, which marks an event as done or not done. -* `MarkParticipantCommand#execute`, which marks a participant as present or absent. -* `MarkItemCommand#execute`, which marks an item as accounted or unaccounted. +* `MarkEventCommand#execute()`, which marks an event as done or not done. +* `MarkParticipantCommand#execute()`, which marks a participant as present or absent. +* `MarkItemCommand#execute()`, which marks an item as accounted or unaccounted. The above three operations override the `Command#execute()` operation in `Command`, and is invoked when the latter operation is called. #### Feature implementation -Given below is an example usage scenario for `MarkEventCommand#execute`, and how it behaves at each step. +Given below is an example usage scenario for `MarkEventCommand#execute()`, and how it behaves at each step. 1. The user adds an event `Event 1` to the event list. The mark status for `Event 1` is initially `false` or not done, as shown in the **Object Diagram** below: diff --git a/docs/diagrams/EditEventCommandSequenceDiagram.puml b/docs/diagrams/EditEventCommandSequenceDiagram.puml index d44748eb67..1850d8b391 100644 --- a/docs/diagrams/EditEventCommandSequenceDiagram.puml +++ b/docs/diagrams/EditEventCommandSequenceDiagram.puml @@ -23,15 +23,11 @@ loop for each event in eventList activate event event --> eventList : updated deactivate event - eventList --> editCommand : true + eventList --> editCommand : :boolean end end -alt no match found - eventList --> editCommand : false -end - editCommand --> main : message deactivate eventList deactivate editCommand diff --git a/docs/diagrams/EditItemCommandSequenceDiagram.puml b/docs/diagrams/EditItemCommandSequenceDiagram.puml index cd8debf8d9..e7fbb5e45c 100644 --- a/docs/diagrams/EditItemCommandSequenceDiagram.puml +++ b/docs/diagrams/EditItemCommandSequenceDiagram.puml @@ -23,15 +23,12 @@ loop for each event in eventList activate event event --> eventList : item updated deactivate event - eventList --> editCommand : true + eventList --> editCommand : :boolean end end -alt no match found - eventList --> editCommand : false -end editCommand --> main : message deactivate eventList diff --git a/docs/diagrams/EditParticipantCommandSequenceDiagram.puml b/docs/diagrams/EditParticipantCommandSequenceDiagram.puml index 1302f73046..6ca348932f 100644 --- a/docs/diagrams/EditParticipantCommandSequenceDiagram.puml +++ b/docs/diagrams/EditParticipantCommandSequenceDiagram.puml @@ -23,14 +23,11 @@ activate event event --> eventList : updated deactivate event - eventList --> editCommand : true + eventList --> editCommand : :boolean end end - alt no match found - eventList --> editCommand : false - end editCommand --> main : message deactivate eventList diff --git a/docs/images/EditEventCommandSequenceDiagram.png b/docs/images/EditEventCommandSequenceDiagram.png index 6c2b42ed30e6d01f18953ea57c64cb6ee2d87d3b..4675bb37d55b804ab87006be31c8eada2d123c3f 100644 GIT binary patch delta 9968 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 H_JjWcl=9m+ delta 13496 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 arA;kuqgwYx7Db4EE1gz7m45P{TmKL6IJrLn diff --git a/docs/images/EditItemCommandSequenceDiagram.png b/docs/images/EditItemCommandSequenceDiagram.png index f4aace13941803003935f2aafc37650145690bb9..1ce842c2186a9ab54ca8e2db85ff9d20f4136107 100644 GIT binary patch delta 6021 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 delta 9349 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 Zpfg9`s%C<}C^~*XMp7P;F7fc`{{uKY@*4mE diff --git a/docs/images/EditParticipantCommandSequenceDiagram.png b/docs/images/EditParticipantCommandSequenceDiagram.png index 208ec0c3bffee37ed9747c4b0752bfabbc8b738b..547ea0dede8b5273b84c9331e3b04ea2623fb0b2 100644 GIT binary patch delta 11629 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 F{{YwQU5Wqz delta 15108 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 JFS~T-{{xZ*qyzu} From ccf7db663e690c8ee196f99571e9822d439539f2 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 5 Nov 2024 23:03:08 +0800 Subject: [PATCH 454/619] Update Javadocs --- .../java/seedu/manager/parser/Parser.java | 55 ++++++++----------- 1 file changed, 22 insertions(+), 33 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index f6b1a71d4b..34c07b0114 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -204,7 +204,6 @@ public Command parseCommand(String command) throws InvalidCommandException { } //@@author LTK-1606 - /** * Parses the input string to create an {@link Command} object based on the provided command parts. *

    @@ -220,10 +219,12 @@ public Command parseCommand(String command) throws InvalidCommandException { * @param commandParts an array of strings representing the parsed command parts, where the second element * is the command flag, indicating the type of command * @return a {@link Command} object representing the parsed command - * @throws InvalidCommandException if the command flag is invalid, or if there are missing or improperly + * @throws InvalidCommandException if the command flag is invalid, or if there are improperly * formatted input details + * @throws IndexOutOfBoundsException if not all parameters are present */ - public Command parseAddCommand(String input, String[] commandParts) throws InvalidCommandException { + public Command parseAddCommand(String input, String[] commandParts) throws InvalidCommandException, + IndexOutOfBoundsException { assert commandParts[0].equalsIgnoreCase(AddCommand.COMMAND_WORD); try { String commandFlag = commandParts[1]; @@ -278,6 +279,7 @@ private Command getAddEventCommand(String input) throws IndexOutOfBoundsExceptio * @param input the given user input. * @return an {@link AddCommand} that adds a participant with fields parsed from input. * @throws IndexOutOfBoundsException if not all fields are present. + * @throws InvalidCommandException if the input phone number and email are not in the correct format. */ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException { String[] inputParts = input.split(PARTICIPANT_REGEX); @@ -302,7 +304,6 @@ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsEx } //@@author jemehgoh - /** * Returns an {@link AddCommand} that adds an item with fields parsed from a given user input. * @@ -320,7 +321,6 @@ private Command getAddItemCommand(String input) throws IndexOutOfBoundsException } //@@author LTK-1606 - /** * Parses the input string to create a {@link Command} based on the provided command parts. * @@ -337,8 +337,10 @@ private Command getAddItemCommand(String input) throws IndexOutOfBoundsException * where the second element is the command flag. * @return a {@link Command} object representing the parsed command. * @throws InvalidCommandException if the flags are not matched in the command parts. + * @throws IndexOutOfBoundsException if not all fields are present. */ - private Command parseRemoveCommand(String input, String[] commandParts) throws InvalidCommandException { + private Command parseRemoveCommand(String input, String[] commandParts) throws InvalidCommandException, + IndexOutOfBoundsException { assert commandParts[0].equalsIgnoreCase(RemoveCommand.COMMAND_WORD); String commandFlag = commandParts[1]; @@ -356,7 +358,6 @@ private Command parseRemoveCommand(String input, String[] commandParts) throws I } //@@author KuanHsienn - /** * Returns a {@link RemoveCommand} that removes an event, with a given user input. * @@ -432,7 +433,6 @@ private Command parseEditCommand(String input, String[] commandParts) throws Inv } //@@author KuanHsienn - /** * Returns an {@link EditParticipantCommand} that edits a participant with fields parsed from a given user input. * @@ -461,7 +461,6 @@ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsE } //@@author MatchaRRR - /** * Returns an {@link EditEventCommand} that edits an event with fields parsed from a given user input. * @@ -501,7 +500,6 @@ private Command getEditItemCommand(String input) { } //@@author KuanHsienn - /** * Checks if the phone number is valid. * @@ -513,7 +511,6 @@ private boolean isValidPhoneNumber(String phoneNumber) { } //@@author KuanHsienn - /** * Checks if the email address is valid. * @@ -525,7 +522,6 @@ private boolean isValidEmail(String email) { } //@@author glenn-chew - /** * Parses the input string to create a {@link Command} based on the provided command parts. * @@ -541,10 +537,11 @@ private boolean isValidEmail(String email) { * where the second element is the command flag. * @return a {@link Command} object representing the parsed command. * @throws InvalidCommandException if the flag is not matched. + * @throws IndexOutOfBoundsException if not all fields are present. */ - private Command parseViewCommand(String input, String[] commandParts) throws InvalidCommandException { + private Command parseViewCommand(String input, String[] commandParts) throws InvalidCommandException, + IndexOutOfBoundsException { assert commandParts[0].equalsIgnoreCase(ViewCommand.COMMAND_WORD); - try { String commandFlag = commandParts[1]; if (commandFlag.equals(EVENT_FLAG)) { @@ -553,10 +550,6 @@ private Command parseViewCommand(String input, String[] commandParts) throws Inv logger.log(WARNING, "Invalid command format"); throw new InvalidCommandException(INVALID_VIEW_MESSAGE); - } catch (IndexOutOfBoundsException exception) { - logger.log(WARNING, "Invalid command format"); - throw new InvalidCommandException(INVALID_VIEW_MESSAGE); - } } //@@author jemehgoh @@ -590,9 +583,11 @@ private ViewCommand getViewCommand(String input) throws IndexOutOfBoundsExceptio * @param commandParts an array of strings representing the parsed command parts, * where the second element is the command flag. * @return a {@link MarkCommand} with fields parsed from input. - * @throws InvalidCommandException if the flag is not matched. + * @throws InvalidCommandException if the flag is not matched, or if the mark status is invalid. + * @throws IndexOutOfBoundsException if not all fields are present. */ - private Command parseMarkCommand(String input, String[] commandParts) throws InvalidCommandException { + private Command parseMarkCommand(String input, String[] commandParts) throws InvalidCommandException, + IndexOutOfBoundsException { assert commandParts[0].equalsIgnoreCase(MarkCommand.COMMAND_WORD); String commandFlag = commandParts[1]; @@ -657,7 +652,6 @@ private Command getMarkParticipantCommand(String input) throws InvalidCommandExc String eventName = inputParts[2].trim(); boolean isToMark = toMarkParticipant(inputParts[3].trim()); - return new MarkParticipantCommand(participantName, eventName, isToMark); } @@ -741,7 +735,6 @@ private Command parseCopyCommand(String input, String[] commandParts) throws Inv } //@@author MatchaRRR - /** * Parses the input string to create a {@link Command} based on the provided command parts. * @@ -773,7 +766,6 @@ private Command parseSortCommand(String input, String[] commandParts) throws Inv } //@@author LTK-1606 - /** * Parses the input string and command parts to create a {@code FilterCommand} object. *

    @@ -833,26 +825,23 @@ private Command parseFindCommand(String input, String[] commandParts) throws Inv return new FindCommand(inputParts[1].trim(), inputParts[2].trim()); } + //@@author jemehgoh + /** + * Returns an error message corresponding to the given command word. + * + * @param commandWord the command word entered. + * @return an error message corresponding to commandWord. + */ private String getErrorMessage(String commandWord) { switch (commandWord) { case AddCommand.COMMAND_WORD: return INVALID_ADD_MESSAGE; case RemoveCommand.COMMAND_WORD: return INVALID_REMOVE_MESSAGE; - case EditParticipantCommand.COMMAND_WORD: - return INVALID_EDIT_MESSAGE; case ViewCommand.COMMAND_WORD: return INVALID_VIEW_MESSAGE; case MarkCommand.COMMAND_WORD: return INVALID_MARK_MESSAGE; - case CopyCommand.COMMAND_WORD: - return INVALID_COPY_MESSAGE; - case SortCommand.COMMAND_WORD: - return INVALID_SORT_MESSAGE; - case FilterCommand.COMMAND_WORD: - return INVALID_FILTER_MESSAGE; - case FindCommand.COMMAND_WORD: - return INVALID_FIND_MESSAGE; default: return INVALID_COMMAND_MESSAGE; } From aa0ab8380420d95bd55897982835a75452dbe396 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 5 Nov 2024 23:16:26 +0800 Subject: [PATCH 455/619] Move date-time and priority exception handling up to parseCommand --- .../java/seedu/manager/parser/Parser.java | 115 +++++++++--------- 1 file changed, 56 insertions(+), 59 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 34c07b0114..2e536d52d2 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -200,6 +200,12 @@ public Command parseCommand(String command) throws InvalidCommandException { logger.log(WARNING, "Invalid command format"); String errorMessage = getErrorMessage(commandWord); throw new InvalidCommandException(errorMessage); + } catch (DateTimeParseException exception) { + logger.log(WARNING, "Invalid date-time format"); + throw new InvalidCommandException(INVALID_DATE_TIME_MESSAGE); + } catch (IllegalArgumentException exception) { + logger.log(WARNING, "Invalid priority level status"); + throw new InvalidCommandException(INVALID_PRIORITY_MESSAGE); } } @@ -219,33 +225,27 @@ public Command parseCommand(String command) throws InvalidCommandException { * @param commandParts an array of strings representing the parsed command parts, where the second element * is the command flag, indicating the type of command * @return a {@link Command} object representing the parsed command - * @throws InvalidCommandException if the command flag is invalid, or if there are improperly - * formatted input details - * @throws IndexOutOfBoundsException if not all parameters are present + * @throws InvalidCommandException if the command flag is invalid, or if there are improperly + * formatted input details + * @throws IndexOutOfBoundsException if not all parameters are present. + * @throws DateTimeParseException if the time parameter is not entered in the correct format. + * @throws IllegalArgumentException if the priority parameter is not valid. */ public Command parseAddCommand(String input, String[] commandParts) throws InvalidCommandException, - IndexOutOfBoundsException { + IndexOutOfBoundsException, DateTimeParseException, IllegalArgumentException { assert commandParts[0].equalsIgnoreCase(AddCommand.COMMAND_WORD); - try { - String commandFlag = commandParts[1]; - - switch (commandFlag) { - case EVENT_FLAG: - return getAddEventCommand(input); - case PARTICIPANT_FLAG: - return getAddParticipantCommand(input); - case ITEM_FLAG: - return getAddItemCommand(input); - default: - logger.log(WARNING, "Invalid command format"); - throw new InvalidCommandException(INVALID_ADD_MESSAGE); - } - } catch (DateTimeParseException exception) { - logger.log(WARNING, "Invalid date-time format"); - throw new InvalidCommandException(INVALID_DATE_TIME_MESSAGE); - } catch (IllegalArgumentException exception) { - logger.log(WARNING, "Invalid priority level status"); - throw new InvalidCommandException(INVALID_PRIORITY_MESSAGE); + String commandFlag = commandParts[1]; + + switch (commandFlag) { + case EVENT_FLAG: + return getAddEventCommand(input); + case PARTICIPANT_FLAG: + return getAddParticipantCommand(input); + case ITEM_FLAG: + return getAddItemCommand(input); + default: + logger.log(WARNING, "Invalid command format"); + throw new InvalidCommandException(INVALID_ADD_MESSAGE); } } @@ -272,14 +272,13 @@ private Command getAddEventCommand(String input) throws IndexOutOfBoundsExceptio } //@@author LTK-1606 - /** * Returns an {@link AddCommand} that adds a participant with fields parsed from a given user input. * * @param input the given user input. * @return an {@link AddCommand} that adds a participant with fields parsed from input. * @throws IndexOutOfBoundsException if not all fields are present. - * @throws InvalidCommandException if the input phone number and email are not in the correct format. + * @throws InvalidCommandException if the input phone number and email are not in the correct format. */ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException { String[] inputParts = input.split(PARTICIPANT_REGEX); @@ -336,7 +335,7 @@ private Command getAddItemCommand(String input) throws IndexOutOfBoundsException * @param commandParts an array of strings representing the parsed command parts, * where the second element is the command flag. * @return a {@link Command} object representing the parsed command. - * @throws InvalidCommandException if the flags are not matched in the command parts. + * @throws InvalidCommandException if the flags are not matched in the command parts. * @throws IndexOutOfBoundsException if not all fields are present. */ private Command parseRemoveCommand(String input, String[] commandParts) throws InvalidCommandException, @@ -358,6 +357,7 @@ private Command parseRemoveCommand(String input, String[] commandParts) throws I } //@@author KuanHsienn + /** * Returns a {@link RemoveCommand} that removes an event, with a given user input. * @@ -371,7 +371,6 @@ private RemoveCommand getRemoveEventCommand(String input) throws IndexOutOfBound } //@@author LTK-1606 - /** * Returns a {@link RemoveCommand} that removes a participant, with fields from a given user input. * @@ -385,7 +384,6 @@ private RemoveCommand getRemoveParticipantCommand(String input) throws IndexOutO } //@@author jemehgoh - /** * Returns a {@link RemoveCommand} that removes an item, with fields from a given user input. * @@ -399,40 +397,35 @@ private RemoveCommand getRemoveItemCommand(String input) throws IndexOutOfBounds } /** - * Parses the input string to create an Command object based on the provided command parts. + * Parses the input string to create a Command object based on the provided command parts. *

    * This method checks the command flag extracted from the command parts. If the command * flag is "-e", it splits the input string to create an EditCommand * * @return a Command object representing the parsed command. * @throws InvalidCommandException if the flags are not matched in the command parts. + * @throws DateTimeParseException if the time parameter is not entered in the correct format. + * @throws IllegalArgumentException if the priority parameter is not valid. */ private Command parseEditCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(EditParticipantCommand.COMMAND_WORD); - try { - String commandFlag = commandParts[1]; - - switch (commandFlag) { - case EVENT_FLAG: - return getEditEventCommand(input); - case PARTICIPANT_FLAG: - return getEditParticipantCommand(input); - case ITEM_FLAG: - return getEditItemCommand(input); - default: - logger.log(WARNING, "Invalid command format"); - throw new InvalidCommandException(INVALID_EDIT_MESSAGE); - } - } catch (DateTimeParseException exception) { - logger.log(WARNING, "Invalid date-time format"); - throw new InvalidCommandException(INVALID_DATE_TIME_MESSAGE); - } catch (IllegalArgumentException exception) { - logger.log(WARNING, "Invalid priority level status"); - throw new InvalidCommandException(INVALID_PRIORITY_MESSAGE); + String commandFlag = commandParts[1]; + + switch (commandFlag) { + case EVENT_FLAG: + return getEditEventCommand(input); + case PARTICIPANT_FLAG: + return getEditParticipantCommand(input); + case ITEM_FLAG: + return getEditItemCommand(input); + default: + logger.log(WARNING, "Invalid command format"); + throw new InvalidCommandException(INVALID_EDIT_MESSAGE); } } //@@author KuanHsienn + /** * Returns an {@link EditParticipantCommand} that edits a participant with fields parsed from a given user input. * @@ -467,6 +460,8 @@ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsE * @param input the given user input. * @return an {@link EditEventCommand} that edits an event with fields parsed from input. * @throws IndexOutOfBoundsException if not all fields are present. + * @throws DateTimeParseException if the time parameter is not entered in the correct format. + * @throws IllegalArgumentException if the priority parameter is not valid. */ private Command getEditEventCommand(String input) throws IndexOutOfBoundsException, DateTimeParseException, IllegalArgumentException { @@ -536,24 +531,23 @@ private boolean isValidEmail(String email) { * @param commandParts an array of strings representing the parsed command parts, * where the second element is the command flag. * @return a {@link Command} object representing the parsed command. - * @throws InvalidCommandException if the flag is not matched. + * @throws InvalidCommandException if the flag is not matched. * @throws IndexOutOfBoundsException if not all fields are present. */ private Command parseViewCommand(String input, String[] commandParts) throws InvalidCommandException, IndexOutOfBoundsException { assert commandParts[0].equalsIgnoreCase(ViewCommand.COMMAND_WORD); - String commandFlag = commandParts[1]; + String commandFlag = commandParts[1]; - if (commandFlag.equals(EVENT_FLAG)) { - return getViewCommand(input); - } + if (commandFlag.equals(EVENT_FLAG)) { + return getViewCommand(input); + } - logger.log(WARNING, "Invalid command format"); - throw new InvalidCommandException(INVALID_VIEW_MESSAGE); + logger.log(WARNING, "Invalid command format"); + throw new InvalidCommandException(INVALID_VIEW_MESSAGE); } //@@author jemehgoh - /** * Returns a {@link ViewCommand} with fields parsed from a given user input. * @@ -583,7 +577,7 @@ private ViewCommand getViewCommand(String input) throws IndexOutOfBoundsExceptio * @param commandParts an array of strings representing the parsed command parts, * where the second element is the command flag. * @return a {@link MarkCommand} with fields parsed from input. - * @throws InvalidCommandException if the flag is not matched, or if the mark status is invalid. + * @throws InvalidCommandException if the flag is not matched, or if the mark status is invalid. * @throws IndexOutOfBoundsException if not all fields are present. */ private Command parseMarkCommand(String input, String[] commandParts) throws InvalidCommandException, @@ -735,6 +729,7 @@ private Command parseCopyCommand(String input, String[] commandParts) throws Inv } //@@author MatchaRRR + /** * Parses the input string to create a {@link Command} based on the provided command parts. * @@ -838,6 +833,8 @@ private String getErrorMessage(String commandWord) { return INVALID_ADD_MESSAGE; case RemoveCommand.COMMAND_WORD: return INVALID_REMOVE_MESSAGE; + case EditEventCommand.COMMAND_WORD: + return INVALID_EDIT_MESSAGE; case ViewCommand.COMMAND_WORD: return INVALID_VIEW_MESSAGE; case MarkCommand.COMMAND_WORD: From 10659b959b702154f7ca918836fde6afb4d50fd8 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 5 Nov 2024 23:24:32 +0800 Subject: [PATCH 456/619] Extract magic strings from mark command --- .../manager/command/MarkEventCommand.java | 2 ++ .../manager/command/MarkItemCommand.java | 2 ++ .../command/MarkParticipantCommand.java | 2 ++ .../java/seedu/manager/parser/Parser.java | 22 +++++++++---------- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/main/java/seedu/manager/command/MarkEventCommand.java b/src/main/java/seedu/manager/command/MarkEventCommand.java index 85e04ae3e2..11a84e378a 100644 --- a/src/main/java/seedu/manager/command/MarkEventCommand.java +++ b/src/main/java/seedu/manager/command/MarkEventCommand.java @@ -9,6 +9,8 @@ * Represents an executable mark command for marking events. */ public class MarkEventCommand extends MarkCommand { + public static final String EVENT_MARK_STATUS = "done"; + public static final String EVENT_UNMARK_STATUS = "undone"; private static final String EVENT_MARK_MESSAGE = "Event marked as done"; private static final String EVENT_UNMARK_MESSAGE = "Event marked not done"; diff --git a/src/main/java/seedu/manager/command/MarkItemCommand.java b/src/main/java/seedu/manager/command/MarkItemCommand.java index dcef6d2548..edb4838438 100644 --- a/src/main/java/seedu/manager/command/MarkItemCommand.java +++ b/src/main/java/seedu/manager/command/MarkItemCommand.java @@ -9,6 +9,8 @@ * Represents an executable mark command for marking items. */ public class MarkItemCommand extends MarkCommand { + public static final String ITEM_MARK_STATUS = "accounted"; + public static final String ITEM_UNMARK_STATUS = "unaccounted"; private static final String ITEM_MARK_MESSAGE = "Item accounted for."; private static final String ITEM_UNMARK_MESSAGE = "Item unaccounted for."; private static final String INVALID_ITEM_MESSAGE = "Item not found!"; diff --git a/src/main/java/seedu/manager/command/MarkParticipantCommand.java b/src/main/java/seedu/manager/command/MarkParticipantCommand.java index d0f8eea1d9..74ba5e4de2 100644 --- a/src/main/java/seedu/manager/command/MarkParticipantCommand.java +++ b/src/main/java/seedu/manager/command/MarkParticipantCommand.java @@ -9,6 +9,8 @@ * Represents an executable mark command for marking participants. */ public class MarkParticipantCommand extends MarkCommand { + public static final String PARTICIPANT_MARK_STATUS = "present"; + public static final String PARTICIPANT_UNMARK_STATUS = "absent"; private static final String PARTICIPANT_MARK_MESSAGE = "Participant marked present."; private static final String PARTICIPANT_UNMARK_MESSAGE = "Participant marked absent."; private static final String INVALID_PARTICIPANT_MESSAGE = "Participant not found!"; diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 2e536d52d2..29aa70e5ce 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -425,7 +425,6 @@ private Command parseEditCommand(String input, String[] commandParts) throws Inv } //@@author KuanHsienn - /** * Returns an {@link EditParticipantCommand} that edits a participant with fields parsed from a given user input. * @@ -478,7 +477,6 @@ private Command getEditEventCommand(String input) throws IndexOutOfBoundsExcepti } //@@author MatchaRRR - /** * Returns an {@link EditItemCommand} that edits an event with fields parsed from a given user input. * @@ -615,16 +613,16 @@ private Command getMarkEventCommand(String input) throws InvalidCommandException } /** - * Returns true if status is "done", returns false if status is "undone". + * Returns true if status is to mark, returns false if status is to unmark. * * @param status the status parameter. - * @return true if status is "done", returns false if status is "undone". + * @return true if status is to mark, returns false if status is to unmark. * @throws InvalidCommandException if status is invalid. */ private boolean toMarkEvent(String status) throws InvalidCommandException { - if (status.equalsIgnoreCase("done")) { + if (status.equalsIgnoreCase(MarkEventCommand.EVENT_MARK_STATUS)) { return true; - } else if (status.equalsIgnoreCase("undone")) { + } else if (status.equalsIgnoreCase(MarkEventCommand.EVENT_UNMARK_STATUS)) { return false; } else { logger.log(WARNING, "Invalid status keyword"); @@ -650,16 +648,16 @@ private Command getMarkParticipantCommand(String input) throws InvalidCommandExc } /** - * Returns true if status is "present", returns false if status is "absent". + * Returns true if status is to mark, returns false if status is to unmark. * * @param status the status parameter. - * @return true if status is "present", returns false if status is "absent". + * @return true if status is to mark, returns false if status is to unmark. * @throws InvalidCommandException if status is invalid. */ private boolean toMarkParticipant(String status) throws InvalidCommandException { - if (status.equalsIgnoreCase("present")) { + if (status.equalsIgnoreCase(MarkParticipantCommand.PARTICIPANT_MARK_STATUS)) { return true; - } else if (status.equalsIgnoreCase("absent")) { + } else if (status.equalsIgnoreCase(MarkParticipantCommand.PARTICIPANT_UNMARK_STATUS)) { return false; } else { logger.log(WARNING, "Invalid status keyword"); @@ -692,9 +690,9 @@ private Command getMarkItemCommand(String input) throws InvalidCommandException, * @throws InvalidCommandException if status is invalid. */ private boolean toMarkItem(String status) throws InvalidCommandException { - if (status.equalsIgnoreCase("accounted")) { + if (status.equalsIgnoreCase(MarkItemCommand.ITEM_MARK_STATUS)) { return true; - } else if (status.equalsIgnoreCase("unaccounted")) { + } else if (status.equalsIgnoreCase(MarkItemCommand.ITEM_UNMARK_STATUS)) { return false; } else { logger.log(WARNING, "Invalid status keyword"); From 62b92ea7092fc2df63c4339affd48da4e15a4397 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 5 Nov 2024 23:30:43 +0800 Subject: [PATCH 457/619] Update shadowJar name in line with manual testing --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index d43eab3686..65536db965 100644 --- a/build.gradle +++ b/build.gradle @@ -34,7 +34,7 @@ application { } shadowJar { - archiveBaseName.set("duke") + archiveBaseName.set("manager") archiveClassifier.set("") } From 8e53e66d42b4ffb937b93db7ae8cb712026b7927 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Wed, 6 Nov 2024 02:04:46 +0800 Subject: [PATCH 458/619] Edit method names for filtering by name --- .../seedu/manager/command/FilterCommand.java | 111 +++++++++++++----- .../java/seedu/manager/event/EventList.java | 4 +- 2 files changed, 81 insertions(+), 34 deletions(-) diff --git a/src/main/java/seedu/manager/command/FilterCommand.java b/src/main/java/seedu/manager/command/FilterCommand.java index 622ab94f8a..e8e6280871 100644 --- a/src/main/java/seedu/manager/command/FilterCommand.java +++ b/src/main/java/seedu/manager/command/FilterCommand.java @@ -15,9 +15,11 @@ * The filter command will filter out and display all events with the specified details */ public class FilterCommand extends Command { + private EventList filteredEvents; + public static final String COMMAND_WORD = "filter"; - private static final String FILTER_BY_KEYWORD_MESSAGE = "Events successfully filtered by name!"; + private static final String FILTER_BY_NAME_MESSAGE = "Events successfully filtered by name!"; private static final String FILTER_BY_DATE_MESSAGE = "Events successfully filtered by date!"; private static final String FILTER_BY_TIME_MESSAGE = "Events successfully filtered by time!"; private static final String FILTER_BY_DATE_TIME_MESSAGE = "Events successfully filtered by date-time!"; @@ -58,48 +60,23 @@ public FilterCommand(String flag, String filterWord) { @Override public void execute() { StringBuilder outputMessage = new StringBuilder(); - EventList filteredEvents = new EventList(); + filteredEvents = new EventList(); switch (flag) { case "-e": - String lowerCaseKeyword = filterWord.toLowerCase(); - filteredEvents = eventList.filterByKeyword(lowerCaseKeyword); - outputMessage.append(FILTER_BY_KEYWORD_MESSAGE + "\n"); + outputMessage.append(filterEventsByName()); break; case "-d": - try { - LocalDate eventDate = LocalDate.parse(filterWord, - DateTimeFormatter.ofPattern("yyyy-MM-dd")); - filteredEvents = eventList.filterByDate(eventDate); - outputMessage.append(FILTER_BY_DATE_MESSAGE + "\n"); - } catch (DateTimeException exception) { - outputMessage.append(INVALID_DATE_FORMAT_MESSAGE); - } + outputMessage.append(filterEventsByDate()); break; case "-t": - try { - LocalTime eventTime = LocalTime.parse(filterWord, - DateTimeFormatter.ofPattern("HH:mm")); - filteredEvents = eventList.filterByTime(eventTime); - outputMessage.append(FILTER_BY_TIME_MESSAGE + "\n"); - } catch (DateTimeException exception) { - outputMessage.append(INVALID_TIME_FORMAT_MESSAGE); - } + outputMessage.append(filterEventsByTime()); break; case "-x": - try { - LocalDateTime eventDateTime = LocalDateTime.parse(filterWord, - DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); - filteredEvents = eventList.filterByDateTime(eventDateTime); - outputMessage.append(FILTER_BY_DATE_TIME_MESSAGE + "\n"); - } catch (DateTimeException exception) { - outputMessage.append(INVALID_DATE_TIME_FORMAT_MESSAGE); - } + outputMessage.append(filterEventsByDateTime()); break; case "-u": - Priority priority = Priority.valueOf(filterWord.trim().toUpperCase()); - filteredEvents = eventList.filterByPriority(priority); - outputMessage.append(FILTER_BY_PRIORITY_MESSAGE + "\n"); + outputMessage.append(filterEventsByPriority()); break; default: break; @@ -110,4 +87,74 @@ public void execute() { } this.message = outputMessage.toString(); } + + /** + * Filters the even list by name and updates {@code filteredEvents} with the filtered list. + * + * @return successful message for filter by name. + */ + private String filterEventsByName() { + String lowerCaseKeyword = filterWord.toLowerCase(); + filteredEvents = eventList.filterByName(lowerCaseKeyword); + return FILTER_BY_NAME_MESSAGE + "\n"; + } + + /** + * Filters the even list by date and updates {@code filteredEvents} with the filtered list. + * + * @return successful message for filter by date or an error message if date is invalid. + */ + private String filterEventsByDate() { + try { + LocalDate eventDate = LocalDate.parse(filterWord, + DateTimeFormatter.ofPattern("yyyy-MM-dd")); + filteredEvents = eventList.filterByDate(eventDate); + return FILTER_BY_DATE_MESSAGE + "\n"; + } catch (DateTimeException exception) { + return INVALID_DATE_FORMAT_MESSAGE; + } + } + + /** + * Filters the even list by time and updates {@code filteredEvents} with the filtered list. + * + * @return successful message for filter by time or an error message if time is invalid. + */ + private String filterEventsByTime() { + try { + LocalTime eventTime = LocalTime.parse(filterWord, + DateTimeFormatter.ofPattern("HH:mm")); + filteredEvents = eventList.filterByTime(eventTime); + return FILTER_BY_TIME_MESSAGE + "\n"; + } catch (DateTimeException exception) { + return INVALID_TIME_FORMAT_MESSAGE; + } + } + + /** + * Filters the even list by date-time and updates {@code filteredEvents} with the filtered list. + * + * @return successful message for filter by date-time or an error message if date is invalid. + */ + private String filterEventsByDateTime() { + try { + LocalDateTime eventDateTime = LocalDateTime.parse(filterWord, + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); + filteredEvents = eventList.filterByDateTime(eventDateTime); + return FILTER_BY_DATE_TIME_MESSAGE + "\n"; + } catch (DateTimeException exception) { + return INVALID_DATE_TIME_FORMAT_MESSAGE; + } + } + + /** + * Filters the even list by priority and updates {@code filteredEvents} with the filtered list. + * + * @return successful message for filter by priority + */ + private String filterEventsByPriority() { + Priority priority = Priority.valueOf(filterWord.trim().toUpperCase()); + filteredEvents = eventList.filterByPriority(priority); + return FILTER_BY_PRIORITY_MESSAGE + "\n"; + } } diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index e73dde3255..faae07e050 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -370,12 +370,12 @@ public EventList filterByPriority(Priority priority) { //@@author glenn-chew /** - * Filters events in the event list to display only events that event name contains the keyword. + * Filters events in the event list to display only events with names containing the keyword. * * @param keyword the keyword that the event is filtered by. * @return an {@code EventList} containing only events that the keyword can be found in the event name. */ - public EventList filterByKeyword(String keyword) { + public EventList filterByName(String keyword) { EventList filteredList = new EventList(); for (Event event : eventList) { From 50a61e79ed60e3c1f3f87f0f6baaf20bd362cfb8 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Wed, 6 Nov 2024 02:05:40 +0800 Subject: [PATCH 459/619] Update developer guide with updated filter command --- docs/DeveloperGuide.md | 12 ++++--- .../FilterCommandSequenceDiagram.puml | 34 ++++++++++++++++-- docs/images/FilterCommandSequenceDiagram2.png | Bin 0 -> 66965 bytes 3 files changed, 39 insertions(+), 7 deletions(-) create mode 100644 docs/images/FilterCommandSequenceDiagram2.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 3c453818b9..0c5720fe2b 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -493,11 +493,13 @@ and is invoked when the latter operation is called. The `FilterCommand` class is constructed with a specified filter flag and keywords. It then performs filter operations based on both the flag and keywords. Given below is an example usage scenario and the behaviour of the `filter` feature at each step: -1. The user enters the command filter followed by a flag (`-e: name, -t: time, or -u: priority`) and their search keyword e.g. `filter -e work` to specify the filtering criterion +1. The user enters the command filter followed by a flag (`-e: name, -d : date, -t: time, -x date-time, or -u: priority`) and their search keyword e.g. `filter -e work` to specify the filtering criterion 2. `FilterCommand` calls `FilterCommand#execute`, which based on the flag invokes one of the following 3 methods - * `filterByName()` - Finds events containing given name (keyword) - * `filterByTime()` - Finds events occurring during given time (keyword) - * `filterByPriority` - Finds events with given priority (keyword) + * `filterEventsByName()` - Finds events containing given name (keyword) + * `filterEventsByDate()` - Finds events occurring during given date (keyword) + * `filterEventsByTime()` - Finds events occurring during given time (keyword) + * `filterEventsByDateTime()` - Finds events occurring during given date-time (keyword) + * `filterEventsByPriority()` - Finds events with given priority (keyword) After filtering, a success message is appended to `outputMessage` which indicates the filtering criterion used 3. The final filtered list is then formatted and appended to `outputMessage`, @@ -505,7 +507,7 @@ Given below is an example usage scenario and the behaviour of the `filter` featu The interactions between components of `FilterCommand#execute` are shown in the **Sequence Diagram** below: - + ### Find feature diff --git a/docs/diagrams/FilterCommandSequenceDiagram.puml b/docs/diagrams/FilterCommandSequenceDiagram.puml index 9e1ba69a30..24506405c5 100644 --- a/docs/diagrams/FilterCommandSequenceDiagram.puml +++ b/docs/diagrams/FilterCommandSequenceDiagram.puml @@ -13,20 +13,50 @@ FEL --> FC deactivate FEL alt filter by name - FC -> FEL: filterByName() + FC -> FC : filterEventsByName() + activate FC + FC -> FEL: filterByName(...) activate FEL FEL --> FC: return filtered list deactivate FEL + FC --> FC : :String + deactivate FC +else filter by date + FC -> FC : filterEventsByDate() + activate FC + FC -> FEL: filterByDate(...) + activate FEL + FEL --> FC: return filtered list + deactivate FEL + FC --> FC : :String + deactivate FC else filter by time - FC -> FEL: filterByTime() + FC -> FC : filterEventsByTime() + activate FC + FC -> FEL: filterByTime(...) activate FEL FEL --> FC: return filtered list deactivate FEL + FC --> FC : :String + deactivate FC +else filter by date-time + FC -> FC : filterEventsByDateTime() + activate FC + FC -> FEL: filterByDateTime(...) + activate FEL + FEL --> FC: return filtered list + deactivate FEL + FC --> FC : :String + deactivate FC else filter by priority + FC -> FC: filterEventsByPriority() + activate FC FC -> FEL: filterByPriority(...) activate FEL FEL --> FC: return filtered list deactivate FEL + FC --> FC : :String + deactivate FC end alt FC --> Main: Display FilteredEventList and filter result message diff --git a/docs/images/FilterCommandSequenceDiagram2.png b/docs/images/FilterCommandSequenceDiagram2.png new file mode 100644 index 0000000000000000000000000000000000000000..f56cbb84306bb68e7fde0eb06462967f7d0a61ad GIT binary patch literal 66965 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 literal 0 HcmV?d00001 From 844b002f3eeb70573740802afb131c39bcb15df9 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Wed, 6 Nov 2024 02:06:18 +0800 Subject: [PATCH 460/619] Update user guide with updated filter command --- docs/UserGuide.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 8c754c214e..fa9ec55fdb 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -213,14 +213,16 @@ Examples: Filters out events from the event list based on name, date-time or priority level. -Format: `filter -e/-t/-u DESCRIPTION` +Format: `filter -e/-d/-t/-x/-u DESCRIPTION` -* `-e/-t/-u` are the flags for name, date-time and priority level respectively. +* `-e/-d/-t/-x/-u` are the flags for name, date-time and priority level respectively. * `DESCRIPTION` is only case-insensitive when filtering using the priority level flag. Examples: * `filter -e workshop` will output all events with `workshop` in their event name. -* `filter -t 2024` will output all events that are occurring in `2024`. +* `filter -d 2024-03-02` will output all events that are occurring in `2024-03-02`. +* `filter -t 12:00` will output all events that are occurring at `12:00`. +* `filter -x 2024-03-02 12:00` will output all events that are occurring at `2024-03-02 12:00`. * `filter -u high` with output all events with priority level `HIGH`. ### Find participant: `find` From 584d062b9a39f2b221d3c794e98d768b5df7d71d Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Wed, 6 Nov 2024 02:15:46 +0800 Subject: [PATCH 461/619] Edit order of declared variables --- src/main/java/seedu/manager/command/FilterCommand.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/command/FilterCommand.java b/src/main/java/seedu/manager/command/FilterCommand.java index e8e6280871..b713e36df8 100644 --- a/src/main/java/seedu/manager/command/FilterCommand.java +++ b/src/main/java/seedu/manager/command/FilterCommand.java @@ -15,8 +15,6 @@ * The filter command will filter out and display all events with the specified details */ public class FilterCommand extends Command { - private EventList filteredEvents; - public static final String COMMAND_WORD = "filter"; private static final String FILTER_BY_NAME_MESSAGE = "Events successfully filtered by name!"; @@ -40,6 +38,7 @@ public class FilterCommand extends Command { protected String flag; protected String filterWord; + private EventList filteredEvents; /** * Constructs a {@code FilterCommand} with the specified flag and filter word. From 7fba40bdf287fe5b19c5234d4d06f32d0deb6917 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 6 Nov 2024 16:22:01 +0800 Subject: [PATCH 462/619] Fix user guide bugs --- docs/UserGuide.md | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index fa9ec55fdb..09b76307a3 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -20,7 +20,7 @@ Enter a command: ### Notes about the command format: -* Words in `UPPER_CASE` represent parameters that are to be supplied by the user. +* Words in `UPPER_CASE` represent parameters that are to be supplied by the user (unless otherwise specified). * Parameters listed have to be entered in the specified order. * Extraneous parameters for commands that do not take in parameters (e.g. `list`) will be ignored. @@ -131,7 +131,7 @@ Examples: ### Edit the information of an event or a participant: `edit` -Edit the information of an event/participant/item. +Edits the information of an event/participant/item. Format: @@ -141,9 +141,9 @@ Format: Examples: -* `edit -e CS2113 -name CS2113T -t 2024-10-25 16:00 -v LT16 -u HIGH` edits the information of the event CS2113. -* `edit -p Mary -n 9182 3213 -email mary@gmail.com -e CS2113` edits the contact information of the Mary in CS2113. -* `edit -m balloon > cake -e anniversary` edits the item balloon in the anniversary to cake. +* `edit -e CS2113 -name CS2113T -t 2024-10-25 16:00 -v LT16 -u HIGH` edits the information of the event `CS2113`. +* `edit -p Mary -n 9182 3213 -email mary@gmail.com -e CS2113` edits the contact information of the participant `Mary` in the event `CS2113`. +* `edit -m balloon > cake -e anniversary` edits the item `balloon` in the event `anniversary` to `cake`. ### Mark an event as done: `mark` @@ -190,7 +190,7 @@ Copies the participant list from one event to another event. Format: `copy FROM_EVENT > TO_EVENT` -* Both events must already exist +* Both events must already exist. Examples: @@ -271,7 +271,7 @@ The program data is stored in the following format: For Events ``` -EVENT,EVENT_NAME,TIME,VENUE,PRIORITY,STATUS +"EVENT",EVENT_NAME,TIME,VENUE,PRIORITY,STATUS ``` * `TIME` must be in the format `yyyy-mm-dd hh:mm`. @@ -281,10 +281,10 @@ EVENT,EVENT_NAME,TIME,VENUE,PRIORITY,STATUS For Participants: ``` -PARTICIPANT,PARTICIPANT_NAME,NUMBER,EMAIL,EVENT,STATUS +"PARTICIPANT",PARTICIPANT_NAME,NUMBER,EMAIL,EVENT,STATUS ``` -* `NUMBER` must be a 8-digit number +* `NUMBER` must be an 8-digit number * `EMAIL` must follow a similar format such as example@gmail.com * An entry for the `Event` corresponding to `EVENT` must be present in `data.csv`. * `STATUS` must be either `Y` or `N` @@ -292,12 +292,14 @@ PARTICIPANT,PARTICIPANT_NAME,NUMBER,EMAIL,EVENT,STATUS For Items: ``` -ITEM,ITEM_NAME,EVENT,STATUS +"ITEM",ITEM_NAME,EVENT,STATUS ``` * An entry for the `Event` corresponding to `EVENT` must be present in `data.csv`. * `STATUS` must be either `Y` or `N` +The first field of each entry (`"EVENT"`, `"PARTICIPANT"`, `"ITEM"`) corresponds to the object type being stored, and can only take the values specified in the above format line. + All fields added to `data.csv` must also be enclosed within double quotation marks (`" "`) to be properly parsed. If the above format or parameter constraints are not followed, the `Event`, `Participant` or `Item` corresponding to the file line will be ignored upon program startup. From 23dd6d552b635a8e2dcd1b5f0323f17746762049 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 6 Nov 2024 16:48:25 +0800 Subject: [PATCH 463/619] Fix UG and diagram bugs --- docs/DeveloperGuide.md | 36 +++++++++--------- .../AddParticipantEventSequenceDiagram.puml | 2 +- docs/diagrams/ArchitectureSequence.puml | 2 +- .../CommandParsingSequenceDiagram.puml | 2 +- docs/diagrams/CommandSequenceDiagram.puml | 26 ++++++------- docs/diagrams/CopyCommandSequenceDiagram.puml | 10 ++--- .../EditItemCommandSequenceDiagram.puml | 2 +- ...EditParticipantCommandSequenceDiagram.puml | 2 +- docs/diagrams/FindCommandSequenceDiagram.puml | 4 +- docs/diagrams/MarkEventSequenceDiagram.puml | 2 +- .../MarkParticipantSequenceDiagram.puml | 4 +- .../StorageLoadingSequenceDiagram.puml | 26 ++++++------- .../StorageSavingSequenceDiagram.puml | 26 ++++++------- docs/diagrams/ViewEventSequenceDiagram.puml | 6 +-- docs/diagrams/ViewItemSequenceDiagram.puml | 4 +- .../ViewParticipantSequenceDiagram.puml | 4 +- .../AddParticipantEventSequenceDiagram.png | Bin 34930 -> 34674 bytes docs/images/ArchitectureSequenceDiagram.png | Bin 19191 -> 19156 bytes docs/images/CommandParsingSequenceDiagram.png | Bin 18798 -> 18969 bytes docs/images/CommandSequenceDiagram.png | Bin 28622 -> 27692 bytes docs/images/CopyCommandSequenceDiagram.png | Bin 38098 -> 37376 bytes .../images/EditItemCommandSequenceDiagram.png | Bin 29838 -> 30444 bytes .../EditParticipantCommandSequenceDiagram.png | Bin 34689 -> 35298 bytes docs/images/FindCommandSequenceDiagram.png | Bin 24527 -> 24136 bytes docs/images/MarkEventObjectDiagram1.png | Bin 5586 -> 5119 bytes docs/images/MarkEventSequenceDiagram.png | Bin 14395 -> 14589 bytes .../images/MarkParticipantSequenceDiagram.png | Bin 28036 -> 27201 bytes docs/images/StorageLoadingSequenceDiagram.png | Bin 52158 -> 53678 bytes docs/images/StorageSavingSequenceDiagram.png | Bin 90801 -> 91000 bytes docs/images/ViewEventSequenceDiagram.png | Bin 22033 -> 21991 bytes docs/images/ViewItemSequenceDiagram.png | Bin 19449 -> 19272 bytes .../images/ViewParticipantSequenceDiagram.png | Bin 23355 -> 23482 bytes 32 files changed, 80 insertions(+), 78 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index f02c0c71ec..8db9e598fd 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -34,7 +34,7 @@ The overall program execution is as follows: 3. The program enters the command loop upon invocation of the `runCommandLoop()` method. 4. In the command loop, the program gets, parses and executes commands entered by the user. 5. `Storage` saves the event data in `Event` after the execution of each user command. -6. The program exits the command loop once `IsGettingCommands` is set to `false`. +6. The program exits the command loop once the `exit` command is entered by the user. @@ -45,6 +45,8 @@ The above **Sequence Diagram** shows how the different components of the system * `Storage` refers to the `Storage` class in `Storage`. * `EventList` refers to the list of events in `Event` which the program's event data is stored (see the _Event component_ section for more details). +The **Sequence Diagrams** within the reference frames in the above diagram can be found in the _Command component_ and _Saving and loading of data_ sections. + ### UI component @@ -222,9 +224,9 @@ It is implemented in the `AddCommand` class which extends the base `Command` cla The feature has three operations, namely: -1. `EventList#AddParticipantToEvent()`, which adds a `Participant` to an `Event` in the `EventList`. -2. `EventList#AddItemFromEvent()`, which adds an `Item` to an `Event` in the `EventList`. -3. `EventList#AddEvent()`, which adds an `Event` to the `EventList`. +1. `EventList#addParticipantToEvent()`, which adds a `Participant` to an `Event` in the `EventList`. +2. `EventList#addItemFromEvent()`, which adds an `Item` to an `Event` in the `EventList`. +3. `EventList#addEvent()`, which adds an `Event` to the `EventList`. These three operations are invoked from `AddCommand` through `AddCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, and is invoked when the latter operation is called. @@ -237,9 +239,9 @@ In `AddCommand#execute()`, one operation is selected based on the values stored The operation selection logic is as follows: -1. If `participantName` is not `null`, `EventList#AddParticipantToEvent()` will be invoked. -2. Otherwise, if `itemName` is not `null`, `EventList#AddItemToEvent()` will be invoked. -3. Otherwise, `EventList#AddEvent()` will be invoked. +1. If `participantName` is not `null`, `EventList#addParticipantToEvent()` will be invoked. +2. Otherwise, if `itemName` is not `null`, `EventList#addItemToEvent()` will be invoked. +3. Otherwise, `EventList#addEvent()` will be invoked. This operation selection logic is executed upon the invocation of `AddCommand#execute()`. @@ -247,7 +249,7 @@ The interactions between components during the operation selection in `AddComman -The `EventList#AddParticipantToEvent()` operation works as follows: +The `EventList#addParticipantToEvent()` operation works as follows: 1. `EventList` gets the `Event` with the event name `eventName` from the list of `Event`s stored within it. 2. In the selected `Event`, `Event` checks if there is a `Participant` with the name in `participantName` in the list of `Participant`s. If there is one, it throws a `DuplicateDataException`. @@ -255,14 +257,14 @@ The `EventList#AddParticipantToEvent()` operation works as follows: If an `Event` with a name matching `eventName` is not found, the operation returns `false` to indicate that the operation was unsuccessful. Otherwise, the operation returns `true`. -The interactions between components during the execution of the `EventList#AddParticipantToEvent()` operation are show in the **Sequence Diagram** below: +The interactions between components during the execution of the `EventList#addParticipantToEvent()` operation are show in the **Sequence Diagram** below: -The operation logic for `EventList#AddItemToEvent()` is similar to that for `EventList#AddParticipantToEvent()`, and will not be elaborated upon. +The operation logic for `EventList#addItemToEvent()` is similar to that for `EventList#addParticipantToEvent()`, and will not be elaborated upon. -The interactions between components during the execution of the `EventList#AddEvent()` operation are show in the **Sequence Diagram** below: +The interactions between components during the execution of the `EventList#addEvent()` operation are show in the **Sequence Diagram** below: 1. `EventList` checks if there is a `Event` with the name in `eventName` in its list of `Events`s. If there is one, it throws a `DuplicateDataException`. 3. Otherwise, `EventList` creates a new `Event` object with the parameters passed to it, and adds it to the `Event` list. @@ -284,9 +286,9 @@ It is implemented in the `RemoveCommand` class which extends the base `Command` The feature has three operations, namely: -1. `EventList#RemoveParticipantFromEvent()`, which removes a `Participant` from an `Event` in the `EventList`. -2. `EventList#RemoveItemFromEvent()`, which removes an `Item` from an `Event` in the `EventList`. -3. `EventList#RemoveEvent()`, which removes an `Event` from the `EventList`. +1. `EventList#removeParticipantFromEvent()`, which removes a `Participant` from an `Event` in the `EventList`. +2. `EventList#removeItemFromEvent()`, which removes an `Item` from an `Event` in the `EventList`. +3. `EventList#removeEvent()`, which removes an `Event` from the `EventList`. These three operations are invoked from `RemoveCommand` through `RemoveCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, and is invoked when the latter operation is called. @@ -297,7 +299,7 @@ The interactions between components during the operation selection in `RemoveCom -The `EventList#RemoveParticipantFromEvent()` operation works as follows: +The `EventList#removeParticipantFromEvent()` operation works as follows: 1. `EventList` gets the `Event` with the event name `eventName` from the list of `Event`s stored within it. 2. The selected `Event` compares the names of the `Participant`s in its list of `Participant`s with `participantName`. @@ -311,9 +313,9 @@ The interactions between components during the above operation are shown in the -The operation logic for `EventList#RemoveItemFromEvent()` is similar to that for `EventList#RemoveParticipantFromEvent()`. +The operation logic for `EventList#removeItemFromEvent()` is similar to that for `EventList#removeParticipantFromEvent()`. -The `EventList#RemoveEvent()` operation works as follows: +The `EventList#removeEvent()` operation works as follows: 1. `EventList` compares the names of the `Event`s in its list of `Event`s with `eventName`. 2. If an `Event` with a matching name is found, the `Event` is removed from the `Event` list of the `EventList`. diff --git a/docs/diagrams/AddParticipantEventSequenceDiagram.puml b/docs/diagrams/AddParticipantEventSequenceDiagram.puml index 42faf987fe..fcdb3794a8 100644 --- a/docs/diagrams/AddParticipantEventSequenceDiagram.puml +++ b/docs/diagrams/AddParticipantEventSequenceDiagram.puml @@ -22,7 +22,7 @@ group sd Add participant to event else else event -> participant : Participant(String, String, String) activate participant - return participant : Participant + return participant:Participant event -> participantList : add(participant) activate participantList diff --git a/docs/diagrams/ArchitectureSequence.puml b/docs/diagrams/ArchitectureSequence.puml index 826c4ca0d3..d55af2b7d4 100644 --- a/docs/diagrams/ArchitectureSequence.puml +++ b/docs/diagrams/ArchitectureSequence.puml @@ -16,7 +16,7 @@ ref over main, storage, events : Loading of events list main -> main : runCommandLoop() activate main -loop isGettingCommands +loop exit command not entered ref over main, events : Command parsing and execution ref over main, storage, events : Saving of events list end diff --git a/docs/diagrams/CommandParsingSequenceDiagram.puml b/docs/diagrams/CommandParsingSequenceDiagram.puml index 9f94ab237c..b51ed455b1 100644 --- a/docs/diagrams/CommandParsingSequenceDiagram.puml +++ b/docs/diagrams/CommandParsingSequenceDiagram.puml @@ -23,7 +23,7 @@ activate xyzCommand return :XYZCommand return -parser --> main : command : Command +parser --> main : command:Command deactivate parser @enduml \ No newline at end of file diff --git a/docs/diagrams/CommandSequenceDiagram.puml b/docs/diagrams/CommandSequenceDiagram.puml index a3e2b5875f..048bdf21d6 100644 --- a/docs/diagrams/CommandSequenceDiagram.puml +++ b/docs/diagrams/CommandSequenceDiagram.puml @@ -3,42 +3,42 @@ hide footbox participant ":Main" as main -participant ":Ui" as ui UI_COLOUR -participant ":Parser" as parser PARSER_COLOUR -participant ":XYZCommand" as xyzCommand COMMAND_COLOUR +participant ":Ui" as ui +participant ":Parser" as parser +participant ":XYZCommand" as xyzCommand main -> ui : getCommand() -activate ui UI_COLOUR +activate ui -return userCommandText : String +return userCommandText:String main -> parser : parseCommand(userCommandText) -activate parser PARSER_COLOUR +activate parser create xyzCommand parser -> xyzCommand : XYZCommand(...) -activate xyzCommand COMMAND_COLOUR -xyzCommand --> parser : XYZCommand +activate xyzCommand +xyzCommand --> parser deactivate xyzCommand -parser --> main : command : Command +parser --> main : command:Command deactivate parser main -> xyzCommand : setData(events) -activate xyzCommand COMMAND_COLOUR +activate xyzCommand xyzCommand --> main deactivate xyzCommand main -> xyzCommand : execute() -activate xyzCommand COMMAND_COLOUR +activate xyzCommand xyzCommand --> main deactivate xyzCommand main -> ui : showOutputToUser(command) -activate ui UI_COLOUR +activate ui ui -> xyzCommand : getMessage() -activate xyzCommand COMMAND_COLOUR +activate xyzCommand xyzCommand --> ui deactivate xyzCommand diff --git a/docs/diagrams/CopyCommandSequenceDiagram.puml b/docs/diagrams/CopyCommandSequenceDiagram.puml index 31672aba0a..5cd272b03f 100644 --- a/docs/diagrams/CopyCommandSequenceDiagram.puml +++ b/docs/diagrams/CopyCommandSequenceDiagram.puml @@ -3,26 +3,26 @@ hide footbox participant ":Main" as Main participant ":CopyCommand" as CC participant ":EventList" as EL -participant "eventFrom :Event" as SourceEvent -participant "eventTo :Event" as DestEvent +participant "eventFrom:Event" as SourceEvent +participant "eventTo:Event" as DestEvent Main -> CC: execute() activate CC CC -> EL: getEventByName(copyTo) activate EL -EL --> CC: return eventTo +EL --> CC: eventTo:Event deactivate EL CC -> EL: getEventByName(copyFrom) activate EL -EL --> CC: return eventFrom +EL --> CC: eventFrom:Event deactivate EL opt Both Events Found CC -> SourceEvent: getParticipantList() activate SourceEvent - SourceEvent --> CC: return participantList: ArrayList + SourceEvent --> CC: participantList:ArrayList deactivate SourceEvent opt Participant List Not Empty diff --git a/docs/diagrams/EditItemCommandSequenceDiagram.puml b/docs/diagrams/EditItemCommandSequenceDiagram.puml index e7fbb5e45c..17e1576e56 100644 --- a/docs/diagrams/EditItemCommandSequenceDiagram.puml +++ b/docs/diagrams/EditItemCommandSequenceDiagram.puml @@ -15,7 +15,7 @@ activate eventList loop for each event in eventList eventList -> event : getEventName() activate event - event --> eventList : eventName + event --> eventList : eventName:String deactivate event alt eventName matches diff --git a/docs/diagrams/EditParticipantCommandSequenceDiagram.puml b/docs/diagrams/EditParticipantCommandSequenceDiagram.puml index 6ca348932f..3e96030d2e 100644 --- a/docs/diagrams/EditParticipantCommandSequenceDiagram.puml +++ b/docs/diagrams/EditParticipantCommandSequenceDiagram.puml @@ -15,7 +15,7 @@ loop for each event in eventList eventList -> event : getEventName() activate event - event --> eventList : eventName + event --> eventList : eventName:String deactivate event alt eventName matches diff --git a/docs/diagrams/FindCommandSequenceDiagram.puml b/docs/diagrams/FindCommandSequenceDiagram.puml index 0d7fced834..10d2797e9f 100644 --- a/docs/diagrams/FindCommandSequenceDiagram.puml +++ b/docs/diagrams/FindCommandSequenceDiagram.puml @@ -9,13 +9,13 @@ Main -> FC: execute() activate FC FC -> EL: getEventByName(eventName) activate EL -EL --> FC: return event +EL --> FC: event:Event deactivate EL opt Event found FC -> E: findParticipants(personName) activate E - E --> FC: return participantList: ArrayList + E --> FC: participantList:ArrayList deactivate E end opt diff --git a/docs/diagrams/MarkEventSequenceDiagram.puml b/docs/diagrams/MarkEventSequenceDiagram.puml index 3407585946..66ea440fc8 100644 --- a/docs/diagrams/MarkEventSequenceDiagram.puml +++ b/docs/diagrams/MarkEventSequenceDiagram.puml @@ -13,7 +13,7 @@ activate markCommand markCommand -> eventList : getEventByName(eventName) activate eventList -eventList --> markCommand : eventToMark : Event +eventList --> markCommand : eventToMark:Event deactivate eventList markCommand -> event : setDone(isToMark) diff --git a/docs/diagrams/MarkParticipantSequenceDiagram.puml b/docs/diagrams/MarkParticipantSequenceDiagram.puml index d3f35cb05f..1fd15e1560 100644 --- a/docs/diagrams/MarkParticipantSequenceDiagram.puml +++ b/docs/diagrams/MarkParticipantSequenceDiagram.puml @@ -14,7 +14,7 @@ activate markCommand markCommand -> eventList : getEventByName(eventName) activate eventList -eventList --> markCommand : event : Event +eventList --> markCommand : event:Event deactivate eventList markCommand -> event : markParticipantByName(participantName) @@ -23,7 +23,7 @@ activate event event -> event : getParticipantByName(participantName) activate event -return participant : Participant +return participant:Participant event -> participant : setPresent(isToMark) activate participant diff --git a/docs/diagrams/StorageLoadingSequenceDiagram.puml b/docs/diagrams/StorageLoadingSequenceDiagram.puml index 5d56a754f1..f4eb080722 100644 --- a/docs/diagrams/StorageLoadingSequenceDiagram.puml +++ b/docs/diagrams/StorageLoadingSequenceDiagram.puml @@ -3,48 +3,48 @@ hide footbox Participant ":Main" as main -Participant ":Storage" as storage STORAGE_COLOUR -Participant ":FileParser" as parser PARSER_COLOUR -Participant ":EventList" as events EVENT_COLOUR +Participant ":Storage" as storage +Participant ":FileParser" as parser +Participant ":EventList" as events main -> main : loadData() activate main main -> storage : loadInfo(eventList) -activate storage STORAGE_COLOUR +activate storage create parser storage -> parser : FileParser(eventList, filePath) -activate parser PARSER_COLOUR +activate parser return storage -> parser : parseFile(eventList, filePath) -activate parser PARSER_COLOUR +activate parser loop for line in file parser -> parser : parseLine(events, fields, formatter) - activate parser PARSER_COLOUR + activate parser alt EVENT parser -> parser : parseEventFileLine(events, fields, formatter) - activate parser PARSER_COLOUR + activate parser parser -> events : addEvent(...) - activate events EVENT_COLOUR + activate events return return else PARTICIPANT parser -> parser : parseParicipantFileLine(events, fields) - activate parser PARSER_COLOUR + activate parser parser -> events : addParticipantToEvent(...) - activate events EVENT_COLOUR + activate events return return else ITEM parser -> parser : parseItemFileLine(events, fields) - activate parser PARSER_COLOUR + activate parser parser -> events : addItemToEvent(...) - activate events EVENT_COLOUR + activate events return return end diff --git a/docs/diagrams/StorageSavingSequenceDiagram.puml b/docs/diagrams/StorageSavingSequenceDiagram.puml index 150b6131d8..3f8edbbe27 100644 --- a/docs/diagrams/StorageSavingSequenceDiagram.puml +++ b/docs/diagrams/StorageSavingSequenceDiagram.puml @@ -3,28 +3,28 @@ hide footbox Participant ":Main" as main -Participant ":Storage" as storage STORAGE_COLOUR -Participant "event:Event" as event EVENT_COLOUR -Participant "eventList:EventList" as eventlist EVENT_COLOUR +Participant ":Storage" as storage +Participant "event:Event" as event +Participant "eventList:EventList" as eventlist Participant "participant:Participant" as participant Participant "item:Item" as item main -> main : saveData() activate main main -> storage : saveInfo(eventList) -activate storage STORAGE_COLOUR +activate storage storage -> eventlist : getList() -activate eventlist EVENT_COLOUR +activate eventlist return event list loop for event in event list storage -> storage : getEventFields() -activate storage STORAGE_COLOUR +activate storage storage -> event : getEventName() -activate event EVENT_COLOUR +activate event event --> storage storage -> event : getEventTime() event --> storage @@ -39,13 +39,13 @@ deactivate event return event fields storage -> event : getParticipantList() -activate event EVENT_COLOUR +activate event return participant list loop for participant in event's participant list storage -> storage : getParticipantFields() -activate storage STORAGE_COLOUR +activate storage storage -> participant : getName() activate participant @@ -55,7 +55,7 @@ participant --> storage storage -> participant : getEmail() participant --> storage storage -> event : getEventName() -activate event EVENT_COLOUR +activate event event --> storage deactivate event storage -> participant : markFileLineIfPresent() @@ -67,19 +67,19 @@ return participant fields end storage -> event : getItemList() -activate event EVENT_COLOUR +activate event return item list loop for item in event's item list storage -> storage : getItemFields() -activate storage STORAGE_COLOUR +activate storage storage -> item : getName() activate item item --> storage storage -> event : getEventName() -activate event EVENT_COLOUR +activate event event --> storage deactivate event storage -> item : markFileLineIfPresent() diff --git a/docs/diagrams/ViewEventSequenceDiagram.puml b/docs/diagrams/ViewEventSequenceDiagram.puml index 7a95559a74..d7360f26d2 100644 --- a/docs/diagrams/ViewEventSequenceDiagram.puml +++ b/docs/diagrams/ViewEventSequenceDiagram.puml @@ -12,14 +12,14 @@ activate command command -> eventList : getEventByName(eventName) activate eventList -return eventToView : Event +return eventToView:Event alt eventToView not found command --> main : Invalid event else isViewingParticipants is true - ref over command, eventList: view participants + ref over command, eventList: View participants else else - ref over command, eventList: view items + ref over command, eventList: View items end return diff --git a/docs/diagrams/ViewItemSequenceDiagram.puml b/docs/diagrams/ViewItemSequenceDiagram.puml index 1cd36bafb3..3987a5df76 100644 --- a/docs/diagrams/ViewItemSequenceDiagram.puml +++ b/docs/diagrams/ViewItemSequenceDiagram.puml @@ -6,7 +6,7 @@ participant ":ViewCommand" as command participant "eventToView:Event" as event participant "item:Item" as item -group sd view items +group sd View items activate command command -> command : getItems(event) activate command @@ -14,7 +14,7 @@ activate command command -> event : getItemsList() activate event - return items : ArrayList + return items:ArrayList loop for item in items command -> item : toString() diff --git a/docs/diagrams/ViewParticipantSequenceDiagram.puml b/docs/diagrams/ViewParticipantSequenceDiagram.puml index d961387907..40936547bf 100644 --- a/docs/diagrams/ViewParticipantSequenceDiagram.puml +++ b/docs/diagrams/ViewParticipantSequenceDiagram.puml @@ -6,7 +6,7 @@ participant ":ViewCommand" as command participant "eventToView:Event" as event participant "participant:Participant" as participant -group sd view participants +group sd View participants activate command command -> command : getParticipants(event) activate command @@ -14,7 +14,7 @@ group sd view participants command -> event : getParticipantsList() activate event - return participants : ArrayList + return participants:ArrayList loop for participant in participants command -> participant : toString() diff --git a/docs/images/AddParticipantEventSequenceDiagram.png b/docs/images/AddParticipantEventSequenceDiagram.png index d068a04bcf3fe75ce687351255f200279c25ee91..55567f5cb12222238d38c122ce7c436764f8e15d 100644 GIT binary patch delta 10416 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�PvG`gx z093fK&!0QB+)-3fId(Dt9im*Y+Mw(KAiOmP_004eLnFnO=a%pea*S*>{i~Agd2e3) z?^kX}7RklQsd{jYm)8+Y1gwNA*CmQegM))nXgCdfDd#q*%mUF%O$02&+{QKH2*jRDu@Yz_csEG=N!8KB2Y(4PYT z@2h8h&O#6!qZJqwME;$f>(-lOz|`PggELBm5)*Ac4X(C`)r%q+Ac1! z9>faaf=4TezkT}_g$HhuD60E%YY#RhD~oM6Dw&qODA|M6CPy!?=5W`hNu4^)zszCu zP%IvNA7m!6^;}rhg_c2J%xNR^VlP-t=8{*zbp54HZL`A=+`ru=NPp>dE^w8EH$Mgj z22OvBEifp-Nc#~`?t#kPs&jPIxc$-mrJN~5)q_=gqYosfL3cq zN9MW5zy%3q2GXj9S;}cj5s4fG+>J$Q-XTrG2jbelY7k!pchAD23j=>0EbZa$;ZZ4s zqbnrV)ZK>ujpBVwt=3@Id*7G!Z99y>&HL6ALSxzfvai(cHrfddfX{g)|5l+4JPDtM z^A;H+BUhrqg`%-+olG`HpYJ1X!As~j0%~)b^p<{)9q-iLOS)dtZy#13|0;LzY91A3bpDtZ!{~ai3K3w4*Gg5@lK&S1I$rw4ix;ED*(%*VJwxc%L2;{M46d2LwQEH{7=rqh zEaGN7{y9d`sku31fsq6xx8C_FnnS-^e0+Qy=thdzEbB>5{{~-QnDS%Fwz^}9u?%4G0B`^jtgfyCk5ItxeLIl&Ba02d8L_IyW<7m+)`bQ*A&Pz* ziJja}>4n4a@_(#4i#1E;2lLjUSAiAAf`fk2pE6L@+S=MqPEJ@qYdtZS`CcG^deOmX zft16cY8gP;6TKOFNaSDDE4!NumFNf?6xBS5HeUOS=xCSquWC!l5?E394_lwxxdY>y zH&TOTmY?sJ(SAGPu9F!5iDl(fZ7jc0oQ|4?1~dOXNY%>9%D~`d{!M>qEjTkV!^Kej z4KXfMD$=Y z0KT07s{64M7X=sar1^ebUv~Yz$dWH#zSPvzC}Lr-F|XePOm)>pRz_xO26t>^|G}SB zVi48YI^?(zBkx~y9)BE*F}|bV1ey@mEFGEb&IWvG&PWyys>mQyW?)HQhU)spz?c5Z zcOC>%fCj<6KLpZRsqNtN$jDTBamTSbVAeToegq}?D@ktyom$H>`w@!s+1c43eWyc? zqF=nI@ceFnY-I~FNq9K-=ik|-Lx|lV`SV#2kVez~PoCr(*BS{U0L=mD4VeSBr@Vqf zY;<&V(liq&qFm>?<$hB+Q&Uq{lf1P55jkhnC~0WQfNGVJGL|Al2>$Pf96w`(4<`xi zWMk;SWoNhg!~6FS0R1&NLqN@VWatGnX9MRs3g`yh3w{OFj(Fkal71r&W5TNe|I*49 z7$B`iDqV=ro_!h?_N5%1N~@}&vHYdl6G#lu?*K=1BcUBQo#XyAFNN$xAFPgMQK2Qu)QTnD%J#*N0O zfANdDF5b#B5Hv71GWwD%?MKRhxX%B#+@Q<=9?2W$IqkxIrN}E?jlegNI@ss|R^?E` z_`85(mgLm=63cIi>%;?g(*P)Tfc1n+l1d_=;WFrbV+zT7ECI%w`&ew*;o;%YJ>Mu( zNA>TFz*Nrz*$BK4xMZRfbO`+NEC7Be6w2P7yQ!*nf0`##BPkJqW?@WZ!MV=&q6XfW z0@(q|q1PMm2~PaR@^VBWc53Rbuy7f&_@0&k=)06AB^je3G+(v;0j}a zNhU8((7ylvQn+U2oua!+1_ndGtG4dX_g);}GpO+I(gSBY8R5CTV%qu$ zs4ntJAjPQAuHa)(<36EHEB}j{`bvfpu+WA|Yyi6Tdgc`s7sDsDvAVYCEzngVn;Z%u z`H>>8Lm@2(9^mKwR2;5taeOJ@p>p)DV8uk={U4e zEAV$OvWy*D6hWBvKpV@Ro*tV|P;T~@AVDB8$SniT{w33;cUJrJ;-|d$-G)EJOO&C? z-{J*0ZaQUCi1_0u$)3?Y+x-!B5{q^P?W>e1V1wUJ6m!dO@Fqv=wPg>47h`EaVwLW) z0=y*r1+vx!boBHb_W3LYwa}p`V^Bp!1u(LULEq}|V2^6}q{UIv(h!oU2=t!FTjqd& z348*ciN&977g*t`;CP^BCj0@`xh#CDey}=`i!2^0wd25rcRN|3IP`KgTU!Qy6CI3} zs6*hlX}`&c07nDL8lKywsz1a`Bh*tuK|#?dTf_dD#uFV=>fRa!pML<%0B}9ie9ow! z`)~FpKw9PcsEK>GZqYW0y;S@BWD{7Np6>2ifdG)~yHfnisceCz00^Iyge0A95VXF? zE#Ys0F%*JTM)P03{Md}G`WZn}F+L9Zmz;?cb-`#$;*6?XLxp@L2|*p#d%OOJ^1#-~ zhth#b!}MN<77LJ*kzKznb7m9xr@^nh3u(XuDl00QT3SL%`a$giKxN)`Y-5FtwcJxg zLR{i-S0In$8OY#7i zR06wM^dzemomK%u78zG@!!q?o=#AK2tZWjs{uoSbPps0mQQP*zYI z5~dJ*js$)2-9j%=t}}tepyz+jpsKr+pZCMPF@9^0G^#eo7pZTK%(IPPGV(*v01GQiFbmE^qC z1dWnw*1c@2R+NX4F$IsLq2Kg{F+R*!i~?B-`Z_G{<>lnKfQu=1@<{2Ue*GWjAy6M0 zhJp)AOL-EEIq#tEHC^7*zu@yn7rbn)PJ+DSRcJ^^&#SP$aVgXeJMH5?)}`+kz*av} z1?|-mHUHNs(9}=s{y#oQOHRH3)b7=*3dS%;`EshWe@qMg=-gXiKxUY?gxLXm97xw1 z0vOCKbSF*s+f97G;|BBJo>GN@re;3+)dmcPPo{K3`sTB!sEx++8r$G!Z!a?~ZT22` z3Bi*E>b73}BP4x#O>+ZdV`HE`F0~&S8XguC5kd0vz+g9heCC@dv_|eOe@BFA+JnwclOdtYGDs^x}LaZ zfeh%QfX2hUuwNmUv=$Q+1Fc<9aTpsLZx#!(v7L7FeaJ*iv2(Hx@%xn+%^I4oJ=`n+ zVh9t-`RK2%mVJ^FXkpm(=*de~eT{>Qi;G8s(Xp}pqe-#2Z3%rVR|FqL}mk~rrEh&*+9Z-n)fW4%_znT#7iHVY~ivs|XGSk!N zY+&DMda_zyVZhS46-l$WDJ_4NEQt>$&M-4G1IGq*qveH9)*W0G#!&w=PY{Aby@h~~ z@cV4nC2{eDiAA8j1lIB5zCz!IX~A4k!FU+{7UZV0?cUasxw$zgSylbs7n#7_Y|RhI ze2M?|oMoS#1j7cOJtNx{23?k};kVV*01S7#6qviP4`>N9`0T!IFv4Mu@d#JgQ@@|v z`ii)%smTkhW?<3oY;OnNy?!3(^d?3V6SZwx3H-5f+7sZ#1BOQony*A~m>%HW0qt2< zP_Ud@dLFBYJs$P@pgSx$qWKR7?D(fnU5G4rLVFTO+{o4^T##E>F{oFe(#t$N1xs66 zx<>#SKo}h<)s{t$ixe2_R_jRfkCQIp1!EY0j1jLvI1d) z-tQ{}4)dcGUs@Pb82NFfAbk;scMD%q{=@@>{PE!v`hy-H)!)m5jyFLGUcS*CGpF{$$-dKD^`1U<1i=yegA0Moafyn&ZEHd(dMD;vawg{6*U4KEcU7 zN}v$HMDU;JM6EX>#SKp~FnZAbIrl$9yna4BIpELL&6@tRdJ&C;rs?6a+0J(`afVCB zFRb`ECH{OQ_h~fs@d_AdCw^QD1n+;=2{r(J#_Gr{k6%8ldw2kCmcoVScqjRf|F0yc Lej{JTCn;m+P$_ibjDQC8V|hsa*p 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 literal 19191 zcmbV!1z418`=`<^Fi1+nNJ_{ciZoI(N{Jvy=g=YDjexYu5Kt4rwTBy3MAaNS{P3N4&I4l>|C{H`xO-^oC1q$S*^UxQS9y;VOt}PVHZAnI+u&{S zXk3>MnF%XcC@gjT8tcQ_cPuLRqGYzsw~y!D*6C+H<}dVZJ2_hFp_vdKEoxHWF^wsE{v*vzYZSp

    $Y+?htt8bsy^xRZQ(5T6c32P0xt~I1acihOtGM@Ka znMFLRhDYT>O$0TfV8~9WMp@g^rN)d>O=8omt6tJEhIJt*cr)mw^mC!E+PY^SLf8Di ztTuUk&zAoB{KMKk58JD6I@G8M%*js_9w$(s)>ptNQb#y(pg2i7C6lo528&*)x?<

    Q(6jlz060wg+YWH`OoSrVaWMb>n@b zTdI;$F)t5~2J1!A%J85-y-%(M-pe0^Zy3;A!O$}QTxvUHrifBztDgumYO?4dD~&b0 z`^e$#DZ^TwpghM~VWawUTwIEN8Z^c)C>JEh7Tc3!+wnZkb8zWzcSSJ0sh ztJr-Fbgqdzxx@z~8Y_enBS+BFBioeg-&LBRv&5}$uBUPNWU{<*>XR?=^J{bq{Ey$^QaF+m-h8B7W7}t&3J>pV`EJP}c z7b3r%(Lv}SxR`Vh8!V-yrWp76;np~Y?*j|kzB}$=EhYhz>4ICc8)Ph{v5e%S%0b?) zrV&QmF2^N}O8fg$?|3hr^I4zs^-cYfi5?+%tM#P6xpabBB!=0ybvvrad-@{!$LzDO zlatlo^Keg@7TS3P{q=k@n>c{58-h{Cl?rX+7t4~{* zCD)avMoIIg(B)n8S}MtynYW?d_5G&0Fl} z^=PiM2MqT1_wVfO_=NXIUCNeCVNdDEtQfKS)MDK@^7)1SJgFzawCaUy(ZWjP!kZ<7 z8jFIK9H-N^FTHOF^H$krZenV0EIe6yUtqw58LqrutaE>Wq~hcyV*#!9p|=egxyYKD zw?X?GTl~63)A{#g{8O(~nzpTdZ@bKrV!OxrAtjvnu%`<%luwcu9>9&FDab{3QtId< zo^MYCo8Eax*l-Em?SY?|aWClS6+74zisQA*bFP!^V!?+;o+mwWIJ83VZn5vLK5bh2 zD)O{8W>kLOj3v#vH{RE%Vfjp~4M?J-2R}w0#4MxnHazd%|=YAFr8rB+C zAj2{>(RU+LC@(pEVB}xyyfgdkZQcEwAL?P@wEKKW?uonFmEG6Js4wTg$rYa%hi|Bk zMsF^j75ZSIjL;_{r!P0VcrnXvFqh_g>(vwCPkTP5u$RFIpQ^`<-cHX$Hu7y>ZFJQw zJ{Ws&McUI06SiQ|=$fpOfc0D)BV;zLH1;)?3b(uexTz*|F-Pfqh9u4$JFv~V&<;R+1b}0do6{2Oy+Lu z*z155h3amxrR~b;XFQ5>dhey_M6VFy{`KYS7GL>rq6ERKl~GD#`A6zjKYEkDt(qvg zv5>16`RPKy02)=Ih3G&Nq6{C}S$}HreU;VJ;nnsNW05W}N?AHaRN5ouN`2~Wsji$+ zy`$V=3-v~cLSQ)26B?RK9bJU^{qV11D$9dYa(!fLGyQdb8~SQ&r^p9hU>}_i+RNWF zSQ?!f%sai9!=#A`dy1DeKXK@xkN>LXCe29U)vBQD=+s^_9Sxy8Lw%%vY8WB87=NVR z*S=)S*?|{7Qkm7zI{CPDG2nxuc||$%m6{~0bEt;HX01?tB3t@S%X6_9{d3in$#oVz zMEY`O?bK%)+KiwBG{ zegT!n-_6cis+B_Zlwcqdy0+eG8f3^NmmE66!%K$Ya_sYe@qjePhiJDXHbAK}ktN}) zXwl8)X5!9X4xQAhwwwr!JP%DxAZzLJC)ToSRA!(x`s%!qIW+4|Mf}pu*IbeuJv!?Q;T76OFK zd0ga^5mWuKiVe>9#8DZtfmFBgJLA&j4)@5BoW#i`vEznxtbt^K5e&D>^qtHxom{$m z6@*q2LMKxkH}zq%XNS6D%~w_%CiIy;Jz-CNe;bSC7;n%*Cp9aWj5|2aI9zYu^z`yl z@P#5|Tt@0VQ)}&DXsCs-$}#A+uzW?PfUb7m`5ae8S#N8E3IHa;Aa#*KaumeH_0$&v5wom^Esq!G53R zj58U2(%v-xO(})h@wzjaDE~Gav`g1}+uB@Y=?gBXp?q{!gwL`tqZo0Ng3Ozjlq^4c zdQFsk-#uiK`feJ`ddJA&5thUm-t1P?>Si&vl!>k zOE)$)?y*%^wxpg#va#j(T&fm{{48*#(s9TX5}YMwgPZg^Mx| zw|^rugUB5R~>_1h?eN;%nK3L9Pz8o_54Iu`%q_T2PKRLGUPw5O_MMwA0E zLQZ&icr?N;m#@2TE?y`n%_B)AqvJCZouxDAq2t$~TPrkajUqmF;E+_Rj;WiQ8(K5q zH=7EdA#~t7(b>sZyt%ffD$~iR!IO0r*8oypdCr&xcK9i(({SSxQPA8%IT&Fu7HS6u z1vTOGSI9?{-RX;3!my5G)n$66;*BXJTvlR^k>so$v4a^hiahX0DW51`oj8AdT-6UF zse=%M>6&<%9XHW-$oHjY_As;K94gtRaaRiUnq<}MAfRPszO;kRvhUk$Gj zLL7aU_yhkf*+uJ!S%68Uq{$Seu|E?=B1R(AqW&AGOZ*brwPLpTt!t(vdj3pF9kXtc zX0j=lk<;5s87=)(x9M#xK)``ErFg-BjR)&Vn)T?66m5+7jc?wi`{tGL6Sq%YZ}nQb zhQpvSF)_2x4wFpzG977X9MY;JuX=Pnrrf-oSyXtpu~SfgY=La8TG*t;{RI}K)1a%G zjy>l)!Qts_u1T0$cU%&M%61#Hf$N&1Dw~b3k6{s_g=pe#49Pvxxzw1Ls zA~;CixBpk4JY)~F_FMNMU$?7c-rl+c^PrO0AfG5%78)F^4jA`;^H!4<;=oko?{AU= zm*7Ik|HUh;gi*e0Unmb+y}#$oi15e-?J=U%)zv?12pUwIbu7HCI^0`(_3Vzw#rGs! zbzPBItLF>%GXUG&73;G5`K+CaivNUM@WFYE^QRX6N=*?O8k&2-2WQEi-eUDX+~2zY zA|O?)p}l@?$Og6YU4#LXBE}ww;}t?eJH+0Lc}NkH7Czmgcu_?yt-;4P7IeI(u<=cV z^%s6WTa$k3-Mfsz!G{{@0tqM1y06a-Nqa9VTYr6-4gVND!i)lDH1q!csa1{Oyo^lq zjRmjiUP>=O@mFPk&T;G2JC6UD>c`+BD*Po7BCTRy$j zCvHHzV<_qTfsvLL&k~?tEdHHS*Wb1HdYHG*KD%?q`GdjO?7b1^qp$uvLmMWHTG*g^ za&f$_%Ct?^<~gJCZVK;3Ez^AE*l(j{@IX=m0^hb*r*GZ5#iW#{xNI2Kmj~ySuyL1}0klua-=msA~xE__H)jQ9vlzlew#ZWS(*P z@Zkdi4y@6XeShEJ(iXID@`Nz3-euy6am#Qq1yD9UD3xpW(PL*wIZYX}A{P`!mmqP_FFq0Fer=a65+&Axv+E^Ud z9qUO^)k+1%Sv_F$0z3QaURw!Cxn1=Ug*P0Pi?53lwF{BaRIFiM@Tixq8IU-4LUg91!a2R=zpC4B86wO4CP z3jvDebG^scm!^Rm>4VX{bagf_Fk{tuTCphdHzF#@*j$!wyq%aq+pZ`|gGmm2zm0Fl zuW5Vi{FrrV+m{4@I%l&9&q$J`W%xj^w8E%?thtvP;v`uUq}SNA8{XrM2(7fANmi6Srw1_bj;o44F7(bW)pq zPsB%9Ao=fm;us>C!}``&%8)9rp9&g?(48{gPQ5H!s+EUlBo#ACa7`35QsO-k*nk;* zU=YI5X&9)iOz_yeL#I$J`AOieVq$zz;*DC{S8Q~25#paeyn1zvEFCs1Y@dMbsp#0) z*u^nY1k$XX8HJ$})EAPFka$$5HbUU=?$q_iB+bp<-&MqU7j1Y}S67qd>M`6g@e!sd zh4$}bHR0(rullHXM34m4%Z=`{18ZMj^`uJ?jCU8PCU&Qf9rq3on-p?nlTWu>m%!+}?`Pz$qqGJw3XIj+5=7Vq#*$l3~>>#(=9#If&O?@#)4^5vx5V@L8|Z|<2QvuTeXpPiqdUtWGW(lI{X z6tMGyTP3~`D(w)@=V5$hzJ?$2`k9h@yT99mdZH-5n}>(xx#4od)BRfuX&Z`7>BP0~ z9!}wQTSWEQB-*(c9;W2na)yBl0?z0W9t0kLDbQ_s`H=s3xz2pY+dLijZH}2Ftkv~j z7vh+4%|q_BnGB@yEkwEt95XfsrkG;6d!hAetv$TQ^dL7U!^NT7exdIpS^XB}*Vzshv^V@$BBSUu=7I8hXOU+ABHkW~Gc-AH8~~aem==f@HQvEd(_K z!&}&Gd@-Ww?;kl_y{~b608OGOvXYO)Gx$DIc|DW#W>u94DVf3?;i(bj13z`OD_Pmu z^GoVP9BqVq|6WF8xBmo*gqb0>@;e)0vV%D9L7=0 z=D)d^JfNUau9vEkz??90T$ItKYg>jup%B5d;iZS@whgNc=@9kb+g{ZPCJ9p`7xGX; z9}oj@FrX||CsRX{bYg&D$z$><4kzl;aL_WhP472cx*=XE#^n zjN{@ajIPga3l9^$cU%5&_VVS+S-j`Z8-F`yuK3r5TCv@|y+3z$A|oOm+70DHsd963 zi$2Eg{JJP1I$Bj;{)mtgyO3*ER+eaPL&MhdjMMj(#_-f)@7!Uyqzw~RC%24dLD%M5X@Xammp?X-QIeB)ow_K$`F$esM-r!!*7BPQmVv?R{ZrpK`8i24 z;gbYJM719$C(RbQc>8Vftjqmq7mJWQyaeWgKH905vd`6g6tnC#+iL#)L@ChIa~0 zK`FRN7eUR&wmdf%Gw>VV;OFI-LE+)Ap`w%ve8`MjE0p`ACg|t1?CinobK2n@98T4Q zJiPh^Q<{(dy#1&OyR!2(W$fyRnnt<&KeOOqikhNNpoh#-;N3;^*o0?z zQG5eytN+$*eM7=iX9C}ko|6dp_fR{CplV!=!#Kn#=~ZNK$kg7LhGcD7v zxZdmq6QTLehWlE*BV1A6-bn*if@zbx^|aCV=kFZ*rOx$~w=soBYQKua+HL#AB6M_9 z0XeyhRZl_5t1@Y&6#!5>fpU1`IPrv)AHU3ZWwHZc>n%WSCH(-4mp?RxcjhTYa~uWu z)tlhI^W%P_9CrCrYaH* zb=;ciPbDQKEsxhF*-t!imMh*yVtjLDN=dD&2%SlbKxkWvGQtifN(hlrc|HEN^1A<2 zC*d1Yc`d{jR>w;k8l5-fReH11<5T+wMKy)u{h)D(mLVHQUcP(@Mg8eoJ^X&(l=e7a zSKN&=isdVS=*Nr_$NmVudi8CNjDOHd2l4XqvL^akgLA7@KP?>@z0lm(ub}#{M=%K( z1~V|+VUzKDX#cthDllKn<)2?(WY#;qw{R75f)^eI?6}(*0#O&Z@<76Vn8)pvY0%Dn zi=LZ+F}GG%cYZt*(Z(ObK_rLBN#XZn%>9A=)jy)_qcsEhdWF^)mx!PP3Nr&I2L@Ncn7BiU2~ zIPz$JFN^07a216Xq3;YMWoO5iLNnJ1P$Hp-fndDWT8VFS`6Els)5i+lJeU-@;Gn`| zd>rI`IWp4j#1Ru`CIY&Cau@PqXlZDsmX`K^Za5V17xU?rP+wx8rzbj&@CK~JhIRhX z7%HCsSTjSsPiv5!aE?ZRQ-Z`^=v=OaqXZ8fuSS}@pd*X86$wkR*U~#pi%D6dJo(O~ z%v@>~7V;ZD{+(7ln6Mc_{MtnuXf#kE=@XU4sDI!63?__GW##nLkviK~Ko44n(w-~n z%N}f7c5^xti0@%h4i^3GkI_K0E0IzWkMd8jvnK{v!IPE~9Se@d#xtWd29Y7IJ$M?G z$h${?<~i-t7ZSmMsmP=dN+?jd(l5fwePY$0qIkxKz*5UBI{_(uwcNm*uCzU#=`?7< z*NZQ)TAfKD1c<6N2k`evz)n)y3lLO=iPX`Hp^@5`F`b0&s1AHN)mtYPI~*ihy%)!7 zrU87xuiT>k*z7HWP0Ex_C z2yIg8$;$(y1kc!cXo@dzTvXgYCbu`(;4%Saww7J7>obW>Tr+2Dn3I8gjax*m0b$a% zyaf~rhmn%i!>^|~uOeJmKld2c*>K`p*rZ~|@L?RuQ9~;mv?oPTzWjLUK|w)_C|Pm3 za#`xref%pWwijao=})W3vvQnLP*5;H^YHTK8DTMa_9P@E^0oxRVX39DuH>%47w?>U zaZud_I}eb8dAuuOgAc7;HPMAFpy`;2CN35ir?HZz?j2i%%-9_otrpiN9K+)$!~ZIZb*ImSZn0 zJX{RfJ3p9*uS04%U_?zz`x*XBPwPGj@SWi(NiHKDtFesE%w!Sg_UwJ2T=Mkp(z{0p zFEMd~d?*WAO!Zu+%a919W?$;bV+44QLk?UK;ZTlE8K3g$A`C{GyfszK52glMaqqmZR5xHKrlyma4dyK-l+VzcW#8EU zdBe>li8<+HlNfDoI3s$Gv%xUwd-c{M*Y1?M)0u8*GYgnbsSJu=BXSbe?=EE0GS=0F zfBF01;Na(;I7lcw;V49{q;={X`t60HB>{xGLn2su-hzqA|);DAyf;1T0Kvn zk_TrEec9Xn-lnas4Xx0y-ZA500*77_@5s#R^i$Szo_somebLAhtgO3R-|v07_o~ka z#F+WX$(6aG0zjek0(xri9LYgy(5^C(*|em~K6m3?gUh{##0mx%Z)>G~YV`-tMs<4` z4FWBQ5)7w|@8%-?iOF7KU%NKztVeB|8Xq7wqD@_&EhxJZ zc3M!#;V+K8oi?0|bDWxvZf1G;6R=>|ZI4_g*et0SMML(F)&Mc(m~>O?xp_QzZ&h_{ z0vbIqX9@*?3HnoHn{chq>gQ{ZFnMdBm86dn z#L=CINd-;F{qSJFTpYzhf>B%A#M@6mIAx z0AeW548qqUlvx!bL(I`h>F*vn6oeQk-h*ujrll7kfy&BCgO`pUA0JOI-Dgrz=ICSz zO)$Drq{-BMT7c7tkeoi^^W^-}=g&HiJ?EX?*TdBHjgM#S4~VF!tV2EV{P_3=?E9^? zHKofE3iV^`<`sIS!*|6jIjo*0va24s3_z1|ce(j{C3pk?6Tl+hB|>;w2oCkassv@=Uf!i$^VM#-B}!pOtMLHOxU<|Y;jrQY4%CgEm8Uya{4 z%jNx#+Z2-DUg#(-jRhK4rW|tiZcq!^WkrEwFi+}bv75jJ`zvfZ@>5|^nh zF__n)T%>8hDxnIs*Z46*zQ&c;m*q$|w6Z|^iHMHg-Q6Wmhw(J#ND#l~Med{YTejRN zMEbOoHTx8j%f$gbF$T|O&MZ9)+v2mD?>g1#W7j4lkpYuPL`cYb)}03gq)sjpvH0yX z19aWx*qGzW`AEFFHh(qyIm>!iufh4cIY9`sP+I)$k9ePO;QO~?m-6-^Evn;P9<)fc zD><@(?+VosgeWm=P{?xY)+bounM3Oi6h3y`?~bvZ-`?BtD32dQcS=Fm+5aAV=#a** z<~K^f&CSq0&}sLR_c6dabM;QDJ7uJwapK0}+iI0tC-_T9^=;2w$o&DNu1`9@pdg{h zd)UBy|6un!*{R$dN@DOVJ-zqw2AqHW}XxPb#7nGB^ zE@<2qI_o*7WsSQ_E=1_e+#Ct(>dFdrknxX|sji%yoEY2g^R>rsqf7JCP+BA7BVON?b?86#+bUtq`y&ooe?LfE5 z*uW{3JfqrlTuqd-0!7>+Z}DTMAEDmbO;}`XFnhh#@5+dvZy--gbCdfl*^J1Gi8ov% zQc^^;ob6{EiEl~85Im|US{zxDNw&r#H5_vS!$S&bonGyfvN$DUS7y17xbYm z_)v3)JTpT7kAwrE4*GwWsLn%G(+sx1O^PfjC5$P3$YF+n>K`3l3sHFrQ5tLVXC>$$ z_zRJK3je%mB4Uk3O?{&`_#QNnOVf-zAJLI4>~Z6Gd?_ zzVz|)vkCe8o0tNmCP(81j5CbFnE>}c_3bn&SwB`@&^;BRBBdY*TMwj})7-MA8cwC? zgT7x)1y|&I+T9H<_anVh9Vq9{&dxl11RcUHWu!`KSHvezvxae$E3sp^LiFx~y2!M4 z?lwn^XWnU)`PfEtwISkQVx|9&K7RcHskz7Y;kx#%-w%@lsiYM--Pu3$hI7>pPha^z zyy>z%^Y738+aCJcy20g~Rt}>s|9y?a`GOO_%_?3X-c!Lv1AlG@=kOiaKKS$I6`fS5 zU=$CJfl2XNm$+gWf3Y1p%KeisJ0H4Cm|W`tf@eq>@Y6w*k)TIQ2N98luRyK*ZEt%z zG0dW{0tw1?>S>0+-OWhTdx4wdi39*8w6wGyj}lDXNooQnj=%S=)xTlHJd8t#=-CNe z>ME@IXdx1ES=14Ji)F|L=a1KFt@^<$;&+;)&_SHt3x1{Z>p@%&-d#mQ$B#GwOD|Q@ zHR?EK7$_n{oAe&&%>!HJTYUHE;=5_#wu7H##l@fqosBy#xCzob5{cCCZbwuzr6jqm$&!R zR0Iu|=V>E3^G*W2N~4CCPoEY84)T#D-*>uo1B0g}6?_n|@TTJMVAmxLo_S$mfjk`k zu*>+Zf9@f-A_m4!drL7#9DD&flP3YBiOdpqgEf|_R%c4)$LmfymYB4jD~c&Aa{vP< zSwENU)f(i-3XU*^z2Rt9&;$qhm18@OISJfY{=gJy)(fI~o-E^6sL17A5YBmWc;KH! zH4B)0+N8Y`q=Fjeu~_{*$RSSOM-JZ9Jsi_3SAQDlP;PWatC0KLTNbrEHRCD0(1)J(01KQ|VRF^LmoXJ8jW<_8`HPGFcr z7+IH_PU?Cmj8rl5?j647#zv0m8(v<$y387RT8Bfb?0IZu;b4(i+z%0VOpkXF9NR)4 z?0jV}?JDIi>4)EQ70RikCZsF6l>OLoy!PgC!Op6&F@q5fp&?50thojthYA`{;KLVg z#V86Kod>Cj>s*7wTW0{WTCWr%$vBPO%ntT;#%YfTGU$Cyq8Gl#5vOp2ffSC-JM!o%>`zo12N?{DNyd&jlt8^mbYEsTc~QIUgP`F?0qaioQjQS6vHDlCk$PmYCGH) zd1D+i10cM50OVr%?3(kTSdKdilrNuAC^5Ya2Ce|%TQ||!@DhcrE`B=rg_{~ewxCAE z5q#}BCTE3-NoUYSY~Cd91-%PD5~RP+q(-aQUgqN{Xh0(kNG%^}FZ+Fk4| zCGEs#+6HG`OOlZyhEhaCJ!QlhJff+H!3&PneF`awZ-6#A zO*{#NRiZ_`2)V?$onbI&5}mHlM_93cZ&{=IS#DU@ ztB{tdHexkWqOGRmwK#TESGyh6VIAFKLDn$>ihImEoHAF4%m|CuO%-X|qn+KF2xeD^ zymD^9V1s|;G^(SH9Fd()qnENenyaD_|7CbE^e zRB3$HOT{?APE3I2;o;7!VCtEY^^J`S`Br*)$iZ8kk>pC`qO!yNpqOS{K^WWe#e~nx zN@7N0_#Hu8H14_*<^T?b1eOEUPhgdW{qXn(xp}xMFDA)uGB1I!O;JXddS=h3C=Ucy z_UgSJWJwxrff||z;*X4M>H>NEq6Y{2yD5G`IzR?_7W3bOd}hd$T|-NQeeOQfMAC7tj!y$?4}*Ir0s%(^s1E;5hzWlBTC;RWaSsC7za;^0VTom9<`z)@wYFN3j& zlPe!C*5#D;Lzv|T^smN7DQ(k7C3k2G)X_=$YIsuNp^oVSSI89ON4eNGCW3Y=9!8Ui zFH*9vGuSgMUadkh*_=MP^2J4^EOwRz!{wwEjV>g}k_}{Tl6gih!Nbo#55hRi|2gmF ztcPe;rpps zOmKyEDimdBYB8@xgJ2o0JVioA(^8%LIb4&6&YdT;Oze+u;ee3ca@7oL77DT}1V_gX z?@_DW!boBfQ7wg@Bxwa&UgB|+sI86!nqa?T>>b1{!En*aLdoCxBU3}!_6)BEks zwlYrH`!4+3Hih%g3Z|bXGVDUgo|hwm1GU3mh$Jva{W8rsNy<1;>PP?a*V3kz{BPgJ z;a2d~{B%;G>7aAY`$FXhBTNBoHGrB*4KIrX)xIa@#gBv@9$OU%xWY(hfu77sSWj zo*rO)jljp)*w~I9Jz7l>Sl#aC?%o*!+Ym-Kjmn&ygV)5wgsMo+V&H&+i&OO2I4j#Rj5U4B^YRw@8)F)h5hAM z`D&+v^Z&8cpP|{@+U@*4Q#=8z(e_3F$Y6hK7i#PDlYN2n!sED2(86BoV=Y z3t(GM-r5J~3!vZ`$1$8$07}lQjMFDOs4$8;iq!Ry(x{^_Z~$XVo+onyB$uK7Mp~~A zKeI5nLV53BzU3yy;`a9THUt%zDTsinaPZeK|K+d!zZqx-yb{(eWRNK2sG!aJ@ZiWF z2Q8~q|Bvmuse`DSE@C)&@}zw_$*g`So85NQt3Px9)^X(71}^FqBO%JN;U0)P-N8lq zT&2~R9ZcLXHT*hlk+;OSSlDp;pO31kbe#$K*R^d5Oe&AzVrR@jKkfdQqYjeaW`D|K zQmDXwLNGHk)6uO1*bz3YodFGKn2ou{`q^zj7a9()l`yAoK=ax9K5^&GyXeNoM)g#r zx`XaXROai*4l|#PZ|P!|GLNV-w;fpj{LpP&-v?s|C$M?Kk}&}$3sZhk+P)jGI1R<{ zyY-}Znvrdw6%Ak8tqwjsfDqKhUzZdnK9>SUt?jEErqge97qq@tjowZ0Ym!aE8fZYt zh@xacE}ArZRe(sh%`jV7SO{985bX9tP4-wV_ezAQTH_3ry! zR=o-EfP`y$cE?}Z1^Bm#ZvQs&46S>WFcxgMWWy+d<~RtXTv>&bD%=*}p#6aG*D^4Q z3~_7VEs+CnDvZuxM&sDMtop6?@AWssUDr65>2?Y+Vj0W!&B2Pbn4T0%K_aIvIl9Sc>tk%}nDMg6o zgfZb;lz^}UlR;4dpg&r`{2@ezz{@N2-&%%^79%L3P^^*0w>oZnZ?wYbZC95ia2*T$ z=Q$Ub2|F91Iljm|15?*fTwH97c2zOv@;OSLXAHAuKa}4C3}I-!|Kz=P?-BVJw^IgT z7x>Pd*1mi01_l<^AmVMPa4w89X9>@M!CUau2veCh_>s9I{L!NB` z0RgUY_;`4(FCJZ^9x^gm!=+lvkdx!&RpXXgogqi@BeDpuQh0o{!v_CKB>GrP%M%C; zK+eYjzyh`+FE7uBx$fw~NNIR33Y*V-%$IJ(@i};ZY&|4xP)cf@;m}hWC|m3`p+5k< zfR1dfX+86y$)nEu6lmlj=c;W*ew2f)$#MasQ)h$r;>fb@1rUBgMTHr?gNJuHA8GT7 zcgq42E+8#gex!a+iyD7?L(nt2^`2tbk+sR8UkWW$FW!r{tw?ER97i8qSxf@z+iq&5 zq@^C-VJ2~3jXiKZc_<6ZaiwF!HiK$Sf{P39-M~wdUGn1s5t+AkQC5A_US^Ewi=biLz;8(=?m*^%gy1{+o{H zMU&giZq`XDg!T{#cF{(hp>@#@&oZqw z^E|6#=Upd{=s0Y)5JIVkBw)#q#8(4bNmH6@y=j>I!J9|rz?gvLH__tz`t94RF-nWI zb=Bf*ec&4qmv!h~uS5!kAAx3LK*FfY#DwAMzB`l_IWr*Rw~rE8mjX6Q38w1 z`P`v(9rfQch?ggAH^`xnFU^YyJFWrF!sR%#GR7DNdT*g=dA6erqQa4~Y9>hr<{8}a z;gM_z*4xjjpE>KJ0SXHiavo`dqhlu{cdh9@HVZ|Lm)u#vFO9t~bnPL@&UydL5X0>r z22(TM#C{ntlEL$-Ik^Lfs^+m|(R~K8iV}si9BJ>Dc79I{bLEe|(PfMFaV91t6_piYV&Y;+$m^?7a&QS5e|?_OMXw6t_|QyG1SvwR9R4NW(_PmOL}B_#~@^;9g96bNQ(fF6(}sEtW~%87>* z6|DwJO(LND#28&or>F~Ce{XNET2$T1st6gpzrmnb27$u4K`pKHNAx3tAtlz|1Zn5)@HYRW(NNJy{Wd1cjfv8FYa!{1`<= zMKH~v7Ogy#U$)mQu#r3#$!UW25l6t{o$i(~7gHNL;nbJYZHlIEoP&qprH?bBVP5IW+< zWhHOms_s9=B%x;SOq*m2jnELw9@E9;)6?~1 zwVbbn58Qd0arY=bky=?JPT2-O)~RiHzJIFxfrOSiE>)*U zt*?Yh!NaMTz^>?UD(2{%IvT(|%J;_%4qLG}{tDwIIFDHM#xpUBf{O*BR7(9gl@7xC zuXGhe?B++y7>GX9TE{)?@XCVS{rWY+mh{*$AR;7o+w%qgVAlU{^e=S*HcJG1H!qK! zly1eJsM({d2s>gwIQ)a~4XvvB4%%E?2BV}SBL;FFfpdeLLLQJ8AAA8B8^904oO;~1 zX;}`?JI|y4Aue|qQ2bXbKL9MNVWFpwx_&!kaiWcVmQyJz_X9wbv>IgEiAuH<+Gj)m zB+h>1wwCi@CpIdPa@^yF?x2`wCjI zcX?%H55O2F3Rie%Mvl8M+t^j~_MU_Kq96uhb-8~n?%fBZ4UpH1j=CrNSAOol3;$;) z8X>g082Zof{lD$1|KI@sH@dJK6BoyF-p3XACe9NFWN|U`cm~QrUsE&w;Tyc?Pp14q zn6$kYNYBXV0|3`PGr(3r9;bG>K~2?@ zpBO-$5Mgxl@`8w1{X^YvleaHixS;MJ+`d?x2p}3%*f(Hl!kb8l>;ZHF^`i_Tdyq+} z0&i9OOZJ$}#oi%loA27aX1}XYCj*=ofjedJIs{(6oh+u=cGQj#kyU4X@ATZ4H@Ng>eWr-NDpc61ocLCm*%?7wx2Mfu2S6hFT`bZBrg z{kK;*F_4;)fupy%xg4v8jKE%crGR%@G@rbj(_L!FR80Mo{j57d(W2YRu`jVo6 zS@R;1`MqYMdS&{QuPHXow!lvS0lL+73U5J#qa=2cRrBMMK!4yQW0h7}&*7x}uiA_9 zK(Mf60^Nb*1^Tp0CEhn~EaA+8gMA33#u(g8OoU{+@_PQp{OjUKat4V1tAIX#N60XY zd3_Ze{}#^YTJ{nZ4A4&e;Ft?=1PIXOa{R5{E{+reXMoLYY5idfB=cNqNZ0Mt;?i{{d5V!7 zMts~4GL|`r6{cX$OCkn23Tx&=+>!KbkY_BQ-q%Cn#8SAN0dWjdPU8`ygaF$&MYn1CBhU(4C|I!pvD%vz>6B z&ksq2473h`RIV?*XV9;ikn8$f0wRb~IU_r=M{)h9MpEV9O7=p9E~@yx%&>4#}4z13+&> zonSvB2KrRTo<0QR-WaPEqxA_EG#o9^)kVn3$ypiLfyomk&xjV}W_A#r#5D^*7`W{~bVH+Zy^z`+_P*N#UtH~Zh$NQWr;cqR=D3c%sUrY0O6?&%>c zqs?QpR7{MxF7$(wx|&`foHtXukmIv>){E4WufQ!FdpZUFTj%7WbyA2jnnMC)ttf6v zW{DCw;^V(25YH`}RDJx9{&GI-#1!D!lqyS^z@K{5B!Xk0ia9z8333_X_%OpXlcVxeNcLM(f_N|gu`n8j-R9c=vXO#b$#q_p@+KvF97la zCvuhRAtaXc6(HDAc!ev?h}2*7KXlquJbzr|+>r8pnK}e{*hV>alW^FNmqZaUHjzx7 z^j`r->IhWd2B#B>l#C4P?2tB5mw(0Yh`DVP1ryhw;})OxBEeEbzEeD5+v(?|7tM?Z%q2+US`KE73;Yc6ljc|xfxhKZW#{zq0Pl>9sk@# zSprtgtn}zfS8L6vJk_d=|MFaE;s5lmvc{VLm(Ee)YUrS6=9`YTWYCx;p}L6U^B;o;%2 zw!RLh_K^zxqJK>vIV!ou$Jw8W466%hG7P)Bgf{m*sOL|o>-bJF-f4zgo2aFB!a@BgO|PImsYj-n3na|Any Wt}MlUf&T;55%mj~lq(g@!u|(M>hLrG diff --git a/docs/images/CommandParsingSequenceDiagram.png b/docs/images/CommandParsingSequenceDiagram.png index 6c38118e5f4c7cfb16e9a652a15daa722d60c6a9..c5ea14e2d2eaa28ce733305c3f363a1259aa58ac 100644 GIT binary patch literal 18969 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

    NcClD-#uLU^u9dq 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 Hwn6^~OWWb1 literal 28622 zcmce;cRbbq|2Lix9qXuLW*w9rA=%@Ym1K`7JCeO+6;5_G*}IfYL^87}DLb+wGm322 zyLCeUa#kQzMjv=1bn z6DRQMiBH0J+NleK;S0B`qQ0xSgQJ(NeX7b{yE&v|AxEI9*zN=$PHuaNpcK!1nU_IrYqK^RKDNTd5h^+MJ9fokZ=23FOGU zv7(PpK37`Z-45r}yxE@;J;IXQXVy(6%#bAb^#nIsI6P1y>M~3HC(^gUnTH$JD>o=u z&T_Md@$r5b5~xl8u=Z^5hr^`*uUvsV$xhMX)X81yJ@euELvhY-6>g$i%v$zDi3QGS zgX{x(yx9ojZq}0t)C{j;qRkg-bf0-XBbe=}Fu(YD^kP^8k(;-0LUjngKs_&GG=mlG zwyl`@t!mpZUzZIX{MMgU@z>ZYo-A6Fcc)j?xjT&K&yknoO2VJ{4eJ=nofUTLDU04F z?ewV1AZKx2>*c*$*;{ukMg_VS7Kil<^$We`==ODw6sqDZ-GedjW#4d~zs>Yqr&2th zOAkw@^--QF&-6n5?V+2|%av_2?LPiD-A=uI>*JQuC!YRlrb_Oj>s#*#66WV*j?>%6 zSM4Kb&MI${@g7GHPW)hq8=wz$2wSwUoSCj=Q&Cr;cC!9Lvp}QgKAfUKC=@aMmSpwZ zbKlihbpmyn@((816ZZv(=n>IBcP?tC^}SC=(y&XR#L+ z*)=Y;i%(qnQ7?J-D(#6AcIU4u$Z31tSxG0-N9p|zrc@*(;1YSTPOL9i9#|iK!ChD+ zzL8H?Sh1}{L9yJ#HdEhxr94UDFhn8ug3XF10b!(xTv6F^rgz-#V}tHDJuReZzmtO( z){-TJJQ91n7J64+CPuIj2e4>kuG8Ya63??>kpyx`ZVUpA`*sit11}3g)Y0F+(^XpW z?`(e&GxnFNvq*AiNcLSC=nI&p%#U55qr2W78NN8_@02O6Si{R8`eS8#wIy)=+wRYW z>ld~oY1O@*n5|;?De>!*R2d`iNctYJTqDoMeCsvvJba+3`AO&!Z>q@Z_#J%&%Qd{~ z?^-hW3@;c~KI=@vpKV_qsnPJ1WV+r+cW7&Hdo<-itiHfN{&ZZ>f-LfUusXVCTTgZV zd`)kLl%4=4=U2JsoJ!k@v3AeftAz98ZRT}6cWo~5hc~XUNfHHciUlEd_wGA!SsWc; z11QhrN425RVJ{jB65F(%BceLYHx^66?%nF`nc2wvYml168k^CWcw-fGPyx)%c?vFt zT`UR{g82XT19e68#>UO{$z#JyPfReFH)d&#re)(9c*Kr$-t-MuJ{gg(N7|pG%5t5OSk(fBt9Qb^<`TTWVwvoEu zC)$q2XV%ulJk~tIHcnD&su;-9VSVm2`l(O6Iq1w)3>TRHpq3I;{W^dCrQadybu1MY z6R<>of1^M*AEQ#a)R(x&xy}3d&*!9~$|)_Cah}unE3@nw5*Mc;(N%GE?fw3_k*l3V zUj=Q6w?$PU!9LgCn;d4?6{dn_lq~%E^!uavJ<=%OTm~DuCDLC)Ix7aGBwRsAs&4MN zAJak|PueO(P@k&q-{j#rXTO^1->&z<>|>Duj~d$lFyY|vx8cHj!wUD+M8nris5 z9De(&r|6&GG!}LF_G$O$Fb)5cu^K0$VL2x>HlA=(OXXm^wox^$bBvH@?qJ|W7YQ}z zn%uLO7rWyzp|Z`PgM#w3C|hsJP7AMRJ(vOUqTd>qjr{Y0`Mze)=s@;Pv*i z=4vjIqtSEzXe=@ZV}RY+zq0-@o8-PcIwt1+#?PilTE`dmEE&aJ6^Wi9ciKlr@~*~F z%gNRA@fNMDGOkbh$F|nRP%%gr-H|dTA?X<^{*s!a>*3}W73KfZQ++q%Dmp*&0CnbT zRpE;U>H9QA(X5RzZtk%p?tWW_9tL+1$wLi^k@pmZGx&dQlz%F;%a$l8zlU$=TOT&& z|Ne)pk3!{A?+@}II-pR!1$j3_?(M8MvGu%my(B8tOxF{0N$uwwLzXT7&t0U2)#O!$ z=J~(v=VgwKB*%Ekv018D?@Vp^=}h2fKeFeOz zlBx{V5@Z@mB&KWmTyud%9ui~0S%^GpL7lYHzjbSNKL7gb$cTvbuQz5<0p~AWnjNp@ zNxgDROD!U={CuW8QXe4);{>zv%#UF(IU?*c1@L078&f1q_1T3b1$M@;y8MQ zvyew8vD!uIAG8}!Qg@!ncskgY_W7}@-|z29p%)AH48G_U3YXuwk!*x6HX<7t`!bzT zMtCRZrOH#oRKnM!<)2IQ4&M=bSMwhBA{I7(dwf+7QQLL)>JH?C@oE>8AVqVpQ3W3E z-~5nLRi;19n*WNPp$`P~^S&xiWd)L@AFt&E9L}c_I8rV*Lj^{VdKw(f11rf=gi&KkVa2*$- z>*O)7dJ=l{D-?8{5p-jDx8x0dw+9%npY7ldLtITU-apXR8#;0eD~!3byG}HgwJAG$ z*f^-v9vcNUQ)%!#7WoPGTN9pP^@^#T8v5LowSqhK7pS)d(zHTe+^f18*MPyNrn_t- zS@Kr5^yuapuAt7~1JvgJukYuG$jnv^EAQ$QsiX4@DtBsKGW~u}lsnBb+#gt6T75r6 zU5in_Q?z82e(^X<8xQear>`cm4!s{ec%c>vAEXQPKgOj?s)^qxV3O#=xYG|kIK@|u}AJ%ZLxuZi4okIF% zBHj;N?5t+_B_$<+ft9tjZBxx`^dh#x?kjWbn#3^_yIeuXp}f5N^74!?^{gh>3$uz3 z4G#B;2x9KZq6z(3!woO`&OeTDxM$Q~u9RQR^q4JG&tXYhG0_kmO)!(-_R8)C&ywCJ zaytzv!;-WSu9AzFdCn~-1ZzvacPs6RQbeHhU~BIV%nubSFMPOdnmMmy^>;bVfVC06 z78Goyq{Lm)?V@o5-OXQsUhCWN*3l>9to&Kw%c*%*x>){sM>uQ6$cZ2rIe0S4>y^F2eGfglL|=I}tlt$<`hzFQysP)3Pz!mm$d| zsc$dM^x*3i%31G=M~!N%#;gqowp|AXv}J!^Ft1=|-T#<}lu|*1CG^GlP`NWfd)C*` z;WYfzkBM_Qqgw}JTUkzHd;xc~{$IQh&PP5-Q?Vw#s>*kjG?ryRS?dpgyC#)~1XPDn zR6zr(3krj0057Tf<1vd)tl4PxOI7TbR07nQZ*T=k5B$fk2cs}5r2ky&zkdOD$?gaZ zdi?JIVHj}zoB{d&CwwfRij9kV=bs!KTXFC6v(C=W*^Vd@-O%8(9BO&bo;mXmml|iL zr~Cd|><P}!C&(GaNofU|#>U3_`uN${ z0*7z&*3{H6h&n#3@>m(UbhnpQxWuUT)3Y0?Mu)^Y8vZs^__4I?as^Sis|C|1@fv(8 zH&-6|`qry5G_nwoN`rOEynEYyp;aAR|G(`KNc|1sG)WUcG>*vd+m zDx1Mm1k==ZcFj8u{o;2y}iAs&t8z#-rn9$m+)xt-52?SXhT-Fi~z~< zS{mRIp>@|Bk(88VD13@BGc!AhkAKWqYWt{1dFsk=#9yXSBulOfdGc#5j@?VlJ-y$46 zoTtzf6cn69^s?PY2S58Ljq2QspFANi3N%?BDt7t^kN4aa`>b~b8oBY`A7-wORb5w6 zQMq<)>1(~j;|{ya9&6)z23kZuERdOcD&aoe44_KeG4a+O?);P~!LrE1yD)ePsMUCMF2cG%p z`STlD+Vt$~yJ}}gM-!=Rc?KRSDJgF5m!|I?^X{xoNNB66qDAX6{q{oJ=+wyz-w?ZX zy4Zx0{j<}$emc!08T*M@e`Hy+l$AY!3fRmss&#%QIX*saA&IrHveGLt@;W{`9Dgjh zTVF~#9J?ylE}acrDjI;^k3gU6VVqKR9-lkUR~uI z;bvpQ4}Sdh!i|)HIu8eGf`*0$RrIM-r>y!i=4Va}e)^Cuu}g^|+)TS=CVwW7op=j& z_$E6mYmVFU(D?O&lZaZs!v|Od6;Ocp0sME~ns|8cM1Ah3mGl&NjShM8q(me4RLLH! zhVH}K2A|zC_YS|kPd&-QNuTqP92Nxm>C>jz&Npt$qF6^MF)Xis*~8=BKyPX@OG~$% zAEp;Suy#CQoK=R}!hQpmmRn#(#@FURA{n2ZABVpuE3MGhb#LDI9c~Q^dNubK>Xl|? zvAoL7$vHSYq?Frl!IC6!>)d+d`u)pmhmB46!Xl8VFc6N1hGnfd(5G4@tL~LpkM_^gM&$NXTx6qAOM(Y;ennvkcMJFWW=jOT` zANgJc3X66N(?L&l#;`FlF(FTA%3K^7jZBw0+QHX5tgfz3Oia9yB5Z2>zV5-+%k1pz zm>9}0KNkCQ*VfjMr%5i}dKJ>fEaNv0JMLDM&FJW;mzP&L#SyhFaa)!d(F!xs=Fgw+ ztlzzRXDVI8eiPd{XBie6dRiENAzMbP6UMcBr6x=28#>_8q_e7OglOZqJTfR2ma!w5 z-@%U4PKPUCzRb1TJx=T8@PLq(Bdwg+hi!|zLsKoquq*zp3{QmuW4PPZ?Wge~g zIkBqN$Ly!BBA0Txuyen&+l8z?5D*bTk#+i%clE&k`b+HqZf|-)(R4CNZb!l?b@mN#&os6U$l~Q1+gfEKSN=n&W7e- z!VuZJH{&Ux(e0_TX=tlxpoNb^1y2IEm4H@@#KHCz7!l?b{8f%?gZ(*N*pIUcIR()< z80(|6mITmiS;7$i-2cD68*cya9a&>LLX(q|>)cmyyMsdJ;K$M+&$Nw`<9v6*{o#^{ zdT)=YlTb}i+ZQ9!(iluRnZGvr`!9aXK7T#Y=lJmV>C>kVbiyQ>B|r)q-=0eWo<<@O`jC=MN%g6KDb(_IC zyuErQeAy786b83D;0Q63)w-J9dK_dw@h1QI^We9=itQ0}<_-?W)9;Ax@M|=oTI$Ek zOz{OJ91c0up>0A7BF^=CWQ=?jh6$=4ulK&f+j2B9UUIt*b|j~sgP75R*<;YBaugL1 zp;1u|lMPb8oqtRCqZ+vy{^Qq>e!+oer$e6sm zJio&|cvH{&_p8upk*6+})Yf;+4NqujXuzxsdOiA7VR_y5$&E5JD;F1+wZqt}u6OV7 zla4uVW*k6Yf))V_9okelc`!L+$`yyNt)XWb85x}x>pa$%D(N6|PT8qH(YD*>xTgx_r6nW~THA6?vFaGs0_YX%JL`G9qnl{qWA^ z;ZkVHwfBcFCQDYDb3lD$zG80#bsTtt=S=JAqi>>%P#kwD1zf(V{+bI)Nl%Y-@!wvd z+cvI$;FhMRpwRjVpXi6*_R?UXTDmyr)X9@4EeJCxZCGe%XyPyP=#{j78!sQgseHIu ztbMR$lYcFtCP_s}#k6xr=cTro+tNTB$IXVLz5DFGMSHVRGNh!Wj?<)Gy-zQ_o0wp{ z_p3efoVd97?KiHYHBRQv&VrgUpC*sDKj5ng3JZ_Jcq^voy5d$>Rw^ng*2ZfC55D9o zQwX=Tw3HoBO_{_CEgq<117KX} zO*Xf&2_ty#9?lz)(b+%Wlhh&IKib#l&>4-UV3G_84V5c1!8TDBkY?#?)2gf$y=u96 z_Uu`9`-p0I(y%_-49rJhKD~A~&-=SPy$e%)K-`pl>DIY(=W4b)nEmIDCZ9aNnK=`Y z#gNwaQm2qxwO8)G|E_=8cBBk8(%WMiL&GoT9Z%4?=nkhStcI!ykG+G>8(1J_0aY%}&e5eY zTl!%ZTdl_ahgcD3&M{a<3iJtGQ~|%(F{S% zy+8_YuT6yeM848_uEyxT{7k1%cW-a+nPjwkHqy?{F3+J_41wiuJc#{rZgzY1i=$HD zDY7a2izDUc9RO`Adpo5=Tm4-lL_XE4mPFrupHj{;20(XVY=xZS4Cj-O>>N?q#11CM zdwr99Keo4zrh}RN_P%rY&7=xiUc*C(!OE_6p5NhE{`Re1_xyzmW`od~Yd>`J5a^J^ z_l^}LX5qn3bpIJyid^$*kVOXwjWznqaGXOjG2LmW!XPaPD7grRzfo~(Pu)pLO_fJ? z+7}5nT|NTX5pyY~<-yj{W#2v55)K~qEM(#`ok{>F{m#vY(-dgTiXa8r-G0P1}$SWl;>6x z7H$s@k2GS_^pOwER zb;-nFuLO_Yhb|&I{we?ZZffx3$JKUU5}9MVCJEjK7nnG@7p$uPw3}>5FK#*Us;UY& z;+yIm| z5BE4Vr#^kUv%PBQr%q{&ulU&Pib9!Jzu)k5+;(V>|I>%wo?4s$tW0n2keqTT+T3qd zzhpAt5>T3(`&i4T199T=N8mvfA{Hfnd^*Q9iwleTk*#DTF^iy~ zlC`xha%4ms0QLc<>Iqf2pnwx~g%g35(pCf@Vsdm=;a<)TDmF1u;1b+Gtc` z+4$BgYq=v9X(~-(xe)3bTo$leeY^w!x&adkZM^tubdt8}#ck_4UDM81A}KWv9MB6< zJ?hU|T(p*vk-2i^%CoaD4rOKKmpIAd8WFuVv9giTIP`UBCX!N8U92Ez;G90Od^SjV!Qpaz;hs2?COhMD8r?^V|T&Zn5?iL}vwL=`}9+u8I1oX-CW zAYi3j`oDMq*o}$f3_a$I*7bjA7K|=LlLGnyaez7{d|V_!HtXM_3*6?viZWcI6qoN> zS!Iek0ZelK{OkrGi zs*8b)fgll-uFw=h$#y~YY17#6^~vAAe+Tb6dvKkEikx3q_$6CD7!UuHzMHvif~B3x8~9Q?OmmiyB9`SE zS^f<)^jS9#4`wlE_M|5;+S?62UPfQPt?6(6pxPX@$~^q>jso6~2U3T~rAyN`>Hq34 z3rpD~VCbt|Vi4%gI8eD~t* zYVN+LcWrtM&%yiWw@B5Cr1J9b^h)m>x~Pct_xEpXY*-sL`blwe5|1JVyGARmMsJax z?ka@l8p03KbK~(LKjP%TC1@1!T^-|4@L@900X#DRnfw5MgE80HHqL~@f-kfbQtZm{l?>c8IiXG0|U~&d!pjvW|`IkSoRAS=;`Rtjk%Fd)ee&xt9an9 z>>TX=v}O=<2D$pK=cIt2kx^w;*Y+-Z+uj(R|D)v-oIJ%-mPk%s!p z;O)H+ib5`{g`ug+2*N?5Cz0=Fx_H~Evj7{B$cOKN>z2PX!A^OI-}}U#784ms#>3+< zUPDPs>$&iOG5J8M)$_-GTeef%!wG4SVm9o)R68kNb&6d88t^Ij87g*RR^g!P{{8#E z7yD<|8;_;kSM)&x&=*mN#o{x`_#FTkW65r!CiXkpT~I0NJSsbR=E|9FSOw9~qfO;8 z7>mv03`Va7=;11Lox18I0iBPFZ&h{sj`+*&wUYw_h)TB|tx&vqa~+Uxh@rl|EJbH= zjZxbVfay;(R)Oweu!txosg|exO;7uYNl1hQ1e$atl?1&uElAI$%6R^e)zhQ-GLuKn zENxV7rnnNeI@HlYbn@Xno57caU(m!(IM$uo+S9HB#xFbv6+fru0BWMRSHGmxtksrd}wuNoKu8jU9yxDVX0 z8z-q5y>);>-6jzSe-aZPzlTK((jh5@X#pWm9;iek=lq6&(Y<3IedERxu#^7|DY^k_ zQUsF}J*837)Rk~!YKG7xAT#gQQH}IRC1H;w7i8q(rEwZUGqZ>wp)-+p=ylsU^6kac z+j-BQKWDoUaqfy5_^MfQf%-R%0&%+ro|+Fjn2L@!>TOb>YiL9S$?nIG>g*r=pCp~r zrmb20c4uahP5DWDmy1+HOTcBDfrpa%=e%S@L=s`r%#OE)jjiR~tS4b@R!4Uo&z`+_ zgUtbijtU8mkyX&63>fkUpI$O|jEs;oJKzlwvP3lBo7qbt{HaYWB8NCyt6LX{fQmDH zy9FoQnZ926^{BX*uPDOy31x*<=MS>6XoA;Qq%T~!Fm7&R)KWP~;w<%5hgyNMo#Ax! z;;1|pBQfQ;B9FI&ZJ~?i{1WyPuPDNN8l`R~VmlH|=%hLLQin$tE$XywXu?qka+-Fe zpjUt3MwX2Nw)4`U(wz&(!sHk4#Z;`qpOqEI zZ0j*GYYYoYpf=BeoTAMJ9ma+0g-Jl(7TlAR{zvNTlO!x-@B`tWOqN!A;` zmxrTpLKN|EkDyoBw0&`wFUUhBktYMVf_yuJt443Vn#LcxJBqwY7fPx(1ZB@O)upbD zuGvoJ@YmT7F^U$O0ij$3=T$sCMM=H^q|Z7(cb|bVc%J14_UWQ&u=pCkT&w} zy!-OSu#74qTwdN`$L-hJL@ME<(ozRJ#G|~P1fC8V18C^gOESm16z(BCB-@%AXwK@I zo|6GAVTm)k#0(D$Rkoc${fACQ!7Q!t3G|2w;Dbm80h1HYkr&JFT3SwzF?%u4)IvjQ zO^^;KxDG}2gE-(|JetNu$LSWrxsT8RDn*;7ZEbB6FWwF-^b83LXY;K@UHGV!fiR7c zqzahB@+<;aO1@2KXkg%kn09YNouQ!#7P7peZ?Tyw01~g|Vi2Lm3)#pbvflUaWAw{U z^8~8j;Wes3cA=El2MdQmo2<EMHMhfyd>lo#1fK|Qv)RMk?qAe8O%d`b^oaun$brSX>v=-(G$iqJQll~^96kR zPueewRtV7pLc^ZXzXe-PSV&0zZhV(akXGp(DRzZdnKJ%N3=E`L78i6t;U=(5oePb# zL8{$r&kJ8f13#N}EK&vFK(zh#mIhh??_ysPpW$QTSl)~I$rxCigv@0boe?8^UywTC zi3g|guAR+O+zvfK``WB6tl%}c436EN=O}R;XZkM6>LgaSAe#ECBg)h>bb|iexk}|5 zKXiYuO^iy20F2KwNe-Ywk!d&*y*>Tr&6}b%IgIjrvkg{~s>P3yhW}1{SL4}tAL6%S zxHt(M(hCchhmHOD;`H=9>%bDQa3(V+pQjhkfoVfi!^Ug#77Vt*j}KR`T0!) zq!;2vvIJ}FaGB}5=nO~VxzB*AEBXk#=9rxo{eeUjrHI(kle~O^oO2~@>W6eey0~Zz zZ~|a4uLEvh0=ZX=QTp9?HW~M&0oY>qP=ZqpNE&MDQ&+Rj#a1*n%3Lo3?NnG$aC2j$ zc?U!cwz$c0`6Xo}%~4rDhzu5+6kHorta1MJWscp)dlPI{3&k3tAW8r7l zz>dcA-$Sa3a?W@}WHy1$Ug@y)Yupvj=w*COOo?d>IU` zPBE>WHt?Ggt}VTZ^Z9h@U*c(Gk7-T!JoWnEAHeAwAAuppQ+~o=n(2QYalY?G0tfQM zHRN^zO+sj7WSiRF@AW?WN8F*C;CWoleG!zgkcqsA9zA5h#C-q!ywY1xp&69yO$%Tt zKnqbyGK~7IA3l5lC++iRAy!sQa*o0-IInqJx*$*Q#di*vRfT{+u3&cW9vup$?Wm#2 z8ps|p^N-KT`Qk+z@67bH#&vQ9O<4_1P57Z1$f>6OcL_9>$}1}+z^fB@`S1sS5X&_} zkgnz81@);QiS;4g#L^PWJy*BhV6M}te6{FB(j-o3<^iU_$C;pVc~wvr zk$ENIxE&`~5aYgoHM~)`_c8AKcMkfFKfQ;sK^JfgExIiDsH1 zqM2T2@=xH#7}ANxq6Rfp5tIuY{Gpl;MW0i1Da=JT~W4gwjdsI|ij?-O|R#$MfHi{K{uuQM}GaMR3n0UlH`#uEDw{Q1$bu{$-6%}q^H3z^5i9gv`QFjBPx_*O5Hh_NSTyIn9i2-`?L^P69=x6F6m70SHVW5YH?f ztxeQ{itFL*jJXl_fAX`P-QC+M|IiKOf6$FEE}%vi1O%ep)E@(#$R<9klmMYd()}_U z{cW4JsUK;BUL_cx#eJP33i<%T`@2&6&v_SpJw%rIkFe=gW;_fS* zQdqyuxzpQ@-#?xAyFxza5l>hY8MHPv^>B%xmgzDc2`*$YF_B&svpC8YjKj_9C+Qu& zzI`MF!rh4Oh|KctVn3|s|LLL=Tk00-Msg9%58sqIY@NAwk|SNz2}8?AYKaouvCPXh zC#%bPvtn7gEEIheznVhc`{PebouUZF{axquFDrB}Zp+nmwB57LeY>;Lu4-Ryv;M;H zbJ_7btp0pmmNH>|SXpQEFpql2tNnYzY1&o~h}v?)akWFCJm(1ph_t<}t)zK7DL#H6 z2)3t(AnidxC#ZmA5V3t49!_$xtCrYE6I5mpOnyG-0X=wLTQ z`2J9Y;z#?hZ^eemiHS`j10=GY38v(M1lks)pCN1ur%{yThE+^@J$+-rARcC=;C zGbDJ<-(P5{@2^YKR=>-)_TqLqCdnnPpJ~VQ(%288M)|k|-|~fQhuo3ti_dj>Y3zPS zwn!UT$c~wj;(xNKvQ%lR&NjAC%CY(G=xQ4t8Mt?$*V0$IPK=~VBXg&gcB#WCvyvX4 zeEbsWAsVx$FLk{0W_Qoz*LSZi!=n#Gjryl9n|(jFrW{TtbW#_-b_YG<1D)X{bOvo* z;)=5DY;;d(=Sl$|c#VDQSq0IT?+*Dl>(i)hJT_Lm9c_z_IW`S|5vRrTu9?Y8z; zx1`Pme+#A4T%01+AZXz51L&G<(J3dl&q zut=h={sGlQSzGIWViAgpisc_bLma3l=U2`v{@5cs1Ob)at}(0#X^t$z6&N_0fm;im~4=Hk=rBhKZ>p{~?G|hTgvx zH2})fo=k|0iRsT#4A+;Gkia>@K^oEX5D0)4a9*pdcK zTj9d+Q;2h%n!?$)s^}d%=PNbP^8#J0R>9$_kS~*Ryizx%c!B#=5txm+y&lF0^$?TY z19wr6MR4ZA^P;N)u;i81JR%oUnZ%Qz=xGRdcp_hi|QmMzxXX zXSo#vqXAR?X%aIBVt4Va^WOJH+w0f#m@{)_(ab^(k|Wb2qA0p?t9o@=SILd2#HqJy zjo7O31FRR%@Y0qYZdO}DBno^>A7tbj=4f;&G!71BAGf;bCLKibIvu5-{e!j!Q90-g zX@^*Y3v^hdULj%rP+H7vlUw3D_PNyy}>9Z5fY>FL*EaFb{$%i*I?ryM^mzPI( zgCnb+xiNb(Ub{2;ipDc(-5Pd^5fPMEa>B`j{Nr53&hNKBsGVtLd~l_}%v}7(hM6De z5vLj5r-_K9jE8)D1(ukMj)pfqre=&SicP$g5|#0q1CaOu6MpF}cWza0nMBQGBZK>v zD@{6PXS?-YHmwrbDX3S}klzmzSt9LdAhWA`pjY@i3R9DA-mF%}BkWkg_~f9E?o{#M^rHT4SGz)pSzJWn`*IYnVr!yoG}^kK zN{za&e4d)M@;UbHexE2wHB%=*taJV2d?|r9iQnFB!rP2%{ltdq%`71k)g!|Ced8hf zZ?5*qG_+@UPo`?IBkocCB>bI*Phyi4Ky}he*kCk?Ft{PIh4{Mu|E!rRXzrg-8l$6; zZ7Ek{ww8x8CA~Ch6Y#?!TG7G^_Imm2*Lu9y5b7$QFCUJYM-9~}#q*R->?VcsN^_c@ zb~T&)nc25fp{Ri_&@Q7Alt8r@>nm<i2r;-#@4X*4W5N=+ZZmB(59S?K!-8o{3usP zM^TUv@DN;&E%moM{HO99X5LCRCOy%?*F64x7{O|^cb*?9nZe~rx5GX&%R)7C0GVW@ z;?3d~6zljyPMZ;zt+A^6E=P{e&M9ClXX_C2W#TeAIg5~a=Ivz$Q0`d>0VsTYd_rRx z_J8Pz(9Ika%ZC?=2rjuP3JD1bxl!~(l&1FeOI!+RnQz&z;mxGo%8QN-7-WVB1lNwS z6pqLMv&)ObahN=XkFBpi-{bQ9-_saHAVzUCF_^Hsbd}cJ$B~2anAY9iI8MS47n>N2 zf||vzux1K2)LB*-DuImAD*^H0MkUB&0aOn_u{wVR=->8A;~mq{IoipFIb zJA(aE0#O{-B8bMc_CXd!x70xB{szMaukOWaLjJJS_^Aq;_cm{X13VINQ*?qWNF7g= zv@P7%KBn~*4m9DCSK1FzvHbsben=rBqA{C_|MN2=F@!4UUDgkcE`LwZ-@kDn!SUCm z{C98o2Tc5RN#cMVV%+_4#u+o*n;VzGnqh+!6|Ne%D+8@;N-@oDCsm5IrNw7hAgOgoa+7HnC!Lf}n56^udemIk$ zueDX-jP?A8PP8>ymqY{U^I|`C}x=qNH~9a6e8+0qhMq6Qs5Rn ze40O(oCDto3~mSt8(Dy{45GgL(t3ZcGGHQz0XG#d0qh2YrTisOuPsk)fYy*2D(WjT zsDzlKgzKV!Nz)0iNFDJ2h#1@d38sxDB+43to&w7p3foTTHsA)(Eg`BH z;ST%-B2-X#I^L{)dEEyxyn50@h{i1~FB>=b(5*rO1Kejw?nV|rINYlOt=7>|ps`Vf z1&iAgw%O?ag$eq9n}LBUW1W_V_)t9RB(}|87TJyu*Zp}QC1bympOiGbGFrLIn3c#V z;a;{47NtgO&6_vd%ftL!T&H6|p_J1A&&k!*)%NqV_Yji-?y)`xnWYQo&nqUAL*nY} z1=WWI;8II?toiJ3+f`GAp>5|^RwCFk#NEQkSpKB0PoxG12b;q|*&-f=v_8o{T0!DB z)FzP2Q)KkoFSSo6>y^C(H2|g=vTfQRBoh=yw?dDvNi``Dd-dv-{^eX?b;|0kS@F%f zVANGtR`zsv->P%xL$K%**;`M%xhxI|q^~tjYytvE_saCs|8KS>5<$6~tQz&7r>{%2q0i-ABGB^#}C#cqr}1e~oJT;SyX zkcG!P?sAus*Y`rmU|>~F6^yjJLLuYiC+4R}u`c8-oeqS5jM&ET2T z*3?LPZ%2eTod-z*@V!iF(h3CIAzUSkuR|^H-%j(02Cx&1& zFXO<(gqDVJ{t^88^=p&DhzL?nf(H<<(1h(|fZW;Ji^Zs*&HgD5^qPOD#5CB9mYcm# z#%6$e9gv41z+$)oQaW(SE{g8C)ZCP5<(%By`vV1!3Xd+{egjKAID8mJln~T}2z$)= zN*=eJFc^Jwh5dxM8rtZl8k&Tfmzb2)LQb|1ZpeE0cRfl`?}X(W^Il9oFFzkW3yHh* zN#(3)=yBj{+l`b>Q&PC6E`y<{U*-B;bA_58-Vr%-w=4F%pqC$fqK>0}*sTI@+B!OD zY(fGg=H})WmzFBt5Y3ZwQ-Hf62X{s?h2;Tg>Yl^TvVv)kk^cEtgMfSg|Afic+GWg{7sG&yG4R-yrP# zfSr(T91A&j$t(zT(Bn)rL~wCw2I zt-!G~H#axM@lT&(4>azgaaHG+UH-fPd6LkqtVdjkNfEv`Ge18MY5g-nwY6gV z1blKTsK13zgbwkr5ZpyrcmVQG!^1R+rwxLlg`u06K}+Q-MV``&mqk-kQ(I7Ca^SSh zzx_>G2hC8#2??(3bu3a7q*Zi?AhsJ}iduO6`Lq-3hx@shKaDZ#8E7bJ9@Zp(zy+>z zg61k0e;ayCN;Jk9-M{}JXa__?RxHv6gXqF4Op;>`{&aKV%ajXM8rd+%p=cbQKzCpG zdss1;kc!iPe@uX}wvZQA`PIOL_WN7O{cALYxO+L>IY))yn)?h*rj_H62L)jo13n_M zX>q3?uom4liUvOCr$QOjsvo^pyQ8%BXag^T;CimEp1Rx5UgV2 z{RCmC9G^aYda%2h??|}81!KGnpy+hG9t11pp_J^bj0$bzN-R_kIBD29com>U7=b2n z_JzD?qXKv1_0q;8Ff3DZbInsl>~OTTGnj%I#I2>_()HCGUtT6x5UCk?Vhpy`B&%nU&n4FQGnRyc8 z(h*i5>8*&MMCb%e9)htFz@`+@Bvw&8RBSk0X?1gjo0F3h91gN?U{&6P&|JS46r)d? zAvRjqKmRo?a~SOF*|u<+o$IL(O?($j0phIF`zP$Q)YRXmr=37Bn}fK06GZVCq@Y(6 z=H?2)!5;!R@nUCfO-o1THQP?+N_*KRUXbxeB_u&QpI^OtRizdFHD8?qoeyNze+9$; zaPlM4p4jrJ6Q2tGU}STb0Wy4b-RpRPHXMVc#xexc*^oeanwn~8Xb8C*f}G1jLSJfK zIK*q}>Tbe*+Q#K}St1}5URDgMIFMHth`v(u-NGF*k+Zdiqe9AG>pUpr?r|w#U+9qH zKIost8lr;6wfvdcJ8NI-&(Z93xcA+cm7LSe#LtfG4vFA$g0}FqMv!zP^V)7y8(~i2N_=-PASa;aNEP0j)Sl=52jF zp&^8xranU6E?M~A8E0XVlg7rzmZ$&{ge^JYW+130fCaU7^H>5M8g?HO_8)D3aj13o z^sG@mx_2p_zf%|DmG18D1(5`X+0=4dfw&N?$pvbk!@bK~3UG)I{2B$s=&O5YHP8J% zlhg~(90dINC5b#S_Bx0{Aq0!es`>s;-7IT|m;I)CDebv)vk^PZfc)K;hsekV)vjfc zJ;Fe0O#g-E`7{#mhcbW`|LTK)`!c1xMM%u#HAD8Ip~!^7A-ERbdff4&2M6G-D(*vg z+nVFT1y(9|h)2=UHA7zgO-)TF>d$CuTu0B~cu1&dX(S@Q6&1k12tv=!4F`)W@oW%xn$jy89EJZl${*c^62Pj-@#Ov`O`dcZqT*AHW=d=h6@kd+SW$KEX_c(wQ~Io zfd&G22s92Zf_O&ApMhF%MMwy&C$v8@|McJG_Q(2i_6n`IE9a|e$V%GVudS@89xIo187@&EF&(9*EBlFID|9+JkJs@{x)Zm|xBx-$mBm4|JwF)@P7p8SR zNagR7KPq@xoZm+)Ieft}B@U3!Nn$*og;eqbKNDg!fhxbgS%vF4z)|RuM{t?J(X$|QGOw7}E~N3Pm0aQ$9{ZFSHOrGrPa+gNNNmH&7mUSt zjT6M{tpP+sYZnv};!u71@Gwgr&ThbGeP0c;ChoDua33no_V>>ngM(FI;Nec`%t2s` zLB>zgki>Bu?2()eP-L?n$o4_S`Ex|)uZSnaDw*E3MLg%KK zfxbZB$#C`9gJ+2ae+7Htlppx~AQsiQEmLng0NKHX1)a}|N=W3ohD1dvmnc^&;vfRl z6gY>v`(yeY;0jQ~ql(SU&G~qFpJJj%i;IeYgm1!`An5QO6e>rGZ~fkb>nWaRo}BgG4Cc)0rt z!N5wtFD6UlI)1ggGvZS=$oj)x` z?ctE?F&qu>pQM`k-1+ah)93nB&QNQO@@B6cW7ELJ>zcD{1{^clQ|qzLJW8UXD8_JO_?U(F zWe{R8>N;h!0dP!bKsMwZUKu?-l%xXhkI<_}AcRws0qqlxeFkD2KSE0>tIt*mFt>Pn z&cG{!7oSxjy|tcQI#lv`;>bUd>uAaK<>^g0oiqwfcc8x?j50y)vKJMw1E*?31DaY}^8f-Y#>K>-XSwD8heG&G?oG$^6a}1~CSYS_ zg=0-4C17G=0|NcW!F6UO&xCX#aU?A1oVT*M&}wN(8y8^lK)#s5*z_1q(gj95N4CXT zN<9h=CaRNBDv-_4x^DY#Rm#AzBEJLLTB`FcO^@*T`1mMW^Y_4dHz0BsLNJPAvx=WT z?~tmO^|M0I!L~nhh&#W-O;8n{gRy~pz?m~Gh!}`%UczQggAwRXMMVY2zxu|ez()q9 z!#eAfpooZ)rMb0rCo2xjz^RI1q4VeGK^9R(8>wrcVG`eUcO%?Lf5*b{eJE*=c!upi zTx|Fo=Er({tg5G_3QRFD{B&bRxF}FI+g4YxcVcLe3tfq~{g=5RV*i$2@k^id0LeSEgYD zk5@yvK2yJIP=t_^Zc`MmkUUcY&B42616Oqv5?@zUS#m$t82=xYT?sgpZQHgRqh(}C zAv2aNDN7_tc#H^TZId=j(Sp1xB&3-PDnnXcsjQ(=wu(v!kv2+6N!HS$kYx9tkLvs0 z??3+kIR3xmJ&tE=OAZd}wn27re+@ce=4xR&_ntm|T3)V*IrsD_E`8%;2b`pvcISe0s=u=S#M`MT zP^2{~+e*d;WcK+Dd|5v*gGgAi_Y!7$)n#P;0p}_2Gq`w{=gyt`L1jHXAt_0z^uXJ@ z8KfYFxQOT(4weflM)!SbDuT-p|2@y#9Ee!(+^DG)8T9vAmE@>=!u#4}Gt|0Jp(Eac zol-AUMPjp9??hpE{hD=1k=`Pe1(jKL_HJwsUY>JcT)8&)M&% zmv*#%_%Ksky!;zU@`ls9T%(Nj%9asP)^bDk>^METX5kx-gthO{>jP7J|)1N(C4RYu-?T zEc26-fo9Rvy0=%rURuy*elHzQOnDlZW{C-w-9Dy;1qi!(%ju^#2NErz0hrrf$ z`?R)e1@c&1Kg0x1{h(*Q)rHsf7Z+WBxQm>FVZx+>5B?BMC`1Q*Iu{NPbbkhtvaJ&d zrweG^wwyLqoz;ur$Ki0$$ygYTY1She2ZX+sLP<9|j^|4+d5 z+d?i*^q)Hc&S{nll!o`w{srO43jtyAzu25uWfPOIOAtV7j*QF*R9Evi+@Lgwxu#cS zoYMJM$bQh=U~O%^^L0U%R>E1-kV8X5$|@?Uq>dQ+OUeOSN}7Adsknc?-*2eT0|UHU zb@frtpmy-+#_zDc=-6aS6R;1q?9WRrl#Dxb<`p!~Yu7eF@_8OD^H?NE0U;qw)kkFS zMg~*xoalR~>6yA6paQdX)r%%RUn{}r`TMRe&gz*9Tuj`71_1utc7jkeLOT9$_)4G` z*-&>!eKn+15P^Xn*?JDjeej}HuS+W{J25@mWQ`G{HfD;xar9~iCOE*MSq}dLV8meJ zupGS0Fv9L{O@A!B4a!SPw?HD-WdPv|sbf8ek_|%=uihh#zgmi8r>aWMf$W;_U4ax- z`>G_g0{m&GH?L1F`xZ@)HRe(N2!wP;9Gk4?*$6PnE_Ef9uhLxDqO#0 zl)_l`$0}p8fC#)RhoNs(y~5KV08GaY-3J&;Ja-P){H?7me9?bT(RkKvr>D`D!=54N z$$6u*=Afu0FLUvX(0fU|4(!Us?8UV!8*V;nXgDo6i=*q^bVi<0vEnzzU}bUuEv6C~N`G8nSV=zPc+|@OT>LWlz zn;b6D88QnfK#5y*OeP{u8THk?d6&(jrEC~b{Z-9{8l5S_p0;m%_{Yuy#KhbUueyFE z_rZ77?s?bl4y!L-{Lc%68AIhIS`MT)D7$anzKs^q6q!X+JV?F)gWq)iE5~ADt~sRF zV5cRYKt#i=(u=Db-_+NWiFMa^Y!=tQY;A2RTd7bT$+&97b!qWWkmB`0)p_h^dL#r@l^X3sq4+|Xr*g2GQy z1P}Z1?g$(im~YGp=RYeN{@}rbOkz;X|6z4?%O=D>*Lea()hrS5yF>3~Uf#FY(9l?y zPH+~E&heH`i#(jk zRF=Rmg*=m+mj}A*6q{{+dcj6&4~yv&0Z0q$*WY4xd1-sfj)fBKNW&!?FKfA{KPRx>-@bkOzy*?9H8e1=mn1UzM-(Lt{#Z)g3r&=sIa5D)&=<^WAxi@kk)+G{ zN8wjSc5^e6LMCh>&wQ^M>#(FU@-SG2X_3vN8oX?+t~VdCUu1vJj9M~^xLpU0h|%8* z1k=$DBE?7eU#seb!~~i6|IwZ+_8*`1%W8!jP+dBs_{$`r5|2L(tsv2uY9N#y8picFmvaELq{I(O~x1yWb7VBu}5=An*%)hk*8b7Jz(jA`iAND z8%mU+ofk7(Pu_%#;ZBPq{E%9#_T=EyYuB0ulh`}PiL_(xg#5) zc{qa{45@JKEE(5KV5)8BFqYhNV`Oj;8X=nt%jDd+59GupBs!2V^&|4V@Mv-`fL~U; zyQ@*>(Z-E9L{11bud?(W=H6!6dxcVn1j zz25zzrN8`90JmSM%uXbFKHFsrJo4EQNuA^#!GeUlceJ$lqLfRMSxi?_V$NO5fkrh> zuTSlnY@b{>h-On?DD=AwFx!a?>AuyaT;ZVGZp5G)Hx@a}e+}LB?euizJe6lsy4;bl zJo(U3F-iW}uev90?w@P2dUdF*{&N?!m?CladtZ5Ez3t@BMEUy$YbbE11}ym_L%*CfEVbQ!8Qk?j6B=KF*^k*>&0m<4_Oc9v2h5s}!sMNxoDf?$J)^_2dTAn?24Kv#G z?v24H1xo~iq1fyB-1ttr5cVT<$a?h^72DxGV-(a6ZsyFIOd_#)7R$?1^5eAO2$#;F z(_qf(sjk*GHWjP&L5u7+3Bn+9Y=LoLpV9)~vT#AlI}q|43Vj*3R<2rgzY^U9>G^7Itf=*zvMo-kQ)cT@1YIZ#7J&tDE1#}Fr}Jc_Vuz`$DhlXr z!?5z(rY2whPL0BDY~kAJO&T&m80;g*Qy;IevLe#2a$#a3?sM$+e9h?N&$B!h#e<+! z&ajaT=Q+lW$QhSM2x_X`MMWnjPWKfof!5qsML`Dqyir|DRcsRuVa$uGB_$=>tkuxk zi?UKvj5OtKGz$*ClbDi^@3EK@C?FEy$bRMHzE#?CWm+Oa)Ru^X@+_i2VVAp}XD!eA z`1m@RG{xw|yd|qLPBq%Oa#``RsS<7eo2ToX z(f8Se`K?Q9vS*8lF}7BZudfCs6brILB;a4uI2?(ArgDd2yk;qZ0TFR2sR4}ODcUHW zVlZLwAin$7zV6|gdDpr!C@5*_i!C>z(HNlSAC%TPom zDQEFQev-46qQiK*$-L@gy^f64lsImjTRf5I_x=6KE8E39fF2+q?`&;NmQ3Qpm*CL_ zyY8017s?BS7(;|+K~X7s)CxOrQ9qG}7TC)9(^}wi5OxpE>;COR zJyDKqdU9+Zcy;y0IQ}#}922e;>zjf)b9R@hKt_w|sh)KWhMAzW=W`XjInNCb-(h~q zY@Bly9AGl9#51&wvzR-=r^O~zKSa}%?ruHnTeuR>PjalzzDo1Tdb`#VDGoeVN7fW+i0nOiAaXLq7T+_G9mQj)EcMmiWAJbBDAYW4g$ zp+I^lN(N}rC_=F_H8%%+Oozb_ql2-|O;VF;;MYM}Gv+GT?{?j}(_jF|zjMVmVC>w1 z6911gT=mz~-XdsCKO%+_7P61Z8t5!p;@otkxg*8I*O#Qo87lq(&`m3CpdDFLdai7c z!J}OPe;5rZ(Io|It3iQHs&creHShEg?(Xj1-V2t*z=G+{k((q%e{`xvY_XnqQvkZ? z&dYX7tYuhwaM_lf=sC}8yzwznU7(M2`+*yT{b6|l?~7MyqjcZz82d@TKvU2q`*!e&sw{%`SuBl|6hMky8=0v-l`h28u5j!gpDnw`YMR%LFTBMJ zErv)Y;0Kc_;2>qq(EfqaIzM7hv9D#DfJ#DOQ(RG{# z%Japdxzp#0vyaYND75`xPnqzuzz{Y)y$drQyCNPXfkEpV@#hf}{}z59K&6b0O4KQ2 zdfmr!Wu2DF-h6zy8V+A1`RGayp6b4tI6jA3_R;g`{vz}R)KTd~&vAe51>*Zz9*f!t zBQy7~103(|;Hw`pr>~L>=X<8-9x<5PcHgz&7U3JUv{8ZO>10`Fnr8Osg}y$OR}9s< z_`@Al{OoYwqvJoWSvMYL=ajFS>B8>y{JHXoN67f*Z(%q4eHuTtXe55N`&bGxTG@ch zUn}I|H#WRCA}C|O&||H%@Mh6x-Otja4^C}%%F~xijFw=Ae%hoi@!8_=yn8&d3$|8p z#HwF(ycZ`jxl2`VUfX_QN|rfz%H_+CxMdeTc=BX9RUxt(F&%JSZiB>8bl^amIhwLN zOpD&+!bxLneSx#A;Xa#*i(%@)Xy&8G@p4y5+jAIOMpw>|kcj7U?c&pzky+^#@VvG2 zZ!~3d{e+}?zkmN;(AwFlhknMr6El=Ao&s1)>wrJ=s8}>z&T9wEh^5#{%2qb>m4#MV zKG3#e%n+rhiGX8+4axEAL%xZ@bHk_%Nr6;}l&-sT)Mj#F#Xh1aCZ-H*0-9_aU~L?G zbY7(7JnHb%L~84(3i)2bQcNs#UG|#jO1?nkmxteoPnnrCA}TuN;WTwtJcdMW-qi2d zdSTyU6E-(0EamJ4CyJWB(uDM~;6k(4tvr&1Iv=>yN;*)5n%V=eKQCF%k$BsnIG1V8 z_8mXbM&R+(y)m`nM3LWHX@GC|Rv??lly#3x;>RAsB)x@PhF zy}z!}D>;Rrs4a+EV3F^h=1AV5%bIGG4j1xz!E%_*K-o-qY}@ue|LL+fVAU|1CAZj@M-TjrH!50$ zYCzI)2BASO}q@=#(iSB1Vx3v?fB4 zE|Al20A~SlL*Mai7mzucofgW@Q3bkh-WAJ(y&9HBH(|=5t(Id^lJj81TYqEshNB;l zb{!)3e0_7%wuWbWcXRQE&=r=mkiI6Dy+V%-&s`|Vr?&n;Z!t%(!WSnWnJFkRu=vNz z4U{p;XEgS!?3uyLA=rMv!_!_O?)>>pXv8)?B>0t-HwX8!RXfo7Le(<>2whix*5~dl z8V!|m^!{AuY_v8Y@A)v?|8XJ2#*ZdY1!=kz_Mm0E`QVQiZZSruPM&1*;_i|&NDWSEaUe%tGcMJgS!RVgXZ*r9@Ac8<32}h zxx$NF*dHmjeA2`q6(9Q!9@V;$+l}ytx@_P`Nn{*Yf9TMm+OVr!t>+{mkfDdwmr+|<BBR_pHP}4G{|p^t4VK&jW&122WwH z;>YRMr%4$BuJF^&7ne@L4+i_J{xfx!j(hdaYsD9TLfTe@%V@e2_#K5gX9O~IOGWOc zYKCV!SVzmb+|=OVj~SMZ5bG6ge>x{HhxfV(1J)moIBIo~{)=JL^MLTJ!A?mhb$lR^ zyF$U(fwrAE;3JcX>h$_GMijxOxl*pGp|35dJq*s4^9?e#JE|SvpwSTIZXPl5z3H4S zf3QDxn|L`|QM!g~OXb;jzCSTcI7h&P2+-gbF{@7AOW1Fke|VZj1veq#HH?}C#<1XS zQ!*dmP*AB>Ha5UEt&X-v%CHPOB%Ovvl*11wfsBI2fm+GV1QtP$^*d+4Kpat>k*0cn*;bW;OLbCJrdVq-MUv{ zy!>-*&mXM;^tQaPxDwVV%j|OO0ohwCCpIQuWJg4_NA;hsm;z&Hw=4_>w+AHI{R!CE zAuuulg`5+g%);6#j@MXw@_1FC^c#QY{Jf_R+j~Hd9mb+BT=+cMh!6@^TopGIv!A)J z+QdiEC);>w!>(ai_?^lx#qNVp{jz*<$k>wC5C4*A#o2pVGB@l=Y_H`-!bb3-e3Lx1 zq36$k4YU3yHm0+@w|vX8$=Fp{BA*ugK4&eb zU4(T;DDdjn4f3*%e@?3%gK5wbgQoJo^<#>5Vw<{vR~4Q-{7>LF@wK%z7p}n(LaZ|a zfC%Mkw+N+f&&E6tEa2hra1AMISJ#w{wyZOvWi2j096wZiE!|zTc8FL(wTLad- zbb4udx!J@Q6fyB*j{b5a9;ujDvlR)lSgwM#)Q%BkE$|h|_mhH}MKp<#Qo8aE1JPu3 zQN{YxDqM2|f`U#(o8#UD50NhyQtM#XizwjXgVlF1O(G-ddIn#p;W=8nmK7uF>t``> z2Z9|hnmCabz9k-bX}%MQ%>E6w)cK;kLr$F~YCIwmGAWbD&C-5_tu3bU{E9}$oKh5= zC|MLcMqqWxHI>k6RVc{czJ2@fVe~lN96+w)!URiVnq-{t$Qy=NL`;k=dP=R+FTbz~ z<));j5E4^`(`131woX1s*g$}WUb(wgKCRG>!8#+AI_Wc1z%TEUCZ{mH<>N!@|}I%WE($>5V0105;aFVl1(=0uUQKz+ll* zQoG)7H&A7^_+*F^9KcWtqr&`mBz+X~4@eKp`mg^_o?M@(4 z`Bej4B1^%Ihc1IesT^$7}q= HTf+Yf-82kd diff --git a/docs/images/CopyCommandSequenceDiagram.png b/docs/images/CopyCommandSequenceDiagram.png index 7f87689ea7108d1013b0a88965f532f45528e352..86b220665894e36ac66e19360288244f22622b2a 100644 GIT binary patch literal 37376 zcmcG$cRbbo|398G4#zn53LP_bY#}qp7Nt~X*;`h!H^(S5WmHHcmF$WlJ6lGHgv=;q z@AZ2eb=7rU@Avoi{rrBP+pmAF>&EeVJzvk)^Z9t(*YiZ_oKmA8Vw~yd4Vn6)kblGks{O5?fioUyrvx~Q*m9_gmH7h48H#2uD%R}bghiu*5U9LzA z3As3$Ik{iG>?mmAeA%O;g##`zZFf%J{jZn9zdI8eDuwuZ z^Ki(!V&iwWy6;_Zv&oK8s^%oRL34jN`D7!_cZT_>(YB5b%!k!p(y@;|Z-*>#bB~|- zcFpF^Cl}w0(V-Od63l+N&n%eIM*sdD`L3%1=jab>xT&hkoD)p!C6a1CWybA(+1>v$ zQOAWBIrVef9B!FhU&)@zpqRZw`_m+=35JUt*-qtX-8|({i(WU^z=nyB71k;B7YCw_ zozmpE-$^|%pe2^VHZl4-uQp|+{4md^u}52gU>+;U$?rpl?lJVfJWqdMSEe-j4V{ld zY}S3(&AECu?y*NSD1WNh+q$GXgG^mL(?;9@j4fOxMQ+ti-skpZ@1y#tXegOabyMWc zT-d>xDs;y|?TFFL&9eP!wq@&0$Mz+B={a(aKGoV$Dqhk=>tur&&*c(Exz6h$iUU8` z-q}9wGuyH)HDA3HyrVtiIxCi(J7o_^k59lFN0w)%YHq}yNzdxGC8lkIdm`R9Q};Ikrf7uxB@xN8FWKZ{SAF{ z=dQkn4-8R6$fUlLjzab`^fEr?D%?jr=5~fxCud)O`!TrB^TjvU%}v?GwVC#|jvqT7 z9+M@$zEk)35Fv*UA!{fpb+NtwJ9I7>69zvy6iIc!0HKH?R77zQ7o+eWIwVhi7U{io z*sd)lic2+md;NzWsS& zZGMcDmN$+`p7vrEnIh`0dNvZ|*Mx9nk_8S)RE~Xg0IcB%#>Ywi`Jd#xrv)%{I1I zbI(7ypi!rtV%>7n9{g86G5GBIk(=FGS*iw?%MuNn-YN_v;j~hOHHss` zc&f4EiaD0I#O-Kihmzw>R~bb8qzodpxtGN4mQ><#Daop_+(>j=2u8VFnc)Vy2|NBo z=PYLe?r=gA79oa4o)JvISt5#2aEF`fmS|1xVpOeG6ZYmwOEfe55q=aj29Y#Tm@r}5 zV$=kUfqM8MWI_Q}BTAX!zA`6VI_!UW>FEPT>c+;S%ipLb)|)C^#}Z^sDn{GyXe{`h z;zSk+GCzwKvl(6aA?GpOebGDNeE0Gnn2SGOu9D; z^OCtrmZ+NKo1Mh%sP~fRfLg3^yq*MCO|EKOy5H6sk9R@`uYmHD1Q8kCP2z?V(kkO) zaf8_o(o$L(@+OyhD(a_)IEJtbVZH zp3w^mx6X%eUpzc@v92*qhKh(dDev5)#}zsKkDLa>hlY6W-obJzCFvcXu{NnY8MW?w6*; zs}gqT(Xj^6d|M4i*NTN_nA2@o2F#jLak+cPGdo^)(ozoEE2@{WOEi$wFDW?duwA)l zdhFlZBN7q{%*AW4wRI%w_kBic1-!KvX&(9p?nCy!yt*69CgRA<(0#w*OL}?(t{WE0 z!el!mi=kdww2*P+?rK$X9ESph+-a}$Dzm!$s@>RzT9ZIFl_e?;c`6Z;VoUlj!3r=5 zBl?kRbje5PIioLNz7P4AnJRwxKCoLS&o1S%@M4&gLD1NBWriZ@%EI`q7*@{=d4K

    3?Y>i5+kJ_87sHrvjZ^mAi?5gm-Tv?RwaYQ4VG;SpAH0uld*xQ#1u@z>$Jb z-(mWr5}%ck$EPZ#{2iIc+OjpoCgjxI+^E=P≶>h&Jr%8o0`fArvsR(cgZeH*0Zm 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%0AWt&o9)P3pWo&2wgX;NZ%6D!r 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 DE%E$S literal 38098 zcmd43byQUA`!}qJbT?8GGANB8F#;0OAYf3^9SVpJASlw^2#5?Jf&t19V$dZZAtekU zB`Dw!A`(*XHR$o2^Zovw^*ryh-ap>8WXYP@%-;Ln_kCTTx+hX!Po0wN2-$%H2Pic) zR1FUtAQ(Sz;NVjd0(j-Jd#ykGcjEe4k&4%ZK;+h4W6W_{h>?x>CLQK#$I zJ-p;ZMLpcCuU@}##ZAQ4{R*n<9T$AWvhxMw>wmp|;2?aCPiE|SrK=-iG*#ajqcd^A z!7?QCDFQ+LrI-8f_U2r==J+sHrH|oHozz|#le4~Twls9V zh{oatO7tgM>h}56QrdU*hu?=@U_L6;Z4+|r%^bb?pz_7QBtBl{;oNKY%0=p&QB=IS zu6eF9G>4oE&Cc6w?2%V?i+hI-aHPkK*5kU&Chja5S5P6&^J^iHlL?t6eB82MYa*f%Jr_VF|jzQ4l0~!Z8 z%Y)0WUgi>bB-3bp4HFQ?YLY?Ktg_x`zi}rFZCi6N;&irA?$cID+s2@(O`A6s?3a2^ z`Sl#)c$R(l$~u)x`6Zl~!s$0|>lT3)On#$&?dN=nIF1Ou2-=+a@!?13j7=#cRRy;0 z1HtF)&F$3p%$S`^2kOtCYO7_oYE;c#iH!AkMi*z7#?BIMyWCBdy0$TtGhB4r-|fs( zIp^}H$9q4^D$*)^>_|!>{MioAv}DRkdWe3QAzW2@iiL1 zer&L&WP!0wvjrU+)Am`(2L?jMHqry9Q?a@jn@J3>jgsoªvyNhLuV{t97zi_@B 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

    ^1a#~yAINLfn;^qU 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 k0=1>9b!3l>?4*qBtd0@c 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
    1gYI*S9dwQMmkb%(*YlCb0)-5I6(k{ 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 z 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 literal 34689 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 Iedp2t0}q_-X#fBK diff --git a/docs/images/FindCommandSequenceDiagram.png b/docs/images/FindCommandSequenceDiagram.png index de756e7acb347cfcba3ebbd96eff566b70fedf3c..b12a89d5e485f92284241fab52038e273b3e1b5c 100644 GIT binary patch literal 24136 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 literal 24527 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 V8gJRS4$1mryO<7)Qo2{nzX4UV&Taqz diff --git a/docs/images/MarkEventObjectDiagram1.png b/docs/images/MarkEventObjectDiagram1.png index b0a814282fc7d11dc04cf86b6ae245f7ac7deb6a..30a46851cdfde71a473020465d69c8608d7c4d33 100644 GIT binary patch literal 5119 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 literal 5586 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 diff --git a/docs/images/MarkEventSequenceDiagram.png b/docs/images/MarkEventSequenceDiagram.png index f73ad573d40cf72f5f3e50dd24273249410bd23a..8c21c3a4b311cdee0b0a785e69fd4cf42bea2586 100644 GIT binary patch literal 14589 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 F`XB3)FDL*2 literal 14395 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 diff --git a/docs/images/MarkParticipantSequenceDiagram.png b/docs/images/MarkParticipantSequenceDiagram.png index 907cf1a7ffbf506d98284499720276be0c07fd8e..dbe2ce716cb5a6504b84b39f3a771879bc97f136 100644 GIT binary patch literal 27201 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 cKcxOB6l`3Llb={9- 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�nM-49d;^~C}iJ$9pRhIl~ugh@|R9;5ZL~f&guWWCLmHCzl+O=1)ro9b-413mzPt z!U9D0cs&JI7cG z2ML^1eVJnBcGRm_vL>){CDvD*LVJU2}VPKD}Phx z{&O#$FCN`|+JnD+a%5RsP~MzqZh|gb$MTx6w&DgjK&$MSt6+S5d>1e3)kM=(WMQum z{MTciA&0@&t;ePO?KL}&v;y~k`~P%y{pD;3$U$2Y+onCfJLl;M2GB3ZcaNH2cnwgA<)& zu9C}`0x#gYoGRHd5kw(E=-hwR

    oX2HK3hM!tRoj>p{-Bam)z>XESCLo|&P6rHPn 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 P%(YQx^Li%L`sn`w?%LT% literal 28036 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

    S!{!DJa+z@5td2(PdRi%v| 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 MO#_WgHJjl70aOH}cK`qY diff --git a/docs/images/StorageLoadingSequenceDiagram.png b/docs/images/StorageLoadingSequenceDiagram.png index 81a72df3cff0171f4008e79432277f3dcc8b59c0..60359bedc35a13c9c370d0cd9575987c8fcee38d 100644 GIT binary patch literal 53678 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 literal 52158 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¨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 diff --git a/docs/images/StorageSavingSequenceDiagram.png b/docs/images/StorageSavingSequenceDiagram.png index 8f173dbd3bf39a7ba7009fdb03d6f825d5b3ace6..5efe0aff982be39ab6e3b46ac95c1d44a0a7883c 100644 GIT binary patch literal 91000 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 COeEU? literal 90801 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 diff --git a/docs/images/ViewEventSequenceDiagram.png b/docs/images/ViewEventSequenceDiagram.png index 5899028c19c4487c33fb1893af9695f8117c2963..50342a5eda3a90e15aa85604419e9946bcec8ada 100644 GIT binary patch literal 21991 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 BgS7wv literal 22033 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 diff --git a/docs/images/ViewItemSequenceDiagram.png b/docs/images/ViewItemSequenceDiagram.png index 46950a74dbb489e3922dfad54f0fb5c9c6abe74d..c2c6af3f3d15f3fb17f6ed4d92a8cc10f7823bf8 100644 GIT binary patch literal 19272 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 literal 19449 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 Date: Wed, 6 Nov 2024 17:10:53 +0800 Subject: [PATCH 464/619] Add table of contents to DG --- docs/DeveloperGuide.md | 59 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 5 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 8db9e598fd..ee8939a186 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1,5 +1,54 @@ # Developer Guide +* [Acknowledgements](#acknowledgements) +* [Design](#design) + * [Main components](#main-components) + * [Interactions between components](#interactions-between-components) + * [UI component](#ui-component) + * [Storage component](#storage-component) + * [Parser component](#parser-component) + * [Command component](#command-component) + * [Event component](#event-component) +* [Implementation](#implementation) + * [Command parsing](#command-parsing-) + * [List feature](#list-feature) + * [Add feature](#add-feature) + * [Remove feature](#remove-feature) + * [View feature](#view-feature) + * [Edit feature](#edit-feature) + * [Mark/unmark feature](#markunmark-feature) + * [Copy feature](#copy-feature) + * [Sort feature](#sort-feature) + * [Filter feature](#filter-feature) + * [Find feature](#find-feature) + * [Saving and loading of data](#saving-and-loading-of-data) +* [Product scope](#product-scope) + * [Target user profile](#target-user-profile) + * [Value proposition](#value-proposition) +* [User stories](#user-stories) +* [Non-functional requirements](#non-functional-requirements) +* [Glossary](#glossary) +* [Instructions for manual testing](#instructions-for-manual-testing) + * [Launch and shutdown](#launch-and-shutdown) + * [Adding an event](#adding-an-event) + * [Adding a participant](#adding-a-participant) + * [Adding an item](#adding-an-item) + * [Removing an event](#removing-an-event) + * [Removing a participant](#removing-a-participant) + * [Removing an item](#removing-an-item) + * [Editing an event](#editing-an-event) + * [Editing a participant](#editing-a-participant) + * [Editing an item](#editing-an-item) + * [Viewing an event](#viewing-an-event) + * [Marking an event as done](#marking-an-event-as-done) + * [Marking a participant as present](#marking-a-participant-as-present) + * [Marking an item as accounted for](#marking-an-item-as-accounted-for) + * [Copying the participant list](#copying-the-participant-list) + * [Sorting the event list](#sorting-the-event-list) + * [Filtering the event list](#filtering-the-event-list) + * [Finding a participant](#finding-a-participant) + * [Saving and loading of data](#saving-and-loading-of-data) + ## Acknowledgements This application uses the following dependencies: @@ -43,9 +92,9 @@ The above **Sequence Diagram** shows how the different components of the system * `Main` refers to the `Main` class in `Main`. * `Ui` refers to the `Ui` class in `Ui`. * `Storage` refers to the `Storage` class in `Storage`. -* `EventList` refers to the list of events in `Event` which the program's event data is stored (see the _Event component_ section for more details). +* `EventList` refers to the list of events in `Event` which the program's event data is stored (see the [Event component](#event-component) section for more details). -The **Sequence Diagrams** within the reference frames in the above diagram can be found in the _Command component_ and _Saving and loading of data_ sections. +The **Sequence Diagrams** within the reference frames in the above diagram can be found in the [Command component](#command-component) and [Saving and loading of data](#saving-and-loading-of-data) sections. ### UI component @@ -75,7 +124,7 @@ The `Storage` component does the following: * Load event data from several `.csv` files into `EventList` upon program startup. * Save events data from `EventList` into the aforementioned `.csv` files each time a command is executed. -Additional details on the implementation of the above operations can be found in the _Saving and loading of data_ section. +Additional details on the implementation of the above operations can be found in the [Saving and loading of data](#saving-and-loading-of-data) section. ### Parser component @@ -96,9 +145,9 @@ The `Parser` instance is no longer referenced. The current state is as shown in -The interactions between `Parser` and the other components in the above procedure is shown in the sequence diagram in the _Command component_ section. +The interactions between `Parser` and the other components in the above procedure is shown in the sequence diagram in the [Command component](#command-component) section. -Further details regarding command parsing can be found under _Command parsing_ in _Implementation_. +Further details regarding command parsing can be found in the [Command parsing](#command-parsing) section. ### Command component From e8700ad78aff6eb6f6ff2d2b5d6408cc1ab25122 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 6 Nov 2024 17:22:10 +0800 Subject: [PATCH 465/619] Add table of contents to UG --- docs/DeveloperGuide.md | 11 ++++++----- docs/UserGuide.md | 39 ++++++++++++++++++++++++--------------- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index ee8939a186..d2d94e0d96 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -507,7 +507,7 @@ These two values are as follows: Any other values entered for the status parameter will be treated as invalid. -### Copy Feature +### Copy feature The copy feature allows users to copy the list of participants from one event to another. This feature is implemented in the `CopyCommand` class, which extends `Command`, The `CopyCommand` copies participants from a source event to a destination event if both events exist in the event list. @@ -521,7 +521,7 @@ The main operations for `copy` feature include: The above operation is implemented as `CopyCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, and is invoked when the latter operation is called. -#### Feature Implementation +#### Feature implementation Given below is an example usage scenario and the behaviour of the `copy` feature at each step: 1. The user enters the command `copy EventA > EventB` to copy participants from EventA to EventB. @@ -546,7 +546,7 @@ The `SortCommand` supports the following sorting options: The above operation is implemented as `SortCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, and is invoked when the latter operation is called. -#### Feature Implementation +#### Feature implementation The `SortCommand` class is constructed with a specified sorting keyword and performs sorting operations based on this keyword. Given below is an example usage scenario and the behaviour of the `sort` feature at each step: @@ -577,7 +577,7 @@ The `FilterCommand` supports the following filter options: The above operation is implemented as `FilterCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, and is invoked when the latter operation is called. -#### Feature Implementation +#### Feature implementation The `FilterCommand` class is constructed with a specified filter flag and keywords. It then performs filter operations based on both the flag and keywords. Given below is an example usage scenario and the behaviour of the `filter` feature at each step: @@ -606,7 +606,7 @@ The feature provides detailed feedback, informing the user whether the event or The above operation is implemented as `FindCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, and is invoked when the latter operation is called. -#### Feature Implementation +#### Feature implementation The `FindCommand` class performs a finding operation within an event of a specified participant. Given below is an example usage scenario and the behaviour of the `find` feature at each step: @@ -689,6 +689,7 @@ Reading and writing from and to the `.csv` storage files is done through operati ## Product scope + ### Target user profile The target user: diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 09b76307a3..3e9957727a 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -1,5 +1,28 @@ # User Guide +* [Introduction](#introduction) +* [Quick Start](#quick-start) +* [Features](#features) + * [Notes about the command format](#notes-about-the-command-format) + * [Viewing the command list: `menu`](#viewing-the-command-list-menu) + * [List all events: `list`](#list-all-events-list) + * [Add an event, participant or item: `add`](#add-an-event-participant-or-item-add) + * [Remove an event or participant: `remove`](#remove-an-event-or-participant-remove-) + * [View all participants or items for an event: `view`](#view-all-participants-or-items-for-an-event-view) + * [Edit the information of an event or a participant: `edit`](#edit-the-information-of-an-event-or-a-participant-edit) + * [Mark an event as done: `mark`](#mark-an-event-as-done-mark) + * [Marks a participant as present: `mark`](#marks-a-participant-as-present-mark) + * [Marks an item as accounted for: `mark`](#marks-an-item-as-accounted-for-mark) + * [Copies participant list: `copy`](#copies-participant-list-copy) + * [Sorts event list: `sort`](#sorts-event-list-sort) + * [Filters event list: `filter`](#filters-event-list-filter) + * [Find participant: `find`](#find-participant-find) + * [Exiting the program: `exit`](#exiting-the-program-exit) + * [Saving of program data](#saving-of-program-data) + * [Loading of program data](#loading-of-program-data) + * [Editing of saved program data](#editing-of-saved-program-data) +* [Command Summary](#command-summary) + ## Introduction EventManager CLI is a CLI application that allows organisers of small-scale events to track @@ -62,7 +85,7 @@ Shows a list of all events currently stored in the program. Format: `list` -### Add an event or participant: `add` +### Add an event, participant or item: `add` Adds an event to the event list, a participant to an event, or an item to an event. @@ -99,20 +122,6 @@ Examples: * `remove -p John Tan -e Origami workshop` removes the participant `John Tan` from the event `Origami workshop`. * `remove -m Origami paper -e Origami workshop` removes the item `Origami paper` from the event `Origami workshop`. -### Edit the information of an event or a participant: `edit` - -Edit the name/time/venue/priority of an event, or edit the number/email of a participant. - -Format: - -* `edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT` for editing a participant's contact information in an event. -* `edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY` for editing an event's basic information. - -Examples: - -* `edit -p Mary -n 9182 3213 -email mary@gmail.com -e CS2113` -* `edit -e CS2113 -name CS2113T -t 2024-10-25 16:00 -v LT16 -u HIGH` - ### View all participants or items for an event: `view` Shows a list of all participants or items for an event. From e62cbd579ca55a353bd9c633dc8dd89150d5a51b Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 6 Nov 2024 17:30:16 +0800 Subject: [PATCH 466/619] Update PPP --- docs/DeveloperGuide.md | 2 +- docs/team/jemehgoh.md | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d2d94e0d96..7b5f9e6959 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -244,7 +244,7 @@ The `ListCommand` class performs the following key operations: These operations are accessible through the `Command` and can be invoked when the list command is entered by the user. -#### Feature Implementation +#### Feature implementation Given below is an example usage scenario and the behavior of the list feature at each step: diff --git a/docs/team/jemehgoh.md b/docs/team/jemehgoh.md index 6f3ad047eb..add1b6d7d0 100644 --- a/docs/team/jemehgoh.md +++ b/docs/team/jemehgoh.md @@ -36,7 +36,8 @@ EventManagerCLI is a desktop CLI application meant for managing small-scale even * User Guide * Added documentation for `menu`, `list`, `exit`, `add`, `remove`, `view` and `mark` commands. (Pull requests [#63](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/63), [#104](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/104)) * Developer Guide - * Added design details for all components - * Added implementation details for the `mark` feature + * Added design details for all components. (Pull requests [#109](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/109), [#137](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/137)) + * Added implementation details for command parsing and the `mark` feature. (Pull requests [#109](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/109), [#137](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/137)) + * Added instructions for manual testing. (Pull request [#158](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/158) ) * **Community** * PRs reviewed (with non-trivial review comments): [#47](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/47), [#53](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/53), [#115](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/115), [#131](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/131) From 5d343848d53ca3cdae10d6807012d7e23b9c99a6 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Wed, 6 Nov 2024 19:20:14 +0800 Subject: [PATCH 467/619] PPP --- docs/UserGuide.md | 14 ------------ docs/team/kuanhsienn.md | 2 +- docs/team/yixuan.md | 47 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 15 deletions(-) create mode 100644 docs/team/yixuan.md diff --git a/docs/UserGuide.md b/docs/UserGuide.md index fa9ec55fdb..c27dba7670 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -99,20 +99,6 @@ Examples: * `remove -p John Tan -e Origami workshop` removes the participant `John Tan` from the event `Origami workshop`. * `remove -m Origami paper -e Origami workshop` removes the item `Origami paper` from the event `Origami workshop`. -### Edit the information of an event or a participant: `edit` - -Edit the name/time/venue/priority of an event, or edit the number/email of a participant. - -Format: - -* `edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT` for editing a participant's contact information in an event. -* `edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY` for editing an event's basic information. - -Examples: - -* `edit -p Mary -n 9182 3213 -email mary@gmail.com -e CS2113` -* `edit -e CS2113 -name CS2113T -t 2024-10-25 16:00 -v LT16 -u HIGH` - ### View all participants or items for an event: `view` Shows a list of all participants or items for an event. diff --git a/docs/team/kuanhsienn.md b/docs/team/kuanhsienn.md index 1137915cdd..457b040c8f 100644 --- a/docs/team/kuanhsienn.md +++ b/docs/team/kuanhsienn.md @@ -20,7 +20,7 @@ The app is optimised for quick, command-based interactions, ideal for users who * Justification: Persistent storage is a crucial feature for any event management tool, as it allows users to retrieve previously entered data and continue their work seamlessly.

    - * Highlights: The storage feature supports loading from a single CSV file, handling all event-related data in one file. It includes validation checks to ensure data integrity, and if any data entry is corrupted or unreadable, a warning is logged without crashing the application. + * Highlights: The storage feature supports loading from a single CSV file, handling all event-related data in one file. It includes validation checks to ensure data integrity, and if any data entry is corrupted or unreadable, a warning is logged without crashing the application. * **New feature**: Added feature to edit participant's contact info. * What it does: Allows the user to update the contact details (phone number and email) of participants associated with any event. diff --git a/docs/team/yixuan.md b/docs/team/yixuan.md new file mode 100644 index 0000000000..fa04ca098c --- /dev/null +++ b/docs/team/yixuan.md @@ -0,0 +1,47 @@ +# FU Yixuan - Project Portfolio Page + +## Overview +EventManagerCLI is a desktop CLI application meant for managing small-scale events organised by one person. It is written in Java, and has around 7kLoC. +The app is optimised for quick, command-based interactions, ideal for users who prefer or need a text-based interface for efficient event management. + +### Summary of Contributions + +* **New feature**: Added the feature to list events. [#46](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/46) + * **What it does**: Allows the user to view all scheduled events, displaying details such as event name, datetime, and venue in a comprehensive list. + * **Justification**: This feature is essential for users to have a quick overview of all planned events, helping them manage and review their schedules effectively. + * **Highlights**: The list feature ensures events are displayed in an organized format, making it easy for users to scan through their events. + +* **New feature**: Added the feature to sort events by name. [#99](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/99) + * **What it does**: Enables users to sort their list of events alphabetically by event name, helping them locate events more easily. + * **Justification**: Sorting functionality enhances usability by providing an organized view of events, especially when the user has multiple events to manage. + * **Highlights**: This feature will output a new sorted list without modifying the original version of the list. + +* **New feature**: Added the feature to edit the information of events. [#135](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/135) + * **What it does**: Allows users to update event details, such as the name, datetime, venue, or priority of existing events. + * **Justification**: Events may need adjustments after being scheduled, and this feature allows users to make changes without deleting and re-adding events, maintaining consistency in their schedule. + * **Highlights**: Input validation is performed on the updated details to prevent errors, ensuring the event is found correctly before editing. + +* **New feature**: Added the feature to edit the items of an event. [#143](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/143) + * **What it does**: Enables users to modify items associated with a particular event, such as changing item names. + * **Justification**: This feature allows users to keep track of necessary items for each event and make updates as needed, helping them stay organized. + * **Highlights**: Includes checks for invalid or non-existent items, providing clear error messages to guide the user and improve overall usability. + +* **Code contributed**: [RepoSense link](https://nus-cs2113-ay2425s1.github.io/tp-dashboard/?search=matchaRRR&sort=groupTitle&sortWithin=title&timeframe=commit&mergegroup=&groupSelect=groupByRepos&breakdown=true&checkedFileTypes=docs~functional-code~test-code~other&since=2024-09-20&tabOpen=true&tabType=authorship&tabAuthor=MatchaRRR&tabRepo=AY2425S1-CS2113-W13-3%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=docs~functional-code~test-code~other&authorshipIsBinaryFileTypeChecked=false&authorshipIsIgnoredFilesChecked=false&reverseAuthorshipOrder=true) + +* **Project management**: + * Managed release `v1.0` (1 release) on GitHub + +* **Enhancements to existing features**: + * Implement an EventList class to organize the events. [#35](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/35) + * Built the `main` function to initialize and run the application, setting up the primary command loop structure. [#45](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/45) + +* **Documentation** + * User Guide + * Added documentation for list features (Pull request [#155](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/155) + * Added documentation for edit features (Pull request [#155](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/155) + * Developer Guide + * Added implementation details for `list`, and `edit` features [#154](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/154) + * Created sequence diagrams for `list`, `edit` features. [#154](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/154) + +* **Community** + * PRs reviewed (with non-trivial review comments): [#136](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/136), [#79](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/79), [#65](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/65) From 62f51158ae388d678d7c6962742973fcf88cd725 Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Wed, 6 Nov 2024 19:35:07 +0800 Subject: [PATCH 468/619] Update PPP --- docs/AboutUs.md | 2 +- docs/team/glenn-chew.md | 53 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 docs/team/glenn-chew.md diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 4e2f38b48b..ac1cff77a1 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -4,6 +4,6 @@ Display | Name | Github Profile | Portfolio --------|:----------------:|:--------------:|:---------: ![](https://via.placeholder.com/100.png?text=Photo) | Liang Kuan Hsien | [Github](https://github.com/KuanHsienn) | [Portfolio](team/kuanhsienn.md) ![](https://wallpapers-clan.com/wp-content/uploads/2023/11/star-wars-bb-8-aesthetic-desktop-wallpaper-cover.jpg) | Lim Tze Kang | [Github](https://github.com/LTK-1606) | [Portfolio](team/ltk-1606.md) -![](https://via.placeholder.com/100.png?text=Photo) | Glenn Chew | [Github](https://github.com/glenn-chew) | [Portfolio](team/johndoe.md) +![](https://via.placeholder.com/100.png?text=Photo) | Glenn Chew | [Github](https://github.com/glenn-chew) | [Portfolio](team/glenn-chew.md) ![](https://via.placeholder.com/100.png?text=Photo) | Jeremy Goh | [Github](https://github.com/jemehgoh) | [Portfolio](team/jemehgoh.md) ![](https://via.placeholder.com/100.png?text=Photo) | FU Yixuan | [Github](https://github.com/MatchaRRR) | [Portfolio](team/yixuan.md) diff --git a/docs/team/glenn-chew.md b/docs/team/glenn-chew.md new file mode 100644 index 0000000000..4ac91ee9b1 --- /dev/null +++ b/docs/team/glenn-chew.md @@ -0,0 +1,53 @@ +# Glenn Chew - Project Portfolio Page + +## Overview +EventManagerCLI is a desktop CLI application meant for managing small-scale events organised by one person. +It is written in Java, and has around 4kLoC. + +### Summary of Contributions +* **New Feature**: Implemented Menu (PR: [#37](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/37)) + * What it does: Displays the list of commands that users can enter, including the format and a brief description of each command. + * Justification: This feature helps ensure that users are aware of the correct commands to input, which aids in the usage of the program. + * Highlights: This feature was gradually updated based on new commands, new details or new usage of the program. + + +* **New Feature**: Added feature to view the lists of participants for an event (PR: [#58](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/58)) + * What it does: Displays the participant list of a particular event. + * Justification: This feature allows users to view all the participants of an event and allows them to see the participants they have added or removed from that event. + * Highlights: This feature was eventually updated to be able to view either the participant list or item list of an event + + +* **New Feature**: Added feature to filter events by name or date/time (PR: [#144](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/144)) + * What it does: Displays the events that contains the keyword entered by the user, which is by name or by date/time. + * Justification: This feature makes it easier for the user to see all the events with a common name, or common date/time. + * Highlights: This feature has separate methods to filter by date, time or date-time, as the formatting for each inpuut is different. + + +* **New Feature**: Added feature to sort events by date (PR: [#102](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/102)) + * What it does: Sorts the event to be displayed in chronological order (earliest to latest) + * Justification: This makes it easier for users to view the order of their events, and see which ones are upcoming. + * Highlights: This feature requires the addition of a new class and new methods, and used the LocalDateTime class for to for comparison, + + +* **Enhancements to Existing Features** + * Changed every all usages of `eventTime` from `String` to `LocalDateTime` for easier formatting and comparison, ensuring that each usage is formatted correctly: [#102](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/102) + * Trimmed trailing spaces in input to prevent bugs in displaying details: [#58](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/58) + * Update ViewCommand to include new participant parameters: [#133](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/133) + * Refactored and extracted FilterCommand for better SLAP: [#164](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/164) + + +* **Code Contributed**: [RepoSense Link](https://nus-cs2113-ay2425s1.github.io/tp-dashboard/?search=&sort=groupTitle&sortWithin=title&timeframe=commit&mergegroup=&groupSelect=groupByRepos&breakdown=true&checkedFileTypes=docs~functional-code~test-code~other&since=2024-09-20&tabOpen=true&tabType=authorship&tabAuthor=glenn-chew&tabRepo=AY2425S1-CS2113-W13-3%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=functional-code~test-code&authorshipIsBinaryFileTypeChecked=false&authorshipIsIgnoredFilesChecked=false) + + +* **Project Management**: + * Managed to release `v1.0` (1 release) on GitHub. + + +* Documentation + * User Guide + * Updated documentation for `filter` command: [#164](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/164) + * Developer Guide + * Updated implementation details for `filter` command: [#164](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/164) + * Updated sequence diagram for `filter` to include new self-invoked methods and additional alt cases: [#164](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/164) + + From 744c611a65e2e671dc5c46ac7fa64406cba8cc12 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 6 Nov 2024 19:41:45 +0800 Subject: [PATCH 469/619] Fix class diagram bugs --- docs/DeveloperGuide.md | 4 ++-- docs/diagrams/ParserClassDiagram.puml | 13 +++---------- docs/diagrams/StorageClassDiagram.puml | 18 +++++------------- docs/images/ParserClassDiagram.png | Bin 24512 -> 14219 bytes docs/images/StorageClassDiagram.png | Bin 58504 -> 25500 bytes 5 files changed, 10 insertions(+), 25 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 7b5f9e6959..37227c07b2 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -121,8 +121,8 @@ These are: * A `FileParser` that parses through the file contents when loading event data. The `Storage` component does the following: -* Load event data from several `.csv` files into `EventList` upon program startup. -* Save events data from `EventList` into the aforementioned `.csv` files each time a command is executed. +* Load event data from a`.csv` file into `EventList` upon program startup. +* Save events data from `EventList` into the aforementioned `.csv` file each time a command is executed. Additional details on the implementation of the above operations can be found in the [Saving and loading of data](#saving-and-loading-of-data) section. diff --git a/docs/diagrams/ParserClassDiagram.puml b/docs/diagrams/ParserClassDiagram.puml index ec283a5e56..86e3b48987 100644 --- a/docs/diagrams/ParserClassDiagram.puml +++ b/docs/diagrams/ParserClassDiagram.puml @@ -6,17 +6,10 @@ skinparam ClassAttributeIconSize 0 class Parser { +parseCommand(command : String) : Command - +parseAddCommand(input : String, commandParts : String) : Command - +parseRemoveCommand(input : String, commandParts : String) : Command - +parseEditCommand(input : String, commandParts : String) : Command - +parseFilterCommand(input : String, commandParts : String) : Command - +parseFindCommand(input : String, commandParts : String) : Command - +parseMarkCommand(input : String, commandParts : String) : Command - +parseRemoveCommand(input : String, commandParts : String) : Command - +parseSortCommand(input : String, commandParts : String) : Command + +parseXYZCommand(input : String, commandParts : String) : Command } -Main ..> Parser -Parser ..> Command +Main ..> Parser : invokes > +Parser ..> Command : constructs > @enduml \ No newline at end of file diff --git a/docs/diagrams/StorageClassDiagram.puml b/docs/diagrams/StorageClassDiagram.puml index 6466dfef3a..480adc9c2c 100644 --- a/docs/diagrams/StorageClassDiagram.puml +++ b/docs/diagrams/StorageClassDiagram.puml @@ -4,16 +4,10 @@ hide circle skinparam ClassAttributeIconSize 0 class Storage { - - eventFilePath : String - - participantFilePath : String - - itemFilePath : String - + Storage(eventFilePath : String, participantFilePath : String, itemFilePath : String) : Storage - + saveEvents(events : EventList) : void - + saveParticipants(events : EventList) : void - + saveItems(events : EventList) : void - + loadEvents(events : EventList) : void - + loadParticipants(events : EventList) : void - + loadItems(events : EventList) : void + - filePath : String + + Storage(filePath : String) : Storage + + saveInfo(events : EventList) : void + + loadInfo(events : EventList) : void - isValidFilePath(filePath : String) : boolean - isTestEnvironment() : boolean } @@ -21,9 +15,7 @@ class Storage { class Main class EventList class FileParser { - +parseEventsFile(events : EventList, filePath : String) : void - +parseParticipantsFile(events : EventList, filePath : String) : void - +parseItemsFile(events : EventList, filePath : String) : void + +parseFile(events : EventList, filePath : String) : void } Storage ..> EventList : saves/loads > diff --git a/docs/images/ParserClassDiagram.png b/docs/images/ParserClassDiagram.png index 97b73191ced6c39a2dd9fddba7ab591056756822..926e07beca08711260d2275c84626cf91ec085b0 100644 GIT binary patch literal 14219 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 literal 24512 zcmb5W1yogC*ETFA-O^psrGPZj-3Zbm9O*7;C8Rr*kdzXTL$@>>kWz$0iF6~~@UL^< z_w$bT`<^$x-!a?{5Buyr=Uj8mxaPHp)Y4GI#iGQzckdpqvXY$6y?aPU;4c&d8GI6C z+dK*W;qZ`u?qTWd;^P2$<#A6D;skNC@PJs+zx1KE@$hhQ7v<%3ajZ)sYJtb%xts-|OC_<7!_2Z*AN3vyp&{(w_K{W$^ z<*gdrcekgH)b>7uHYP89xBdOutFu+dspol)IS*YJL{ttl#-;;g%=BOU;i4f>reQ&S z#VJB;R5+~}$}eGG=ReG?&e)sh&(I_KR4>JardjuuaFnTeQR!kMQ9$K}<;Hny zX>*6{uCX_7Ts-O%frjE!PH~Jz!k^c<&|JOU64X2kE=SBqOz)ph6k)hh+@i`j-z9y^ zo9Jk`z@;Zh8b5NvzX*}V!Csk0GhI4onwi%<9A%d(zV7(spMz0f{^Fh3gaSw3yQ$Al zjLlkzu%a0t&z&uo`>SqxdXH3JtCqH9{*+`PM0ba~mHq3NxDQtG}Xxn6dqXYjFn@s25!fQTDwjtYYzbVXRt zO9ms7^1r_(CF|+wiC=CM;7c5jnRi=V9&dgOyez$%4z-fd^GZq{&fs5O>N(Xl+RGb_fbH=zF z)N{s`h}%Q{xkF?%B{(=(Q|ji2mZhNIse=QxRA6hE^L6&=4qV*aH~mt#Z^<&BINxrSSG8ZPWm@Y0|S>VNL{!Ta^&DKJj-&Cb(e;kc5Fnfd3 zJa5Of4u!YnL(LrjPBgMwyGgtAKfl#K2z2H&5^Wro?l7+-EYMT5Q`LUSA#hng>y*q* zX6iAXFCSeC?EspsXL~OkEcdT=ybhQ$^)4-gEqt-)Zu2`^I*FqZv-?p}{jwJeZm11c z#*+c^DSw8_!e(o2LmK=}cSLq;zsJ!^l%<+}Jx%2_82KPrZrbA2u;5!>R<;vzA9unp z$F+}wO}(S&pG8P|4hc^ICc0aWm&)O{?3=E(tTyGm+M92Qj*i~`QL3w_C*Zo&<22u_ zo-O+9*)y*rhWDS;GkHuJwf^%n`lIbDo9++3{?#7v%V(Vi!gl33Wja-3J<6mQH*h-* z93meVVaFU;yT|6lW15vK&5E4@g;+{qmlqHSiy5yWv=IF7$-?V`d}#6pLa)eTC>?MH z?E-}aTX45x>}ZSbz|dmU;>Z7+;rU25;io{;QTA_{Ex+%6!L#K zO(e(FD8d`@IK&2(OLjuf5kL9=_~^^*gA9UzO#c1Y=h1I*l|X{l2?WiEj3#%t2dhLiT%&dmi=*zdkH5$D~z8wFZiGB z&F`6FMq+{21&l~u?SLrdz5R3dy>*W5Y`x?9NOo1*snMB6s2mVGQW9VM&%KG$^2%l` zXdIcmy!^+2)AxR?GK|0_OV3vA?Xu`!m%ZCvkveb7IDN6+jAR;T@o z?e|aaBO>7)8jKfj8lVRMDQ{s$5;V-YMf(vmGz}kbewUy-KGZ*@c>Ic5{IwRL491|- zKiMn&ogb$d589q4G5Ao0)^~#;{hclxlYzOx=XhMvlu`q+rgQIL8W;@PAnpA7)h!1G zgB>DrW+M>w7A%CwXbi<;ES#;M6=E-YB4VkYG@mgsJ0qetIxO&Vv)I|~{BVfZpu%Vp zgq(WE*&Jclt~O4F3nX9wajjDjA3qrX{A?Jq5^!^Q@)|cFXus_&$9Jo=$$foqrcTvs z8U)7TkAcl##o#s8L1**c(}$htbmCV#HACsVyquihSFevg-epMz-A41aM@T@1sxAA| zxQ)I3EJ{119AXa20KZ$0e0J*nD}W4kdopECC+bn+ceV#&J&l-`gSNIdh?a>zEW>?{ z*0O|40nvI}9!VfE5o=(Ibw}STp4ZAzcd^d}ZM#T1k z|3X>Keu3Bz)AqtR-mdD1o07WzBU@)TDR(e5G*s2NgtfB&dcMNAL2SQOSMvP!YX74f zj9uwM9`4+Bq7OH`RaL4-tN?xr&BWX^lC5yk!FFYf(`b%_FM6w4liTWN!o^VSESBx2Jfo?QFqw`{$ry`_-Np+c|I-vYbNcko#4whf!=|p=M+nN~DOKqPa6q zjvLwt{%B;20yigS)sUl<^xV>0W%G+BCC$~dknOUnZx<-WpKed>dv{#XnBh|j*nEA1Bz1evWF`eFnXs_1*#_rg;F=&zxY5!<%p06c zvBQBV=5B*5KtC=X9({gq%N*dh_i-s}9pKQwn@cjY*T3JQpr^Q()6kU~H#i-weH#^C zjzPmFElD2j1A?W2{6tvX+DhGY`nx-P{;mWDJP>$#z4yM^l-J6RdC-j@T?j)H*z*4` zxd7awfDDriy1nioLTp_`@r0T(AD~SiN|2NaN=61|yZ`yhoV(+n1KtItlN<$mm=M&P z|Gty|%TJgXVSy_Hi4zkO`yF=+H}Rhfq0qygNaD3w^-Lj(yHQ+|3Je)}`Cf!}4sf@f zY5udj))E&NXWV-u)^2p-f!D%z=b-G&_uRXKu&l1G?x}~$J%xMk&Ip29tgEXFI0)H; z2giH!e%{JOh6>$`JDG2mP}JpQiv5tLsM+F(CuNSx>i z7?!U?Aw##fXB`IfH&WN94IMNRzO{b#_q5KL;>DL1wy=4G8h!;L9z3322Fl-N&us%U zpWZgzw1ds!k4yfy;E{Vl39YPXe}w_(xyJD}L2i0w=kfgBqI9!npQBf;^DW-Iq4y4v zn!NWvsAqgQpZES%=Kwz(%aeWPJ%~i4b1G>66YP4FB{O~f`?#j9uU$d#7{6HQSkH1F zaUYd1I3d2XIN6%aiK0uV3%ag;R<1AHuopBQg-P|lFPSx{r2BH|IKy%~&8ci22=UvD}&xCn>FA$Gk?h8$ivj zRmJ@`ID|pzJf=~0FBW2Bx2LN5?e%0&J6)wNR)|Y>K@=5sUT6iyD1D1RD6eyZZhd~} zo@&SWx1P?}Yljk9Bp;LPWjnOPAw1`>Cy1x7>KCTk_b{U17g5MSl}K%EBTJ`3gQC5cXG|Km1;- zDFq_?H*Tf!{#dHwEM!;5ZXZMfG0o1at<}54Z0<2I4>$qO%|*!-Y0kMv<@!p?2ZMU1 zeE(?iGb8#`i>-KhIH&rz4}uL2@Rv^1k6*?7&@z;vualYTGW6Z9XmCl>s!lf#qzG91 z^ShhF1;d3~x`Ln|WSgzRp5j3e%;eO+5NhW_i8W=kPeIRjyaPXKJsRo$T4LUDdw28e zZqTb$;%NAB(9O0v(@N?Lk#PT@dxndF^+ND-g!Q0up|<-Q8YIuYbI| zwg#<^sOOf)7bMvK+2VB*F{ z{tll`^2OITN25|5AUuO2K{gB>k2-=w8dg2p6^8BVvoT)KA3?~($9ebh?t%{I5Ckg= z?6O+VZT+1PY_;XSSXC93G3p%@coH^Fl+2(F;g)%^Mz(VDLuE+rBVm#Zom>)|Xq%Vv z@@QCw?fy+WD5l$UO^>~v9#!A`Gy^WID^VW4cDDcPSDm&c zHj-VKW?t9E3*p_4i*L?a=%M#cdPankrDfir=7U6TGY%TD=%}c%PM5IcE{V*TA(!2m zx^XKHC0o#j^dz-HnUF5pWL;fdLEpJrXZ2yDh5RU=Fk|5*7ef`i-q9GCR-UwTKk!V< zLw%J^%y%8+;>xTQv_~97ID5_8m4-F1*w+I&;~33JEoyVAt&XQDx>4xTvrS)EmvqzJ z{z3PNPAU8Hg+Tc|j!+Zri|GcN@qB|Svq!HgTlPd_7{Mb?rN5;ni~bgTq_V1q-+i7J zPTRH3uKVdl5IZ#)?GL#= z*Kn;1m-{=`*ZTOT+Qrz_(=u<2elIcnnzft=DX=su&B}W_CG3$v@InUj?aw2PR)vQ2 zF3ZdqnGb^Yr(aR<2S(UHz7bb8gY(N&dOocW^UyS_GHKEgY0ljbXJf7DJJvO`+>2*t z?m;dK7eDIhTz>X%W;f+p`T-ZYeZ|g$_Ll-M5!cyijhd{zJ-0DjtK3LMD>1Qwy)p zS@p{mJNMXotoaXJ)4ur;lE2T7%xGHXC~9c1pVBa&Okr|7#~u`_GF$GC@9&WpLHGUB zi4I|UB;BMI94~o^f!=E!Qma>#Pty7Jz6E1g51j$pK;>=HcRjC~#~Cn5o3Y&FUN+_v zP!c8i5gL6`RaG@5R4j|u+G>z|+IT|3Lu!nnRn8#$ZlDiQfu>8`6k?4qKg30n&CS}R z?87@GKSp|A?jz&_@)n!cuj=3PVq3ZK##H5VDnjeq`g~@BESmCL~aJw+EJI$>AIDnyeg?4lsT? zE!%pl#iFNXR!}zahn`zqnKSr}(Pot>ss|Od2G7DLXl8b&9>7K@%+Q0@#HBpC-41D%sG-C}Xk|3LbU5{nys|NyEetv!= zG3(1OY5;68{D5pje@%1q*YaL+2p zY;v=n+Q`0j0%N4XDQsdBG%M7Kany;sjbG2%T9le9*FkhG0UADFL-e<+X|?y8?+qsK zzmo%=@QPrrpVn^&6gufmk3E_|M}ugQqbP>6#k|{B(~MWB%Ea~>3qa6(jnvkCd$@s& z7fvWt~{AOqt^bx5?p42m(NpH8a*cF5a2?%|Hk&DsDWK33Eev5B^ zuKB~hI)MJ^Q3Au%+a&!{kT7}yLP&A-fGbKqFt+|_T;3X8z%k*(U1tdTP*984Zq&WJ zWah%1*Zd&SBqb507#bNNTCGf0;(&Y3ro?EF(j2$F8jDM)|ApHMqtYFsDax|DaGOQg z?Fyt+7n{vL8F@>{A@&u}Clr{HJR%v}xt5?Sh(H9Wx6poM)2|6)00pF{cATk|j;hGA zzQ>orfP2oX@Ti9}`Jg)-zvccB$m%$r-GcW_DY`d-z}h2KN>0t24`WDImd}3x^s)5p zSF4SQl2I@^Z{=921czV=nhWoH4 z;k8f1G}=4SwJ#Re0a1CDiZUEj{+Cskfb9S$%Z#)RHSA#wE1e&WzmjeN@{#h^10 zwMd_;5J*GCZgNiSNb~Y?#=dIv!)KEwA~N}a8k^}a78wt3z4u=%iZ8D8OMWQr!a>s5 z1l^kDXe55dr-8aO0!Fz-|Q)?SPkwAK#JX zBh|w+trVK0WBF*(rUoKx=Z>5D?OAyu0*p(Rbd!lf0I z9A6Gh?|ILuuWwO6!T?=^*V&y0kpW!ld=bSX5tQ=kf%gvMgRTpJ6xHQ&5Go3h)3I({_#Ud~<7)wA2qa?gOp2|$v&$;|!V*05II-@~7-_R&M@XAOp#1y0aD zrwcr{h^Lhxg0*bEUDd=&k?@lLQtQLP&Wi3ZSvCo*G#aP?*$<%t?!f%!8SgWWMk7kTm( z0L}3P>KnX9QSHSNWhphNp9Ffm`n$hd!B~SCd|r5N{ZQ6lcKvPGwj%yzNr7)5LO)Uw zuItkE@Bw5$iAR%Vm7LY$iHCPqz=M1-EM^qHd`gfvC?t)`^|>j8fbvSG*cwKTuZhYe zi0$Iwdjp9~y-zK7rmLI(Bqb$D23$TMBePWaoSuFlAXHXjH(I#wpjQ9<=yjhG7t?W( zs=1I>EV8va?G$@b-Tf1JqnhEpTr1Kr;nTf&s&%Aw(no|1Ba(P3)h|9Tr7SIPJVro7 z$JlQb&Yq%X3OV|&rW!2mFi`7s4<5`VrnvWAtA8f)RD^ntgH+m)G@0W_`@BTtQW?}P zvvv02dwCLNF5mi^ZdQ4NB2Qly)bH>em?(ku2X^@Fza*Z4P9$EQo`tSIhjE``JW>Ie zp-k@yb&|npj339K3H|0CNOEXNfa=mCuk_yZ|JRq6Xi9Tt&fEiI%K_MFI?Z_ScUI1+`eUr5X0D53T6`gn&LF#*5eAZ9nJlqfyEI~(#1k(@L(`n*8VN1&Z%D45Mi#mlJ|q@DowkI! z{VpK2WJ;GvE={WbDGnnlkV~Ea__38b#RL}TlzVnoZLmeGf}3U0<$MRsZ-%lWwPKt5^Ei6cq9NS(uMYbtEhzC_qj7laS3`a zVef9=2H??2?r=~CU|2sB*`D{Kq-xrEua#1{+O|6qq?NHon|Xu6ZM%e?ej;E<8Fi&lK&N6G}vI0!Nfu! zwyXJY{6^DA-iA}L(V*hN&cmgy^JK&EbkI%wurwBWY7HlHKU$={k(Hh2!x_u384<-! z_bpX^eX6!Z7i&?FW&BK-ae-FY~gK(c3Bhn z#GmJONJcGR+4B$tl2_W8>@83+HU@5ancOonzG5COu9VpjFy-j`jDZ~ch0!y0FG@Sy z5UB9>GUeaY7H4P~fkXQsdoq~ZkHM23q%wo|Y0;=z=^HRNqOCgSnDWTG71 zddvJz6x9#_E{B=jH)l5j+Y|JpF`a5;qWG3Q+J+gWrEQX+ZcN$l(VHe(RTEK0gHrXVHV17 z9LtvJ!L6=w{~wB#Y?QM#{IDr$WwO)~=qz=L%e>&w_|qK%n`53r2%s8RK@JP{tIx;29Ppyo=u_lbFPB(vd4zIfQZx^W_G-H#YRjnBd0@ zp$Rx(qVQi%3lnEyX4(hl=KNE#aCkT13aF^6o>YlLvtVVXelLd7xP{wD@YYU`brVUC z>IZT&<1@A_k`9Ou0WceIv6_zb(LQQ7771Q!tLw(yOQ z4PXKQd26Pw{FdFQ4-SecAU75^Hl!2^rhL|SmQy@eZ717PLtCB7RC(~{^~1BS-xNf@ z&E|I|Fvwc%hJtOG(On2;`b-Kjf364HV*wLk3vT_<(^)+Mzyl?!={zM*0pbg)ClR+5 zr8b^0?qG0B*)68GOs?MsBr*7C&V3ZT7mo(VvfixC7YN=^Z1ajF$H^6V%B|h2`zkjcOPB(ZDXRXee-fBPPJZ4F=dMH#o_AO z1N<`A#ji+^(pk{e&b0^l9T_Zw4&FB){*Vv1O&%OY;u~7Z$!beQ zpNiPAo;yv4g*Rs7nA)>Y2=;A0brzfHc{p8Q3Gb`(2ORP4Hlme-9RfLfHoxCD&`A2f z?hHl)=qd6D&J4*D*016;491Nvc|KA|RA6))y&bC|v&wbR!hFAaL)T2Uj}&=z?yYoj z*9gFR1ybizFP2myErOj2xE7oEKzS ze9$#+b)1h+S>#ao2vQ#X23ExT3MVCso~+(vE!;MT9J^`Uk6mzu-x+YV4+6>@%eEcp zfdJXDb0!F|M#=X=fMo<2=(k&`?^!i-Vj>!Bzpnu>Q&uuUR!Joy`{d2Vabb7WX5+)V ziPx3)>bR(ngd)h+o`Ff%f6)EJ(d?tmoWps zy6*8rCZjw*_Q9ht#u#%33>ZRW4~`xB5g(W;{1-sBk*&EQnP-`{RuRz>WueI-12SK< zo)lgy{jQduP0h%SZ&E07`)Sf;*p*`R>C3}csNP~jXJ?z=(MkF!zI$6bsGmmCPhiIc zPq*ymOor^xLo18a1apFOgXQ`5BJ?p8e9C*R#^n!Tw~nNZs}^(lR||`8zN4~maB=+z z4tr(aAY#HW=9lm&;?X75OSt%?i}3EsBM9ulCS8uF?AwThc(qWw4akw6?C+AY9dUqw z9Anmwyy^(=a)pm&_vv}*-80Zy&7$`3D8=#hY4bf{p6|Q9&q@%kMG7%E#XQ&N^%fur z_Q`b9f7bIS!JZ@k-RNZ~j(WLa&8G*ISwjozPv%2$u%AuXW5_BqYzWt8v4}){V{vs8 zkCvQGs1Cb_f{x6f4YnIKu$$z^v5L9 z?~cK&p7g$pau)U1d`%x*;7qx$qPVCDrWHHFrY}3f>kGQbA!`A}&-WXs$|x!9Ad24; z2A0hmqc&z$I;9)r@ZQEn^-%0iHr1%YA)hK^oV6U)PvhyA>c$LJp6~=+e*fsA?By&G zsZJ0q2RtXOp|il@v7tv|E7V?mzpqEMIvb;td$g5GS6}}f1=goDH!@E!JrH&k-d`)$ z`oLCjM>H&?DY#Kb&Qd^q%n%t>;gp~nz$uGTYFhIucBB3CC3oS^v7xonSEO-7Sk$x1 znKuhU{V>@pw)Ze6jooTjsO8JBj>h(_-D$dF8Ndnqj{b-NVonq6L#6R4=Nkq9=1#S} zHVSTkN{0xjj5NJz55LdY#y6_d1ThV)(I09h4QoIcgG+sjo=_gSh${h%vTMAoB4CW$c> zn`-+y>*2sZuEX?>!30l&Ile}Ka$}PFVKh&d&gpa3dcL_sHHbkRxkc>|7!o*@Q$L&E zCorIJ%&~(-;=Yp2c(%!F?cmvs2P$E~{kgnf5!qo_aD)NYN_T{=Bx0t6lOL;)sKHMP z@L)cCvZ1sFjes$sBlJ?q1~L_AFOAXNip%SA^S$AgfTmDN5*9ZkBKk!G#^?8XBQG3q zeQ;yHTWeC2j^pd*@6F}$reqRH7NwS$R$ZxZ7FOmjssvE^BLntUxwam!Zme%?Pg8qG}EaWv-;|HI2|e1 z^RY%(%f!6>_A5NcC)Vr86A_@?n5rYx<-x&?(KoqvVYmP?xRfeXFt1J#s_DTU3H3&% z4A9Kh+Hxj!N4}{Mdh1~d%JqdbB=ADWLK_M7kQ6-fwd>z=HG>&-|3vRlB=@QlBE<98 zbtZJT-lvlu?e^)p6*er1Y*a$mR)8Gn5d&D-`Zld!|H-P!eXX~4c)}Y9Tr{4lEN{x4 zR8vqBV&HYv7KwK#3am7|9EEpbKbHGeBS_2Lp>vhso7`9()V^QPG-dI^AqK0z6}JtI zox>=$e)&P(l(b69;}^qj0su*3NRm5diFg3D+$7;NsO(YjCtas@$8ItL*r?-QN#06m zz}U5mFan??jWDO9KzDYrLV}5R^h=cVYjNaL!USlix~BWY!VTr7s&dWz9O*BFCM8O z!i?V|B~X-wD~rZj)kT^zZuzk#U# z=l^sd_;p8K)mEm^G)3}{H?rMm8Z?Y->|x3 z)~DOegQO7+FakI6c*&GQuh_mAj2*mk3+D6j0i{Lfu3prI=S z^%!wfPezVtari>d-hRW70 zU-cAv;XF8Q#&A$c+ubA!eFJ2v`74SMCcw5xw%!G0XCaxSo=5!=;{{`nYh|@uS*&U=LweUyamW3aN<4^=YpMY!V$Y`eHh|aPX z>$?Vwi?=jzqt@S2l<#=dyF13@)R>YpSM9(T)51r>hn{{c8<1aEV=vmT*>2%y-EdH} zZmAWUg&@F|(W8(zINroGH!tBXYKUSlUI-y!j+FQ_q{$=-FiNgnZX zjr`}Sl%p;Do32AgO;oz`ONjfTM!Y=g#eC9W$)>9FKieD`zMPCsxA1?M2eL#Uz7$%t zgZP5BS7vdF{^`Zhx;>=0h9-O0%5nncw7pPIFnw7Z5B(0;`0MV%r|`!cY2kRdG=}CR z+B%5ucnu#UvhUB-VM}Bn-j$61uwtiv&k_4=MbIUiSoW>}p?f`c$ls0oYTEjRDoazk z-BHQ}EN+CkM(^UMH)r;4)`#!#N_uukgQv4GhQrNwMX*NJL@Ype3{|)_B-}WsqxgYL z*pI$B8S54m(b*fEU=L^FyITru83k)Gb$LC+ipW8{omm)Ut;LeQO*1wM?q~nCO2x)z z3b{2jgRdM23lZw(1KzC6Bfwn$zsOk%PMm)7Vd2F|ZnX2s#oQ;+A5mh{bmY-u(};ef zf=h9df+`;HORQHccZ588Vt%Oq9~*{Hy)0`Xm2S$&y`DHHfB-A*Xyn(Q9T8N!!{K)KAdwHtakC zMvoAKs!EJ{QPUiijjBtsuMcMy65}!Y=^P+&op{KOl zud6n) zwJ4ikRhhL}#UdG~%RDkNBLCVMuAqt(o0i)vj4%8f4733&*peDPNX3zN8GEzfRWz;)K!-6`b*d`n?X`!<77u|4emkCtDjtd^kjnMh3Nzm zE=oI~L!wj70&Uhsm+QG&GBL7-key2|R{__<7$lf?js; z+K_z^)28+T(fOaB-Z56hg zDe!zEbHW>$?V8gP0(fK+!$w7A|gl zAyqtO3Sb~;&-14n3D!(#Fxr-%%Uhp8MCSi2BlX6t;32>hesp8DVMRvXHih!N8YXYk zu<+5r^XZSLQv^K<6(mSy{CzJWoS+~9RO>_r>^1ngcZ<4gV;&U8J5km4y*-`-kHd-F z91XrmA|`_ja&Y&6I5{R8ulok5%cr8N0u-#IZFs-?F6KPkL>}${%86!MW?zl3H1%Op zwA&mZcTd@S&E)Tk3D!hWQ13y?hSo6BZVuFTKraT=Qoz$>@%rkZ@s4=w;TgZU@(ct1 zlt@ehpwr@$^DTnP$$2cdv)1#?4qmeQJ zif#(raVAOwMO04x9*Oex{e)=sRl*Wyy#>@ z&y|SA&9sAltVD5EKE37nILS;XZQ9Nm?CMAJ;T=Wh@JE*gK80cFaQoCOJL1u;3$c}( zEVh1{aUsDPK@kZ&pNELpYvM9wY{UOKSYX4x%5AS=$R*gN|6$<=-DFQ7e}!{v?(L%o zsmc1syR!ynoV=qIgJue@FA4IB2QQssh8TGFd@{0fWpmWw0VQf<=G>L#A3HieM5~Fc z4|}EqbLxw)*cm56qnSpKTx=MV4?S+wEe$t$U*%RWyYs?Hsf8l@?{ z3;yNWPva~0s`OD7U!Phw34H+@0g37igQh|qsmZW$?-tTxSYzF8{cESDv=oE#J(!RjCih)cm!atd=9R>{=yU z7TIO7?vXxbnCytJAxu<&mjiI zy5SB30SGq5u)i)RvKLWb`o3at({IJ>X3f+pDhjARKBm<<7lZVU~598EDj8Yh=6Z| z-izdZCn_q1N;!{{Q&J@+&?uCT)!5FpRnvj@+*mKTj!WpyQHN$EyIk$-aSoAxTxZfY2 zhd#QyP8D*TNik97+^kwjn1xAN4I~5yBfI}bS`}Y11>-?5_8gkq&;$f+ak}qw|1lo| zbeC9^lf8MdE4slhc*3t4%o%g`RWtb^u1`urhyx;zM}%bqwcWN#ixEc>rf6pL^mrw&+01CL9BEA!HnF93qcXr1+OK+6{&Up8i+PjV zsJ0OdfFZ71;Ml4RBv<_tp)~1B4!@$`Rkfm%X7awuRrKH>&nIx?li&;reZ;&25UzLP zn{)>=Q7S&!?%2BUnmO>s&cd5iK31E_vea8;BZ7@8E6``en-V&BHjAg`?r0es-kCb5 z2%gkIKSr!ehJ<{8-5&JQ4JF+NSeiS)nZFfx9Z(t{YyKHZJ~Y63xtX7pa|8HT5(hoR z1HQ*qvPFN*YFG)nXNMKP5L#2QWWt;-IeSkyR0hlk1>}>0Y+dRho!-ft-;2S41^5~% zj)-g7qiDBY`6+n+b1W*?EtfRDoOB9KsoCidUO`3ElFry~p~Cw;l>!7)=9p9W1h8%h zz%VA7S1qUrOzxJb^BK;otW~ycU#u)wtt=;y^q6mc>1D7-94+{UPdti8+GCEn+lzPJ z*se{?91Nl-H1uonU=HXS^4R>+J$yK%;rtf+zdAb1xR7T;-Dm;(Nc)t2@3C-+zL(lP zR}Vua8upOSANG|eZdI^Ro;Sa+5d=vIl-s>8>1^^%UTB@aK|;}Te_-}6(mdZimmJqb z*;E&sik(j#Iwn>5gOTT)?>{LW^5XK;YB5eJ#CQ!SCO+%EZJy_Xk&v0L50YB4+whN| zXq*E^AX}f#+Ib|)&8Ni??&D6g&nvjbtPU$&U6>Z`e{TM&^3XbhoCK@nx#nOUd6Co4ZnY!$Nn+sw#h;6 zfhTJ;i)~O*7!sE$U?=9|K6QEaoinMxB@3OfPQ-mJS2K5rk*OPRfIX!q4&66{%}@SW zP*J0qd@}K|0aX1f;Y&l5Q8Yc0leg^!BsRIW_sYSt_v)QKw`9-qZ;Dc7K%7nNfEI&& z@pByj4kG)*N^|Czu(+Do4@zW{-j-wj0g2NfSAv7~66xO$#AEm2H>n<|^6-!=PE#lE zfi7{(yvRDNgPj+*w<_c_5h=%X)HGy5)qF93A-S_MFYKY*e`);d16qzs{!T`OMGp*@ zf||01wPHucZqlJP@7j79_ z)I%hPe+cM*$mWpIlnxz-j}2j8*IFMlxdyQ)iQpA`kHO+TF_iXnBuKsYzC+frJum=` zoJ&xVu0IWwpek$x_R00&%s?i}k>^3ob9#IIPDXNXxuMyAZ(EsRm06wl2W4+30ik9! z237lXzH`p{3r(T|W#C@Z`qmKU$|Emz5~W?h*^xVg4C*s9c1(2Li;j5tA~%R$y}Nc1 z9JlMyN>TgHMV%Bo`tp8=Bw|tzFUdO5mWMYyJ28lA5#2*5OQhpfJATb0Co+G3H>t+) zZ&kmATYV5!r5LhX^R@YnykE8Rcw(>0YWoO)LRsD~_xo%dB&cQH)f(-;`j62>UUz|Z zMq`gDpU$5%gw|h40*01FtQgpF&XwXjI&{Fy^IMfp?+Zn=2*kL`k>QU66sjmvhk&6D z^Z+O%f&^tqVOMRihv08WhP*(Kp9U(7>K#hSg2JCSIL`iTbq@~=p;2$psO6QG%!X`gmK19!0b$=s^UJYdHlH#!U`T?@gNe5$>)^Ep~Y z2@WXVhA+rfBSUiI|FgFO-gQNION!|gT>v_j9_nCz|$Y=yhr>dlI1aL+DT0pZ}mM#nPZ$Azxi&%dp0w z6@PwPj?gsq@emI?yY%}3wqAM}U(>X6PWWXjH>%J&4IQN6#05}R?h3#OM?heH&Lae- zxim9Q8dYeTC`>^?ESa+UCXfaZEB5v6a%9ViQm`#yAc7;K1rWTS0TcY~pA{@p(f{Yp z1Z}J;A|%^F(x*%{KK!sjEM`Hfsffl_hL~zuJ2 zcljDd&_5})Jt@ypwv!M-$fU4nk~fp_IhVloaEK^~#rW^-3C@$&)9&eb?FOMD5e>28 zs4))+JMDC{=8X2S6|+uXr#j#nx~ATQ_A+22_|vTFfIq$cm#VgIfXu_MHs)moC%XJ= zMpFAPECvkG3=Nk{Lv`tT0{YPZngg(eu2+S=%3qhmi^*+JDz)nEAU^p@!TK-N_l0XhC8Z0|)_JBdExvb1flE z0L|U|JxvlbhCF<;G(|#g)*Lf9?t*uXMJp80(BDgOvWUF>#$Z3!=xQ-nFhD1x4SszJ z1I2%LfRw2rwJm>1%E>2qyYph_?JK|1{NPu9k-3@X$~A2W5Z{5fAvNH5WBiiLH5V|f z!HF;2#xXg{TzC%t5ZA4pkWGC$o9sKB#9w2hxo|VSoah9&+27zjc>{t|8kEG_e!c{L z*+`{sv4)b=Lp6*Ky8yS>Nfekx;P$rl0Jnd?Tl5reIpu4T&C?)mQ?xw>=o>ORxk0R9 zg-=aNk9B?^aFO6Q9ZI{}xcncUN_E?R$Cl}RZ7*G#&TH?p8j@V&;-V9)b{33;vxKTMA3>sy@kg7pF}^wQ{(qgEc|4Wt+Q%D|AtaP3WS$~P zBvHl;WehDA3M&$2$UJ6>%)>Hgj1o~xEG$D&hJ{dxl_7H-LxUkxi*r3??|t?@=Y7w9 zUw`<+$9kS;UH5h0&wXFl@AuUpU#+~qBXv&1vbgdh?t{bLpBe>=UmArs4!Yw%?K4AE*zs>hGj>4qtkJUk3nTRm ze6ovGFp1%c(ONs3*^si-z#fBu^f~GcV(A#FqPo?;TtP$bc$7@5VS&+&*UH((jU z$sWkcTvwf>pmoIu8oFu62DGJ#kW5=8Vl#^poV9&0&uuR{#h|R)3*lsEoF3CnEjOu@ zWfSP#zGM8?-mQdY1<4|A?ey7lh1*p`|3<6c#5RXG{8$JdgMfel(t%!t4zzIE z9O>bGDVxd^J7l0j3ueo4&Ek9iXo^0XG?Y!BGrCeh%9^jRZ#Rdm{=K1jqOQl`$nVWc zlEtrPWn4R-W2J4meLl&e^it%=yIR?SJ+Npcv#{m;{5xNDka&O z{oC(oVPPK>iUf^%kJs0oP7pBt9jYEU|*8$=~42mS_ZK|py(z(4lRI>`64q*?f zjf>tI{Or$}4lKw7bibG?39B7_7MtHjg2Kf1o~ zfNU)G*nwKHF|E@8sOhh;XKEA*Qk(?zhG4p=_JMQhDVCGEF<=3!xIXm0t~W;4 z&Oxo9_EmMLHYwi7!6neNGxg|B+an{m(CLX9(W!`X1YX0ScxbAGI%@=#9Tm)ZsTm}1A8 zpni;^q(63tV$A_m=|dWF@@a1Gb)OtLFX6UvU~|KePVg}0{VEzlEznIlX&G9vR_K{Tb1WGJpr89 zo5z<`zA?U$G2d`Ui82-1;Z{sEHK|3>Xmk`xuKB)8*pvGr>=#(i#}$Wq+2%*4Xl60T zNRBoJs^?y{VwMDD+Ogc^_T8l?9~?6c!CR3ZDv91^NHwD{vqP(;jXpEmJSo=Hzt;qv zG(H}jpLuUPA(taZK38f?tz* z_J-$QdsXIhzcfQdIn&jZ$L_hYLVzqti&mI&o_Q}#x8d+gysS2=19=DWZFe8m=p%-Q zUphV3DDKnsS31)*@I8;5qvK~D;|6+0YnP{cXHHw{$Zfv%u>LWJld`%a$f^bE7NiwXYqPYJwx?=1fSv?b{%;gPA?uEQ>F3K zWVEk+N$ICtm}&I#N$jG^y(=g5_0E{Jd}8eCJ@@LOi(+VE-Rzp424J0@z8wqR6^7%J z9=mayn(i&rX2NI6<4H7P9~%Snx)12PJ4)FOi>IA*duZ{LQ?A6K)-agQN^u{7Jw=zI zbKbn(yAUVDt`xN=Q((b)8>VQO+EP~QEyYgNce1-u=b?>sorDw6pa_n#GlOEOgKIu* z#st>y8t4_NTbJ~x7{#KP(AgM&+wy!BPdL1B)tQSC8qAH=&-L8nv(FC(C+9h1fr_-e z%iYt*tI?ut*Aj$6XWV3RUhRs(sOAwr$J*MViKR{8;9*cgm02QwC^B~FDMn9-JmcKk6u%vKG9SY7wD zM`l$&k^|EZItJtwebuR5Wiw3g&XX`F*!@9~kd=v-y0#?t@Sy+e7yCniC+#@x(X|;Z5_iNSZPF5kj|a0%9Swpu&X_7U z^#g^wOyoR#$XHIC9ZlZJBC0ITrc-$zPrfg8@&p0kg2*EJ5Z6@(nzyps;@esJ;aKW) z>uk&*&_h5imwVB70?PHg72YVgV4?exQ+Lc-= zO5nT;c8&9W%k}Okwxeq0B7{z6x`pd$`VY5>iiFO5!N<2=lDd@`D0UEc3{KwQ3Q^$& zy;^p6sv0zeh4luyL~YZ7*9QV`N$#>A;Qx+Xt$1X850p)cp;<%;gVF}p6b|ABQ6f=| zyvQTyyUT)DZ`+j>lt^4({g~a}LCd$#(AJ@Ene6*DHV5UeO#IBP)K+2LaCm9Loxm~q z>aKjJ#;8*&f9~AYJe?)kWWeZci8&S`#e{5FT$=$QGP-u_L2I;j2J(&0cgb)QO1>Ps zeCLXxdxi-6S}B*1vylPK?b6G%D(5BY77e@>cbIfSCrwjKvPHEF+jw-jrDzz~fip6n z0Q|D#Xvwto9ZxI>PXNnLB`uXtW#gvLlX69U_M4`({?+nP*TdR{Bwkm>#4}>>tIXb_ z@)lrl;}c6@pkiZ^Y+IFh4d%NH)6R zF;afQxFjVUnWaczsYGpu2ccj>HhygM#m7>X2z&JW)9r09wv_?Y1AG9%$WmUZMk;Tk zoV}iui&Rbvv}*?E487kU*WXhOB_Yz3bqdzsP#O#)ks|C;A`fa$ ztiLeQ6gjxR$(hH?F20hY21qHB#;i3X;Mx=jwSFe;F+1JaLWw1lShpfTtY(X*2J4uc zQ?rv*E+1~MyHh7V$&m6BySqB2$}s;P_kok@T1i7whIWSTi(qx<&CG=3Lsh-f(gpWP z-;AIGqwizmk6Sm>-rR{EGKaE|nS1{ZrCYegnZCV*%UL1cYqDmHzTejM<$Vx^1OXG9 z;{u2n$-W!A%$AbMI0SSK+Y5g%y40^V&Bl*-xWtK|CKwb}5jc#=#;W5_QEX!}3qfTC zNv?_na^7t(EN;A>Qh*y~rjx7k_2Xt4YIoKncLeWV%~@S6)%$#^e(e3HSaE4h=7P+{ z&L7Vu3k@|$6US}L=L;`(Q+B7Ig+w)4G-7ZRel*wx4T4zgcS`D#M*-=VWEGw(ucpom z_E?xv81>HY9Ai>?OBa!IKWKd%CZFN~U-OU<4Qb+}1&j-09*%%d_=*BY0@P%QJ4@=v zh?XupqFw`82{t9|^wH z$SOY`GYQ4U)cwtZQz-hiUYIqpBJR*MIVw-h$H|vF#-_yI0LLZbeCT$U$UikEG|rIZ z76d}#W^JK^0j`4}?WQ^`xx7m;(Xt!iHJKioLHx808%sxi($+kIIm0EuZ;Ez)xgTgq z6H*|-gNDK8T=ETWj1a%K^tE>#zmW$222}7j>|jTx+?%bB{YPKTU+8@QFBab)v_8cp z4TMGbAGg?l*>tz@ZP5sUG-B?HyXHp{CJRMZHX0hWs)`F)H$fT~+NwK5W{F#vmS zI#f#}Onk7&bks5N?1Ss)bv0~~zd#}7xa%hXu4!sU`0U+62?D(g1c-fQAI4rr4s8nZ zo5Ia3zP`~t4ZI=5wFu9!2}wD*A^QtR7z(dKglq*pAdk)9xK_xQRb`M(!P#MThCg91 ze0*wkB2l+cH+!S+Yc;SV1~Zf|finK{0mcLic+RF;;1Yn=#Ax3bxO;rbOMOFg{QS}I zxiBv{{|voOT}R$ruK2__X)u4W2__H~VYTv*r`F^HqT6L~)!#b^6i7)Bi5k#j@7l0J zeu)6!Q;HUQH!ca7YHYwE)F1-0lyn=RiTY2#8p)?&e^Z zKLiB8rgs>yT&~#;fIq}RYPU%i;(*y$1$$PrN{1e^XCPmKU6W855c+cG5g#1#W}^px z<4-2;#@Y-F>(nFs@WYal!(w7SAh7)ihfhGQP7V&BDjnE1fGNei?z=vR@2`TqstpsK zad8qy@K=9O58Ds_0ECwpuu#4^CzULJsCE^C^GvqyJkVHe_9M|dhe2?WLk$4|;}52#`ks^0LNTND97}2>aCjyNBIW;e@SaCx(=|(8`CA**!+Mm6K}<5X;JBr2I)12 z2UXJD5Gs**EvQEH~y^yrNk=BUvE$5)u+f`BPuN z2dsMpw;36zxEWPAb%P!%bPtO%S$_oR&lo-zuRo%`F_m#cxqfmtehScOn=g;}-(rC^ zKuzWm-qM|f0mWyuRy@wSv>V<= z2(Y1+On^BLM#l*JN+0*;N(=PPXCP7aV}h*ZODVw5t7!jL_@HThf;rBHT0&A52*o&I zd5c5OTLeBr{xB>8#|${c#<18RQx@>2eUrryxMA2Lt8-`ndso!$g9%piU;$oUuEmWmn;Y2M>UH2B{06lC7|tnUBCKoGfI3 zK63`zLt!=~a%}c_FRxV~hfMBU37iFGW(wW1F+@umnM$Xy3VpE1{9H$VUvXgh;h#jJ z0BVE;7bKP8ouny;{Qti%TwB~@9w0Sh;Hrm_|4J?Y@1Ogh7rZ9G9{;-A|K&Oe`gN!# zbsgCo4CyGp22Ha~s(^O#Ve^`|;?dO|po}C#`>$$1Q-dA(#sEBi-vAP4Zhuc0gRO=A ee}f2b1l&Jz=+4Pi4|722Z_`xMQ7u)z6!cGsbThU9 diff --git a/docs/images/StorageClassDiagram.png b/docs/images/StorageClassDiagram.png index 09ac22e54e3b23ac43224106ed9efa477ce6cde2..ba6166d1a2ba0fc815bc8880a4c4b2eb1a18b59a 100644 GIT binary patch literal 25500 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 literal 58504 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 LF1r&IqIY&lYg From 3181caa8cee2fdc5ce52f301d30b5aa77d5a2eef Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 6 Nov 2024 19:51:41 +0800 Subject: [PATCH 470/619] Change DG appendix titles to align with requirements --- docs/DeveloperGuide.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 37227c07b2..70f27862c0 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -22,13 +22,13 @@ * [Filter feature](#filter-feature) * [Find feature](#find-feature) * [Saving and loading of data](#saving-and-loading-of-data) -* [Product scope](#product-scope) +* [Appendix A: Product scope](#appendix-a-product-scope) * [Target user profile](#target-user-profile) * [Value proposition](#value-proposition) -* [User stories](#user-stories) -* [Non-functional requirements](#non-functional-requirements) -* [Glossary](#glossary) -* [Instructions for manual testing](#instructions-for-manual-testing) +* [Appendix B: User stories](#appendix-b-user-stories) +* [Appendix C: Non-functional requirements](#appendix-c-non-functional-requirements) +* [Appendix D: Glossary](#appendix-d-glossary) +* [Appendix E: Instructions for manual testing](#appendix-e-instructions-for-manual-testing) * [Launch and shutdown](#launch-and-shutdown) * [Adding an event](#adding-an-event) * [Adding a participant](#adding-a-participant) @@ -688,7 +688,7 @@ Reading and writing from and to the `.csv` storage files is done through operati * `CSVWriter#writeNext()`, which is invoked when saving data, to save the fields for an `Event`, `Participant`, or `Item` into the file. -## Product scope +## Appendix A: Product scope ### Target user profile The target user: @@ -702,7 +702,7 @@ The target user: The user is able to organise and manage his events more quickly and efficiently than with a mouse/GUI app -## User Stories +## Appendix B: User Stories | Version | As a ... | I want to ... | So that I can ... | |---------|----------|-----------------------------------------------------------------|-------------------------------------------------------------------------------------------| @@ -724,7 +724,7 @@ The user is able to organise and manage his events more quickly and efficiently | v2.0 | user | add items to a specific event | keep track of what I need for that event | | v2.0 | user | mark items as accounted for | make sure I do not prepare excess items for an event | -## Non-Functional Requirements +## Appendix C: Non-Functional Requirements * Should work for any **mainstream OS** (Windows, MacOS, Linux) as long as Java 17 is installed. * Should be able to store data for a large number of `Event`s without any loss in performance. @@ -732,13 +732,13 @@ The user is able to organise and manage his events more quickly and efficiently * Should be able to load a corrupted save file without crashing. * Should be able to work in any directory that the `JAR` is copied to. -## Glossary +## Appendix D: Glossary * _Command_ - an action that is carried out in the program as a result of user input. * _List_ - a container class that stores multiple instances of an object. * _Parameter_ - a value in the user command input that is used for the parsing of a command. -## Instructions for manual testing +## Appendix E: Instructions for manual testing ### Launch and shutdown From 8e8ee210f37e7f740720015bb022451e6250fae1 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 6 Nov 2024 21:27:06 +0800 Subject: [PATCH 471/619] Update UserGuide.md --- docs/UserGuide.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 3e9957727a..fda8abdf50 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -22,6 +22,7 @@ * [Loading of program data](#loading-of-program-data) * [Editing of saved program data](#editing-of-saved-program-data) * [Command Summary](#command-summary) +
    ## Introduction @@ -46,6 +47,7 @@ Enter a command: * Words in `UPPER_CASE` represent parameters that are to be supplied by the user (unless otherwise specified). * Parameters listed have to be entered in the specified order. * Extraneous parameters for commands that do not take in parameters (e.g. `list`) will be ignored. +
    ### Viewing the command list: `menu` From 5a7707d6f25c788eb185004a27728dda8277ecc8 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 6 Nov 2024 21:29:46 +0800 Subject: [PATCH 472/619] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 70f27862c0..2aba2f1160 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -28,6 +28,7 @@ * [Appendix B: User stories](#appendix-b-user-stories) * [Appendix C: Non-functional requirements](#appendix-c-non-functional-requirements) * [Appendix D: Glossary](#appendix-d-glossary) +
    * [Appendix E: Instructions for manual testing](#appendix-e-instructions-for-manual-testing) * [Launch and shutdown](#launch-and-shutdown) * [Adding an event](#adding-an-event) @@ -56,6 +57,7 @@ This application uses the following dependencies: * [OpenCSV 5.9](https://mvnrepository.com/artifact/com.opencsv/opencsv/5.9) to read and write to `.csv` files. * [JUnit Jupiter API 5.10.0](https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api/5.10.0) for unit testing. * [JUnit Jupiter Engine 5.10.0](https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine/5.10.0) for unit testing. +
    ## Design @@ -73,6 +75,7 @@ The application comprises the following components: * `Parser`, which converts user input into commands. * `Command`, which are executed to modify the data stored in the program. * `Event`, which stores the program's data. +
    ### Interactions between components @@ -95,6 +98,7 @@ The above **Sequence Diagram** shows how the different components of the system * `EventList` refers to the list of events in `Event` which the program's event data is stored (see the [Event component](#event-component) section for more details). The **Sequence Diagrams** within the reference frames in the above diagram can be found in the [Command component](#command-component) and [Saving and loading of data](#saving-and-loading-of-data) sections. +
    ### UI component @@ -1004,4 +1008,4 @@ The user is able to organise and manage his events more quickly and efficiently 2. Run the program by opening a new terminal window and entering `java -jar manager.jar`. The program would give a warning that a line cannot be loaded, and the `Event` represented by the line would not be present in the `Event`s list. - 3. Essentially all corrupted rows are ignored and file parsing will still work \ No newline at end of file + 3. Essentially all corrupted rows are ignored and file parsing will still work From 4d717da8bfb3cdf089586e03d409a2becadf557a Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 6 Nov 2024 21:30:34 +0800 Subject: [PATCH 473/619] Update UserGuide.md --- docs/UserGuide.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index fda8abdf50..0911d6bbda 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -86,6 +86,7 @@ Format: `menu` Shows a list of all events currently stored in the program. Format: `list` +
    ### Add an event, participant or item: `add` @@ -123,6 +124,7 @@ Examples: * `remove -e Origami workshop` removes the event `Origami workshop` from the event list. * `remove -p John Tan -e Origami workshop` removes the participant `John Tan` from the event `Origami workshop`. * `remove -m Origami paper -e Origami workshop` removes the item `Origami paper` from the event `Origami workshop`. +
    ### View all participants or items for an event: `view` @@ -155,6 +157,7 @@ Examples: * `edit -e CS2113 -name CS2113T -t 2024-10-25 16:00 -v LT16 -u HIGH` edits the information of the event `CS2113`. * `edit -p Mary -n 9182 3213 -email mary@gmail.com -e CS2113` edits the contact information of the participant `Mary` in the event `CS2113`. * `edit -m balloon > cake -e anniversary` edits the item `balloon` in the event `anniversary` to `cake`. +
    ### Mark an event as done: `mark` From b4bd90927600ddaef7c8d18803e439a6a7fca462 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 6 Nov 2024 21:31:46 +0800 Subject: [PATCH 474/619] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 2aba2f1160..461d4e72b4 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -112,6 +112,7 @@ The `UI` does the following: * Take in command input from the user and pass the input to `Main` (through the `getCommand()` method). * Show output messages from `Command` to the user after command execution (through the `showOutputMessage()` method). * Show error messages from any caught exceptions (through the `showErrorMessageToUser()` method). +
    ### Storage component @@ -129,6 +130,7 @@ The `Storage` component does the following: * Save events data from `EventList` into the aforementioned `.csv` file each time a command is executed. Additional details on the implementation of the above operations can be found in the [Saving and loading of data](#saving-and-loading-of-data) section. +
    ### Parser component @@ -143,6 +145,7 @@ The logic of the `Parser` component is illustrated in the following use case: 1. Upon receiving a user command input, `Main` constructs a new `Parser`. This state is represented in the following **Object Diagram**: +
    2. `Main` passes the user command input to `Parser`, which parses the input and constructs an `XYZCommand` object, which is returned to `Main`. The `Parser` instance is no longer referenced. The current state is as shown in the **Object Diagram** below: From 3a1f4beff3bde31d3831abf0e68e5a8d18f3cec4 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 6 Nov 2024 21:32:58 +0800 Subject: [PATCH 475/619] Update UserGuide.md --- docs/UserGuide.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 0911d6bbda..c417d8abc3 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -197,6 +197,7 @@ Examples: * `mark -m Origami paper -e Origami workshop -s accounted` marks the item `Origami paper` in the `Origami workshop` event as accounted. * `mark -m Origami paper -e Origami workshop -s unaccounted` marks the item `Origami paper` in the `Origami workshop` event as unaccounted. +
    ### Copies participant list: `copy` @@ -238,6 +239,7 @@ Examples: * `filter -t 12:00` will output all events that are occurring at `12:00`. * `filter -x 2024-03-02 12:00` will output all events that are occurring at `2024-03-02 12:00`. * `filter -u high` with output all events with priority level `HIGH`. +
    ### Find participant: `find` @@ -273,6 +275,7 @@ The data is saved after the execution of every command and upon program terminat Upon startup, the program loads data from the `data.csv` file. If the file does not exist in the directory, it will be automatically created when data is saved. +
    ### Editing of saved program data @@ -317,6 +320,7 @@ The first field of each entry (`"EVENT"`, `"PARTICIPANT"`, `"ITEM"`) corresponds All fields added to `data.csv` must also be enclosed within double quotation marks (`" "`) to be properly parsed. If the above format or parameter constraints are not followed, the `Event`, `Participant` or `Item` corresponding to the file line will be ignored upon program startup. +
    ## Command Summary From 8621f125225af63e2e3da33803f40322711f5eb1 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 6 Nov 2024 21:42:34 +0800 Subject: [PATCH 476/619] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 461d4e72b4..7f3ae8250f 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -166,6 +166,7 @@ After the command execution, `XYZCommand`'s output message is set depending on w The `Command` component and its component classes are shown in the below **Component Diagram**: +
    The logic of the command parsing and execution in `Command` is as follows: @@ -179,6 +180,7 @@ The parameters of the `XYZCommand` instance are parsed from fields given in the The interactions between `Command` and other components in the system for the above set of operations is shown in the following _Sequence Diagram_: +
    ### Event component @@ -196,6 +198,7 @@ Each `Event` is composed of the following: The component and its dependencies are shown in the below **Component Diagram**: +
    ## Implementation From a4cb509df4b58930795f5672b15f93fc1a16aff8 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 6 Nov 2024 21:51:27 +0800 Subject: [PATCH 477/619] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 7f3ae8250f..6ce71f6a8a 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -237,6 +237,7 @@ switch (commandFlag) { * Otherwise, the `Parser` parses the user command input based on the values of the `FLAG`s in the input. * If any of the `FLAG`s in the user command input are not present or invalid, the `Parser` throws an `InvalidCommandException`. +
    The interactions between classes for the parsing of a command with parameters is shown in the following **Sequence Diagram**: @@ -268,6 +269,7 @@ The `COMMAND_WORD` is set to "list", enabling the system to recognize the comman The `execute()` method retrieves each event from `eventList` and appends it to a formatted output message. It uses the `String.format` method with `LIST_MESSAGE` to include the total number of events in the message header. Events are appended to `outputMessage` with numbered formatting for readability. +
    4. Output Generation: The method stores the generated `outputMessage` in `this.message`, ready for display. @@ -295,6 +297,7 @@ In `AddCommand#execute()`, one operation is selected based on the values stored * `participantName`, the name of the `Participant` to be added to the specified `Event`, * `itemName`, the name of the `Item` to be added to the specified `Event`, * `eventName`, the name of the specified `Event`. +
    The operation selection logic is as follows: @@ -400,6 +403,7 @@ and is invoked when the latter operation is called. The output of the operation depends on two variables: * `eventName`, the name of the selected event. * `isViewingParticipants`, which is true if a list of participants is to be shown, and false otherwise. +
    The `ViewCommand#execute()` operation works as follows: @@ -430,6 +434,7 @@ The feature comprises three operations, namely: The above three operations override the `Command#execute()` operation in `Command`, and is invoked when the latter operation is called. +
    #### Feature implementation @@ -467,6 +472,7 @@ The feature comprises three operations, namely: The above three operations override the `Command#execute()` operation in `Command`, and is invoked when the latter operation is called. +
    #### Feature implementation From 0b93d1405b6045d5cfc6e2429e696bf7930cf650 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 6 Nov 2024 21:56:47 +0800 Subject: [PATCH 478/619] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 6ce71f6a8a..d97ede645a 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -451,6 +451,7 @@ Given below is an example usage scenario and the behaviour of the `edit` feature The interactions between components of `EditEventCommand#execute()` are shown in the **Sequence Diagram** below: +
    The interactions between components of `EditParticipantCommand#execute()` are shown in the **Sequence Diagram** below: @@ -459,6 +460,7 @@ The interactions between components of `EditParticipantCommand#execute()` are sh The interactions between components of `EditItemCommand#execute()` are shown in the **Sequence Diagram** below: +
    ### Mark/unmark feature @@ -472,7 +474,6 @@ The feature comprises three operations, namely: The above three operations override the `Command#execute()` operation in `Command`, and is invoked when the latter operation is called. -
    #### Feature implementation @@ -489,6 +490,7 @@ in which it gets the event `Event 1` from the event list, and sets its mark stat 3. The user then enters the command `mark -e Event 1 -s undone` to mark `Event 1` as not done. The `MarkEventCommand` again calls `MarkEventCommand#execute`, in which it gets the event `Event 1` from the event list, and sets its mark status to `false` or not done. +
    The interactions between components during the execution of `MarkEventCommand#execute` are shown in the **Sequence Diagram** below: From c5486d06f61f6eaefab10b500ae055e66559dc6c Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 6 Nov 2024 22:05:19 +0800 Subject: [PATCH 479/619] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d97ede645a..2807774004 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -142,12 +142,12 @@ The `Parser` class takes in a user input string, and constructs an `XYZCommand` The logic of the `Parser` component is illustrated in the following use case: -1. Upon receiving a user command input, `Main` constructs a new `Parser`. This state is represented in the following **Object Diagram**: +\1. Upon receiving a user command input, `Main` constructs a new `Parser`. This state is represented in the following **Object Diagram**:
    -2. `Main` passes the user command input to `Parser`, which parses the input and constructs an `XYZCommand` object, which is returned to `Main`. +\2. `Main` passes the user command input to `Parser`, which parses the input and constructs an `XYZCommand` object, which is returned to `Main`. The `Parser` instance is no longer referenced. The current state is as shown in the **Object Diagram** below: @@ -271,7 +271,7 @@ It uses the `String.format` method with `LIST_MESSAGE` to include the total numb Events are appended to `outputMessage` with numbered formatting for readability.
    -4. Output Generation: +\4. Output Generation: The method stores the generated `outputMessage` in `this.message`, ready for display. The interactions between components during the execution of the `list` command are show in the **Sequence Diagram** below: @@ -479,16 +479,16 @@ and is invoked when the latter operation is called. Given below is an example usage scenario for `MarkEventCommand#execute()`, and how it behaves at each step. -1. The user adds an event `Event 1` to the event list. The mark status for `Event 1` is initially `false` or not done, as shown in the **Object Diagram** below: +\1. The user adds an event `Event 1` to the event list. The mark status for `Event 1` is initially `false` or not done, as shown in the **Object Diagram** below: -2. The user enters the command `mark -e Event 1 -s done` to mark `Event 1` as done. `MarkEventCommand` calls `MarkEventCommand#execute`, +\2. The user enters the command `mark -e Event 1 -s done` to mark `Event 1` as done. `MarkEventCommand` calls `MarkEventCommand#execute`, in which it gets the event `Event 1` from the event list, and sets its mark status to `true` or done, as shown in the **Object Diagram** below. -3. The user then enters the command `mark -e Event 1 -s undone` to mark `Event 1` as not done. The `MarkEventCommand` again calls `MarkEventCommand#execute`, +\3. The user then enters the command `mark -e Event 1 -s undone` to mark `Event 1` as not done. The `MarkEventCommand` again calls `MarkEventCommand#execute`, in which it gets the event `Event 1` from the event list, and sets its mark status to `false` or not done.
    @@ -510,6 +510,7 @@ The operation would be unsuccessful if the specified `Event` in `EventList`, or The interactions between components during the execution of `MarkParticipantCommand#execute` are shown in the **Sequence Diagram** below: +
    The output message of `MarkParticipantCommand` is set in a similar way as `MarkEventCommand`. @@ -544,11 +545,13 @@ and is invoked when the latter operation is called. Given below is an example usage scenario and the behaviour of the `copy` feature at each step: 1. The user enters the command `copy EventA > EventB` to copy participants from EventA to EventB. 2. `CopyCommand` calls `CopyCommand#execute`, where it attempts to get the participant list from EventA, and copy the participant list over to EventB if there are existing participants. +
    + The interactions between components of `CopyCommand#execute` are shown in the **Sequence Diagram** below: -3. Upon execution of the command, the output message of `CopyCommand` is set to inform the user if the participants list has been copied, +\3. Upon execution of the command, the output message of `CopyCommand` is set to inform the user if the participants list has been copied, or if the operation was unsuccessful (e.g. if the participant list that is meant to be copied is empty). ### Sort feature @@ -563,6 +566,7 @@ The `SortCommand` supports the following sorting options: The above operation is implemented as `SortCommand#execute()`. This overrides the `Command#execute()` operation in `Command`, and is invoked when the latter operation is called. +
    #### Feature implementation @@ -581,6 +585,7 @@ Given below is an example usage scenario and the behaviour of the `sort` feature The interactions between components of `SortCommand#execute` are shown in the **Sequence Diagram** below: +
    ### Filter feature @@ -639,6 +644,7 @@ Given below is an example usage scenario and the behaviour of the `find` feature The interactions between components of `FindCommand#execute` are shown in the **Sequence Diagram** below: +
    ### Saving and loading of data @@ -673,6 +679,7 @@ For `Event` loading: For `Participant` and `Item` loading: * The logic mirrors the loading of `Events`, where each `Participant` or `Item` is associated with the correct `Event` based on its specified fields. +
    The **Sequence Diagram** below demonstrates the interactions during loading. @@ -684,6 +691,7 @@ The logic for the loading of `Item`s is similar to that for `Participant`s. 1. `Storage` retrieves `Events` from `EventList` and writes each `Event` and its associated `Participants` and `Items` to `data.csv`. 2. Each line is formatted based on the object type, either as an `Event`, `Participant`, or `Item`. +
    #### Saving Events, Participants, and Items From 9c23935e0c535c3ea36d4f0697ff913398f738f9 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 6 Nov 2024 22:08:20 +0800 Subject: [PATCH 480/619] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 2807774004..1337da0980 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -703,7 +703,7 @@ For `Participant` and `Item` saving: The class interactions during saving are displayed in the **Sequence Diagram** below. - + The logic for the saving of `Item`s is similar to that for `Participant`s. From 6fcffc03e2d46fa6d199993255684e251976b8de Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 6 Nov 2024 22:17:11 +0800 Subject: [PATCH 481/619] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 1337da0980..846288aed5 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -142,14 +142,15 @@ The `Parser` class takes in a user input string, and constructs an `XYZCommand` The logic of the `Parser` component is illustrated in the following use case: -\1. Upon receiving a user command input, `Main` constructs a new `Parser`. This state is represented in the following **Object Diagram**: +
      +
    1. Upon receiving a user command input, `Main` constructs a new `Parser`. This state is represented in the following **Object Diagram**:
    2. -\2. `Main` passes the user command input to `Parser`, which parses the input and constructs an `XYZCommand` object, which is returned to `Main`. -The `Parser` instance is no longer referenced. The current state is as shown in the **Object Diagram** below: - +
    3. `Main` passes the user command input to `Parser`, which parses the input and constructs an `XYZCommand` object, which is returned to `Main`. +The `Parser` instance is no longer referenced. The current state is as shown in the **Object Diagram** below:
    4. +
    The interactions between `Parser` and the other components in the above procedure is shown in the sequence diagram in the [Command component](#command-component) section. @@ -258,22 +259,22 @@ These operations are accessible through the `Command` and can be invoked when th #### Feature implementation Given below is an example usage scenario and the behavior of the list feature at each step: +
      +
    1. User Command Input: +The user enters the command `list` to view all scheduled events.
    2. -1. User Command Input: -The user enters the command `list` to view all scheduled events. - -2. Command Recognition: -The `COMMAND_WORD` is set to "list", enabling the system to recognize the command input and invoke `ListCommand`. +
    3. Command Recognition: +The `COMMAND_WORD` is set to "list", enabling the system to recognize the command input and invoke `ListCommand`.
    4. -3. Execution of ListCommand#execute(): +
    5. Execution of ListCommand#execute(): The `execute()` method retrieves each event from `eventList` and appends it to a formatted output message. It uses the `String.format` method with `LIST_MESSAGE` to include the total number of events in the message header. -Events are appended to `outputMessage` with numbered formatting for readability. +Events are appended to `outputMessage` with numbered formatting for readability.
    6. -\4. Output Generation: -The method stores the generated `outputMessage` in `this.message`, ready for display. - +
    7. Output Generation: +The method stores the generated `outputMessage` in `this.message`, ready for display.
    8. +
    The interactions between components during the execution of the `list` command are show in the **Sequence Diagram** below: @@ -686,12 +687,12 @@ The **Sequence Diagram** below demonstrates the interactions during loading. The logic for the loading of `Item`s is similar to that for `Participant`s. +
    #### The `Main#saveData()` operation saves data in the same order as `Main#loadData()` and works as follows. 1. `Storage` retrieves `Events` from `EventList` and writes each `Event` and its associated `Participants` and `Items` to `data.csv`. 2. Each line is formatted based on the object type, either as an `Event`, `Participant`, or `Item`. -
    #### Saving Events, Participants, and Items @@ -703,16 +704,18 @@ For `Participant` and `Item` saving: The class interactions during saving are displayed in the **Sequence Diagram** below. - + The logic for the saving of `Item`s is similar to that for `Participant`s. +
    Reading and writing from and to the `.csv` storage files is done through operations from the **OpenCSV** library, namely: * `CSVReader#readAll()`, which is invoked by `FileParser` when loading data, to convert the file into a list of arrays of `String` to be parsed. * `CSVWriter#writeNext()`, which is invoked when saving data, to save the fields for an `Event`, `Participant`, or `Item` into the file. +
    ## Appendix A: Product scope @@ -749,6 +752,7 @@ The user is able to organise and manage his events more quickly and efficiently | v2.0 | user | find if a person is in a certain event | quickly confirm a participant’s involvement in an event | | v2.0 | user | add items to a specific event | keep track of what I need for that event | | v2.0 | user | mark items as accounted for | make sure I do not prepare excess items for an event | +
    ## Appendix C: Non-Functional Requirements From cf814fdbe6aad3856f5e6e72b5949f300fd9ff2f Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 6 Nov 2024 22:22:38 +0800 Subject: [PATCH 482/619] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 846288aed5..b398ef0bef 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -142,7 +142,7 @@ The `Parser` class takes in a user input string, and constructs an `XYZCommand` The logic of the `Parser` component is illustrated in the following use case: -
      +
      1. Upon receiving a user command input, `Main` constructs a new `Parser`. This state is represented in the following **Object Diagram**:
      2. @@ -752,6 +752,7 @@ The user is able to organise and manage his events more quickly and efficiently | v2.0 | user | find if a person is in a certain event | quickly confirm a participant’s involvement in an event | | v2.0 | user | add items to a specific event | keep track of what I need for that event | | v2.0 | user | mark items as accounted for | make sure I do not prepare excess items for an event | +
        ## Appendix C: Non-Functional Requirements @@ -794,7 +795,8 @@ The user is able to organise and manage his events more quickly and efficiently 4. Test case: `add -e Event 1 -t 2024-10-10 18:00 -v Venue 1 -u top` Expected: No `Event` is added. An error message is shown. - +
        + 2. Adding a duplicate `Event` to the `Event` list 1. Prerequisite: An event with the name `Event 1` is present in the list. @@ -838,6 +840,7 @@ The user is able to organise and manage his events more quickly and efficiently 3. Test case: `remove -e Event 2` Expected: No `Event` is removed. An error message is shown. +
        ### Removing a participant @@ -884,6 +887,7 @@ The user is able to organise and manage his events more quickly and efficiently 2. Test case: `remove -m Item 1 -e Event 1` Expected: No `Item` is removed. An error message is shown. +
        ### Editing an event @@ -925,6 +929,7 @@ The user is able to organise and manage his events more quickly and efficiently 2. Test case: `view -e Event 1 -y person` Expected: An error message is shown. +
        ### Marking an event as done @@ -961,6 +966,7 @@ The user is able to organise and manage his events more quickly and efficiently 2. Test case: `mark -p Participant 1 -e Event 1 -s present` Expected: No `Participant` is marked. An error message is shown. +
        ### Marking an item as accounted for @@ -1006,6 +1012,7 @@ The user is able to organise and manage his events more quickly and efficiently 2. Test case: `sort -by name` Expected: A list of `Event`s is shown, with `Bread making` coming before `Chocolate making`, and `Chocolate making` coming before `Doughnut making`. +
        ### Filtering the event list From a894a750fd2ec98baaa929533962860527b74927 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 6 Nov 2024 22:36:13 +0800 Subject: [PATCH 483/619] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index b398ef0bef..3e53d0e44e 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -142,15 +142,14 @@ The `Parser` class takes in a user input string, and constructs an `XYZCommand` The logic of the `Parser` component is illustrated in the following use case: -
          -
        1. Upon receiving a user command input, `Main` constructs a new `Parser`. This state is represented in the following **Object Diagram**:
        2. +1. Upon receiving a user command input, `Main` constructs a new `Parser`. This state is represented in the following **Object Diagram**:
          -
        3. `Main` passes the user command input to `Parser`, which parses the input and constructs an `XYZCommand` object, which is returned to `Main`. -The `Parser` instance is no longer referenced. The current state is as shown in the **Object Diagram** below:
        4. -
        +2. `Main` passes the user command input to `Parser`, which parses the input and constructs an `XYZCommand` object, which is returned to `Main`. +The `Parser` instance is no longer referenced. The current state is as shown in the **Object Diagram** below: + The interactions between `Parser` and the other components in the above procedure is shown in the sequence diagram in the [Command component](#command-component) section. @@ -259,22 +258,22 @@ These operations are accessible through the `Command` and can be invoked when th #### Feature implementation Given below is an example usage scenario and the behavior of the list feature at each step: -
          -
        1. User Command Input: -The user enters the command `list` to view all scheduled events.
        2. -
        3. Command Recognition: -The `COMMAND_WORD` is set to "list", enabling the system to recognize the command input and invoke `ListCommand`.
        4. +1. User Command Input: +The user enters the command `list` to view all scheduled events. + +2. Command Recognition: +The `COMMAND_WORD` is set to "list", enabling the system to recognize the command input and invoke `ListCommand`. -
        5. Execution of ListCommand#execute(): +3. Execution of ListCommand#execute(): The `execute()` method retrieves each event from `eventList` and appends it to a formatted output message. It uses the `String.format` method with `LIST_MESSAGE` to include the total number of events in the message header. -Events are appended to `outputMessage` with numbered formatting for readability.
        6. +Events are appended to `outputMessage` with numbered formatting for readability.
          -
        7. Output Generation: -The method stores the generated `outputMessage` in `this.message`, ready for display.
        8. -
        +4. Output Generation: +The method stores the generated `outputMessage` in `this.message`, ready for display. + The interactions between components during the execution of the `list` command are show in the **Sequence Diagram** below: @@ -480,16 +479,16 @@ and is invoked when the latter operation is called. Given below is an example usage scenario for `MarkEventCommand#execute()`, and how it behaves at each step. -\1. The user adds an event `Event 1` to the event list. The mark status for `Event 1` is initially `false` or not done, as shown in the **Object Diagram** below: +1. The user adds an event `Event 1` to the event list. The mark status for `Event 1` is initially `false` or not done, as shown in the **Object Diagram** below: -\2. The user enters the command `mark -e Event 1 -s done` to mark `Event 1` as done. `MarkEventCommand` calls `MarkEventCommand#execute`, +2. The user enters the command `mark -e Event 1 -s done` to mark `Event 1` as done. `MarkEventCommand` calls `MarkEventCommand#execute`, in which it gets the event `Event 1` from the event list, and sets its mark status to `true` or done, as shown in the **Object Diagram** below. -\3. The user then enters the command `mark -e Event 1 -s undone` to mark `Event 1` as not done. The `MarkEventCommand` again calls `MarkEventCommand#execute`, +3. The user then enters the command `mark -e Event 1 -s undone` to mark `Event 1` as not done. The `MarkEventCommand` again calls `MarkEventCommand#execute`, in which it gets the event `Event 1` from the event list, and sets its mark status to `false` or not done.
        @@ -552,7 +551,7 @@ The interactions between components of `CopyCommand#execute` are shown in the ** -\3. Upon execution of the command, the output message of `CopyCommand` is set to inform the user if the participants list has been copied, +3. Upon execution of the command, the output message of `CopyCommand` is set to inform the user if the participants list has been copied, or if the operation was unsuccessful (e.g. if the participant list that is meant to be copied is empty). ### Sort feature @@ -887,7 +886,6 @@ The user is able to organise and manage his events more quickly and efficiently 2. Test case: `remove -m Item 1 -e Event 1` Expected: No `Item` is removed. An error message is shown. -
        ### Editing an event @@ -1003,6 +1001,7 @@ The user is able to organise and manage his events more quickly and efficiently 2. Test case: `copy Event 1 > Event 2` Expected: The `Participant` list in `Event 1` is not copied over to `Event 2`. An error message is shown. +
        ### Sorting the event list @@ -1012,7 +1011,6 @@ The user is able to organise and manage his events more quickly and efficiently 2. Test case: `sort -by name` Expected: A list of `Event`s is shown, with `Bread making` coming before `Chocolate making`, and `Chocolate making` coming before `Doughnut making`. -
        ### Filtering the event list From 6119e1ab5a999787b6f613486e18c0a15dae7990 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 6 Nov 2024 22:42:04 +0800 Subject: [PATCH 484/619] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 3e53d0e44e..6996948fd8 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -369,6 +369,7 @@ The `EventList#removeParticipantFromEvent()` operation works as follows: If an `Event` with a name matching `eventName` or a `Participant` with name matching `participantName` is not found, the operation returns `false` to indicate that the operation was unsuccessful. Otherwise, the operation returns `true`. +
        The interactions between components during the above operation are shown in the **Sequence Diagram** below: @@ -483,11 +484,13 @@ Given below is an example usage scenario for `MarkEventCommand#execute()`, and h + 2. The user enters the command `mark -e Event 1 -s done` to mark `Event 1` as done. `MarkEventCommand` calls `MarkEventCommand#execute`, in which it gets the event `Event 1` from the event list, and sets its mark status to `true` or done, as shown in the **Object Diagram** below. + 3. The user then enters the command `mark -e Event 1 -s undone` to mark `Event 1` as not done. The `MarkEventCommand` again calls `MarkEventCommand#execute`, in which it gets the event `Event 1` from the event list, and sets its mark status to `false` or not done.
        From 0657ab998f61ddf432956acad8b1b82244f7d1bc Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 6 Nov 2024 22:48:17 +0800 Subject: [PATCH 485/619] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 6996948fd8..ba952f1c74 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -318,6 +318,7 @@ The `EventList#addParticipantToEvent()` operation works as follows: 3. Otherwise, `Event` creates a new `Participant` object with the parameters passed to it, and adds it to the `Participant` list. If an `Event` with a name matching `eventName` is not found, the operation returns `false` to indicate that the operation was unsuccessful. Otherwise, the operation returns `true`. +
        The interactions between components during the execution of the `EventList#addParticipantToEvent()` operation are show in the **Sequence Diagram** below: @@ -703,8 +704,9 @@ For saving `Events`: For `Participant` and `Item` saving: * For each Event, Storage retrieves the list of Participants and Items, writing each line in the respective format. +
        - The class interactions during saving are displayed in the **Sequence Diagram** below. +The class interactions during saving are displayed in the **Sequence Diagram** below. From e82ce113a1a9ca243f768842f94ec6231a86f83b Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Wed, 6 Nov 2024 22:51:36 +0800 Subject: [PATCH 486/619] Update DeveloperGuide.md --- docs/DeveloperGuide.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index ba952f1c74..6560c14548 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -619,10 +619,11 @@ Given below is an example usage scenario and the behaviour of the `filter` featu After filtering, a success message is appended to `outputMessage` which indicates the filtering criterion used 3. The final filtered list is then formatted and appended to `outputMessage`, which is subsequently stored in `this.message` and displayed to the user. - +
        The interactions between components of `FilterCommand#execute` are shown in the **Sequence Diagram** below: - + +
        ### Find feature From 0cdb059eaa5afc479ac0cd4773aa6568eff2dd4f Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 6 Nov 2024 23:09:58 +0800 Subject: [PATCH 487/619] Fix DG list bug --- docs/DeveloperGuide.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 6560c14548..08a93cb334 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -483,18 +483,16 @@ Given below is an example usage scenario for `MarkEventCommand#execute()`, and h 1. The user adds an event `Event 1` to the event list. The mark status for `Event 1` is initially `false` or not done, as shown in the **Object Diagram** below: - - + 2. The user enters the command `mark -e Event 1 -s done` to mark `Event 1` as done. `MarkEventCommand` calls `MarkEventCommand#execute`, -in which it gets the event `Event 1` from the event list, and sets its mark status to `true` or done, as shown in the **Object Diagram** below. - - - + in which it gets the event `Event 1` from the event list, and sets its mark status to `true` or done, as shown in the **Object Diagram** below. + + 3. The user then enters the command `mark -e Event 1 -s undone` to mark `Event 1` as not done. The `MarkEventCommand` again calls `MarkEventCommand#execute`, in which it gets the event `Event 1` from the event list, and sets its mark status to `false` or not done. -
        +
        The interactions between components during the execution of `MarkEventCommand#execute` are shown in the **Sequence Diagram** below: @@ -549,7 +547,7 @@ and is invoked when the latter operation is called. Given below is an example usage scenario and the behaviour of the `copy` feature at each step: 1. The user enters the command `copy EventA > EventB` to copy participants from EventA to EventB. 2. `CopyCommand` calls `CopyCommand#execute`, where it attempts to get the participant list from EventA, and copy the participant list over to EventB if there are existing participants. -
        +
        The interactions between components of `CopyCommand#execute` are shown in the **Sequence Diagram** below: From 406eef96023c46ccc3f1fa9d589fb58367d0d75a Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Wed, 6 Nov 2024 23:38:42 +0800 Subject: [PATCH 488/619] Fix numbering in Developer Guide --- docs/DeveloperGuide.md | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 6560c14548..e2f91af189 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -144,17 +144,17 @@ The logic of the `Parser` component is illustrated in the following use case: 1. Upon receiving a user command input, `Main` constructs a new `Parser`. This state is represented in the following **Object Diagram**: - -
        + +
        2. `Main` passes the user command input to `Parser`, which parses the input and constructs an `XYZCommand` object, which is returned to `Main`. The `Parser` instance is no longer referenced. The current state is as shown in the **Object Diagram** below: - + The interactions between `Parser` and the other components in the above procedure is shown in the sequence diagram in the [Command component](#command-component) section. -Further details regarding command parsing can be found in the [Command parsing](#command-parsing) section. +Further details regarding command parsing can be found in the [Command parsing](#command-parsing-) section. ### Command component @@ -269,7 +269,7 @@ The `COMMAND_WORD` is set to "list", enabling the system to recognize the comman The `execute()` method retrieves each event from `eventList` and appends it to a formatted output message. It uses the `String.format` method with `LIST_MESSAGE` to include the total number of events in the message header. Events are appended to `outputMessage` with numbered formatting for readability. -
        +
        4. Output Generation: The method stores the generated `outputMessage` in `this.message`, ready for display. @@ -330,7 +330,7 @@ The operation logic for `EventList#addItemToEvent()` is similar to that for `Eve The interactions between components during the execution of the `EventList#addEvent()` operation are show in the **Sequence Diagram** below: 1. `EventList` checks if there is a `Event` with the name in `eventName` in its list of `Events`s. If there is one, it throws a `DuplicateDataException`. -3. Otherwise, `EventList` creates a new `Event` object with the parameters passed to it, and adds it to the `Event` list. +2. Otherwise, `EventList` creates a new `Event` object with the parameters passed to it, and adds it to the `Event` list. @@ -483,14 +483,12 @@ Given below is an example usage scenario for `MarkEventCommand#execute()`, and h 1. The user adds an event `Event 1` to the event list. The mark status for `Event 1` is initially `false` or not done, as shown in the **Object Diagram** below: - - + 2. The user enters the command `mark -e Event 1 -s done` to mark `Event 1` as done. `MarkEventCommand` calls `MarkEventCommand#execute`, in which it gets the event `Event 1` from the event list, and sets its mark status to `true` or done, as shown in the **Object Diagram** below. - - + 3. The user then enters the command `mark -e Event 1 -s undone` to mark `Event 1` as not done. The `MarkEventCommand` again calls `MarkEventCommand#execute`, in which it gets the event `Event 1` from the event list, and sets its mark status to `false` or not done. @@ -555,8 +553,8 @@ The interactions between components of `CopyCommand#execute` are shown in the ** -3. Upon execution of the command, the output message of `CopyCommand` is set to inform the user if the participants list has been copied, - or if the operation was unsuccessful (e.g. if the participant list that is meant to be copied is empty). +Upon execution of the command, the output message of `CopyCommand` is set to inform the user if the participants list has been copied, +or if the operation was unsuccessful (e.g. if the participant list that is meant to be copied is empty). ### Sort feature @@ -653,7 +651,7 @@ The interactions between components of `FindCommand#execute` are shown in the ** ### Saving and loading of data -As mentioned in the _Storage component_ section, the program automatically saves any stored data in `EventList` into 'data.csv` file, and loads +As mentioned in the _Storage component_ section, the program automatically saves any stored data in `EventList` into `data.csv` file, and loads the data from this file when the program runs. In `data.csv`, each line represents an object (`Event`, `Participant`, or `Item`), organised in the following format: @@ -762,7 +760,7 @@ The user is able to organise and manage his events more quickly and efficiently ## Appendix C: Non-Functional Requirements -* Should work for any **mainstream OS** (Windows, MacOS, Linux) as long as Java 17 is installed. +* Should work for any **mainstream OS** (Windows, macOS, Linux) as long as Java 17 is installed. * Should be able to store data for a large number of `Event`s without any loss in performance. * Should be able to execute any command within 1 second of receiving user input. * Should be able to load a corrupted save file without crashing. @@ -984,10 +982,10 @@ The user is able to organise and manage his events more quickly and efficiently 2. Test case: `mark -m Item 1 -e Event 1 -s accounted` Expected: The `Item` with name `Item 1` is marked as accounted for. A success message is shown. - 2. Test case: `mark -m Item 1 -e Event 1 -s done` + 3. Test case: `mark -m Item 1 -e Event 1 -s done` Expected: No `Item` is marked. An invalid status error message is shown. - 3. Test case: `mark -m Item 2 -e Event 1 -s accounted` + 4. Test case: `mark -m Item 2 -e Event 1 -s accounted` Expected: No `Item` is marked. An error message is shown. 2. Marking an `Item` in an invalid `Event` From 2fc6dea1b11b2d444bce6ced318ba29284aadf27 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 7 Nov 2024 07:30:41 +0800 Subject: [PATCH 489/619] Remove placeholder PPP --- docs/team/johndoe.md | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 docs/team/johndoe.md diff --git a/docs/team/johndoe.md b/docs/team/johndoe.md deleted file mode 100644 index ab75b391b8..0000000000 --- a/docs/team/johndoe.md +++ /dev/null @@ -1,6 +0,0 @@ -# John Doe - Project Portfolio Page - -## Overview - - -### Summary of Contributions From ba860c1f4edf869a2f95deed0e762f2f9c0635fb Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 7 Nov 2024 15:06:38 +0800 Subject: [PATCH 490/619] Update home page --- docs/README.md | 7 +++++-- docs/images/Ui.png | Bin 0 -> 100937 bytes 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 docs/images/Ui.png diff --git a/docs/README.md b/docs/README.md index bbcc99c1e7..e8ee5abba5 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,9 @@ -# Duke +# EventManagerCLI -{Give product intro here} + + +**EventManagerCLI** is a CLI application for organisers of small-scale events that tracks +the participants and logistics for such events. Useful links: * [User Guide](UserGuide.md) diff --git a/docs/images/Ui.png b/docs/images/Ui.png new file mode 100644 index 0000000000000000000000000000000000000000..ee8433c8b33b838bae0f1be287b3c846e2fcf5f4 GIT binary patch literal 100937 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≪h>QqTGWlB7SBW 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 S&Gu@1U@ Date: Thu, 7 Nov 2024 17:54:55 +0800 Subject: [PATCH 491/619] Update CopyCommand --- src/main/java/seedu/manager/event/Event.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index da40fa90bd..b38b86cf9d 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -111,7 +111,7 @@ public String getEventVenue() { * @return the event's participant list */ public ArrayList getParticipantList() { - return participantList; + return new ArrayList<>(participantList); } //@@author jemehgoh From 275bb4e83a9040cfd63f683088f944ef343491f8 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Thu, 7 Nov 2024 18:24:14 +0800 Subject: [PATCH 492/619] Update edit error message --- src/main/java/seedu/manager/parser/Parser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 29aa70e5ce..c0e9d4d155 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -54,7 +54,7 @@ public class Parser { Invalid command! Please enter your commands in the following format: edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. - edit -m ITEM -e EVENT: Edit an item from an event. + edit -m ITEM > NEW_ITEM -e EVENT: Edit an item from an event. edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. """; private static final String INVALID_VIEW_MESSAGE = """ From cb542118ebd7a9a0ea464eb2044feb0b3e3ff04f Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Thu, 7 Nov 2024 19:09:01 +0800 Subject: [PATCH 493/619] Fix copy command bug --- .../seedu/manager/command/CopyCommand.java | 36 +++++++++++++++++-- src/main/java/seedu/manager/event/Event.java | 2 +- src/main/java/seedu/manager/item/Item.java | 14 ++++++-- 3 files changed, 46 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/manager/command/CopyCommand.java b/src/main/java/seedu/manager/command/CopyCommand.java index d9d270763b..775c5ce269 100644 --- a/src/main/java/seedu/manager/command/CopyCommand.java +++ b/src/main/java/seedu/manager/command/CopyCommand.java @@ -45,7 +45,6 @@ public CopyCommand(String copyFrom, String copyTo) { public void execute() { StringBuilder outputMessage = new StringBuilder(); - ArrayList participants; Optional eventTo = eventList.getEventByName(copyTo); Optional eventFrom = eventList.getEventByName(copyFrom); @@ -53,8 +52,9 @@ public void execute() { if (eventFrom.get().getParticipantList().isEmpty()) { outputMessage.append(PARTICIPANT_NOT_FOUND); } else { - participants = eventFrom.get().getParticipantList(); - eventTo.get().setParticipantList(participants); + ArrayList participants = eventFrom.get().getParticipantList(); + ArrayList copyOfParticipants = copyParticipantList(participants); + eventTo.get().setParticipantList(copyOfParticipants); outputMessage.append(COPY_SUCCESSFUL); } } else { @@ -64,4 +64,34 @@ public void execute() { this.message = outputMessage.toString(); } + /** + * Returns a copy of a given list of {@link Participant}s. + * + * @param participants the list of Participants. + * @return a copy of participants. + */ + private ArrayList copyParticipantList(ArrayList participants) { + ArrayList copyOfParticipants = new ArrayList<>(); + for (Participant participant : participants) { + Participant participantCopy = copyParticipant(participant); + copyOfParticipants.add(participantCopy); + } + + return copyOfParticipants; + } + + /** + * Returns a copy of a given {@link Participant}. + * + * @param participant the participant to be copied. + * @return a copy of participant. + */ + private Participant copyParticipant(Participant participant) { + String name = participant.getName(); + String number = participant.getNumber(); + String email = participant.getEmail(); + boolean isPresent = participant.isPresent(); + + return new Participant(name, number, email, isPresent); + } } diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index b38b86cf9d..46fdf9aab7 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -111,7 +111,7 @@ public String getEventVenue() { * @return the event's participant list */ public ArrayList getParticipantList() { - return new ArrayList<>(participantList); + return this.participantList; } //@@author jemehgoh diff --git a/src/main/java/seedu/manager/item/Item.java b/src/main/java/seedu/manager/item/Item.java index c6969de0df..ad2ff7b9bb 100644 --- a/src/main/java/seedu/manager/item/Item.java +++ b/src/main/java/seedu/manager/item/Item.java @@ -29,14 +29,23 @@ public String getName() { return name; } + //@@author MatchaRRR /** - * set the name of the item + * Sets the name of the item. */ public void setName(String itemNewName) { this.name = itemNewName; } + //@@author LTK-1606 + /** + * @return {@code true} if isPresent is true, {@code false} otherwise. + */ + public boolean isPresent() { + return isPresent; + } + //@@author jemehgoh /** * Sets the item as present or not present. * @@ -56,7 +65,8 @@ public String markIfPresent() { } /** - * Returns "Y" if isPresent is true, "N" otherwise. For saving the item's mark status to files. + * Returns "Y" if isPresent is true, "N" otherwise. + * For saving the item's mark status to files. * * @return "Y" if isPresent is true, "N" otherwise. */ From 5117e050049801196a5375a1f98cb11c31653739 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Sat, 9 Nov 2024 02:05:35 +0800 Subject: [PATCH 494/619] Update all regex and parse command methods --- .../java/seedu/manager/parser/Parser.java | 304 +++++++++++++----- 1 file changed, 215 insertions(+), 89 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index c0e9d4d155..3f91c0ac37 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -26,6 +26,7 @@ import java.time.format.DateTimeParseException; import java.util.Set; import java.util.logging.Logger; +import java.util.regex.Matcher; import java.util.regex.Pattern; import static java.util.logging.Level.WARNING; @@ -145,16 +146,22 @@ public class Parser { private static final String SPACE = " "; private static final String ARROW = ">"; - private static final String EVENT_REGEX = "(-e|-t|-v|-u)"; - private static final String EVENT_ATTRIBUTE_REGEX = "(-e|-name|-t|-v|-u)"; - private static final String PARTICIPANT_REGEX = "(-p|-n|-email|-e)"; - private static final String ITEM_REGEX = "(-m|-e)"; - private static final String REMOVE_PARTICIPANT_REGEX = "(-p|-e)"; - private static final String MARK_EVENT_REGEX = "-e|-s"; - private static final String MARK_PARTICIPANT_REGEX = "-p|-e|-s"; - private static final String FIND_REGEX = "\\s*(-e|-p)\\s*"; - private static final String VIEW_REGEX = "(-e|-y)"; - private static final String MARK_ITEM_REGEX = "-m|-e|-s"; + private static final String ADD_EVENT_REGEX = "add\\s+-e\\s+(.*?)\\s+-t\\s+(.*?)\\s+-v\\s+(.*?)\\s+-u\\s+(.*)"; + private static final String EDIT_EVENT_ATTRIBUTE_REGEX = "edit\\s+-e\\s+(.*?)\\s+" + + "-name\\s+(.*?)\\s+-t\\s+(.*?)\\s+-v\\s+(.*?)\\s+-u\\s+(.*)"; + private static final String ADD_PARTICIPANT_REGEX = "add\\s+-p\\s+(.*?)\\s+" + + "-n\\s+(.*?)\\s+-email\\s+(.*?)\\s+-e\\s+(.*)"; + private static final String EDIT_PARTICIPANT_REGEX = "edit\\s+-p\\s+(.*?)\\s+" + + "-n\\s+(.*?)\\s+-email\\s+(.*?)\\s+-e\\s+(.*)"; + private static final String ADD_ITEM_REGEX = "add\\s+-m\\s+(.*?)\\s+-e\\s+(.*)"; + private static final String REMOVE_ITEM_REGEX = "remove\\s+-m\\s+(.*?)\\s+-e\\s+(.*)"; + private static final String EDIT_ITEM_REGEX = "edit\\s+-m\\s+(.*?)\\s+-e\\s+(.*)"; + private static final String REMOVE_PARTICIPANT_REGEX = "remove\\s+-p\\s+(.*?)\\s+-e\\s+(.*)"; + private static final String MARK_EVENT_REGEX = "mark\\s+-e\\s+(.*?)\\s+-s\\s+(.*)"; + private static final String MARK_PARTICIPANT_REGEX = "mark\\s+-p\\s+(.*?)\\s+-e\\s+(.*?)\\s+-s\\s+(.*)"; + private static final String FIND_REGEX = "find\\s+-e\\s+(.*?)\\s+-p\\s+(.*)"; + private static final String VIEW_REGEX = "view\\s+-e\\s+(.*?)\\s+-y\\s+(.*)"; + private static final String MARK_ITEM_REGEX = "mark\\s+-m\\s+(.*?)\\s+-e\\s+(.*?)\\s+-s\\s+(.*)"; private static final Pattern PHONE_NUMBER_PATTERN = Pattern.compile("\\d{8}"); private static final Pattern EMAIL_PATTERN = Pattern.compile("^[A-Za-z0-9+_.-]+@[A-Za-z0-9-]+\\.[A-Za-z0-9-]+$"); @@ -260,14 +267,25 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval */ private Command getAddEventCommand(String input) throws IndexOutOfBoundsException, DateTimeParseException, IllegalArgumentException { - String[] inputParts = input.split(EVENT_REGEX); - logger.info("Creating AddCommand for event with details: " + - inputParts[1].trim() + ", " + inputParts[2].trim() + ", " + inputParts[3].trim()); - String eventName = inputParts[1].trim(); - LocalDateTime eventTime = LocalDateTime.parse(inputParts[2].trim(), - DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); - String venue = inputParts[3].trim(); - Priority eventPriority = Priority.valueOf(inputParts[4].trim().toUpperCase()); + Pattern pattern = Pattern.compile(ADD_EVENT_REGEX); + Matcher matcher = pattern.matcher(input); + + String eventName; + LocalDateTime eventTime; + String venue; + Priority eventPriority; + + if (matcher.matches()) { + logger.info("Creating AddCommand for event with details: " + + matcher.group(1).trim() + ", " + matcher.group(2).trim() + ", " + matcher.group(3).trim()); + eventName = matcher.group(1).trim(); + eventTime = LocalDateTime.parse(matcher.group(2).trim(), + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); + venue = matcher.group(3).trim(); + eventPriority = Priority.valueOf(matcher.group(4).trim().toUpperCase()); + } else { + throw new InvalidCommandException(INVALID_ADD_MESSAGE); + } return new AddCommand(eventName, eventTime, venue, eventPriority); } @@ -281,22 +299,33 @@ private Command getAddEventCommand(String input) throws IndexOutOfBoundsExceptio * @throws InvalidCommandException if the input phone number and email are not in the correct format. */ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException { - String[] inputParts = input.split(PARTICIPANT_REGEX); - logger.info("Creating AddCommand for participant with details: " + - inputParts[1].trim() + ", " + inputParts[2].trim()); - String participantName = inputParts[1].trim(); - String participantNumber = inputParts[2].trim(); - String participantEmail = inputParts[3].trim(); - String eventName = inputParts[4].trim(); - - if (!isValidPhoneNumber(participantNumber)) { - logger.log(WARNING, "Invalid phone number format"); - throw new InvalidCommandException(INVALID_PHONE_NUMBER_MESSAGE); - } + Pattern pattern = Pattern.compile(ADD_PARTICIPANT_REGEX); + Matcher matcher = pattern.matcher(input); + + String participantName; + String participantEmail; + String eventName; + String participantNumber; + + if (matcher.matches()) { + logger.info("Creating AddCommand for participant with details: " + + matcher.group(1).trim() + ", " + matcher.group(2).trim()); + participantName = matcher.group(1).trim(); + participantNumber = matcher.group(2).trim(); + participantEmail = matcher.group(3).trim(); + eventName = matcher.group(4).trim(); + + if (!isValidPhoneNumber(participantNumber)) { + logger.log(WARNING, "Invalid phone number format"); + throw new InvalidCommandException(INVALID_PHONE_NUMBER_MESSAGE); + } - if (!isValidEmail(participantEmail)) { - logger.log(WARNING, "Invalid email format"); - throw new InvalidCommandException(INVALID_EMAIL_MESSAGE); + if (!isValidEmail(participantEmail)) { + logger.log(WARNING, "Invalid email format"); + throw new InvalidCommandException(INVALID_EMAIL_MESSAGE); + } + } else { + throw new InvalidCommandException(INVALID_ADD_MESSAGE); } return new AddCommand(participantName, participantNumber, participantEmail, eventName); @@ -311,11 +340,21 @@ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsEx * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getAddItemCommand(String input) throws IndexOutOfBoundsException { - String[] inputParts = input.split(ITEM_REGEX); - String itemName = inputParts[1].trim(); - String eventName = inputParts[2].trim(); - logger.info(String.format("Creating AddCommand for item with details: %s, %s", itemName, - eventName)); + Pattern pattern = Pattern.compile(ADD_ITEM_REGEX); + Matcher matcher = pattern.matcher(input); + + String itemName; + String eventName; + + if (matcher.matches()) { + itemName = matcher.group(1).trim(); + eventName = matcher.group(2).trim(); + logger.info(String.format("Creating AddCommand for item with details: %s, %s", itemName, + eventName)); + } else { + throw new InvalidCommandException(INVALID_ADD_MESSAGE); + } + return new AddCommand(itemName, eventName); } @@ -379,8 +418,14 @@ private RemoveCommand getRemoveEventCommand(String input) throws IndexOutOfBound * @throws IndexOutOfBoundsException if not all fields are present in input. */ private RemoveCommand getRemoveParticipantCommand(String input) throws IndexOutOfBoundsException { - String[] inputParts = input.split(REMOVE_PARTICIPANT_REGEX); - return new RemoveCommand(inputParts[1].trim(), inputParts[2].trim(), true); + Pattern pattern = Pattern.compile(REMOVE_PARTICIPANT_REGEX); + Matcher matcher = pattern.matcher(input); + + if (matcher.matches()) { + return new RemoveCommand(matcher.group(1).trim(), matcher.group(2).trim(), true); + } else { + throw new InvalidCommandException(INVALID_REMOVE_MESSAGE); + } } //@@author jemehgoh @@ -392,8 +437,14 @@ private RemoveCommand getRemoveParticipantCommand(String input) throws IndexOutO * @throws IndexOutOfBoundsException if not all fields are present in input. */ private RemoveCommand getRemoveItemCommand(String input) throws IndexOutOfBoundsException { - String[] inputParts = input.split(ITEM_REGEX); - return new RemoveCommand(inputParts[1].trim(), inputParts[2].trim(), false); + Pattern pattern = Pattern.compile(REMOVE_ITEM_REGEX); + Matcher matcher = pattern.matcher(input); + + if (matcher.matches()) { + return new RemoveCommand(matcher.group(1).trim(), matcher.group(2).trim(), false); + } else { + throw new InvalidCommandException(INVALID_REMOVE_MESSAGE); + } } /** @@ -433,20 +484,31 @@ private Command parseEditCommand(String input, String[] commandParts) throws Inv * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException { - String[] inputParts = input.split(PARTICIPANT_REGEX); - String participantName = inputParts[1].trim(); - String newNumber = inputParts[2].trim(); - String newEmail = inputParts[3].trim(); - String eventName = inputParts[4].trim(); - - if (!isValidPhoneNumber(newNumber)) { - logger.log(WARNING, "Invalid phone number format"); - throw new InvalidCommandException(INVALID_PHONE_NUMBER_MESSAGE); - } + Pattern pattern = Pattern.compile(EDIT_PARTICIPANT_REGEX); + Matcher matcher = pattern.matcher(input); + + String participantName; + String newNumber; + String newEmail; + String eventName; + + if (matcher.matches()) { + participantName = matcher.group(1).trim(); + newNumber = matcher.group(2).trim(); + newEmail = matcher.group(3).trim(); + eventName = matcher.group(4).trim(); + + if (!isValidPhoneNumber(newNumber)) { + logger.log(WARNING, "Invalid phone number format"); + throw new InvalidCommandException(INVALID_PHONE_NUMBER_MESSAGE); + } - if (!isValidEmail(newEmail)) { - logger.log(WARNING, "Invalid email format"); - throw new InvalidCommandException(INVALID_EMAIL_MESSAGE); + if (!isValidEmail(newEmail)) { + logger.log(WARNING, "Invalid email format"); + throw new InvalidCommandException(INVALID_EMAIL_MESSAGE); + } + } else { + throw new InvalidCommandException(INVALID_EDIT_MESSAGE); } return new EditParticipantCommand(participantName, newNumber, newEmail, eventName); @@ -464,14 +526,25 @@ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsE */ private Command getEditEventCommand(String input) throws IndexOutOfBoundsException, DateTimeParseException, IllegalArgumentException { - String[] inputParts = input.split(EVENT_ATTRIBUTE_REGEX); - - String eventName = inputParts[1].trim(); - String eventNewName = inputParts[2].trim(); - LocalDateTime eventTime = LocalDateTime.parse(inputParts[3].trim(), - DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); - String eventVenue = inputParts[4].trim(); - Priority eventPriority = Priority.valueOf(inputParts[5].trim().toUpperCase()); + Pattern pattern = Pattern.compile(EDIT_EVENT_ATTRIBUTE_REGEX); + Matcher matcher = pattern.matcher(input); + + String eventName; + String eventNewName; + LocalDateTime eventTime; + Priority eventPriority; + String eventVenue; + + if (matcher.matches()) { + eventName = matcher.group(1).trim(); + eventNewName = matcher.group(2).trim(); + eventTime = LocalDateTime.parse(matcher.group(3).trim(), + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); + eventVenue = matcher.group(4).trim(); + eventPriority = Priority.valueOf(matcher.group(5).trim().toUpperCase()); + } else { + throw new InvalidCommandException(INVALID_EDIT_MESSAGE); + } return new EditEventCommand(eventName, eventNewName, eventTime, eventVenue, eventPriority); } @@ -485,10 +558,20 @@ private Command getEditEventCommand(String input) throws IndexOutOfBoundsExcepti * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getEditItemCommand(String input) { - String[] inputParts = input.split(ITEM_REGEX); - String itemName = inputParts[1].split(ARROW)[0].trim(); - String itemNewName = inputParts[1].split(ARROW)[1].trim(); - String eventName = inputParts[2].trim(); + Pattern pattern = Pattern.compile(EDIT_ITEM_REGEX); + Matcher matcher = pattern.matcher(input); + + String itemName; + String itemNewName; + String eventName; + + if (matcher.matches()) { + itemName = matcher.group(1).split(ARROW)[0].trim(); + itemNewName = matcher.group(1).split(ARROW)[1].trim(); + eventName = matcher.group(2).trim(); + } else { + throw new InvalidCommandException(INVALID_EDIT_MESSAGE); + } return new EditItemCommand(itemName, itemNewName, eventName); } @@ -555,15 +638,22 @@ private Command parseViewCommand(String input, String[] commandParts) throws Inv * @throws InvalidCommandException if the status parameter in input is invalid. */ private ViewCommand getViewCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException { - String[] inputParts = input.split(VIEW_REGEX); - String eventName = inputParts[1].trim(); - String viewType = inputParts[2].trim(); - if (viewType.equalsIgnoreCase("participant")) { - return new ViewCommand(eventName, true); - } else if (viewType.equalsIgnoreCase("item")) { - return new ViewCommand(eventName, false); + Pattern pattern = Pattern.compile(VIEW_REGEX); + Matcher matcher = pattern.matcher(input); + + if (matcher.matches()) { + String eventName = matcher.group(1).trim(); + String viewType = matcher.group(2).trim(); + + if (viewType.equalsIgnoreCase("participant")) { + return new ViewCommand(eventName, true); + } else if (viewType.equalsIgnoreCase("item")) { + return new ViewCommand(eventName, false); + } else { + throw new InvalidCommandException(INVALID_TYPE_MESSAGE); + } } else { - throw new InvalidCommandException(INVALID_TYPE_MESSAGE); + throw new InvalidCommandException(INVALID_VIEW_MESSAGE); } } @@ -605,9 +695,18 @@ private Command parseMarkCommand(String input, String[] commandParts) throws Inv * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getMarkEventCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException { - String[] inputParts = input.split(MARK_EVENT_REGEX); - String eventName = inputParts[1].trim(); - boolean isToMark = toMarkEvent(inputParts[2].trim()); + Pattern pattern = Pattern.compile(MARK_EVENT_REGEX); + Matcher matcher = pattern.matcher(input); + + String eventName; + boolean isToMark; + + if (matcher.matches()) { + eventName = matcher.group(1).trim(); + isToMark = toMarkEvent(matcher.group(2).trim()); + } else { + throw new InvalidCommandException(INVALID_MARK_MESSAGE); + } return new MarkEventCommand(eventName, isToMark); } @@ -639,10 +738,20 @@ private boolean toMarkEvent(String status) throws InvalidCommandException { * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getMarkParticipantCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException { - String[] inputParts = input.split(MARK_PARTICIPANT_REGEX); - String participantName = inputParts[1].trim(); - String eventName = inputParts[2].trim(); - boolean isToMark = toMarkParticipant(inputParts[3].trim()); + Pattern pattern = Pattern.compile(MARK_PARTICIPANT_REGEX); + Matcher matcher = pattern.matcher(input); + + String participantName; + String eventName; + boolean isToMark; + + if (matcher.matches()) { + participantName = matcher.group(1).trim(); + eventName = matcher.group(2).trim(); + isToMark = toMarkParticipant(matcher.group(3).trim()); + } else { + throw new InvalidCommandException(INVALID_MARK_MESSAGE); + } return new MarkParticipantCommand(participantName, eventName, isToMark); } @@ -674,10 +783,20 @@ private boolean toMarkParticipant(String status) throws InvalidCommandException * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getMarkItemCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException { - String[] inputParts = input.split(MARK_ITEM_REGEX); - String itemName = inputParts[1].trim(); - String eventName = inputParts[2].trim(); - boolean isToMark = toMarkItem(inputParts[3].trim()); + Pattern pattern = Pattern.compile(MARK_ITEM_REGEX); + Matcher matcher = pattern.matcher(input); + + String itemName; + String eventName; + boolean isToMark; + + if (matcher.matches()) { + itemName = matcher.group(1).trim(); + eventName = matcher.group(2).trim(); + isToMark = toMarkItem(matcher.group(3).trim()); + } else { + throw new InvalidCommandException(INVALID_MARK_MESSAGE); + } return new MarkItemCommand(itemName, eventName, isToMark); } @@ -810,12 +929,19 @@ private Command parseFindCommand(String input, String[] commandParts) throws Inv throw new InvalidCommandException(INVALID_FIND_FLAG_MESSAGE); } - String[] inputParts = input.split(FIND_REGEX); - if (inputParts.length < 3 || inputParts[1].isBlank()) { + Pattern pattern = Pattern.compile(FIND_REGEX); + Matcher matcher = pattern.matcher(input); + + if (matcher.matches()) { + if (matcher.groupCount() < 3 || matcher.group(1).isBlank()) { + throw new InvalidCommandException(INVALID_FIND_MESSAGE); + } + + return new FindCommand(matcher.group(1).trim(), matcher.group(2).trim()); + } else { throw new InvalidCommandException(INVALID_FIND_MESSAGE); } - return new FindCommand(inputParts[1].trim(), inputParts[2].trim()); } //@@author jemehgoh From e7d1f3d18cd1d0257b5b19f4eaa180a0e5eae6be Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Sat, 9 Nov 2024 03:44:32 +0800 Subject: [PATCH 495/619] Add function to check for duplicate flags --- .../java/seedu/manager/parser/Parser.java | 90 ++++++++++++++++++- 1 file changed, 88 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 3f91c0ac37..23afc68bb7 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -24,6 +24,7 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; +import java.util.HashSet; import java.util.Set; import java.util.logging.Logger; import java.util.regex.Matcher; @@ -138,6 +139,15 @@ public class Parser { Invalid find flag! Please set the find flag using "-e" and "-p"" """; + private static final String DUPLICATE_FLAG_MESSAGE = """ + Duplicate flags found! + Please only use each flag once! + """; + private static final String UNRECOGNISED_FLAG_MESSAGE = """ + Invalid flag used! + Please only use flags related to the command! + Use the 'menu' command to see which flags are allowed! + """; private static final String EVENT_FLAG = "-e"; private static final String PARTICIPANT_FLAG = "-p"; @@ -146,6 +156,18 @@ public class Parser { private static final String SPACE = " "; private static final String ARROW = ">"; + private static final String EVENT_FLAG_REGEX = "(-e|-t|-v|-u)"; + private static final String EDIT_EVENT_ATTRIBUTE_FLAG_REGEX = "(-e|-name|-t|-v|-u)"; + private static final String PARTICIPANT_FLAG_REGEX = "(-p|-n|-email|-e)"; + private static final String REMOVE_PARTICIPANT_FLAG_REGEX = "(-p|-e)"; + private static final String ITEM_FLAG_REGEX = "(-m|-e)"; + private static final String MARK_EVENT_FLAG_REGEX = "-e|-s"; + private static final String MARK_PARTICIPANT_FLAG_REGEX = "-p|-e|-s"; + private static final String FIND_FLAG_REGEX = "\\s*(-e|-p)\\s*"; + private static final String VIEW_FLAG_REGEX = "(-e|-y)"; + private static final String MARK_ITEM_FLAG_REGEX = "-m|-e|-s"; + private static final String REMOVE_EVENT_FLAG_REGEX = "-e"; + private static final String ADD_EVENT_REGEX = "add\\s+-e\\s+(.*?)\\s+-t\\s+(.*?)\\s+-v\\s+(.*?)\\s+-u\\s+(.*)"; private static final String EDIT_EVENT_ATTRIBUTE_REGEX = "edit\\s+-e\\s+(.*?)\\s+" + "-name\\s+(.*?)\\s+-t\\s+(.*?)\\s+-v\\s+(.*?)\\s+-u\\s+(.*)"; @@ -162,6 +184,7 @@ public class Parser { private static final String FIND_REGEX = "find\\s+-e\\s+(.*?)\\s+-p\\s+(.*)"; private static final String VIEW_REGEX = "view\\s+-e\\s+(.*?)\\s+-y\\s+(.*)"; private static final String MARK_ITEM_REGEX = "mark\\s+-m\\s+(.*?)\\s+-e\\s+(.*?)\\s+-s\\s+(.*)"; + private static final String REMOVE_EVENT_REGEX = "remove\\s+-e\\s+(.*)"; private static final Pattern PHONE_NUMBER_PATTERN = Pattern.compile("\\d{8}"); private static final Pattern EMAIL_PATTERN = Pattern.compile("^[A-Za-z0-9+_.-]+@[A-Za-z0-9-]+\\.[A-Za-z0-9-]+$"); @@ -267,6 +290,8 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval */ private Command getAddEventCommand(String input) throws IndexOutOfBoundsException, DateTimeParseException, IllegalArgumentException { + checkForDuplicateFlags(input, EVENT_FLAG_REGEX); + Pattern pattern = Pattern.compile(ADD_EVENT_REGEX); Matcher matcher = pattern.matcher(input); @@ -299,6 +324,8 @@ private Command getAddEventCommand(String input) throws IndexOutOfBoundsExceptio * @throws InvalidCommandException if the input phone number and email are not in the correct format. */ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException { + checkForDuplicateFlags(input, PARTICIPANT_FLAG_REGEX); + Pattern pattern = Pattern.compile(ADD_PARTICIPANT_REGEX); Matcher matcher = pattern.matcher(input); @@ -340,6 +367,8 @@ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsEx * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getAddItemCommand(String input) throws IndexOutOfBoundsException { + checkForDuplicateFlags(input, ITEM_FLAG_REGEX); + Pattern pattern = Pattern.compile(ADD_ITEM_REGEX); Matcher matcher = pattern.matcher(input); @@ -405,8 +434,16 @@ private Command parseRemoveCommand(String input, String[] commandParts) throws I * @throws IndexOutOfBoundsException if not all fields are present in input. */ private RemoveCommand getRemoveEventCommand(String input) throws IndexOutOfBoundsException { - String[] inputParts = input.split(EVENT_FLAG); - return new RemoveCommand(inputParts[1].trim()); + checkForDuplicateFlags(input, REMOVE_EVENT_FLAG_REGEX); + + Pattern pattern = Pattern.compile(REMOVE_EVENT_REGEX); + Matcher matcher = pattern.matcher(input); + + if (matcher.matches()) { + return new RemoveCommand(matcher.group(1).trim()); + } else { + throw new InvalidCommandException(INVALID_REMOVE_MESSAGE); + } } //@@author LTK-1606 @@ -418,6 +455,8 @@ private RemoveCommand getRemoveEventCommand(String input) throws IndexOutOfBound * @throws IndexOutOfBoundsException if not all fields are present in input. */ private RemoveCommand getRemoveParticipantCommand(String input) throws IndexOutOfBoundsException { + checkForDuplicateFlags(input, REMOVE_PARTICIPANT_FLAG_REGEX); + Pattern pattern = Pattern.compile(REMOVE_PARTICIPANT_REGEX); Matcher matcher = pattern.matcher(input); @@ -437,6 +476,8 @@ private RemoveCommand getRemoveParticipantCommand(String input) throws IndexOutO * @throws IndexOutOfBoundsException if not all fields are present in input. */ private RemoveCommand getRemoveItemCommand(String input) throws IndexOutOfBoundsException { + checkForDuplicateFlags(input, ITEM_FLAG_REGEX); + Pattern pattern = Pattern.compile(REMOVE_ITEM_REGEX); Matcher matcher = pattern.matcher(input); @@ -484,6 +525,8 @@ private Command parseEditCommand(String input, String[] commandParts) throws Inv * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException { + checkForDuplicateFlags(input, PARTICIPANT_FLAG_REGEX); + Pattern pattern = Pattern.compile(EDIT_PARTICIPANT_REGEX); Matcher matcher = pattern.matcher(input); @@ -526,6 +569,8 @@ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsE */ private Command getEditEventCommand(String input) throws IndexOutOfBoundsException, DateTimeParseException, IllegalArgumentException { + checkForDuplicateFlags(input, EDIT_EVENT_ATTRIBUTE_FLAG_REGEX); + Pattern pattern = Pattern.compile(EDIT_EVENT_ATTRIBUTE_REGEX); Matcher matcher = pattern.matcher(input); @@ -558,6 +603,8 @@ private Command getEditEventCommand(String input) throws IndexOutOfBoundsExcepti * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getEditItemCommand(String input) { + checkForDuplicateFlags(input, ITEM_FLAG_REGEX); + Pattern pattern = Pattern.compile(EDIT_ITEM_REGEX); Matcher matcher = pattern.matcher(input); @@ -638,6 +685,8 @@ private Command parseViewCommand(String input, String[] commandParts) throws Inv * @throws InvalidCommandException if the status parameter in input is invalid. */ private ViewCommand getViewCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException { + checkForDuplicateFlags(input, VIEW_FLAG_REGEX); + Pattern pattern = Pattern.compile(VIEW_REGEX); Matcher matcher = pattern.matcher(input); @@ -695,6 +744,8 @@ private Command parseMarkCommand(String input, String[] commandParts) throws Inv * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getMarkEventCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException { + checkForDuplicateFlags(input, MARK_EVENT_FLAG_REGEX); + Pattern pattern = Pattern.compile(MARK_EVENT_REGEX); Matcher matcher = pattern.matcher(input); @@ -738,6 +789,8 @@ private boolean toMarkEvent(String status) throws InvalidCommandException { * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getMarkParticipantCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException { + checkForDuplicateFlags(input, MARK_PARTICIPANT_FLAG_REGEX); + Pattern pattern = Pattern.compile(MARK_PARTICIPANT_REGEX); Matcher matcher = pattern.matcher(input); @@ -783,6 +836,8 @@ private boolean toMarkParticipant(String status) throws InvalidCommandException * @throws IndexOutOfBoundsException if not all fields are present. */ private Command getMarkItemCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException { + checkForDuplicateFlags(input, MARK_ITEM_FLAG_REGEX); + Pattern pattern = Pattern.compile(MARK_ITEM_REGEX); Matcher matcher = pattern.matcher(input); @@ -929,6 +984,8 @@ private Command parseFindCommand(String input, String[] commandParts) throws Inv throw new InvalidCommandException(INVALID_FIND_FLAG_MESSAGE); } + checkForDuplicateFlags(input, FIND_FLAG_REGEX); + Pattern pattern = Pattern.compile(FIND_REGEX); Matcher matcher = pattern.matcher(input); @@ -967,4 +1024,33 @@ private String getErrorMessage(String commandWord) { return INVALID_COMMAND_MESSAGE; } } + + //@@author LTK-1606 + /** + * Checks for duplicate flags in the specified input string based on the provided flag regex. + *

        + * This method uses a regular expression pattern to match flags within the input string. + * If any flag appears more than once, an {@code InvalidCommandException} is thrown. + *

        + * + * @param input The input string to be checked for duplicate flags. + * @param flagRegex The regular expression pattern used to identify flags in the input string. + * @throws InvalidCommandException if a duplicate flag is found in the input string. + */ + private static void checkForDuplicateFlags(String input, String flagRegex) throws InvalidCommandException { + + Pattern flagPattern = Pattern.compile(flagRegex); + Matcher flagMatcher = flagPattern.matcher(input); + + Set seenFlags = new HashSet<>(); + + while (flagMatcher.find()) { + String flag = flagMatcher.group(); + + if (!seenFlags.add(flag)) { + throw new InvalidCommandException(DUPLICATE_FLAG_MESSAGE); + } + } + } + } From 6948dd69887edcdd4c7c6706b24a9681b7fea67d Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Sat, 9 Nov 2024 04:19:23 +0800 Subject: [PATCH 496/619] Update EMAIL_PATTERN Regex --- src/main/java/seedu/manager/parser/Parser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 23afc68bb7..090f966c47 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -186,7 +186,7 @@ public class Parser { private static final String MARK_ITEM_REGEX = "mark\\s+-m\\s+(.*?)\\s+-e\\s+(.*?)\\s+-s\\s+(.*)"; private static final String REMOVE_EVENT_REGEX = "remove\\s+-e\\s+(.*)"; private static final Pattern PHONE_NUMBER_PATTERN = Pattern.compile("\\d{8}"); - private static final Pattern EMAIL_PATTERN = Pattern.compile("^[A-Za-z0-9+_.-]+@[A-Za-z0-9-]+\\.[A-Za-z0-9-]+$"); + private static final Pattern EMAIL_PATTERN = Pattern.compile("^[A-Za-z0-9+_.-]+@[A-Za-z0-9-]+\\.[A-Za-z0-9.-]+$"); /** * Returns a command based on the given user command string. From b9a25da562f006eaf6dd2057b57828c4cd6c9c4c Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sat, 9 Nov 2024 07:37:51 +0800 Subject: [PATCH 497/619] Enable program to read and output other languages --- src/main/java/seedu/manager/ui/Ui.java | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/java/seedu/manager/ui/Ui.java b/src/main/java/seedu/manager/ui/Ui.java index fbda228609..b0ec69ea54 100644 --- a/src/main/java/seedu/manager/ui/Ui.java +++ b/src/main/java/seedu/manager/ui/Ui.java @@ -3,6 +3,8 @@ import seedu.manager.command.Command; import java.util.Scanner; +import java.io.PrintStream; +import java.nio.charset.StandardCharsets; //@@author jemehgoh /** @@ -14,26 +16,28 @@ public class Ui { private static final String SEPARATOR = "------------------------"; private final Scanner userInput; + private final PrintStream utf8; /** * Constructs a new Ui */ public Ui() { this.userInput = new Scanner(System.in); + this.utf8 = new PrintStream(System.out, true, StandardCharsets.UTF_8); } /** * Greets user upon program startup */ public void greetUser() { - System.out.println(WELCOME_MESSAGE); + utf8.println(WELCOME_MESSAGE); } /** * Gets input from the user, and executes commands based on that input */ public String getCommand() { - System.out.print(COMMAND_PROMPT_MESSAGE); + utf8.print(COMMAND_PROMPT_MESSAGE); return this.userInput.nextLine(); } @@ -42,8 +46,8 @@ public String getCommand() { * Shows the output message of a command to the users. */ public void showOutputToUser(Command command) { - System.out.println(command.getMessage()); - System.out.println(SEPARATOR); + utf8.println(command.getMessage()); + utf8.println(SEPARATOR); } //@@author jemehgoh @@ -51,8 +55,8 @@ public void showOutputToUser(Command command) { * Shows the error message of an exception to the user. */ public void showErrorMessageToUser(Exception exception) { - System.out.println(exception.getMessage()); - System.out.println(SEPARATOR); + utf8.println(exception.getMessage()); + utf8.println(SEPARATOR); } //@@author KuanHsienn @@ -62,7 +66,7 @@ public void showErrorMessageToUser(Exception exception) { * @param message The message to display to the user. */ public void showMessage(String message) { - System.out.println(message); - System.out.println(SEPARATOR); + utf8.println(message); + utf8.println(SEPARATOR); } } From 0411672a8f90ec1a989a24800caea9e8d5d2ab5a Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sat, 9 Nov 2024 08:07:27 +0800 Subject: [PATCH 498/619] Add unicode to saving and loading files --- src/main/java/seedu/manager/Main.java | 2 +- src/main/java/seedu/manager/storage/Storage.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 117be74876..7deddf5f1b 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -13,7 +13,7 @@ public class Main { private static final Ui ui = new Ui(); private static EventList events = new EventList(); - private static final String EVENT_FILE_PATH = "data.csv"; + private static final String EVENT_FILE_PATH = "data.txt"; private static final Storage storage = new Storage(EVENT_FILE_PATH); /** diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index 3cfd0b9373..6fc848cff3 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -9,6 +9,7 @@ import java.io.FileWriter; import java.io.IOException; import java.util.List; +import java.nio.charset.StandardCharsets; //@@author KuanHsienn /** @@ -38,7 +39,7 @@ public Storage(String filePath) { * @throws IOException If there is an error saving data to the file. */ public void saveInfo(EventList events) throws IOException { - try (CSVWriter writer = new CSVWriter(new FileWriter(filePath))) { + try (CSVWriter writer = new CSVWriter(new FileWriter(filePath, StandardCharsets.UTF_8))) { for (Event event : events.getList()) { writer.writeNext(getEventFields(event)); @@ -51,7 +52,7 @@ public void saveInfo(EventList events) throws IOException { } } } catch (IOException exception) { - throw new IOException("Error saving data to file: " + filePath); + throw new IOException("Error saving data to file: " + filePath + ". Kindly close any opened files."); } } From 23b1246d34a49f20c270b4db3e8cf628c2ae23ce Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sat, 9 Nov 2024 08:14:07 +0800 Subject: [PATCH 499/619] Edit user error message --- src/main/java/seedu/manager/storage/FileParser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index ec28ad0fc7..3b17438c1c 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -39,7 +39,7 @@ public void parseFile(EventList events, String filePath) throws IOException { parseLine(events, line, formatter); } } catch (IOException | CsvException exception) { - throw new IOException("Error loading data from file: " + filePath + "."); + throw new IOException("Error loading data from file: " + filePath + ". New file will be created since it does not exists."); } } From 739bd8b230afe9b915bb7702ae9faa777aaed0a2 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sat, 9 Nov 2024 08:18:41 +0800 Subject: [PATCH 500/619] Edit expected text file --- text-ui-test/EXPECTED.TXT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index b97ce60fe7..62d07b0609 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -1,5 +1,5 @@ Welcome to EventManagerCLI. -Error loading data from file: data.csv. +Error loading data from file: data.txt. New file will be created since it does not exists. ------------------------ Enter a command: Invalid command! ------------------------ From a1fd668870ed34b8888239abd1fda77a2052aa33 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 9 Nov 2024 08:40:02 +0800 Subject: [PATCH 501/619] Update user guide based on PE-D bug reports --- docs/UserGuide.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index c417d8abc3..b29fe1710e 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -26,14 +26,14 @@ ## Introduction -EventManager CLI is a CLI application that allows organisers of small-scale events to track +EventManagerCLI is a CLI application that allows organisers of small-scale events to track the participants and logistics of such events. ## Quick Start 1. Ensure that you have Java 17 or above installed. -2. Down the latest version of `EventManagerCLI` from [here](https://github.com/AY2425S1-CS2113-W13-3/tp/releases). -3. Open a new terminal in the folder that you put the JAR file in, and run the program with the command ```java -jar EventManagerCLI.jar```. +2. Download the latest version of `EventManagerCLI` from [here](https://github.com/AY2425S1-CS2113-W13-3/tp/releases). +3. Open a new terminal in the folder that you put the JAR file in, and run the program with the command ```java -jar manager.jar```. The following message would be printed: ``` Welcome to EventManagerCLI. @@ -46,7 +46,9 @@ Enter a command: * Words in `UPPER_CASE` represent parameters that are to be supplied by the user (unless otherwise specified). * Parameters listed have to be entered in the specified order. + * e.g. `add -e Origami workshop -v Building A -t 2024-10-12 18:00 -u HIGH` will be interpreted as an invalid command. * Extraneous parameters for commands that do not take in parameters (e.g. `list`) will be ignored. + * e.g. `list 1234` and `list -e event` will be interpreted by the program as `list`.
        ### Viewing the command list: `menu` @@ -206,6 +208,7 @@ Copies the participant list from one event to another event. Format: `copy FROM_EVENT > TO_EVENT` * Both events must already exist. +* If the event `TO_EVENT` already has an existing participant list, `TO_EVENT`'s participant list will be overwritten. Examples: @@ -335,7 +338,7 @@ If the above format or parameter constraints are not followed, the `Event`, `Par * Edit event: `edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY` * Edit participant of an event: `edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT` * Edit item of an event: `edit -m ITEM > NEW_ITEM -e EVENT` -* View all participants for an event: `view -e EVENT -y TYPE` +* View all participants or items for an event: `view -e EVENT -y TYPE` * Mark an event as done: `mark -e EVENT -s STATUS` * Mark a participant as present: `mark -p PARTICIPANT -e EVENT -s STATUS` * Mark an item as accounted for: `mark -m ITEM -e EVENT -s STATUS` From ba4860ebb10e4c89fbe983aba3d354b8c2e348a7 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sat, 9 Nov 2024 08:58:51 +0800 Subject: [PATCH 502/619] Update storage test --- src/main/java/seedu/manager/storage/FileParser.java | 3 ++- src/test/java/seedu/manager/storage/StorageTest.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index 3b17438c1c..ecd3e165e8 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -39,7 +39,8 @@ public void parseFile(EventList events, String filePath) throws IOException { parseLine(events, line, formatter); } } catch (IOException | CsvException exception) { - throw new IOException("Error loading data from file: " + filePath + ". New file will be created since it does not exists."); + throw new IOException("Error loading data from file: " + filePath + + ". New file will be created since it does not exists."); } } diff --git a/src/test/java/seedu/manager/storage/StorageTest.java b/src/test/java/seedu/manager/storage/StorageTest.java index 121291f748..701a3aca0b 100644 --- a/src/test/java/seedu/manager/storage/StorageTest.java +++ b/src/test/java/seedu/manager/storage/StorageTest.java @@ -54,7 +54,8 @@ public void testLoadEventsFileNotExists() { nonExistentFileStorage.loadInfo(eventList); }); - assertEquals("Error loading data from file: " + NON_EXISTENT_FILE_PATH + ".", exception.getMessage()); + assertEquals("Error loading data from file: " + NON_EXISTENT_FILE_PATH + + ". New file will be created since it does not exists.", exception.getMessage()); } @Test From 562ffd18c524a584c66a64b9eee159ad48c8377d Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 9 Nov 2024 10:08:31 +0800 Subject: [PATCH 503/619] Update section titles to use the present participle --- docs/UserGuide.md | 52 +++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index b29fe1710e..3853135135 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -5,18 +5,18 @@ * [Features](#features) * [Notes about the command format](#notes-about-the-command-format) * [Viewing the command list: `menu`](#viewing-the-command-list-menu) - * [List all events: `list`](#list-all-events-list) - * [Add an event, participant or item: `add`](#add-an-event-participant-or-item-add) - * [Remove an event or participant: `remove`](#remove-an-event-or-participant-remove-) - * [View all participants or items for an event: `view`](#view-all-participants-or-items-for-an-event-view) - * [Edit the information of an event or a participant: `edit`](#edit-the-information-of-an-event-or-a-participant-edit) - * [Mark an event as done: `mark`](#mark-an-event-as-done-mark) - * [Marks a participant as present: `mark`](#marks-a-participant-as-present-mark) - * [Marks an item as accounted for: `mark`](#marks-an-item-as-accounted-for-mark) - * [Copies participant list: `copy`](#copies-participant-list-copy) - * [Sorts event list: `sort`](#sorts-event-list-sort) - * [Filters event list: `filter`](#filters-event-list-filter) - * [Find participant: `find`](#find-participant-find) + * [Listing all events: `list`](#listing-all-events-list) + * [Adding an event, participant or item: `add`](#adding-an-event-participant-or-item-add) + * [Removing an event or participant: `remove`](#removing-an-event-or-participant-remove-) + * [Viewing all participants or items for an event: `view`](#viewing-all-participants-or-items-for-an-event-view) + * [Editing the information of an event or a participant: `edit`](#editing-the-information-of-an-event-or-a-participant-edit) + * [Marking an event as done: `mark`](#marking-an-event-as-done-mark) + * [Marking a participant as present: `mark`](#marking-a-participant-as-present-mark) + * [Marking an item as accounted for: `mark`](#marking-an-item-as-accounted-for-mark) + * [Copying the participant list: `copy`](#copying-the-participant-list-copy) + * [Sorting the event list: `sort`](#sorting-the-event-list-sort) + * [Filtering the event list: `filter`](#filtering-the-event-list-filter) + * [Finding a participant: `find`](#finding-a-participant-find) * [Exiting the program: `exit`](#exiting-the-program-exit) * [Saving of program data](#saving-of-program-data) * [Loading of program data](#loading-of-program-data) @@ -83,14 +83,14 @@ exit: Exit program. Format: `menu` -### List all events: `list` +### Listing all events: `list` Shows a list of all events currently stored in the program. Format: `list`
        -### Add an event, participant or item: `add` +### Adding an event, participant or item: `add` Adds an event to the event list, a participant to an event, or an item to an event. @@ -111,7 +111,7 @@ Examples: * `add -p John Tan -n 91583215 -email john@gmail.com -e Origami workshop` adds a participant `John Tan` to the event `Origami workshop`. * `add -m Origami paper -e Origami workshop` adds an item `Origami paper` to the event `Origami workshop`. -### Remove an event or participant: `remove` +### Removing an event or participant: `remove` Removes an event from the event list, a participant from an event, or an item from an event. @@ -128,7 +128,7 @@ Examples: * `remove -m Origami paper -e Origami workshop` removes the item `Origami paper` from the event `Origami workshop`.
        -### View all participants or items for an event: `view` +### Viewing all participants or items for an event: `view` Shows a list of all participants or items for an event. @@ -144,7 +144,7 @@ Examples: * `view -e Origami workshop -y participant` shows a list of all participants for the event `Origami workshop`. * `view -e Origami workshop -y item` shows a list of all items for the event `Origami workshop`. -### Edit the information of an event or a participant: `edit` +### Editing the information of an event or a participant: `edit` Edits the information of an event/participant/item. @@ -161,7 +161,7 @@ Examples: * `edit -m balloon > cake -e anniversary` edits the item `balloon` in the event `anniversary` to `cake`.
        -### Mark an event as done: `mark` +### Marking an event as done: `mark` Marks an event in the event list as done or not done. @@ -174,7 +174,7 @@ Examples: * `mark -e Origami workshop -s done` marks the event `Origami workshop` as done. * `mark -e Origami workshop -s undone` marks the event `Origami workshop` as not done. -### Marks a participant as present: `mark` +### Marking a participant as present: `mark` Marks a participant for an event as present or absent. @@ -187,7 +187,7 @@ Examples: * `mark -p John Tan -e Origami workshop -s present` marks the participant `John Tan` in the `Origami workshop` event as present. * `mark -p John Tan -e Origami workshop -s absent` marks the participant `John Tan` in the `Origami workshop` event as absent. -### Marks an item as accounted for: `mark` +### Marking an item as accounted for: `mark` Marks an item for an event as accounted for or unaccounted for. @@ -201,7 +201,7 @@ Examples: * `mark -m Origami paper -e Origami workshop -s unaccounted` marks the item `Origami paper` in the `Origami workshop` event as unaccounted.
        -### Copies participant list: `copy` +### Copying the participant list: `copy` Copies the participant list from one event to another event. @@ -214,7 +214,7 @@ Examples: * `copy Origami workshop > Coding workshop` copies the participant list from the `Origami workshop` event to the `Coding workshop` event. -### Sorts event list: `sort` +### Sorting the event list: `sort` Sorts events according to event name, event date-time or event priority level. @@ -227,14 +227,14 @@ Examples: * `sort -by time` will output a list of all the user's events chronologically (earliest to latest). * `sort -by priority` will output a list of all the user's events in terms of urgency (most to least important). -### Filters event list: `filter` +### Filtering the event list: `filter` Filters out events from the event list based on name, date-time or priority level. Format: `filter -e/-d/-t/-x/-u DESCRIPTION` * `-e/-d/-t/-x/-u` are the flags for name, date-time and priority level respectively. -* `DESCRIPTION` is only case-insensitive when filtering using the priority level flag. +* `DESCRIPTION` is case-insensitive. Examples: * `filter -e workshop` will output all events with `workshop` in their event name. @@ -244,13 +244,13 @@ Examples: * `filter -u high` with output all events with priority level `HIGH`.
        -### Find participant: `find` +### Finding a participant: `find` Finds all participants with a specified name in a specified event. Format: `find -e EVENT -p NAME` -* The `NAME` keywords are case-insensitive. +* The `NAME` keyword is case-insensitive. Examples: * `find -e Origami workshop -p john` will output all participants with `john` in their name in the event `Origami workshop`. From 3bae176352fb4851b8308e3c8d1c10d66c262e06 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 9 Nov 2024 10:28:18 +0800 Subject: [PATCH 504/619] Update menu command with correct add item description --- docs/UserGuide.md | 2 +- src/main/java/seedu/manager/command/MenuCommand.java | 2 +- text-ui-test/EXPECTED.TXT | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 3853135135..694887b400 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -62,7 +62,7 @@ menu: List commands list: List events. add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. -add -m ITEM -e EVENT: Add an item to an even. +add -m ITEM -e EVENT: Add an item to an event. remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index e179498c79..3a0357bc91 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -13,7 +13,7 @@ public class MenuCommand extends Command { list: List events. add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. - add -m ITEM -e EVENT: Add an item to an even. + add -m ITEM -e EVENT: Add an item to an event. remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index b97ce60fe7..f05e4cef74 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -9,7 +9,7 @@ menu: List commands. list: List events. add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. -add -m ITEM -e EVENT: Add an item to an even. +add -m ITEM -e EVENT: Add an item to an event. remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. From b7fae6cce1ff3bd25c9ea782ae0d061219f6cffc Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Sat, 9 Nov 2024 14:22:11 +0800 Subject: [PATCH 505/619] Change EMAIL_PATTERN according to review --- src/main/java/seedu/manager/parser/Parser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 090f966c47..6ce15d8abf 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -186,7 +186,7 @@ public class Parser { private static final String MARK_ITEM_REGEX = "mark\\s+-m\\s+(.*?)\\s+-e\\s+(.*?)\\s+-s\\s+(.*)"; private static final String REMOVE_EVENT_REGEX = "remove\\s+-e\\s+(.*)"; private static final Pattern PHONE_NUMBER_PATTERN = Pattern.compile("\\d{8}"); - private static final Pattern EMAIL_PATTERN = Pattern.compile("^[A-Za-z0-9+_.-]+@[A-Za-z0-9-]+\\.[A-Za-z0-9.-]+$"); + private static final Pattern EMAIL_PATTERN = Pattern.compile("^[A-Za-z0-9+_.-]+@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)+$"); /** * Returns a command based on the given user command string. From ce754b7b4bcfd5493c2027a1fcefe63675bb013f Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 9 Nov 2024 14:25:41 +0800 Subject: [PATCH 506/619] Fix incorrect filename for data.txt --- src/main/java/seedu/manager/storage/Storage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index 6fc848cff3..807cb8f546 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -74,7 +74,7 @@ public void loadInfo(EventList events) throws IOException { * @return true if the file path is valid; false otherwise. */ private boolean isValidFilePath(String filePath) { - String expectedPath = "data.csv"; + String expectedPath = "data.txt"; return filePath.equals(expectedPath); } From 26fb6f06991118107ee0af565bcdc2dbf5e4135d Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Sat, 9 Nov 2024 15:00:45 +0800 Subject: [PATCH 507/619] Add empty input conditional check --- .../seedu/manager/command/FilterCommand.java | 14 +++- .../java/seedu/manager/parser/Parser.java | 73 +++++++++++++++++-- 2 files changed, 79 insertions(+), 8 deletions(-) diff --git a/src/main/java/seedu/manager/command/FilterCommand.java b/src/main/java/seedu/manager/command/FilterCommand.java index b713e36df8..e7fb40489d 100644 --- a/src/main/java/seedu/manager/command/FilterCommand.java +++ b/src/main/java/seedu/manager/command/FilterCommand.java @@ -35,6 +35,10 @@ public class FilterCommand extends Command { Invalid date-time format! Please use the following format for date-time: YYYY-MM-DD HH:mm """; + private static final String INVALID_PRIORITY_FORMAT_MESSAGE = """ + Invalid priority format! + Please use the following format for priority: high/medium/low + """; protected String flag; protected String filterWord; @@ -152,8 +156,12 @@ private String filterEventsByDateTime() { * @return successful message for filter by priority */ private String filterEventsByPriority() { - Priority priority = Priority.valueOf(filterWord.trim().toUpperCase()); - filteredEvents = eventList.filterByPriority(priority); - return FILTER_BY_PRIORITY_MESSAGE + "\n"; + try { + Priority priority = Priority.valueOf(filterWord.trim().toUpperCase()); + filteredEvents = eventList.filterByPriority(priority); + return FILTER_BY_PRIORITY_MESSAGE + "\n"; + } catch(IllegalArgumentException exception) { + return INVALID_PRIORITY_FORMAT_MESSAGE; + } } } diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 6ce15d8abf..889d28a284 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -143,10 +143,10 @@ public class Parser { Duplicate flags found! Please only use each flag once! """; - private static final String UNRECOGNISED_FLAG_MESSAGE = """ - Invalid flag used! - Please only use flags related to the command! - Use the 'menu' command to see which flags are allowed! + private static final String EMPTY_INPUT_MESSAGE = """ + Invalid input! + One of your input fields are empty! + Please fill in every field appropriately! """; private static final String EVENT_FLAG = "-e"; @@ -301,6 +301,10 @@ private Command getAddEventCommand(String input) throws IndexOutOfBoundsExceptio Priority eventPriority; if (matcher.matches()) { + if (matcher.group(1).isBlank() || matcher.group(2).isBlank() + || matcher.group(3).isBlank() || matcher.group(4).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } logger.info("Creating AddCommand for event with details: " + matcher.group(1).trim() + ", " + matcher.group(2).trim() + ", " + matcher.group(3).trim()); eventName = matcher.group(1).trim(); @@ -335,6 +339,11 @@ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsEx String participantNumber; if (matcher.matches()) { + if (matcher.group(1).isBlank() || matcher.group(2).isBlank() + || matcher.group(3).isBlank() || matcher.group(4).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + logger.info("Creating AddCommand for participant with details: " + matcher.group(1).trim() + ", " + matcher.group(2).trim()); participantName = matcher.group(1).trim(); @@ -376,6 +385,10 @@ private Command getAddItemCommand(String input) throws IndexOutOfBoundsException String eventName; if (matcher.matches()) { + if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + itemName = matcher.group(1).trim(); eventName = matcher.group(2).trim(); logger.info(String.format("Creating AddCommand for item with details: %s, %s", itemName, @@ -440,6 +453,10 @@ private RemoveCommand getRemoveEventCommand(String input) throws IndexOutOfBound Matcher matcher = pattern.matcher(input); if (matcher.matches()) { + if (matcher.group(1).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + return new RemoveCommand(matcher.group(1).trim()); } else { throw new InvalidCommandException(INVALID_REMOVE_MESSAGE); @@ -461,6 +478,10 @@ private RemoveCommand getRemoveParticipantCommand(String input) throws IndexOutO Matcher matcher = pattern.matcher(input); if (matcher.matches()) { + if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + return new RemoveCommand(matcher.group(1).trim(), matcher.group(2).trim(), true); } else { throw new InvalidCommandException(INVALID_REMOVE_MESSAGE); @@ -482,6 +503,10 @@ private RemoveCommand getRemoveItemCommand(String input) throws IndexOutOfBounds Matcher matcher = pattern.matcher(input); if (matcher.matches()) { + if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + return new RemoveCommand(matcher.group(1).trim(), matcher.group(2).trim(), false); } else { throw new InvalidCommandException(INVALID_REMOVE_MESSAGE); @@ -536,6 +561,11 @@ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsE String eventName; if (matcher.matches()) { + if (matcher.group(1).isBlank() || matcher.group(2).isBlank() + || matcher.group(3).isBlank() || matcher.group(4).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + participantName = matcher.group(1).trim(); newNumber = matcher.group(2).trim(); newEmail = matcher.group(3).trim(); @@ -581,6 +611,11 @@ private Command getEditEventCommand(String input) throws IndexOutOfBoundsExcepti String eventVenue; if (matcher.matches()) { + if (matcher.group(1).isBlank() || matcher.group(2).isBlank() + || matcher.group(3).isBlank() || matcher.group(4).isBlank() || matcher.group(5).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + eventName = matcher.group(1).trim(); eventNewName = matcher.group(2).trim(); eventTime = LocalDateTime.parse(matcher.group(3).trim(), @@ -613,6 +648,10 @@ private Command getEditItemCommand(String input) { String eventName; if (matcher.matches()) { + if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + itemName = matcher.group(1).split(ARROW)[0].trim(); itemNewName = matcher.group(1).split(ARROW)[1].trim(); eventName = matcher.group(2).trim(); @@ -691,6 +730,10 @@ private ViewCommand getViewCommand(String input) throws IndexOutOfBoundsExceptio Matcher matcher = pattern.matcher(input); if (matcher.matches()) { + if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + String eventName = matcher.group(1).trim(); String viewType = matcher.group(2).trim(); @@ -753,6 +796,10 @@ private Command getMarkEventCommand(String input) throws InvalidCommandException boolean isToMark; if (matcher.matches()) { + if (matcher.group(1).isBlank() || !matcher.group(2).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + eventName = matcher.group(1).trim(); isToMark = toMarkEvent(matcher.group(2).trim()); } else { @@ -799,6 +846,10 @@ private Command getMarkParticipantCommand(String input) throws InvalidCommandExc boolean isToMark; if (matcher.matches()) { + if (matcher.group(1).isBlank() || matcher.group(2).isBlank() || matcher.group(3).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + participantName = matcher.group(1).trim(); eventName = matcher.group(2).trim(); isToMark = toMarkParticipant(matcher.group(3).trim()); @@ -846,6 +897,10 @@ private Command getMarkItemCommand(String input) throws InvalidCommandException, boolean isToMark; if (matcher.matches()) { + if (matcher.group(1).isBlank() || matcher.group(2).isBlank() || matcher.group(3).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + itemName = matcher.group(1).trim(); eventName = matcher.group(2).trim(); isToMark = toMarkItem(matcher.group(3).trim()); @@ -956,6 +1011,10 @@ private Command parseFilterCommand(String input, String[] commandParts) throws I throw new InvalidCommandException(INVALID_FILTER_MESSAGE); } + if (inputParts[1].isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + Set validFlags = Set.of(EVENT_FLAG, "-d", "-t", "-x", "-u"); if (validFlags.contains(commandParts[1].trim().toLowerCase())) { return new FilterCommand(commandParts[1].trim().toLowerCase(), inputParts[1].trim()); @@ -990,7 +1049,11 @@ private Command parseFindCommand(String input, String[] commandParts) throws Inv Matcher matcher = pattern.matcher(input); if (matcher.matches()) { - if (matcher.groupCount() < 3 || matcher.group(1).isBlank()) { + if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + + if (matcher.groupCount() < 2 || matcher.group(1).isBlank()) { throw new InvalidCommandException(INVALID_FIND_MESSAGE); } From fdc13ddf8abde8108853b1df517efba761e7cead Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 9 Nov 2024 15:45:50 +0800 Subject: [PATCH 508/619] Update contents page and section headers of UG --- docs/UserGuide.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 694887b400..06ed7a0925 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -7,12 +7,10 @@ * [Viewing the command list: `menu`](#viewing-the-command-list-menu) * [Listing all events: `list`](#listing-all-events-list) * [Adding an event, participant or item: `add`](#adding-an-event-participant-or-item-add) - * [Removing an event or participant: `remove`](#removing-an-event-or-participant-remove-) + * [Removing an event, participant or item: `remove`](#removing-an-event-participant-or-item-remove-) * [Viewing all participants or items for an event: `view`](#viewing-all-participants-or-items-for-an-event-view) - * [Editing the information of an event or a participant: `edit`](#editing-the-information-of-an-event-or-a-participant-edit) - * [Marking an event as done: `mark`](#marking-an-event-as-done-mark) - * [Marking a participant as present: `mark`](#marking-a-participant-as-present-mark) - * [Marking an item as accounted for: `mark`](#marking-an-item-as-accounted-for-mark) + * [Editing the information of an event, participant or item: `edit`](#editing-the-information-of-an-event-participant-or-item-edit) + * [Marking events, participants, or items: `mark`](#marking-events-participants-or-items-mark) * [Copying the participant list: `copy`](#copying-the-participant-list-copy) * [Sorting the event list: `sort`](#sorting-the-event-list-sort) * [Filtering the event list: `filter`](#filtering-the-event-list-filter) @@ -111,7 +109,7 @@ Examples: * `add -p John Tan -n 91583215 -email john@gmail.com -e Origami workshop` adds a participant `John Tan` to the event `Origami workshop`. * `add -m Origami paper -e Origami workshop` adds an item `Origami paper` to the event `Origami workshop`. -### Removing an event or participant: `remove` +### Removing an event, participant or item: `remove` Removes an event from the event list, a participant from an event, or an item from an event. @@ -144,7 +142,7 @@ Examples: * `view -e Origami workshop -y participant` shows a list of all participants for the event `Origami workshop`. * `view -e Origami workshop -y item` shows a list of all items for the event `Origami workshop`. -### Editing the information of an event or a participant: `edit` +### Editing the information of an event, participant or item: `edit` Edits the information of an event/participant/item. From 869ad16916666bb9c7d51682383ca7c3e50be198 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 9 Nov 2024 15:52:19 +0800 Subject: [PATCH 509/619] Consolidate sections for different mark command types into one section --- docs/UserGuide.md | 48 ++++++++++++++++++++++------------------------- 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 06ed7a0925..913c1b2214 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -159,45 +159,41 @@ Examples: * `edit -m balloon > cake -e anniversary` edits the item `balloon` in the event `anniversary` to `cake`.
        -### Marking an event as done: `mark` +### Marking events, participants, or items: `mark` -Marks an event in the event list as done or not done. +Marks an event in the event list, a participant in an event, or an item in an event. -Format: `mark -e EVENT -s STATUS` +Events can be marked as done or not done, participants marked as present or absent, and items marked as accounted for or unaccounted for. -* The status parameter must be either `done` (to mark done) or `undone` (to mark not done). +Format: -Examples: - -* `mark -e Origami workshop -s done` marks the event `Origami workshop` as done. -* `mark -e Origami workshop -s undone` marks the event `Origami workshop` as not done. - -### Marking a participant as present: `mark` +* `mark -e EVENT -s STATUS` to mark an event as done or not done. +* `mark -p PARTICIPANT -e EVENT -s STATUS` to mark a participant in an event as present or absent. +* `mark -m ITEM -e EVENT -s STATUS` to mark an item in an event as accounted for or unaccounted for. -Marks a participant for an event as present or absent. - -Format: `mark -p PARTICIPANT -e EVENT -s STATUS` +Remarks: -* The status parameter must be either `present` (to mark present) or `absent` (to mark absent). +* The `STATUS` parameter takes in the following values: + * For marking events: `done` to mark as done, `undone` to mark as not done. + * For marking participants: `present` to mark present, `absent` to mark absent. + * For marking items: `accounted` to mark accounted, `unaccounted` to mark unaccounted. Examples: -* `mark -p John Tan -e Origami workshop -s present` marks the participant `John Tan` in the `Origami workshop` event as present. -* `mark -p John Tan -e Origami workshop -s absent` marks the participant `John Tan` in the `Origami workshop` event as absent. +* Marking events: -### Marking an item as accounted for: `mark` + * `mark -e Origami workshop -s done` marks the event `Origami workshop` as done. + * `mark -e Origami workshop -s undone` marks the event `Origami workshop` as not done. + +* Marking participants: -Marks an item for an event as accounted for or unaccounted for. + * `mark -p John Tan -e Origami workshop -s present` marks the participant `John Tan` in the `Origami workshop` event as present. + * `mark -p John Tan -e Origami workshop -s absent` marks the participant `John Tan` in the `Origami workshop` event as absent. -Format: `mark -m ITEM -e EVENT -s STATUS` +* Marking items: -* The status parameter must be either `accounted` (to mark accounted) or `unaccounted` (to mark unaccounted). - -Examples: - -* `mark -m Origami paper -e Origami workshop -s accounted` marks the item `Origami paper` in the `Origami workshop` event as accounted. -* `mark -m Origami paper -e Origami workshop -s unaccounted` marks the item `Origami paper` in the `Origami workshop` event as unaccounted. -
        + * `mark -m Origami paper -e Origami workshop -s accounted` marks the item `Origami paper` in the `Origami workshop` event as accounted. + * `mark -m Origami paper -e Origami workshop -s unaccounted` marks the item `Origami paper` in the `Origami workshop` event as unaccounted. ### Copying the participant list: `copy` From bfc8f07c82e8af7af29db19443730e9336319637 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Sat, 9 Nov 2024 17:01:09 +0800 Subject: [PATCH 510/619] Fix type in markEvent command --- src/main/java/seedu/manager/parser/Parser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 889d28a284..30e1e7c3ed 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -796,7 +796,7 @@ private Command getMarkEventCommand(String input) throws InvalidCommandException boolean isToMark; if (matcher.matches()) { - if (matcher.group(1).isBlank() || !matcher.group(2).isBlank()) { + if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); } From 5a3c93b5c4f4253a127737ea4554e252a7a05215 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Sat, 9 Nov 2024 17:26:18 +0800 Subject: [PATCH 511/619] Update sort by name method --- src/main/java/seedu/manager/event/EventList.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index faae07e050..231925104d 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -333,7 +333,7 @@ public boolean editItem(String itemName, String itemNewName, String eventName) { * Sort the event list by name, alphabetically. */ public void sortByName(){ - eventList.sort(Comparator.comparing(Event::getEventName)); + eventList.sort(Comparator.comparing(event -> event.getEventName().toLowerCase())); } /** From a9606efdcd64266f81ee5cd54012f879cb9cdcaa Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 9 Nov 2024 18:23:31 +0800 Subject: [PATCH 512/619] Update DG as per PE-D bug reports --- docs/DeveloperGuide.md | 8 +++++--- .../EditEventCommandSequenceDiagram.puml | 2 +- .../EditItemCommandSequenceDiagram.puml | 2 +- ...EditParticipantCommandSequenceDiagram.puml | 2 +- .../EditEventCommandSequenceDiagram.png | Bin 32976 -> 33089 bytes .../images/EditItemCommandSequenceDiagram.png | Bin 30444 -> 30548 bytes .../EditParticipantCommandSequenceDiagram.png | Bin 35298 -> 35385 bytes 7 files changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 4db14a4887..f14e9f1972 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -28,7 +28,9 @@ * [Appendix B: User stories](#appendix-b-user-stories) * [Appendix C: Non-functional requirements](#appendix-c-non-functional-requirements) * [Appendix D: Glossary](#appendix-d-glossary) +
        + * [Appendix E: Instructions for manual testing](#appendix-e-instructions-for-manual-testing) * [Launch and shutdown](#launch-and-shutdown) * [Adding an event](#adding-an-event) @@ -790,7 +792,7 @@ The user is able to organise and manage his events more quickly and efficiently 1. Prerequisite: An event with the name `Event 1` is not present in the `Event` list. List all `Event`s with `list` after each test case. - 2. Test case: `add -e Event 1 -t 2024-10-10 -v Venue 1 -u high` + 2. Test case: `add -e Event 1 -t 2024-10-10 18:00 -v Venue 1 -u high` Expected: An `Event` with name `Event 1` is added to the `Event` list. A success message is shown. 3. Test case: `add -e Event 1 -t 2024-10-10 -v Venue 1 -u HIGH` @@ -898,8 +900,8 @@ The user is able to organise and manage his events more quickly and efficiently 1. Prerequisite: An event with name `Event 1` and venue `Function Room` is present in the list. List all `Event`s with `list` after each test case. - 2. Test case: `edit -e Event 1 -name Event 1 -t 2024-10-25 16:00 -v Billards Room -u HIGH` - Expected: The venue for `Event 1` is changed to `Billards Room`. A success message is shown. + 2. Test case: `edit -e Event 1 -name Event 1 -t 2024-10-25 16:00 -v Billiards Room -u HIGH` + Expected: The venue for `Event 1` is changed to `Billiards Room`. A success message is shown. ### Editing a participant diff --git a/docs/diagrams/EditEventCommandSequenceDiagram.puml b/docs/diagrams/EditEventCommandSequenceDiagram.puml index 1850d8b391..61baac9abf 100644 --- a/docs/diagrams/EditEventCommandSequenceDiagram.puml +++ b/docs/diagrams/EditEventCommandSequenceDiagram.puml @@ -18,7 +18,7 @@ loop for each event in eventList event --> eventList : eventName deactivate event - alt eventName matches + opt eventName matches eventList -> event : updateEvent(eventNewName, eventTime, eventVenue, eventPriority) activate event event --> eventList : updated diff --git a/docs/diagrams/EditItemCommandSequenceDiagram.puml b/docs/diagrams/EditItemCommandSequenceDiagram.puml index 17e1576e56..65b4923465 100644 --- a/docs/diagrams/EditItemCommandSequenceDiagram.puml +++ b/docs/diagrams/EditItemCommandSequenceDiagram.puml @@ -18,7 +18,7 @@ loop for each event in eventList event --> eventList : eventName:String deactivate event - alt eventName matches + opt eventName matches eventList -> event : updateItem(itemName, itemNewName) activate event event --> eventList : item updated diff --git a/docs/diagrams/EditParticipantCommandSequenceDiagram.puml b/docs/diagrams/EditParticipantCommandSequenceDiagram.puml index 3e96030d2e..dc05ae2834 100644 --- a/docs/diagrams/EditParticipantCommandSequenceDiagram.puml +++ b/docs/diagrams/EditParticipantCommandSequenceDiagram.puml @@ -18,7 +18,7 @@ event --> eventList : eventName:String deactivate event - alt eventName matches + opt eventName matches eventList -> event : updateParticipant(participantName, participantNumber, participantEmail) activate event event --> eventList : updated diff --git a/docs/images/EditEventCommandSequenceDiagram.png b/docs/images/EditEventCommandSequenceDiagram.png index 4675bb37d55b804ab87006be31c8eada2d123c3f..00995b8e337f4822062ba81ac9d92c6045fe29f6 100644 GIT binary patch literal 33089 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 literal 32976 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 diff --git a/docs/images/EditItemCommandSequenceDiagram.png b/docs/images/EditItemCommandSequenceDiagram.png index ef75216edb6dd13bbc3a35fb2474f247783edc0e..f9edd74e919f7c999df3fbb33a9f5fe7e77344aa 100644 GIT binary patch literal 30548 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Ï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
        3&z)0rdqyl{sBTP*P8bE(YvSxN6EpPw#18}Vd zB?tUpi3tfOI$mxT6ui(jjWns%=gbTem+KD%@u15+ssBB}8O+ZIdpN!(-xvNnArXdj z9Cr0;IfpGtev_bSj?3*0q+d6F%G39$sH>x+xyX}94mtnRv-_J+_!<6**fDzP2E0BR zpZ$fXUzW{NQBgUx{Q7~{q9h=W-6u%`m(j?d6BVzjP`>uG#-(Nv5`Jc`ktr?GU=M*g z9OIrB9vFB}V8@+YV-o57f=i!B`&J;%IY=nQOkGMo_eXbew0x_`$qzAI#6JDztofFZ z%g;%)DE?qkW2=An8P$I(jwVQxyctukO|YfFYP8tCV(obP{4P}zoPwAx+{~^E-(|n!H**o>*b( zbTzf_R1sAvm`ozgXj4_(dEh&3M4Gz87wfQA?N{{h7kr-+-AK6c?f?8v<=+9;nm72u z$)j2KU*7x$SAD;d$)n;|($puCR>Zdl{^OfYlK#2EpGXS-{IW^B`ZS?8#x@rXe}Q>x z-Vpy|wpRSF*B~NK6Oxvu!|a3?m^dLH;(bUG=tG1tKiin^Ox+tw{0hV-JVnRpS+gVE2TR-u<+RP;vFhrERPOifia zXty5hIv8J4UkC?o^Vx+@=1J8)QvUT38r*ZLTcFGpbnV(k2BGVjm#L%+$KA%ju=G#B zN@~dsKE4TJWm@QHMNiT@A{vTTJb8j1G zq(^l22 zg&4;Z=8)*FZg(_6ecSOFlxQwc>Zwzcd(UgUtL6#7OYMS`%ZHFSgYTfUC*C(gZhQLB zQ@K6T^a=&99DvbPM2KVgCV8g_Vfdjc3l!jhm7pcT#RdK!$G)jiNiaux#KMd9> zCMXDIvuV9=+F{{>0lt5a#A{v#1Y&300q?Cc8$2=_CtY`UcN3F$$l>M~=H869cmq&C z^$kaF{c`?B6-k2XX`v9idG3U0N(pYiB#+rfp)NWTxF~{pT;HaO^m8 z);pINlZkDJ2??r5fxO2sUIr++m*DJV6t(LmTcdewz_hjJwo{WZJSbUEwPM6qSxf5~ z9+g=X-iCJ@NDsBQY5(e}zif{;d#47bpLpq{i;+9Hc1_JIbO(Wj{umDv6A{sB%gnG0 zIFkegRC*=hx5T&^j93C}I{vD~)(uCf(=^c21?>H+o8Whnlapa#uiv;c_LrNT$0OzUWJbWRDJmzu)DYjQYv^(i&QUN* zLKlR#Zr!>jPH5>wzbwhu_o4|qo!en6CVR31!6GQ=3jY2J-}_AAh|plBtCFJ7EiN}U zxL0pmlZPoSf#GL1iDVMuAwS^ofJB-vjZ;UMP2qbfS?$q*n3`hzpn!IC%khRSYvgWe z*-ag3KTYzL^Lx9Bq_*J=k7cG)gqxzNnVDH1jvS~9*mOX6DW=YJx^795r#<{MkHoj+ zQ&5JmQ^ZlZ(OECLIE$sa+@_O4r_AXh?bDvbEy)le*NcgX;Vw(|r=H(eB~Du7x;bx( zyy`Sh){Z$e1{kb8<6ObMg?>ApkbDmnjen~6_uL^QvHb~YpU96tx}?LNOl0ikfcp43 zFX9A}fkaYVMw?Ci8!z-LmNlkMRvqb*4S5z8AV#U@OabpjEvvXzrm&UcPX61d|V z5Y3{#EOwjj>vUm!0oK!m?mJ$e6l-8|a)xj4tS_aUDa<9GQnSK-{T#3ZlZY<|vrYW- x^IC{P06)(F#PN@B+q!SRCV%2P=2(+E%E6nN>)ZUMFOT>&RV7VDs=|>|{|7ay#=rmo literal 35298 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 z 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 From fa265697508c875cdc96bf19a758b3dad12060a2 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sat, 9 Nov 2024 18:44:21 +0800 Subject: [PATCH 513/619] Remove participant phone number --- .../seedu/manager/command/AddCommand.java | 20 +++---- .../seedu/manager/command/CopyCommand.java | 3 +- .../command/EditParticipantCommand.java | 6 +- .../seedu/manager/command/MenuCommand.java | 4 +- src/main/java/seedu/manager/event/Event.java | 8 +-- .../java/seedu/manager/event/EventList.java | 17 +++--- .../java/seedu/manager/item/Participant.java | 28 +--------- .../java/seedu/manager/parser/Parser.java | 56 +++++-------------- .../seedu/manager/storage/FileParser.java | 9 ++- .../java/seedu/manager/storage/Storage.java | 4 +- .../seedu/manager/command/AddCommandTest.java | 8 +-- .../manager/command/CopyCommandTest.java | 6 +- .../manager/command/EditEventCommandTest.java | 2 - .../command/EditParticipantCommandTest.java | 7 --- .../manager/command/FindCommandTest.java | 10 ++-- .../command/MarkParticipantCommandTest.java | 1 - .../manager/command/RemoveCommandTest.java | 4 -- .../manager/command/ViewCommandTest.java | 4 +- .../seedu/manager/item/ParticipantTest.java | 8 +-- .../seedu/manager/storage/StorageTest.java | 12 ++-- text-ui-test/EXPECTED.TXT | 8 +-- text-ui-test/input.txt | 4 +- 22 files changed, 73 insertions(+), 156 deletions(-) diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index 20de81aea7..26507bcfc7 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -10,7 +10,7 @@ /** * Represents a command to add an event to the event list or a participant to an event. * The AddCommand class stores details of an event, including its name, time, venue, - * and priority, or details of a participant, including their name, contact number, and email. + * and priority, or details of a participant, including their name and email. */ public class AddCommand extends Command { public static final String COMMAND_WORD = "add"; @@ -24,7 +24,6 @@ public class AddCommand extends Command { protected String venue; protected Priority priority; protected String participantName; - protected String participantNumber; protected String participantEmail; protected String itemName; @@ -46,17 +45,17 @@ public AddCommand(String eventName, LocalDateTime time, String venue, Priority p //@@author LTK-1606 /** - * Constructs an {@code AddCommand} with the specified participant name and event name. + * Constructs an {@code AddCommand} with the specified participant name, email and event name. * - * @param participantName the name of the participant to be added to the event. - * If null, a new event will be created instead. - * @param eventName the name of the event to which the participant will be added - * or the event to be created if no participant name is provided. + * @param participantName the name of the participant to be added to the event. + * If null, a new event will be created instead. + * @param participantEmail contact email of participant + * @param eventName the name of the event to which the participant will be added + * or the event to be created if no participant name is provided. */ - public AddCommand(String participantName, String participantNumber, String participantEmail, String eventName) { + public AddCommand(String participantName, String participantEmail, String eventName) { super(false); this.participantName = participantName; - this.participantNumber = participantNumber; this.participantEmail = participantEmail; this.eventName = eventName; } @@ -80,7 +79,7 @@ public AddCommand(String itemName, String eventName) { * If no participant name is provided, this method adds a new event to the * event list with the specified event name, time, and venue. * If a participant name is provided, it adds the participant with their - * email and contact number to the specified event in the event list. + * email to the specified event in the event list. *

        * *

        @@ -94,7 +93,6 @@ public void execute() throws DuplicateDataException { if (participantName != null) { boolean isAdded = eventList.addParticipantToEvent( participantName, - participantNumber, participantEmail, eventName ); diff --git a/src/main/java/seedu/manager/command/CopyCommand.java b/src/main/java/seedu/manager/command/CopyCommand.java index 775c5ce269..589f07d52c 100644 --- a/src/main/java/seedu/manager/command/CopyCommand.java +++ b/src/main/java/seedu/manager/command/CopyCommand.java @@ -88,10 +88,9 @@ private ArrayList copyParticipantList(ArrayList partic */ private Participant copyParticipant(Participant participant) { String name = participant.getName(); - String number = participant.getNumber(); String email = participant.getEmail(); boolean isPresent = participant.isPresent(); - return new Participant(name, number, email, isPresent); + return new Participant(name, email, isPresent); } } diff --git a/src/main/java/seedu/manager/command/EditParticipantCommand.java b/src/main/java/seedu/manager/command/EditParticipantCommand.java index aea7d21090..d66b39b39c 100644 --- a/src/main/java/seedu/manager/command/EditParticipantCommand.java +++ b/src/main/java/seedu/manager/command/EditParticipantCommand.java @@ -10,7 +10,6 @@ public class EditParticipantCommand extends Command{ private static final String EDIT_FAILURE_MESSAGE = "Event/Participant not found!"; protected String eventName; protected String participantName; - protected String participantNumber; protected String participantEmail; @@ -20,15 +19,13 @@ public class EditParticipantCommand extends Command{ * participant email, and event name. * * @param participantName The name of the participant. - * @param participantNumber The new phone number of the participant. * @param participantEmail The new email address of the participant. * @param eventName The name of the event associated with the participant. */ - public EditParticipantCommand(String participantName, String participantNumber, String participantEmail, + public EditParticipantCommand(String participantName, String participantEmail, String eventName) { super(false); this.participantName = participantName; - this.participantNumber = participantNumber; this.participantEmail = participantEmail; this.eventName = eventName; } @@ -44,7 +41,6 @@ public void execute() { if (participantName != null) { boolean isEdited = this.eventList.editParticipant( this.participantName, - this.participantNumber, this.participantEmail, this.eventName ); diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 3a0357bc91..114a6a4d55 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -12,13 +12,13 @@ public class MenuCommand extends Command { menu: List commands. list: List events. add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. - add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. + add -p PARTICIPANT -email EMAIL -e EVENT: Add a participant to an event. add -m ITEM -e EVENT: Add an item to an event. remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. - edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. + edit -p PARTICIPANT -email EMAIL -e EVENT: Edit participant contact info. edit -m ITEM > NEW_ITEM -e EVENT: Edit an item in an event. view -e EVENT -y TYPE: View the list of participants or items of an event. mark -e EVENT -s STATUS: Mark an event as done or not done. diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 46fdf9aab7..fe9caee3f8 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -205,13 +205,13 @@ public boolean isDone() { * @param isPresent {@code true} if the participant is to be present, {@code false} otherwise. * @throws DuplicateDataException if a participant with the same name exists in the list. */ - public void addParticipant(String participantName, String participantNumber, String participantEmail, + public void addParticipant(String participantName, String participantEmail, boolean isPresent) throws DuplicateDataException { if (getParticipantByName(participantName).isPresent()) { throw new DuplicateDataException(DUPLICATE_PARTICIPANT_MESSAGE); } - Participant participant = new Participant(participantName, participantNumber, participantEmail, isPresent); + Participant participant = new Participant(participantName, participantEmail, isPresent); this.participantList.add(participant); } @@ -284,15 +284,13 @@ public void updateEvent(String eventNewName, LocalDateTime eventTime, String eve * Updates the details of a participant in this event. * * @param participantName the name of the participant to be updated. - * @param newNumber the new contact number of the participant. * @param newEmail the new email address of the participant. * @return {@code true} if the participant was successfully updated; * {@code false} if the participant was not found. */ - public boolean updateParticipant(String participantName, String newNumber, String newEmail) { + public boolean updateParticipant(String participantName, String newEmail) { for (Participant participant : this.participantList) { if (participant.getName().equalsIgnoreCase(participantName)) { - participant.setNumber(newNumber); participant.setEmail(newEmail); return true; } diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 231925104d..d07a7b95b3 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -110,13 +110,12 @@ public void addEvent(String eventName, LocalDateTime time, String venue, * returns false otherwise. * * @param name the name of the participant to be added. - * @param number the contact number of the participant * @param email the email address of the participant * @param eventName the name of the event to which the participant will be added. * @return {@code true} if the participant can be added to the event, {@code false} otherwise. */ - public boolean addParticipantToEvent(String name, String number, String email, String eventName) { - return addParticipantToEvent(name, number, email, false, eventName); + public boolean addParticipantToEvent(String name, String email, String eventName) { + return addParticipantToEvent(name, email, false, eventName); } /** @@ -124,17 +123,16 @@ public boolean addParticipantToEvent(String name, String number, String email, S * returns false otherwise. * * @param name the name of the participant to be added. - * @param number the contact number of the participant. * @param email the email address of the participant. * @param isPresent {@code true} if the participant is to be marked present, {@code false} otherwise. * @param eventName the name of the event to which the participant will be added. * @return {@code true} if the participant can be added to the event, {@code false} otherwise. */ - public boolean addParticipantToEvent(String name, String number, String email, boolean isPresent, + public boolean addParticipantToEvent(String name, String email, boolean isPresent, String eventName) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { - event.addParticipant(name, number, email, isPresent); + event.addParticipant(name, email, isPresent); return true; } } @@ -282,23 +280,22 @@ public boolean editEvent(String eventName, String eventNewName, LocalDateTime ev * *

        * This method searches for the event with the given name in the event list and - * attempts to update the specified participant's phone number and email. If the event + * attempts to update the specified participant's email. If the event * is found and the participant is successfully updated, it returns {@code true}. * If the event does not exist or the participant is not found, it returns * {@code false}. *

        * * @param participantName the name of the participant to be edited. - * @param number the new contact number of the participant. * @param email the new email address of the participant. * @param eventName the name of the event associated with the participant. * @return {@code true} if the participant was successfully edited; * {@code false} if the event does not exist or the participant was not found. */ - public boolean editParticipant(String participantName, String number, String email, String eventName) { + public boolean editParticipant(String participantName, String email, String eventName) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { - return event.updateParticipant(participantName, number, email); + return event.updateParticipant(participantName, email); } } return false; diff --git a/src/main/java/seedu/manager/item/Participant.java b/src/main/java/seedu/manager/item/Participant.java index 627bba882b..5c8f3c7d30 100644 --- a/src/main/java/seedu/manager/item/Participant.java +++ b/src/main/java/seedu/manager/item/Participant.java @@ -7,7 +7,6 @@ * Represents an event participant, in the participant list of an {@link Event}. */ public class Participant extends Item { - private String number; private String email; /** @@ -15,9 +14,8 @@ public class Participant extends Item { * * @param name the given name. */ - public Participant(String name, String number, String email, boolean isPresent) { + public Participant(String name, String email, boolean isPresent) { super(name, isPresent); - this.number = number; this.email = email; } @@ -31,16 +29,6 @@ public String getName() { return name; } - //@@author KuanHsienn - /** - * Returns the contact number of the participant. - * - * @return the contact number of the participant. - */ - public String getNumber() { - return this.number; - } - //@@author KuanHsienn /** * Returns the contact email of the participant. @@ -51,16 +39,6 @@ public String getEmail() { return this.email; } - //@@author KuanHsienn - /** - * Sets the contact number of the participant. - * - * @param newNumber the new contact number of the participant. - */ - public void setNumber(String newNumber) { - this.number = newNumber; - } - //@@author KuanHsienn /** * Sets the contact email of the participant. @@ -79,7 +57,7 @@ public void setEmail(String newEmail) { */ @Override public String toString() { - return String.format("Name: %s / Number: %s / Email: %s [%s]", - this.name, this.number, this.email, this.markIfPresent()); + return String.format("Name: %s / Email: %s [%s]", + this.name, this.email, this.markIfPresent()); } } diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 30e1e7c3ed..b94f2d00f6 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -42,7 +42,7 @@ public class Parser { Invalid command! Please enter your commands in the following format: add -e EVENT -t TIME -v VENUE -u PRIORITY - add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT + add -p PARTICIPANT -email EMAIL -e EVENT add -m ITEM -e EVENT """; private static final String INVALID_REMOVE_MESSAGE = """ @@ -57,7 +57,7 @@ public class Parser { Please enter your commands in the following format: edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. edit -m ITEM > NEW_ITEM -e EVENT: Edit an item from an event. - edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. + edit -p PARTICIPANT -email EMAIL -e EVENT: Edit participant contact info. """; private static final String INVALID_VIEW_MESSAGE = """ Invalid command! @@ -103,10 +103,6 @@ public class Parser { Please use the following format for priority level: high/medium/low """; - private static final String INVALID_PHONE_NUMBER_MESSAGE = """ - Invalid phone number! - Please enter a valid phone number with digits only. - """; private static final String INVALID_EMAIL_MESSAGE = """ Invalid email format! Please enter a valid email address. @@ -158,7 +154,7 @@ public class Parser { private static final String EVENT_FLAG_REGEX = "(-e|-t|-v|-u)"; private static final String EDIT_EVENT_ATTRIBUTE_FLAG_REGEX = "(-e|-name|-t|-v|-u)"; - private static final String PARTICIPANT_FLAG_REGEX = "(-p|-n|-email|-e)"; + private static final String PARTICIPANT_FLAG_REGEX = "(-p|-email|-e)"; private static final String REMOVE_PARTICIPANT_FLAG_REGEX = "(-p|-e)"; private static final String ITEM_FLAG_REGEX = "(-m|-e)"; private static final String MARK_EVENT_FLAG_REGEX = "-e|-s"; @@ -172,9 +168,9 @@ public class Parser { private static final String EDIT_EVENT_ATTRIBUTE_REGEX = "edit\\s+-e\\s+(.*?)\\s+" + "-name\\s+(.*?)\\s+-t\\s+(.*?)\\s+-v\\s+(.*?)\\s+-u\\s+(.*)"; private static final String ADD_PARTICIPANT_REGEX = "add\\s+-p\\s+(.*?)\\s+" + - "-n\\s+(.*?)\\s+-email\\s+(.*?)\\s+-e\\s+(.*)"; + "-email\\s+(.*?)\\s+-e\\s+(.*)"; private static final String EDIT_PARTICIPANT_REGEX = "edit\\s+-p\\s+(.*?)\\s+" + - "-n\\s+(.*?)\\s+-email\\s+(.*?)\\s+-e\\s+(.*)"; + "-email\\s+(.*?)\\s+-e\\s+(.*)"; private static final String ADD_ITEM_REGEX = "add\\s+-m\\s+(.*?)\\s+-e\\s+(.*)"; private static final String REMOVE_ITEM_REGEX = "remove\\s+-m\\s+(.*?)\\s+-e\\s+(.*)"; private static final String EDIT_ITEM_REGEX = "edit\\s+-m\\s+(.*?)\\s+-e\\s+(.*)"; @@ -185,7 +181,6 @@ public class Parser { private static final String VIEW_REGEX = "view\\s+-e\\s+(.*?)\\s+-y\\s+(.*)"; private static final String MARK_ITEM_REGEX = "mark\\s+-m\\s+(.*?)\\s+-e\\s+(.*?)\\s+-s\\s+(.*)"; private static final String REMOVE_EVENT_REGEX = "remove\\s+-e\\s+(.*)"; - private static final Pattern PHONE_NUMBER_PATTERN = Pattern.compile("\\d{8}"); private static final Pattern EMAIL_PATTERN = Pattern.compile("^[A-Za-z0-9+_.-]+@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)+$"); /** @@ -336,25 +331,18 @@ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsEx String participantName; String participantEmail; String eventName; - String participantNumber; if (matcher.matches()) { if (matcher.group(1).isBlank() || matcher.group(2).isBlank() - || matcher.group(3).isBlank() || matcher.group(4).isBlank()) { + || matcher.group(3).isBlank()) { throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); } logger.info("Creating AddCommand for participant with details: " + matcher.group(1).trim() + ", " + matcher.group(2).trim()); participantName = matcher.group(1).trim(); - participantNumber = matcher.group(2).trim(); - participantEmail = matcher.group(3).trim(); - eventName = matcher.group(4).trim(); - - if (!isValidPhoneNumber(participantNumber)) { - logger.log(WARNING, "Invalid phone number format"); - throw new InvalidCommandException(INVALID_PHONE_NUMBER_MESSAGE); - } + participantEmail = matcher.group(2).trim(); + eventName = matcher.group(3).trim(); if (!isValidEmail(participantEmail)) { logger.log(WARNING, "Invalid email format"); @@ -364,7 +352,7 @@ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsEx throw new InvalidCommandException(INVALID_ADD_MESSAGE); } - return new AddCommand(participantName, participantNumber, participantEmail, eventName); + return new AddCommand(participantName, participantEmail, eventName); } //@@author jemehgoh @@ -556,25 +544,18 @@ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsE Matcher matcher = pattern.matcher(input); String participantName; - String newNumber; String newEmail; String eventName; if (matcher.matches()) { if (matcher.group(1).isBlank() || matcher.group(2).isBlank() - || matcher.group(3).isBlank() || matcher.group(4).isBlank()) { + || matcher.group(3).isBlank()) { throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); } participantName = matcher.group(1).trim(); - newNumber = matcher.group(2).trim(); - newEmail = matcher.group(3).trim(); - eventName = matcher.group(4).trim(); - - if (!isValidPhoneNumber(newNumber)) { - logger.log(WARNING, "Invalid phone number format"); - throw new InvalidCommandException(INVALID_PHONE_NUMBER_MESSAGE); - } + newEmail = matcher.group(2).trim(); + eventName = matcher.group(3).trim(); if (!isValidEmail(newEmail)) { logger.log(WARNING, "Invalid email format"); @@ -584,7 +565,7 @@ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsE throw new InvalidCommandException(INVALID_EDIT_MESSAGE); } - return new EditParticipantCommand(participantName, newNumber, newEmail, eventName); + return new EditParticipantCommand(participantName, newEmail, eventName); } //@@author MatchaRRR @@ -661,17 +642,6 @@ private Command getEditItemCommand(String input) { return new EditItemCommand(itemName, itemNewName, eventName); } - //@@author KuanHsienn - /** - * Checks if the phone number is valid. - * - * @param phoneNumber the phone number to validate. - * @return true if the phone number is valid, false otherwise. - */ - private boolean isValidPhoneNumber(String phoneNumber) { - return PHONE_NUMBER_PATTERN.matcher(phoneNumber).matches(); - } - //@@author KuanHsienn /** * Checks if the email address is valid. diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index ecd3e165e8..62cc49cc63 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -118,11 +118,10 @@ private void parseEventFileLine(EventList events, String[] fields, DateTimeForma private void parseParticipantFileLine(EventList events, String[] fields) throws IOException { try { String participantName = fields[1].trim(); - String number = fields[2].trim(); - String email = fields[3].trim(); - String eventName = fields[4].trim(); - boolean isPresent = getIsMarked(fields[5].trim()); - boolean isLoaded = events.addParticipantToEvent(participantName, number, email, isPresent, eventName); + String email = fields[2].trim(); + String eventName = fields[3].trim(); + boolean isPresent = getIsMarked(fields[4].trim()); + boolean isLoaded = events.addParticipantToEvent(participantName, email, isPresent, eventName); eventUnsuccessfulLoad(isLoaded); } catch (IndexOutOfBoundsException | NullPointerException exception) { logger.warning("File line cannot be parsed, participant not loaded"); diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index 807cb8f546..45e4918d71 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -107,9 +107,9 @@ private static String[] getEventFields(Event event) { * @return A String array representing the participant fields. */ private String[] getParticipantFields(Participant participant, Event event) { - List fieldsList = List.of("PARTICIPANT", participant.getName(), participant.getNumber(), + List fieldsList = List.of("PARTICIPANT", participant.getName(), participant.getEmail(), event.getEventName(), participant.markFileLineIfPresent()); - return fieldsList.toArray(new String[6]); + return fieldsList.toArray(new String[5]); } /** diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index 280745555c..89d618c868 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -37,13 +37,11 @@ public void add_twoParticipant_success() { "Venue A", Priority.HIGH); eventList.addParticipantToEvent( "Tom", - "89521252", "example@gmail.com", "Event 1" ); eventList.addParticipantToEvent( "Harry", - "89521252", "example@gmail.com", "Event 1" ); @@ -58,13 +56,11 @@ public void add_oneParticipantWrongly_success() { "Venue A", Priority.HIGH); eventList.addParticipantToEvent( "Tom", - "89521252", "example@gmail.com", "Event 1" ); eventList.addParticipantToEvent( "Harry", - "89521252", "example@gmail.com", "Event 2" ); @@ -76,7 +72,7 @@ public void add_oneParticipantWrongly_success() { public void add_oneParticipantInvalidEvent_failure() { String expectedMessage = "Event not found!"; - AddCommand addCommand = new AddCommand("Tom","89521252", "example@gmail.com", "Event 1"); + AddCommand addCommand = new AddCommand("Tom", "example@gmail.com", "Event 1"); addCommand.setData(eventList); addCommand.execute(); @@ -104,7 +100,7 @@ public void add_duplicateParticipant_throwsException() { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), "Venue A", Priority.HIGH); - eventList.addParticipantToEvent("John", "9123 8321", "example1@gmail.com", "Event 1"); + eventList.addParticipantToEvent("John", "example1@gmail.com", "Event 1"); AddCommand addCommand = new AddCommand("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), "Venue A", Priority.HIGH); diff --git a/src/test/java/seedu/manager/command/CopyCommandTest.java b/src/test/java/seedu/manager/command/CopyCommandTest.java index 132846f070..b629e63078 100644 --- a/src/test/java/seedu/manager/command/CopyCommandTest.java +++ b/src/test/java/seedu/manager/command/CopyCommandTest.java @@ -22,9 +22,9 @@ public void setUp(){ eventList.addEvent("Event 2", LocalDateTime.parse("2023-10-23 21:00", formatter), "Venue A", Priority.HIGH); assertEquals(2, eventList.getListSize()); - eventList.addParticipantToEvent("John Doe", "9123 8321", "example1@gmail.com", "Event 1"); - eventList.addParticipantToEvent("Jane Doe", "8123 9321", "example2@gmail.com","Event 1"); - eventList.addParticipantToEvent("Peter Parker", "9321 8123", "example3@gmail.com","Event 1"); + eventList.addParticipantToEvent("John Doe", "example1@gmail.com", "Event 1"); + eventList.addParticipantToEvent("Jane Doe", "example2@gmail.com","Event 1"); + eventList.addParticipantToEvent("Peter Parker", "example3@gmail.com","Event 1"); } @Test diff --git a/src/test/java/seedu/manager/command/EditEventCommandTest.java b/src/test/java/seedu/manager/command/EditEventCommandTest.java index 547e93cd64..a2ad1c854d 100644 --- a/src/test/java/seedu/manager/command/EditEventCommandTest.java +++ b/src/test/java/seedu/manager/command/EditEventCommandTest.java @@ -30,7 +30,6 @@ public void edit_event_success() { ); eventList.addParticipantToEvent( "Tom", - "89521252", "example@gmail.com", "Event 1" ); @@ -63,7 +62,6 @@ public void editEvent_invalidEvent_failure() { ); eventList.addParticipantToEvent( "Tom", - "89521252", "example@gmail.com", "Event 1" ); diff --git a/src/test/java/seedu/manager/command/EditParticipantCommandTest.java b/src/test/java/seedu/manager/command/EditParticipantCommandTest.java index 64c540f705..9273a06f7b 100644 --- a/src/test/java/seedu/manager/command/EditParticipantCommandTest.java +++ b/src/test/java/seedu/manager/command/EditParticipantCommandTest.java @@ -30,21 +30,18 @@ public void edit_participant_success() { ); eventList.addParticipantToEvent( "Tom", - "89521252", "example@gmail.com", "Event 1" ); EditParticipantCommand editParticipantCommand = new EditParticipantCommand( "Tom", - "9123 4567", "new_email@example.com", "Event 1" ); editParticipantCommand.setData(eventList); editParticipantCommand.execute(); - assertEquals("9123 4567", eventList.getEvent(0).getParticipantList().get(0).getNumber()); assertEquals("new_email@example.com", eventList.getEvent(0).getParticipantList().get(0).getEmail()); } @@ -58,14 +55,12 @@ public void editParticipant_invalidEvent_failure() { ); eventList.addParticipantToEvent( "Tom", - "89521252", "example@gmail.com", "Event 1" ); String expectedMessage = "Event/Participant not found!"; EditParticipantCommand editParticipantCommand = new EditParticipantCommand( "Tom", - "9123 4567", "new_email@example.com", "Non-Existent Event" ); @@ -84,14 +79,12 @@ public void editParticipant_invalidParticipant_failure() { ); eventList.addParticipantToEvent( "Tom", - "89521252", "example@gmail.com", "Event 1" ); String expectedMessage = "Event/Participant not found!"; EditParticipantCommand editParticipantCommand = new EditParticipantCommand( "Invalid Participant", - "9123 4567", "new_email@example.com", "Event 1" ); diff --git a/src/test/java/seedu/manager/command/FindCommandTest.java b/src/test/java/seedu/manager/command/FindCommandTest.java index 5a0df57fa0..f0e069bc1d 100644 --- a/src/test/java/seedu/manager/command/FindCommandTest.java +++ b/src/test/java/seedu/manager/command/FindCommandTest.java @@ -19,9 +19,9 @@ public void testSetUp() { eventList = new EventList(); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 16:00", formatter), "Venue 1", Priority.HIGH); - eventList.addParticipantToEvent("John Doe", "9123 8321", "example1@gmail.com", "Event 1"); - eventList.addParticipantToEvent("Jane Doe", "8123 9321", "example2@gmail.com","Event 1"); - eventList.addParticipantToEvent("Kuan Hsien", "9321 8123", "example3@gmail.com","Event 1"); + eventList.addParticipantToEvent("John Doe", "example1@gmail.com", "Event 1"); + eventList.addParticipantToEvent("Jane Doe", "example2@gmail.com","Event 1"); + eventList.addParticipantToEvent("Kuan Hsien", "example3@gmail.com","Event 1"); } @Test @@ -32,8 +32,8 @@ public void execute_findCommand_success() { findCommand.execute(); String expectedMessage = "Person(s) found!\n" + - "1. Name: John Doe / Number: 9123 8321 / Email: example1@gmail.com [ ]\n" + - "2. Name: Jane Doe / Number: 8123 9321 / Email: example2@gmail.com [ ]\n"; + "1. Name: John Doe / Email: example1@gmail.com [ ]\n" + + "2. Name: Jane Doe / Email: example2@gmail.com [ ]\n"; assertEquals(expectedMessage, findCommand.getMessage()); } diff --git a/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java b/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java index e0fc8f6b66..08ef6749a2 100644 --- a/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java +++ b/src/test/java/seedu/manager/command/MarkParticipantCommandTest.java @@ -21,7 +21,6 @@ public void testSetUp() { "Venue 1", Priority.HIGH); eventList.addParticipantToEvent( "John Doe", - "89521252", "example@gmail.com", "Event 1" ); diff --git a/src/test/java/seedu/manager/command/RemoveCommandTest.java b/src/test/java/seedu/manager/command/RemoveCommandTest.java index a162ccb31c..3a2a00f669 100644 --- a/src/test/java/seedu/manager/command/RemoveCommandTest.java +++ b/src/test/java/seedu/manager/command/RemoveCommandTest.java @@ -34,13 +34,11 @@ public void remove_oneParticipant_success() { eventList.addParticipantToEvent( "Tom", - "89521252", "example@gmail.com", "Event 1" ); eventList.addParticipantToEvent( "Harry", - "89521252", "example@gmail.com", "Event 1" ); @@ -59,13 +57,11 @@ public void remove_oneParticipantWrongly_success() { "Venue A", Priority.HIGH); eventList.addParticipantToEvent( "Tom", - "89521252", "example@gmail.com", "Event 1" ); eventList.addParticipantToEvent( "Harry", - "89521252", "example@gmail.com", "Event 1" ); diff --git a/src/test/java/seedu/manager/command/ViewCommandTest.java b/src/test/java/seedu/manager/command/ViewCommandTest.java index 2b816e86b8..91c1b9748a 100644 --- a/src/test/java/seedu/manager/command/ViewCommandTest.java +++ b/src/test/java/seedu/manager/command/ViewCommandTest.java @@ -23,7 +23,7 @@ public void setUp() { command.setData(eventList); command.execute(); - command = new Parser().parseCommand("add -p Tom -n 95015025 -email example@gmail.com -e Event 1"); + command = new Parser().parseCommand("add -p Tom -email example@gmail.com -e Event 1"); command.setData(eventList); command.execute(); @@ -35,7 +35,7 @@ public void setUp() { @Test public void execute_twoEvents_success() { String expectedMessage = "There are 1 participants in Event 1! Here are your participants:\n" - + "1. Name: Tom / Number: 95015025 / Email: example@gmail.com [ ]\n"; + + "1. Name: Tom / Email: example@gmail.com [ ]\n"; viewCommand = new Parser().parseCommand("view -e Event 1 -y participant"); viewCommand.setData(eventList); diff --git a/src/test/java/seedu/manager/item/ParticipantTest.java b/src/test/java/seedu/manager/item/ParticipantTest.java index 3825a17859..37013ff2c7 100644 --- a/src/test/java/seedu/manager/item/ParticipantTest.java +++ b/src/test/java/seedu/manager/item/ParticipantTest.java @@ -8,7 +8,7 @@ class ParticipantTest { @Test public void setPresent_setTrue_present() { - Participant participant = new Participant("Participant", "89521252", "example@gmail.com", + Participant participant = new Participant("Participant","example@gmail.com", false); participant.setPresent(true); assertEquals("X", participant.markIfPresent()); @@ -16,7 +16,7 @@ public void setPresent_setTrue_present() { @Test public void setPresent_setFalse_notPresent() { - Participant participant = new Participant("Participant", "89521252", "example@gmail.com", + Participant participant = new Participant("Participant", "example@gmail.com", false); participant.setPresent(false); assertEquals(" ", participant.markIfPresent()); @@ -24,10 +24,10 @@ public void setPresent_setFalse_notPresent() { @Test public void toString_setTrue_present() { - Participant participant = new Participant("Participant", "89521252", "example@gmail.com", + Participant participant = new Participant("Participant", "example@gmail.com", false); participant.setPresent(true); - assertEquals("Name: Participant / Number: 89521252 / Email: example@gmail.com [X]", + assertEquals("Name: Participant / Email: example@gmail.com [X]", participant.toString()); } } diff --git a/src/test/java/seedu/manager/storage/StorageTest.java b/src/test/java/seedu/manager/storage/StorageTest.java index 701a3aca0b..0de1e3e21d 100644 --- a/src/test/java/seedu/manager/storage/StorageTest.java +++ b/src/test/java/seedu/manager/storage/StorageTest.java @@ -63,7 +63,7 @@ public void testLoadEvents() { try { FileWriter writer = new FileWriter(TEST_FILE_PATH); writer.append("EVENT,Test Event,2024-11-04 12:00,Test Venue,LOW,N\n"); - writer.append("PARTICIPANT,Alice,12345678,alice@example.com,Test Event,N\n"); + writer.append("PARTICIPANT,Alice,alice@example.com,Test Event,N\n"); writer.append("ITEM,Test Item,Test Event,N\n"); writer.close(); } catch (IOException exception) { @@ -90,12 +90,12 @@ public void testLoadEvents() { public void testSaveEvents() { eventList.addEvent("Meeting", LocalDateTime.parse("2024-10-25 10:00", formatter), "Conference Room", Priority.HIGH); - eventList.addParticipantToEvent("Alice", "12345678", "alice@example.com", false, "Meeting"); + eventList.addParticipantToEvent("Alice", "alice@example.com", false, "Meeting"); eventList.addItemToEvent("Projector", false, "Meeting"); eventList.addEvent("Workshop", LocalDateTime.parse("2024-10-26 14:00", formatter), "Main Hall", Priority.MEDIUM); - eventList.addParticipantToEvent("Bob", "87654321", "bob@example.com", false, "Workshop"); + eventList.addParticipantToEvent("Bob", "bob@example.com", false, "Workshop"); eventList.addItemToEvent("Whiteboard", false, "Workshop"); try { @@ -110,10 +110,10 @@ public void testSaveEvents() { try { String content = new String(java.nio.file.Files.readAllBytes(file.toPath())); String expectedContent = "\"EVENT\",\"Meeting\",\"2024-10-25 10:00\",\"Conference Room\",\"HIGH\",\"N\"\n" - + "\"PARTICIPANT\",\"Alice\",\"12345678\",\"alice@example.com\",\"Meeting\",\"N\"\n" + + "\"PARTICIPANT\",\"Alice\",\"alice@example.com\",\"Meeting\",\"N\"\n" + "\"ITEM\",\"Projector\",\"Meeting\",\"N\"\n" + "\"EVENT\",\"Workshop\",\"2024-10-26 14:00\",\"Main Hall\",\"MEDIUM\",\"N\"\n" - + "\"PARTICIPANT\",\"Bob\",\"87654321\",\"bob@example.com\",\"Workshop\",\"N\"\n" + + "\"PARTICIPANT\",\"Bob\",\"bob@example.com\",\"Workshop\",\"N\"\n" + "\"ITEM\",\"Whiteboard\",\"Workshop\",\"N\"\n"; assertEquals(expectedContent, content, "The file content does not match the expected output."); } catch (IOException exception) { @@ -125,7 +125,7 @@ public void testSaveEvents() { public void loadParticipants_validEntry_success() { try { FileWriter writer = new FileWriter(TEST_FILE_PATH); - writer.append("PARTICIPANT,John Doe,9451 3230,jdoe@gmail.com,Meeting,N\n"); + writer.append("PARTICIPANT,John Doe,jdoe@gmail.com,Meeting,N\n"); writer.close(); } catch (IOException exception) { fail("Failed to set up the test data file: " + exception.getMessage()); diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 7da766c73b..fc2197c3e1 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -8,13 +8,13 @@ Enter a command: Here are the possible commands: menu: List commands. list: List events. add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. -add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. +add -p PARTICIPANT -email EMAIL -e EVENT: Add a participant to an event. add -m ITEM -e EVENT: Add an item to an event. remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. -edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. +edit -p PARTICIPANT -email EMAIL -e EVENT: Edit participant contact info. edit -m ITEM > NEW_ITEM -e EVENT: Edit an item in an event. view -e EVENT -y TYPE: View the list of participants or items of an event. mark -e EVENT -s STATUS: Mark an event as done or not done. @@ -32,7 +32,7 @@ Enter a command: There are 0 events in your list! Here are your scheduled events Enter a command: Invalid command! Please enter your commands in the following format: add -e EVENT -t TIME -v VENUE -u PRIORITY -add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT +add -p PARTICIPANT -email EMAIL -e EVENT add -m ITEM -e EVENT ------------------------ @@ -66,7 +66,7 @@ view -e EVENT -y TYPE Enter a command: Participant contact information successfully updated ------------------------ Enter a command: There are 1 participants in dinner party! Here are your participants: -1. Name: Mary / Number: 98624759 / Email: Mary@gmail.com [ ] +1. Name: Mary / Email: Mary@gmail.com [ ] ------------------------ Enter a command: Event added successfully diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index e258bddf83..f7aa41a48e 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -9,9 +9,9 @@ list mark -e Saturday brunch -s done edit -e dinner party -name dinner party -t 2024-10-10 15:00 -v Bob's House -u LOW list -add -p Mary -n 98512525 -email example@gmail.com -e dinner party +add -p Mary -email example@gmail.com -e dinner party view -e dinner party -edit -p Mary -n 98624759 -email Mary@gmail.com -e dinner party +edit -p Mary -email Mary@gmail.com -e dinner party view -e dinner party -y participant add -e anniversary celebration -t 2024-10-23 12:34 -v hotel -u medium sort -by name From c45546118a93e4ae5c136723cc7045d462531268 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 9 Nov 2024 21:24:39 +0800 Subject: [PATCH 514/619] Update parser logger to log to file --- src/main/java/seedu/manager/Main.java | 2 +- .../java/seedu/manager/parser/Parser.java | 18 ++- .../manager/command/ViewCommandTest.java | 12 +- .../manager/parser/ParserIntegrationTest.java | 6 +- .../java/seedu/manager/parser/ParserTest.java | 151 ++++++++++-------- 5 files changed, 114 insertions(+), 75 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 7deddf5f1b..14397d8c4b 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -44,7 +44,7 @@ private static void runCommandLoop() { ui.showOutputToUser(command); saveData(); isGettingCommands = !command.getCanExit(); - } catch (InvalidCommandException | DuplicateDataException exception) { + } catch (InvalidCommandException | DuplicateDataException | IOException exception) { ui.showErrorMessageToUser(exception); } } diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index c0e9d4d155..bf61d63141 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -21,10 +21,12 @@ import seedu.manager.enumeration.Priority; import seedu.manager.exception.InvalidCommandException; +import java.io.IOException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.util.Set; +import java.util.logging.FileHandler; import java.util.logging.Logger; import java.util.regex.Pattern; @@ -34,7 +36,6 @@ * Represents the command parser for EventManagerCLI */ public class Parser { - private static final Logger logger = Logger.getLogger(Parser.class.getName()); private static final String INVALID_COMMAND_MESSAGE = "Invalid command!"; private static final String INVALID_ADD_MESSAGE = """ Invalid command! @@ -158,6 +159,21 @@ public class Parser { private static final Pattern PHONE_NUMBER_PATTERN = Pattern.compile("\\d{8}"); private static final Pattern EMAIL_PATTERN = Pattern.compile("^[A-Za-z0-9+_.-]+@[A-Za-z0-9-]+\\.[A-Za-z0-9-]+$"); + private final FileHandler handler; + private final Logger logger; + + /** + * Constructs a new Parser. + * + * @throws IOException if the log output file cannot be written to. + */ + public Parser() throws IOException { + logger = Logger.getLogger(Parser.class.getName()); + logger.setUseParentHandlers(false); + handler = new FileHandler("manager.log"); + logger.addHandler(handler); + } + /** * Returns a command based on the given user command string. * diff --git a/src/test/java/seedu/manager/command/ViewCommandTest.java b/src/test/java/seedu/manager/command/ViewCommandTest.java index 2b816e86b8..4cbf48a28a 100644 --- a/src/test/java/seedu/manager/command/ViewCommandTest.java +++ b/src/test/java/seedu/manager/command/ViewCommandTest.java @@ -5,6 +5,8 @@ import seedu.manager.event.EventList; import seedu.manager.parser.Parser; +import java.io.IOException; + import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -15,7 +17,7 @@ public class ViewCommandTest { private Command viewCommand; @BeforeEach - public void setUp() { + public void setUp() throws IOException { Command command; eventList = new EventList(); @@ -33,7 +35,7 @@ public void setUp() { } @Test - public void execute_twoEvents_success() { + public void execute_twoEvents_success() throws IOException { String expectedMessage = "There are 1 participants in Event 1! Here are your participants:\n" + "1. Name: Tom / Number: 95015025 / Email: example@gmail.com [ ]\n"; @@ -47,7 +49,7 @@ public void execute_twoEvents_success() { //@@author jemehgoh @Test - public void execute_invalidEvent_failure() { + public void execute_invalidEvent_failure() throws IOException { String expectedMessage = "Event not found!"; viewCommand = new Parser().parseCommand("view -e Event 2 -y participant"); @@ -58,9 +60,9 @@ public void execute_invalidEvent_failure() { } @Test - public void execute_viewItems_success() { + public void execute_viewItems_success() throws IOException { String expectedMessage = "There are 1 items in Event 1! Here are your items:\n" - + "1. Plastic chair [ ]\n"; + + "1. Plastic chair [ ]\n"; viewCommand = new Parser().parseCommand("view -e Event 1 -y item"); viewCommand.setData(eventList); diff --git a/src/test/java/seedu/manager/parser/ParserIntegrationTest.java b/src/test/java/seedu/manager/parser/ParserIntegrationTest.java index efcf5a4fad..de1ccee943 100644 --- a/src/test/java/seedu/manager/parser/ParserIntegrationTest.java +++ b/src/test/java/seedu/manager/parser/ParserIntegrationTest.java @@ -7,6 +7,7 @@ import seedu.manager.event.EventList; import seedu.manager.exception.DuplicateDataException; +import java.io.IOException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -19,7 +20,7 @@ class ParserIntegrationTest { private DateTimeFormatter formatter; @BeforeEach - void setUp() { + void setUp() throws IOException { events = new EventList(); parser = new Parser(); formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); @@ -45,7 +46,8 @@ void parseCommand_addCommandDuplicateEvent_throwsException() { command.setData(events); assertThrows(DuplicateDataException.class, () -> { - command.execute();}); + command.execute(); + }); } @Test diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index ab959b9ce2..101102a117 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -13,6 +13,8 @@ import seedu.manager.command.ViewCommand; import seedu.manager.exception.InvalidCommandException; +import java.io.IOException; + import static org.junit.jupiter.api.Assertions.assertInstanceOf; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -20,16 +22,17 @@ class ParserTest { //@@author jemehgoh @Test - public void parseCommand_invalidString_throwsException() { + public void parseCommand_invalidString_throwsException() throws IOException { Parser parser = new Parser(); String commandString = "Hello world!"; - assertThrows(InvalidCommandException.class,() -> { - parser.parseCommand(commandString);}); + assertThrows(InvalidCommandException.class, () -> { + parser.parseCommand(commandString); + }); } @Test - public void parseCommand_exitWord_exit() { + public void parseCommand_exitWord_exit() throws IOException { Parser parser = new Parser(); Command command = parser.parseCommand("exit"); @@ -38,7 +41,7 @@ public void parseCommand_exitWord_exit() { //@@author glenn-chew @Test - public void parseCommand_menuWord_menu() { + public void parseCommand_menuWord_menu() throws IOException { Parser parser = new Parser(); Command command = parser.parseCommand("menu"); @@ -47,7 +50,7 @@ public void parseCommand_menuWord_menu() { //@@author MatchaRRR @Test - public void parseCommand_listWord_list() { + public void parseCommand_listWord_list() throws IOException { Parser parser = new Parser(); Command command = parser.parseCommand("list"); @@ -56,7 +59,7 @@ public void parseCommand_listWord_list() { //@@author jemehgoh @Test - public void addCommand_addEvent_add() { + public void addCommand_addEvent_add() throws IOException { Parser parser = new Parser(); Command command = parser.parseCommand("add -e event -t 2024-09-10 12:34 -v Venue A -u high"); @@ -64,16 +67,17 @@ public void addCommand_addEvent_add() { } @Test - public void addCommand_addNoParameter_invalid() { + public void addCommand_addNoParameter_invalid() throws IOException { Parser parser = new Parser(); String commandString = "add"; - assertThrows(InvalidCommandException.class,() -> { - parser.parseCommand(commandString);}); + assertThrows(InvalidCommandException.class, () -> { + parser.parseCommand(commandString); + }); } @Test - public void removeCommand_removeEvent_add() { + public void removeCommand_removeEvent_add() throws IOException { Parser parser = new Parser(); Command command = parser.parseCommand("remove -e event"); @@ -81,17 +85,18 @@ public void removeCommand_removeEvent_add() { } @Test - public void removeCommand_removeNoParameter_invalid() { + public void removeCommand_removeNoParameter_invalid() throws IOException { Parser parser = new Parser(); String commandString = "remove"; - assertThrows(InvalidCommandException.class,() -> { - parser.parseCommand(commandString);}); + assertThrows(InvalidCommandException.class, () -> { + parser.parseCommand(commandString); + }); } //@@author jemehgoh @Test - public void viewCommand_viewParticipant_view() { + public void viewCommand_viewParticipant_view() throws IOException { Parser parser = new Parser(); Command command = parser.parseCommand("view -e event -y participant"); @@ -99,26 +104,28 @@ public void viewCommand_viewParticipant_view() { } @Test - public void viewCommand_noParameter_throwsException() { + public void viewCommand_noParameter_throwsException() throws IOException { Parser parser = new Parser(); String commandString = "view"; assertThrows(InvalidCommandException.class, () -> { - parser.parseCommand(commandString);}); + parser.parseCommand(commandString); + }); } @Test - public void viewCommand_invalidStatus_throwsException() { + public void viewCommand_invalidStatus_throwsException() throws IOException { Parser parser = new Parser(); String commandString = "view -e event -y command"; assertThrows(InvalidCommandException.class, () -> { - parser.parseCommand(commandString);}); + parser.parseCommand(commandString); + }); } //@@author jemehgoh @Test - public void parseCommand_markEvent_mark() { + public void parseCommand_markEvent_mark() throws IOException { Parser parser = new Parser(); Command command = parser.parseCommand("mark -e event -s done"); @@ -126,25 +133,27 @@ public void parseCommand_markEvent_mark() { } @Test - public void parseCommand_markEventNoStatus_throwsException() { + public void parseCommand_markEventNoStatus_throwsException() throws IOException { Parser parser = new Parser(); String commandString = "mark -e event"; - assertThrows(InvalidCommandException.class,() -> { - parser.parseCommand(commandString);}); + assertThrows(InvalidCommandException.class, () -> { + parser.parseCommand(commandString); + }); } @Test - public void parseCommand_markEventInvalidStatus_throwsException() { + public void parseCommand_markEventInvalidStatus_throwsException() throws IOException { Parser parser = new Parser(); String commandString = "mark -e event -s yes"; - assertThrows(InvalidCommandException.class,() -> { - parser.parseCommand(commandString);}); + assertThrows(InvalidCommandException.class, () -> { + parser.parseCommand(commandString); + }); } @Test - public void parseCommand_markParticipantPresent_mark() { + public void parseCommand_markParticipantPresent_mark() throws IOException { Parser parser = new Parser(); String commandString = "mark -p John Doe -e event -s present"; Command command = parser.parseCommand(commandString); @@ -153,7 +162,7 @@ public void parseCommand_markParticipantPresent_mark() { } @Test - public void parseCommand_markParticipantAbsent_mark() { + public void parseCommand_markParticipantAbsent_mark() throws IOException { Parser parser = new Parser(); String commandString = "mark -p John Doe -e event -s absent"; Command command = parser.parseCommand(commandString); @@ -162,25 +171,27 @@ public void parseCommand_markParticipantAbsent_mark() { } @Test - public void parseCommand_markParticipantNoStatus_throwsException() { + public void parseCommand_markParticipantNoStatus_throwsException() throws IOException { Parser parser = new Parser(); String commandString = "mark -p John Doe -e event"; - assertThrows(InvalidCommandException.class,() -> { - parser.parseCommand(commandString);}); + assertThrows(InvalidCommandException.class, () -> { + parser.parseCommand(commandString); + }); } @Test - public void parseCommand_markParticipantInvalidStatus_throwsException() { + public void parseCommand_markParticipantInvalidStatus_throwsException() throws IOException { Parser parser = new Parser(); String commandString = "mark -p John Doe -e event -s done"; - assertThrows(InvalidCommandException.class,() -> { - parser.parseCommand(commandString);}); + assertThrows(InvalidCommandException.class, () -> { + parser.parseCommand(commandString); + }); } @Test - public void parseCommand_markItem_mark() { + public void parseCommand_markItem_mark() throws IOException { Parser parser = new Parser(); String commandString = "mark -m paper -e event -s accounted"; Command command = parser.parseCommand(commandString); @@ -189,76 +200,84 @@ public void parseCommand_markItem_mark() { } @Test - public void parseCommand_markItemInvalidStatus_mark() { + public void parseCommand_markItemInvalidStatus_mark() throws IOException { Parser parser = new Parser(); String commandString = "mark -m paper -e event -s done"; - assertThrows(InvalidCommandException.class,() -> { - parser.parseCommand(commandString);}); + assertThrows(InvalidCommandException.class, () -> { + parser.parseCommand(commandString); + }); } @Test - public void parseCommand_markInvalidFlags_throwsException() { + public void parseCommand_markInvalidFlags_throwsException() throws IOException { Parser parser = new Parser(); String commandString = "mark -s done"; - assertThrows(InvalidCommandException.class,() -> { - parser.parseCommand(commandString);}); + assertThrows(InvalidCommandException.class, () -> { + parser.parseCommand(commandString); + }); } //@@author LTK-1606 @Test - public void parseCommand_copyCommandInvalidFlags_throwsException() { + public void parseCommand_copyCommandInvalidFlags_throwsException() throws IOException { Parser parser = new Parser(); String commandString = "copy tutorial < lecture"; - - assertThrows(InvalidCommandException.class,() -> { - parser.parseCommand(commandString);}); + + assertThrows(InvalidCommandException.class, () -> { + parser.parseCommand(commandString); + }); } @Test - public void parseCommand_findCommandInvalidFlags_throwsException() { + public void parseCommand_findCommandInvalidFlags_throwsException() throws IOException { Parser parser = new Parser(); String commandString = "find -s event 1 -p doe"; - - assertThrows(InvalidCommandException.class,() -> { - parser.parseCommand(commandString);}); + + assertThrows(InvalidCommandException.class, () -> { + parser.parseCommand(commandString); + }); } - + @Test - public void parseCommand_findCommandInvalidInput_throwsException() { + public void parseCommand_findCommandInvalidInput_throwsException() throws IOException { Parser parser = new Parser(); String commandString = "find -e -p doe"; - - assertThrows(InvalidCommandException.class,() -> { - parser.parseCommand(commandString);}); + + assertThrows(InvalidCommandException.class, () -> { + parser.parseCommand(commandString); + }); } @Test - public void parseCommand_filterEventsInvalidFlag_throwsException() { + public void parseCommand_filterEventsInvalidFlag_throwsException() throws IOException { Parser parser = new Parser(); String commandString = "filter -s high"; - - assertThrows(InvalidCommandException.class,() -> { - parser.parseCommand(commandString);}); + + assertThrows(InvalidCommandException.class, () -> { + parser.parseCommand(commandString); + }); } - + @Test - public void parseCommand_sortEventsInvalidFlags_throwsException() { + public void parseCommand_sortEventsInvalidFlags_throwsException() throws IOException { Parser parser = new Parser(); String commandString = "sort by name"; - - assertThrows(InvalidCommandException.class,() -> { - parser.parseCommand(commandString);}); + + assertThrows(InvalidCommandException.class, () -> { + parser.parseCommand(commandString); + }); } @Test - public void parseCommand_sortEventsInvalidInput_throwsException() { + public void parseCommand_sortEventsInvalidInput_throwsException() throws IOException { Parser parser = new Parser(); String commandString = "sort -by fun"; - + assertThrows(InvalidCommandException.class, () -> { - parser.parseCommand(commandString);}); + parser.parseCommand(commandString); + }); } } From b16604cb3a3c7a5a4d0dd5087b2ab2becb788e6f Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 9 Nov 2024 21:42:51 +0800 Subject: [PATCH 515/619] Update file parser logger to log to file --- .../java/seedu/manager/parser/Parser.java | 12 ++++++++---- .../seedu/manager/storage/FileParser.java | 19 ++++++++++++++++++- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index bf61d63141..44f4b7d1a1 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -168,10 +168,14 @@ public class Parser { * @throws IOException if the log output file cannot be written to. */ public Parser() throws IOException { - logger = Logger.getLogger(Parser.class.getName()); - logger.setUseParentHandlers(false); - handler = new FileHandler("manager.log"); - logger.addHandler(handler); + try { + logger = Logger.getLogger(Parser.class.getName()); + logger.setUseParentHandlers(false); + handler = new FileHandler("manager.log"); + logger.addHandler(handler); + } catch (IOException exception) { + throw new IOException("Log file cannot be written to."); + } } /** diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index ecd3e165e8..a1428112b9 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -12,6 +12,7 @@ import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.util.List; +import java.util.logging.FileHandler; import java.util.logging.Logger; //@@author KuanHsienn @@ -21,7 +22,23 @@ * and adds them to the provided EventList. */ public class FileParser { - private static final Logger logger = Logger.getLogger(FileParser.class.getName()); + private final Logger logger; + + /** + * Constructs a new FileParser. + * + * @throws IOException if the log file cannot be written to. + */ + public FileParser() throws IOException{ + try { + logger = Logger.getLogger(FileParser.class.getName()); + logger.setUseParentHandlers(false); + FileHandler handler = new FileHandler("manager.log"); + logger.addHandler(handler); + } catch (IOException exception) { + throw new IOException("Log file cannot be written to."); + } + } /** * Parses the specified CSV file and populates the given EventList with the loaded data. From 66c7902dd589afffe63fea4878a4ba85d172876b Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 9 Nov 2024 22:08:06 +0800 Subject: [PATCH 516/619] Modify file parser to log to one file --- .../seedu/manager/storage/FileParser.java | 40 ++++++++++--------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index a1428112b9..8815e89210 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -29,15 +29,9 @@ public class FileParser { * * @throws IOException if the log file cannot be written to. */ - public FileParser() throws IOException{ - try { - logger = Logger.getLogger(FileParser.class.getName()); - logger.setUseParentHandlers(false); - FileHandler handler = new FileHandler("manager.log"); - logger.addHandler(handler); - } catch (IOException exception) { - throw new IOException("Log file cannot be written to."); - } + public FileParser() throws IOException { + logger = Logger.getLogger(FileParser.class.getName()); + logger.setUseParentHandlers(false); } /** @@ -83,7 +77,7 @@ private List getFileLines(String filePath) throws IOException, CsvExce * @param fields The fields of the line to parse. * @param formatter The DateTimeFormatter to use for parsing date and time. */ - private void parseLine(EventList events, String[] fields, DateTimeFormatter formatter) { + private void parseLine(EventList events, String[] fields, DateTimeFormatter formatter) throws IOException { String type = fields[0]; try { switch (type) { @@ -97,10 +91,10 @@ private void parseLine(EventList events, String[] fields, DateTimeFormatter form parseItemFileLine(events, fields); break; default: - logger.warning("Unknown entry type in file"); + logWarningMessage("Unknown entry type in file"); } } catch (Exception exception) { - logger.warning("File line cannot be parsed, entry not loaded"); + logWarningMessage("File line cannot be parsed, entry not loaded"); } } @@ -121,7 +115,7 @@ private void parseEventFileLine(EventList events, String[] fields, DateTimeForma boolean isDone = getIsMarked(fields[5].trim()); events.addEvent(eventName, time, venue, priority, isDone); } catch (DateTimeParseException | IndexOutOfBoundsException | NullPointerException exception) { - logger.warning("File line cannot be parsed, event not loaded"); + logWarningMessage("File line cannot be parsed, event not loaded"); } } @@ -142,7 +136,7 @@ private void parseParticipantFileLine(EventList events, String[] fields) throws boolean isLoaded = events.addParticipantToEvent(participantName, number, email, isPresent, eventName); eventUnsuccessfulLoad(isLoaded); } catch (IndexOutOfBoundsException | NullPointerException exception) { - logger.warning("File line cannot be parsed, participant not loaded"); + logWarningMessage("File line cannot be parsed, participant not loaded"); } } @@ -161,7 +155,7 @@ private void parseItemFileLine(EventList events, String[] fields) throws IOExcep boolean isLoaded = events.addItemToEvent(itemName, isPresent, eventName); eventUnsuccessfulLoad(isLoaded); } catch (IndexOutOfBoundsException | NullPointerException exception) { - logger.warning("File line cannot be parsed, item not loaded"); + logWarningMessage("File line cannot be parsed, item not loaded"); } } @@ -171,25 +165,35 @@ private void parseItemFileLine(EventList events, String[] fields) throws IOExcep * @param markStatus The mark status string, expected to be "Y" or "N". * @return true if mark status is "Y"; false if it is "N". */ - private boolean getIsMarked(String markStatus) { + private boolean getIsMarked(String markStatus) throws IOException { if (markStatus.equalsIgnoreCase("Y")) { return true; } else if (markStatus.equalsIgnoreCase("N")) { return false; } else { - logger.warning("Cannot parse mark status, setting to false"); + logWarningMessage("Cannot parse mark status, setting to false"); return false; } } + private void logWarningMessage(String message) throws IOException { + FileHandler handler = new FileHandler("logs.txt"); + logger.addHandler(handler); + logger.warning(message); + handler.close(); + } + /** * Logs a warning if an event associated with a participant or item could not be loaded. * * @param isLoaded Indicates whether the loading was successful. */ - private void eventUnsuccessfulLoad(boolean isLoaded) { + private void eventUnsuccessfulLoad(boolean isLoaded) throws IOException { if (!isLoaded) { + FileHandler handler = new FileHandler("logs.txt"); + logger.addHandler(handler); logger.warning("Associated event not found, entry not loaded"); + handler.close(); } } } From 8af1e92d8036b416684328bd433163a8ec794798 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 9 Nov 2024 23:02:50 +0800 Subject: [PATCH 517/619] Update parser to support logging to one file --- .../java/seedu/manager/parser/Parser.java | 129 +++++++++++------- .../manager/parser/ParserIntegrationTest.java | 10 +- 2 files changed, 84 insertions(+), 55 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 44f4b7d1a1..7a166ff4bd 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -30,8 +30,6 @@ import java.util.logging.Logger; import java.util.regex.Pattern; -import static java.util.logging.Level.WARNING; - /** * Represents the command parser for EventManagerCLI */ @@ -159,23 +157,14 @@ public class Parser { private static final Pattern PHONE_NUMBER_PATTERN = Pattern.compile("\\d{8}"); private static final Pattern EMAIL_PATTERN = Pattern.compile("^[A-Za-z0-9+_.-]+@[A-Za-z0-9-]+\\.[A-Za-z0-9-]+$"); - private final FileHandler handler; private final Logger logger; /** * Constructs a new Parser. - * - * @throws IOException if the log output file cannot be written to. */ - public Parser() throws IOException { - try { - logger = Logger.getLogger(Parser.class.getName()); - logger.setUseParentHandlers(false); - handler = new FileHandler("manager.log"); - logger.addHandler(handler); - } catch (IOException exception) { - throw new IOException("Log file cannot be written to."); - } + public Parser() { + logger = Logger.getLogger(Parser.class.getName()); + logger.setUseParentHandlers(false); } /** @@ -183,8 +172,9 @@ public Parser() throws IOException { * * @param command The given command string from the user. * @throws InvalidCommandException if the given command string cannot be parsed to a valid command. + * @throws IOException if the log file cannot be written to. */ - public Command parseCommand(String command) throws InvalidCommandException { + public Command parseCommand(String command) throws InvalidCommandException, IOException { String[] commandParts = command.trim().split(SPACE); String commandWord = commandParts[0].toLowerCase(); try { @@ -217,15 +207,17 @@ public Command parseCommand(String command) throws InvalidCommandException { throw new InvalidCommandException(INVALID_COMMAND_MESSAGE); } } catch (IndexOutOfBoundsException exception) { - logger.log(WARNING, "Invalid command format"); + logWarning("Invalid command format"); String errorMessage = getErrorMessage(commandWord); throw new InvalidCommandException(errorMessage); } catch (DateTimeParseException exception) { - logger.log(WARNING, "Invalid date-time format"); + logWarning("Invalid date-time format"); throw new InvalidCommandException(INVALID_DATE_TIME_MESSAGE); } catch (IllegalArgumentException exception) { - logger.log(WARNING, "Invalid priority level status"); + logWarning("Invalid priority level status"); throw new InvalidCommandException(INVALID_PRIORITY_MESSAGE); + } catch (IOException exception) { + throw new IOException("Log file cannot be written to"); } } @@ -250,9 +242,10 @@ public Command parseCommand(String command) throws InvalidCommandException { * @throws IndexOutOfBoundsException if not all parameters are present. * @throws DateTimeParseException if the time parameter is not entered in the correct format. * @throws IllegalArgumentException if the priority parameter is not valid. + * @throws IOException if the log file cannot be written to. */ public Command parseAddCommand(String input, String[] commandParts) throws InvalidCommandException, - IndexOutOfBoundsException, DateTimeParseException, IllegalArgumentException { + IndexOutOfBoundsException, DateTimeParseException, IllegalArgumentException, IOException { assert commandParts[0].equalsIgnoreCase(AddCommand.COMMAND_WORD); String commandFlag = commandParts[1]; @@ -264,7 +257,7 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval case ITEM_FLAG: return getAddItemCommand(input); default: - logger.log(WARNING, "Invalid command format"); + logWarning("Invalid command format"); throw new InvalidCommandException(INVALID_ADD_MESSAGE); } } @@ -277,11 +270,12 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval * @throws IndexOutOfBoundsException if not all fields are present. * @throws DateTimeParseException if the time parameter is not entered in the correct format. * @throws IllegalArgumentException if the priority parameter is not valid. + * @throws IOException if the log file cannot be written to. */ private Command getAddEventCommand(String input) throws IndexOutOfBoundsException, DateTimeParseException, - IllegalArgumentException { + IllegalArgumentException, IOException { String[] inputParts = input.split(EVENT_REGEX); - logger.info("Creating AddCommand for event with details: " + + logInfo("Creating AddCommand for event with details: " + inputParts[1].trim() + ", " + inputParts[2].trim() + ", " + inputParts[3].trim()); String eventName = inputParts[1].trim(); LocalDateTime eventTime = LocalDateTime.parse(inputParts[2].trim(), @@ -299,10 +293,12 @@ private Command getAddEventCommand(String input) throws IndexOutOfBoundsExceptio * @return an {@link AddCommand} that adds a participant with fields parsed from input. * @throws IndexOutOfBoundsException if not all fields are present. * @throws InvalidCommandException if the input phone number and email are not in the correct format. + * @throws IOException if the log file cannot be written to. */ - private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException { + private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException, + IOException { String[] inputParts = input.split(PARTICIPANT_REGEX); - logger.info("Creating AddCommand for participant with details: " + + logInfo("Creating AddCommand for participant with details: " + inputParts[1].trim() + ", " + inputParts[2].trim()); String participantName = inputParts[1].trim(); String participantNumber = inputParts[2].trim(); @@ -310,12 +306,12 @@ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsEx String eventName = inputParts[4].trim(); if (!isValidPhoneNumber(participantNumber)) { - logger.log(WARNING, "Invalid phone number format"); + logWarning("Invalid phone number format"); throw new InvalidCommandException(INVALID_PHONE_NUMBER_MESSAGE); } if (!isValidEmail(participantEmail)) { - logger.log(WARNING, "Invalid email format"); + logWarning( "Invalid email format"); throw new InvalidCommandException(INVALID_EMAIL_MESSAGE); } @@ -329,12 +325,13 @@ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsEx * @param input the given user input. * @return an {@link AddCommand} that adds an item with fields parsed from input. * @throws IndexOutOfBoundsException if not all fields are present. + * @throws IOException if the log file cannot be written to. */ - private Command getAddItemCommand(String input) throws IndexOutOfBoundsException { + private Command getAddItemCommand(String input) throws IndexOutOfBoundsException, IOException { String[] inputParts = input.split(ITEM_REGEX); String itemName = inputParts[1].trim(); String eventName = inputParts[2].trim(); - logger.info(String.format("Creating AddCommand for item with details: %s, %s", itemName, + logInfo(String.format("Creating AddCommand for item with details: %s, %s", itemName, eventName)); return new AddCommand(itemName, eventName); } @@ -357,9 +354,10 @@ private Command getAddItemCommand(String input) throws IndexOutOfBoundsException * @return a {@link Command} object representing the parsed command. * @throws InvalidCommandException if the flags are not matched in the command parts. * @throws IndexOutOfBoundsException if not all fields are present. + * @throws IOException if the log file cannot be written to. */ private Command parseRemoveCommand(String input, String[] commandParts) throws InvalidCommandException, - IndexOutOfBoundsException { + IndexOutOfBoundsException, IOException { assert commandParts[0].equalsIgnoreCase(RemoveCommand.COMMAND_WORD); String commandFlag = commandParts[1]; @@ -371,13 +369,12 @@ private Command parseRemoveCommand(String input, String[] commandParts) throws I case ITEM_FLAG: return getRemoveItemCommand(input); default: - logger.log(WARNING, "Invalid command format"); + logWarning("Invalid command format"); throw new InvalidCommandException(INVALID_REMOVE_MESSAGE); } } //@@author KuanHsienn - /** * Returns a {@link RemoveCommand} that removes an event, with a given user input. * @@ -427,7 +424,8 @@ private RemoveCommand getRemoveItemCommand(String input) throws IndexOutOfBounds * @throws DateTimeParseException if the time parameter is not entered in the correct format. * @throws IllegalArgumentException if the priority parameter is not valid. */ - private Command parseEditCommand(String input, String[] commandParts) throws InvalidCommandException { + private Command parseEditCommand(String input, String[] commandParts) throws InvalidCommandException, + IOException { assert commandParts[0].equalsIgnoreCase(EditParticipantCommand.COMMAND_WORD); String commandFlag = commandParts[1]; @@ -439,7 +437,7 @@ private Command parseEditCommand(String input, String[] commandParts) throws Inv case ITEM_FLAG: return getEditItemCommand(input); default: - logger.log(WARNING, "Invalid command format"); + logWarning("Invalid command format"); throw new InvalidCommandException(INVALID_EDIT_MESSAGE); } } @@ -451,8 +449,10 @@ private Command parseEditCommand(String input, String[] commandParts) throws Inv * @param input the given user input. * @return an {@link EditParticipantCommand} that edits a participant with fields parsed from input. * @throws IndexOutOfBoundsException if not all fields are present. + * @throws IOException if the log file cannot be written to. */ - private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException { + private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException, + IOException { String[] inputParts = input.split(PARTICIPANT_REGEX); String participantName = inputParts[1].trim(); String newNumber = inputParts[2].trim(); @@ -460,12 +460,12 @@ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsE String eventName = inputParts[4].trim(); if (!isValidPhoneNumber(newNumber)) { - logger.log(WARNING, "Invalid phone number format"); + logWarning("Invalid phone number format"); throw new InvalidCommandException(INVALID_PHONE_NUMBER_MESSAGE); } if (!isValidEmail(newEmail)) { - logger.log(WARNING, "Invalid email format"); + logWarning("Invalid email format"); throw new InvalidCommandException(INVALID_EMAIL_MESSAGE); } @@ -504,7 +504,7 @@ private Command getEditEventCommand(String input) throws IndexOutOfBoundsExcepti * @return an {@link EditEventCommand} that edits an event with fields parsed from input. * @throws IndexOutOfBoundsException if not all fields are present. */ - private Command getEditItemCommand(String input) { + private Command getEditItemCommand(String input) throws IndexOutOfBoundsException { String[] inputParts = input.split(ITEM_REGEX); String itemName = inputParts[1].split(ARROW)[0].trim(); String itemNewName = inputParts[1].split(ARROW)[1].trim(); @@ -553,7 +553,7 @@ private boolean isValidEmail(String email) { * @throws IndexOutOfBoundsException if not all fields are present. */ private Command parseViewCommand(String input, String[] commandParts) throws InvalidCommandException, - IndexOutOfBoundsException { + IndexOutOfBoundsException, IOException { assert commandParts[0].equalsIgnoreCase(ViewCommand.COMMAND_WORD); String commandFlag = commandParts[1]; @@ -561,7 +561,7 @@ private Command parseViewCommand(String input, String[] commandParts) throws Inv return getViewCommand(input); } - logger.log(WARNING, "Invalid command format"); + logWarning("Invalid command format"); throw new InvalidCommandException(INVALID_VIEW_MESSAGE); } @@ -597,9 +597,10 @@ private ViewCommand getViewCommand(String input) throws IndexOutOfBoundsExceptio * @return a {@link MarkCommand} with fields parsed from input. * @throws InvalidCommandException if the flag is not matched, or if the mark status is invalid. * @throws IndexOutOfBoundsException if not all fields are present. + * @throws IOException if the log file cannot be written to. */ private Command parseMarkCommand(String input, String[] commandParts) throws InvalidCommandException, - IndexOutOfBoundsException { + IndexOutOfBoundsException, IOException { assert commandParts[0].equalsIgnoreCase(MarkCommand.COMMAND_WORD); String commandFlag = commandParts[1]; @@ -611,7 +612,7 @@ private Command parseMarkCommand(String input, String[] commandParts) throws Inv case ITEM_FLAG: return getMarkItemCommand(input); default: - logger.log(WARNING, "Invalid command format"); + logWarning("Invalid command format"); throw new InvalidCommandException(INVALID_MARK_MESSAGE); } } @@ -623,8 +624,10 @@ private Command parseMarkCommand(String input, String[] commandParts) throws Inv * @return a {@link MarkEventCommand} with fields from input. * @throws InvalidCommandException if the status parameter is invalid. * @throws IndexOutOfBoundsException if not all fields are present. + * @throws IOException if the log file cannot be written to. */ - private Command getMarkEventCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException { + private Command getMarkEventCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException, + IOException { String[] inputParts = input.split(MARK_EVENT_REGEX); String eventName = inputParts[1].trim(); boolean isToMark = toMarkEvent(inputParts[2].trim()); @@ -638,14 +641,15 @@ private Command getMarkEventCommand(String input) throws InvalidCommandException * @param status the status parameter. * @return true if status is to mark, returns false if status is to unmark. * @throws InvalidCommandException if status is invalid. + * @throws IOException if the log file cannot be written to. */ - private boolean toMarkEvent(String status) throws InvalidCommandException { + private boolean toMarkEvent(String status) throws InvalidCommandException, IOException { if (status.equalsIgnoreCase(MarkEventCommand.EVENT_MARK_STATUS)) { return true; } else if (status.equalsIgnoreCase(MarkEventCommand.EVENT_UNMARK_STATUS)) { return false; } else { - logger.log(WARNING, "Invalid status keyword"); + logWarning("Invalid status keyword"); throw new InvalidCommandException(INVALID_EVENT_STATUS_MESSAGE); } } @@ -657,8 +661,10 @@ private boolean toMarkEvent(String status) throws InvalidCommandException { * @return a {@link MarkParticipantCommand} with fields from input. * @throws InvalidCommandException if the status parameter is invalid. * @throws IndexOutOfBoundsException if not all fields are present. + * @throws IOException if the log file cannot be written to. */ - private Command getMarkParticipantCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException { + private Command getMarkParticipantCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException, + IOException { String[] inputParts = input.split(MARK_PARTICIPANT_REGEX); String participantName = inputParts[1].trim(); String eventName = inputParts[2].trim(); @@ -673,14 +679,15 @@ private Command getMarkParticipantCommand(String input) throws InvalidCommandExc * @param status the status parameter. * @return true if status is to mark, returns false if status is to unmark. * @throws InvalidCommandException if status is invalid. + * @throws IOException if the log file cannot be written to. */ - private boolean toMarkParticipant(String status) throws InvalidCommandException { + private boolean toMarkParticipant(String status) throws InvalidCommandException, IOException { if (status.equalsIgnoreCase(MarkParticipantCommand.PARTICIPANT_MARK_STATUS)) { return true; } else if (status.equalsIgnoreCase(MarkParticipantCommand.PARTICIPANT_UNMARK_STATUS)) { return false; } else { - logger.log(WARNING, "Invalid status keyword"); + logWarning("Invalid status keyword"); throw new InvalidCommandException(INVALID_PARTICIPANT_STATUS_MESSAGE); } } @@ -692,8 +699,10 @@ private boolean toMarkParticipant(String status) throws InvalidCommandException * @return a {@link MarkItemCommand} with fields from input. * @throws InvalidCommandException if the status parameter is invalid. * @throws IndexOutOfBoundsException if not all fields are present. + * @throws IOException if the log file cannot be written to. */ - private Command getMarkItemCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException { + private Command getMarkItemCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException, + IOException { String[] inputParts = input.split(MARK_ITEM_REGEX); String itemName = inputParts[1].trim(); String eventName = inputParts[2].trim(); @@ -708,14 +717,15 @@ private Command getMarkItemCommand(String input) throws InvalidCommandException, * @param status the status parameter. * @return true if status is "accounted", returns false if status is "unaccounted". * @throws InvalidCommandException if status is invalid. + * @throws IOException if the log file cannot be written to. */ - private boolean toMarkItem(String status) throws InvalidCommandException { + private boolean toMarkItem(String status) throws InvalidCommandException, IOException { if (status.equalsIgnoreCase(MarkItemCommand.ITEM_MARK_STATUS)) { return true; } else if (status.equalsIgnoreCase(MarkItemCommand.ITEM_UNMARK_STATUS)) { return false; } else { - logger.log(WARNING, "Invalid status keyword"); + logWarning("Invalid status keyword"); throw new InvalidCommandException(INVALID_ITEM_STATUS_MESSAGE); } } @@ -861,4 +871,23 @@ private String getErrorMessage(String commandWord) { return INVALID_COMMAND_MESSAGE; } } + + private void logInfo(String message) throws IOException { + FileHandler handler = new FileHandler("logs.txt", true); + logger.addHandler(handler); + logger.info(message); + handler.close(); + } + + /** + * Logs a warning message to a file. + * + * @throws IOException if the log file cannot be written to. + */ + private void logWarning(String message) throws IOException { + FileHandler handler = new FileHandler("logs.txt", true); + logger.addHandler(handler); + logger.warning(message); + handler.close(); + } } diff --git a/src/test/java/seedu/manager/parser/ParserIntegrationTest.java b/src/test/java/seedu/manager/parser/ParserIntegrationTest.java index de1ccee943..c9ff7d0b5f 100644 --- a/src/test/java/seedu/manager/parser/ParserIntegrationTest.java +++ b/src/test/java/seedu/manager/parser/ParserIntegrationTest.java @@ -30,7 +30,7 @@ void setUp() throws IOException { } @Test - void parseCommand_addCommandAddEvent_success() { + void parseCommand_addCommandAddEvent_success() throws IOException { String commandString = "add -e Event 2 -t 2024-10-21 16:00 -v Venue 1 -u HIGH"; Command command = parser.parseCommand(commandString); command.setData(events); @@ -40,7 +40,7 @@ void parseCommand_addCommandAddEvent_success() { } @Test - void parseCommand_addCommandDuplicateEvent_throwsException() { + void parseCommand_addCommandDuplicateEvent_throwsException() throws IOException { String commandString = "add -e Event 1 -t 2024-10-21 16:00 -v Venue 1 -u HIGH"; Command command = parser.parseCommand(commandString); command.setData(events); @@ -51,7 +51,7 @@ void parseCommand_addCommandDuplicateEvent_throwsException() { } @Test - void parseCommand_addCommandAddParticipant_success() { + void parseCommand_addCommandAddParticipant_success() throws IOException { String commandString = "add -p John Doe -n 92138961 -email johndoe@gmail.com -e Event 1"; Command command = parser.parseCommand(commandString); command.setData(events); @@ -61,7 +61,7 @@ void parseCommand_addCommandAddParticipant_success() { } @Test - void parseCommand_removeCommandRemoveEvent_success() { + void parseCommand_removeCommandRemoveEvent_success() throws IOException { String commandString = "remove -e Event 1"; Command command = parser.parseCommand(commandString); command.setData(events); @@ -71,7 +71,7 @@ void parseCommand_removeCommandRemoveEvent_success() { } @Test - void parseCommand_markCommandMarkEvent_success() { + void parseCommand_markCommandMarkEvent_success() throws IOException { String commandString = "mark -e Event 1 -s done"; Command command = parser.parseCommand(commandString); command.setData(events); From 6ba17ef636e40e3e52e6f8fd5a005763174aaacf Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 9 Nov 2024 23:03:01 +0800 Subject: [PATCH 518/619] Update .gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 491979432a..3f959f53a9 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,5 @@ src/main/java/META-INF/MANIFEST.MF /events.csv items.csv participants.csv +data.txt +logs.txt From dc0ab9a8f3aa315d26776ec233266dadc1fdb29a Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sat, 9 Nov 2024 23:19:06 +0800 Subject: [PATCH 519/619] Update FileParser to support appending log messages to one file --- .../seedu/manager/storage/FileParser.java | 63 ++++++++++++------- 1 file changed, 40 insertions(+), 23 deletions(-) diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index 8815e89210..efc0e84a96 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -26,10 +26,8 @@ public class FileParser { /** * Constructs a new FileParser. - * - * @throws IOException if the log file cannot be written to. */ - public FileParser() throws IOException { + public FileParser(){ logger = Logger.getLogger(FileParser.class.getName()); logger.setUseParentHandlers(false); } @@ -43,7 +41,7 @@ public FileParser() throws IOException { */ public void parseFile(EventList events, String filePath) throws IOException { try { - logger.info("Loading data from file"); + logInfo("Loading data from file"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); List lines = getFileLines(filePath); for (String[] line : lines) { @@ -91,10 +89,10 @@ private void parseLine(EventList events, String[] fields, DateTimeFormatter form parseItemFileLine(events, fields); break; default: - logWarningMessage("Unknown entry type in file"); + logWarning("Unknown entry type in file"); } } catch (Exception exception) { - logWarningMessage("File line cannot be parsed, entry not loaded"); + logWarning("File line cannot be parsed, entry not loaded"); } } @@ -104,7 +102,7 @@ private void parseLine(EventList events, String[] fields, DateTimeFormatter form * @param events The EventList to populate. * @param fields The fields of the event to parse. * @param formatter The DateTimeFormatter to use for parsing date and time. - * @throws IOException If there is an error adding the event to the list. + * @throws IOException If there is an error adding the event to the list, or if the log file cannot be written to. */ private void parseEventFileLine(EventList events, String[] fields, DateTimeFormatter formatter) throws IOException { try { @@ -115,7 +113,7 @@ private void parseEventFileLine(EventList events, String[] fields, DateTimeForma boolean isDone = getIsMarked(fields[5].trim()); events.addEvent(eventName, time, venue, priority, isDone); } catch (DateTimeParseException | IndexOutOfBoundsException | NullPointerException exception) { - logWarningMessage("File line cannot be parsed, event not loaded"); + logWarning("File line cannot be parsed, event not loaded"); } } @@ -136,7 +134,7 @@ private void parseParticipantFileLine(EventList events, String[] fields) throws boolean isLoaded = events.addParticipantToEvent(participantName, number, email, isPresent, eventName); eventUnsuccessfulLoad(isLoaded); } catch (IndexOutOfBoundsException | NullPointerException exception) { - logWarningMessage("File line cannot be parsed, participant not loaded"); + logWarning("File line cannot be parsed, participant not loaded"); } } @@ -145,7 +143,8 @@ private void parseParticipantFileLine(EventList events, String[] fields) throws * * @param events The EventList to populate. * @param fields The fields of the item to parse. - * @throws IOException If there is an error adding the item to the event. + * @throws IOException If there is an error adding the item to the event, or if + * the log file cannot be written to. */ private void parseItemFileLine(EventList events, String[] fields) throws IOException { try { @@ -155,7 +154,7 @@ private void parseItemFileLine(EventList events, String[] fields) throws IOExcep boolean isLoaded = events.addItemToEvent(itemName, isPresent, eventName); eventUnsuccessfulLoad(isLoaded); } catch (IndexOutOfBoundsException | NullPointerException exception) { - logWarningMessage("File line cannot be parsed, item not loaded"); + logWarning("File line cannot be parsed, item not loaded"); } } @@ -164,6 +163,7 @@ private void parseItemFileLine(EventList events, String[] fields) throws IOExcep * * @param markStatus The mark status string, expected to be "Y" or "N". * @return true if mark status is "Y"; false if it is "N". + * @throws IOException if the log file cannot be written to. */ private boolean getIsMarked(String markStatus) throws IOException { if (markStatus.equalsIgnoreCase("Y")) { @@ -171,29 +171,46 @@ private boolean getIsMarked(String markStatus) throws IOException { } else if (markStatus.equalsIgnoreCase("N")) { return false; } else { - logWarningMessage("Cannot parse mark status, setting to false"); + logWarning("Cannot parse mark status, setting to false"); return false; } } - private void logWarningMessage(String message) throws IOException { - FileHandler handler = new FileHandler("logs.txt"); - logger.addHandler(handler); - logger.warning(message); - handler.close(); - } - /** * Logs a warning if an event associated with a participant or item could not be loaded. * * @param isLoaded Indicates whether the loading was successful. + * @throws IOException if the log file cannot be written to. */ private void eventUnsuccessfulLoad(boolean isLoaded) throws IOException { if (!isLoaded) { - FileHandler handler = new FileHandler("logs.txt"); - logger.addHandler(handler); - logger.warning("Associated event not found, entry not loaded"); - handler.close(); + logWarning("Associated event not found, entry not loaded"); } } + + /** + * Logs an info message to a log file. + * + * @param message the given warning message. + * @throws IOException if the log file cannot be written to. + */ + private void logInfo(String message) throws IOException { + FileHandler handler = new FileHandler("logs.txt", true); + logger.addHandler(handler); + logger.info(message); + handler.close(); + } + + /** + * Logs a warning message to a log file. + * + * @param message the given warning message. + * @throws IOException if the log file cannot be written to. + */ + private void logWarning(String message) throws IOException { + FileHandler handler = new FileHandler("logs.txt", true); + logger.addHandler(handler); + logger.warning(message); + handler.close(); + } } From 25736e59e98365927a0faa23a291667f231197c1 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 00:15:06 +0800 Subject: [PATCH 520/619] Add Javadocs and make happy path more prominent for mark methods --- .../java/seedu/manager/parser/Parser.java | 124 +++++++++--------- 1 file changed, 60 insertions(+), 64 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index f342bcf635..2dacd4a3f8 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -398,21 +398,19 @@ private Command getAddItemCommand(String input) throws IndexOutOfBoundsException Pattern pattern = Pattern.compile(ADD_ITEM_REGEX); Matcher matcher = pattern.matcher(input); - String itemName; - String eventName; - - if (matcher.matches()) { - if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { - throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); - } - - itemName = matcher.group(1).trim(); - eventName = matcher.group(2).trim(); - logInfo(String.format("Creating AddCommand for item with details: %s, %s", itemName, - eventName)); - } else { + if (!matcher.matches()) { throw new InvalidCommandException(INVALID_ADD_MESSAGE); } + + if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + + String itemName = matcher.group(1).trim(); + String eventName = matcher.group(2).trim(); + logInfo(String.format("Creating AddCommand for item with details: %s, %s", itemName, + eventName)); + return new AddCommand(itemName, eventName); } @@ -748,23 +746,23 @@ private ViewCommand getViewCommand(String input) throws IndexOutOfBoundsExceptio Pattern pattern = Pattern.compile(VIEW_REGEX); Matcher matcher = pattern.matcher(input); - if (matcher.matches()) { - if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { - throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); - } + if (!matcher.matches()) { + throw new InvalidCommandException(INVALID_VIEW_MESSAGE); + } - String eventName = matcher.group(1).trim(); - String viewType = matcher.group(2).trim(); + if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } - if (viewType.equalsIgnoreCase("participant")) { - return new ViewCommand(eventName, true); - } else if (viewType.equalsIgnoreCase("item")) { - return new ViewCommand(eventName, false); - } else { - throw new InvalidCommandException(INVALID_TYPE_MESSAGE); - } + String eventName = matcher.group(1).trim(); + String viewType = matcher.group(2).trim(); + + if (viewType.equalsIgnoreCase("participant")) { + return new ViewCommand(eventName, true); + } else if (viewType.equalsIgnoreCase("item")) { + return new ViewCommand(eventName, false); } else { - throw new InvalidCommandException(INVALID_VIEW_MESSAGE); + throw new InvalidCommandException(INVALID_TYPE_MESSAGE); } } @@ -814,19 +812,17 @@ private Command getMarkEventCommand(String input) throws InvalidCommandException Pattern pattern = Pattern.compile(MARK_EVENT_REGEX); Matcher matcher = pattern.matcher(input); - String eventName; - boolean isToMark; - - if (matcher.matches()) { - if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { - throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); - } - - eventName = matcher.group(1).trim(); - isToMark = toMarkEvent(matcher.group(2).trim()); - } else { + if (!matcher.matches()) { throw new InvalidCommandException(INVALID_MARK_MESSAGE); } + + if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + + String eventName = matcher.group(1).trim(); + boolean isToMark = toMarkEvent(matcher.group(2).trim()); + return new MarkEventCommand(eventName, isToMark); } @@ -865,21 +861,18 @@ private Command getMarkParticipantCommand(String input) throws InvalidCommandExc Pattern pattern = Pattern.compile(MARK_PARTICIPANT_REGEX); Matcher matcher = pattern.matcher(input); - String participantName; - String eventName; - boolean isToMark; - - if (matcher.matches()) { - if (matcher.group(1).isBlank() || matcher.group(2).isBlank() || matcher.group(3).isBlank()) { - throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); - } - - participantName = matcher.group(1).trim(); - eventName = matcher.group(2).trim(); - isToMark = toMarkParticipant(matcher.group(3).trim()); - } else { + if (!matcher.matches()) { throw new InvalidCommandException(INVALID_MARK_MESSAGE); } + + if (matcher.group(1).isBlank() || matcher.group(2).isBlank() || matcher.group(3).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + + String participantName = matcher.group(1).trim(); + String eventName = matcher.group(2).trim(); + boolean isToMark = toMarkParticipant(matcher.group(3).trim()); + return new MarkParticipantCommand(participantName, eventName, isToMark); } @@ -918,22 +911,18 @@ private Command getMarkItemCommand(String input) throws InvalidCommandException, Pattern pattern = Pattern.compile(MARK_ITEM_REGEX); Matcher matcher = pattern.matcher(input); - String itemName; - String eventName; - boolean isToMark; - - if (matcher.matches()) { - if (matcher.group(1).isBlank() || matcher.group(2).isBlank() || matcher.group(3).isBlank()) { - throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); - } - - itemName = matcher.group(1).trim(); - eventName = matcher.group(2).trim(); - isToMark = toMarkItem(matcher.group(3).trim()); - } else { + if (!matcher.matches()) { throw new InvalidCommandException(INVALID_MARK_MESSAGE); } + if (matcher.group(1).isBlank() || matcher.group(2).isBlank() || matcher.group(3).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + + String itemName = matcher.group(1).trim(); + String eventName = matcher.group(2).trim(); + boolean isToMark = toMarkItem(matcher.group(3).trim()); + return new MarkItemCommand(itemName, eventName, isToMark); } @@ -1115,6 +1104,12 @@ private String getErrorMessage(String commandWord) { } } + /** + * Logs an info message to a file. + * + * @param message the message to be logged. + * @throws IOException if the log file cannot be written to. + */ private void logInfo(String message) throws IOException { FileHandler handler = new FileHandler("logs.txt", true); logger.addHandler(handler); @@ -1125,6 +1120,7 @@ private void logInfo(String message) throws IOException { /** * Logs a warning message to a file. * + * @param message the message to be logged. * @throws IOException if the log file cannot be written to. */ private void logWarning(String message) throws IOException { From cd5b4afb4b73f6895d003e5a7008cd33f611672f Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 07:07:14 +0800 Subject: [PATCH 521/619] Update copy command to reset participant mark status --- src/main/java/seedu/manager/command/CopyCommand.java | 3 +-- src/main/java/seedu/manager/item/Item.java | 8 -------- src/test/java/seedu/manager/command/CopyCommandTest.java | 2 +- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/src/main/java/seedu/manager/command/CopyCommand.java b/src/main/java/seedu/manager/command/CopyCommand.java index 775c5ce269..9a3b357514 100644 --- a/src/main/java/seedu/manager/command/CopyCommand.java +++ b/src/main/java/seedu/manager/command/CopyCommand.java @@ -90,8 +90,7 @@ private Participant copyParticipant(Participant participant) { String name = participant.getName(); String number = participant.getNumber(); String email = participant.getEmail(); - boolean isPresent = participant.isPresent(); - return new Participant(name, number, email, isPresent); + return new Participant(name, number, email, false); } } diff --git a/src/main/java/seedu/manager/item/Item.java b/src/main/java/seedu/manager/item/Item.java index ad2ff7b9bb..d00d195d0d 100644 --- a/src/main/java/seedu/manager/item/Item.java +++ b/src/main/java/seedu/manager/item/Item.java @@ -37,14 +37,6 @@ public void setName(String itemNewName) { this.name = itemNewName; } - //@@author LTK-1606 - /** - * @return {@code true} if isPresent is true, {@code false} otherwise. - */ - public boolean isPresent() { - return isPresent; - } - //@@author jemehgoh /** * Sets the item as present or not present. diff --git a/src/test/java/seedu/manager/command/CopyCommandTest.java b/src/test/java/seedu/manager/command/CopyCommandTest.java index 132846f070..9cb3c1bd43 100644 --- a/src/test/java/seedu/manager/command/CopyCommandTest.java +++ b/src/test/java/seedu/manager/command/CopyCommandTest.java @@ -11,6 +11,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; +//@@author LTK-1606 public class CopyCommandTest { EventList eventList = new EventList(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); @@ -65,5 +66,4 @@ public void execute_copyCommand_participantListEmpty(){ assertEquals(expectedMessage, copyCommand.getMessage()); assertFalse(copyCommand.getCanExit()); } - } From 69ee7ad8aa41121801409c21b0495b04760b4f46 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 07:09:21 +0800 Subject: [PATCH 522/619] Update UG to reflect new functionality --- docs/UserGuide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 913c1b2214..b255ba16cb 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -202,6 +202,7 @@ Copies the participant list from one event to another event. Format: `copy FROM_EVENT > TO_EVENT` * Both events must already exist. +* The mark status of the `Participant`s in the copy participant list will be reset (i.e. set as absent). * If the event `TO_EVENT` already has an existing participant list, `TO_EVENT`'s participant list will be overwritten. Examples: From 0abaeda788f5bcea50228b3c9ac7912048b8193a Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 08:04:51 +0800 Subject: [PATCH 523/619] Update duplicate event, participant and item handling --- src/main/java/seedu/manager/event/Event.java | 36 +++++++++++++------ .../java/seedu/manager/event/EventList.java | 22 ++++++++---- 2 files changed, 40 insertions(+), 18 deletions(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 46fdf9aab7..29c2ea1656 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -207,11 +207,8 @@ public boolean isDone() { */ public void addParticipant(String participantName, String participantNumber, String participantEmail, boolean isPresent) throws DuplicateDataException { - if (getParticipantByName(participantName).isPresent()) { - throw new DuplicateDataException(DUPLICATE_PARTICIPANT_MESSAGE); - } - - Participant participant = new Participant(participantName, participantNumber, participantEmail, isPresent); + String name = getDuplicateParticipantName(participantName); + Participant participant = new Participant(name, participantNumber, participantEmail, isPresent); this.participantList.add(participant); } @@ -223,11 +220,8 @@ public void addParticipant(String participantName, String participantNumber, Str * @throws DuplicateDataException if an item with the same name is already in the list. */ public void addItem(String itemName, boolean isPresent) throws DuplicateDataException { - if (getItemByName(itemName).isPresent()) { - throw new DuplicateDataException(DUPLICATE_ITEM_MESSAGE); - } - - Item item = new Item(itemName, isPresent); + String name = getDuplicateItemName(itemName); + Item item = new Item(name, isPresent); itemList.add(item); } @@ -310,7 +304,7 @@ public boolean updateParticipant(String participantName, String newNumber, Strin public boolean updateItem(String itemName, String itemNewName) { for (Item item : this.itemList) { if (item.getName().equalsIgnoreCase(itemName)) { - item.setName(itemNewName); + item.setName(getDuplicateItemName(itemNewName)); item.setPresent(false); return true; } @@ -460,7 +454,27 @@ public String toString(){ eventName, eventTimeString, eventVenue, eventPriority, markIfDone()); } + private String getDuplicateParticipantName(String name) { + int index = 1; + String duplicateName = name; + + while (getParticipantByName(duplicateName).isPresent()) { + duplicateName = String.format("%s(%d)", name, index); + index++; + } + return duplicateName; + } + private String getDuplicateItemName(String name) { + int index = 1; + String duplicateName = name; + while (getItemByName(duplicateName).isPresent()) { + duplicateName = String.format("%s(%d)", name, index); + index++; + } + + return duplicateName; + } } diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 231925104d..d2b43d09f5 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -93,14 +93,11 @@ public void addEvent(String eventName, LocalDateTime time, * @param venue the venue where the event will take place. * @param priority the priority level of the event. * @param isDone {@code true} if the event is marked done, {@code false otherwise}. - * @throws DuplicateDataException if an event with eventName is present in the event list. */ public void addEvent(String eventName, LocalDateTime time, String venue, - Priority priority, boolean isDone) throws DuplicateDataException { - if (getEventByName(eventName).isPresent()) { - throw new DuplicateDataException(DUPLICATE_EVENT_MESSAGE); - } - Event newEvent = new Event(eventName, time, venue, priority, isDone); + Priority priority, boolean isDone) { + String name = getDuplicateEventName(eventName); + Event newEvent = new Event(name, time, venue, priority, isDone); eventList.add(newEvent); } @@ -269,7 +266,8 @@ public boolean editEvent(String eventName, String eventNewName, LocalDateTime ev Priority eventPriority) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { - event.updateEvent(eventNewName, eventTime, eventVenue, eventPriority); + String name = getDuplicateEventName(eventNewName); + event.updateEvent(name, eventTime, eventVenue, eventPriority); return true; } } @@ -444,5 +442,15 @@ public EventList filterByDateTime(LocalDateTime eventDateTime) { return filteredList; } + private String getDuplicateEventName(String name) { + int index = 1; + String duplicateName = name; + while (getEventByName(duplicateName).isPresent()) { + duplicateName = String.format("%s(%d)", name, index); + index++; + } + + return duplicateName; + } } From f643eedb0e1fd817f16c45a2196417341c87b758 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 08:13:59 +0800 Subject: [PATCH 524/619] Update JUnit tests --- .../seedu/manager/command/AddCommandTest.java | 35 +++---------------- .../manager/parser/ParserIntegrationTest.java | 8 ++--- 2 files changed, 7 insertions(+), 36 deletions(-) diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index 280745555c..b52810f4a6 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -4,13 +4,12 @@ import org.junit.jupiter.api.Test; import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; -import seedu.manager.exception.DuplicateDataException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; public class AddCommandTest { private EventList eventList; @@ -85,7 +84,7 @@ public void add_oneParticipantInvalidEvent_failure() { //@@author jemehgoh @Test - public void add_duplicateEvent_throwsException() { + public void add_duplicateEvent_success() { EventList eventList = new EventList(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), @@ -94,23 +93,9 @@ public void add_duplicateEvent_throwsException() { AddCommand addCommand = new AddCommand("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), "Venue A", Priority.HIGH); addCommand.setData(eventList); + addCommand.execute(); - assertThrows(DuplicateDataException.class, addCommand::execute); - } - - @Test - public void add_duplicateParticipant_throwsException() { - EventList eventList = new EventList(); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); - eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-10 10:00", formatter), - "Venue A", Priority.HIGH); - eventList.addParticipantToEvent("John", "9123 8321", "example1@gmail.com", "Event 1"); - - AddCommand addCommand = new AddCommand("Event 1", LocalDateTime.parse("2024-10-10 10:00", - formatter), "Venue A", Priority.HIGH); - addCommand.setData(eventList); - - assertThrows(DuplicateDataException.class, addCommand::execute); + assertTrue(eventList.getEventByName("Event 1(1)").isPresent()); } @Test @@ -138,17 +123,5 @@ public void add_oneItemInvalidEvent_failure() { assertEquals(expectedMessage, addCommand.getMessage()); } - - @Test - public void add_duplicateItem_throwsException() { - eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-25 16:00", formatter), - "Venue 1", Priority.MEDIUM); - eventList.addItemToEvent("Crepe paper", "Event 1"); - - AddCommand addCommand = new AddCommand("Crepe paper", "Event 1"); - addCommand.setData(eventList); - - assertThrows(DuplicateDataException.class, addCommand::execute); - } } diff --git a/src/test/java/seedu/manager/parser/ParserIntegrationTest.java b/src/test/java/seedu/manager/parser/ParserIntegrationTest.java index efcf5a4fad..e526198629 100644 --- a/src/test/java/seedu/manager/parser/ParserIntegrationTest.java +++ b/src/test/java/seedu/manager/parser/ParserIntegrationTest.java @@ -5,13 +5,11 @@ import seedu.manager.command.Command; import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; -import seedu.manager.exception.DuplicateDataException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; class ParserIntegrationTest { private EventList events; @@ -39,13 +37,13 @@ void parseCommand_addCommandAddEvent_success() { } @Test - void parseCommand_addCommandDuplicateEvent_throwsException() { + void parseCommand_addCommandDuplicateEvent_success() { String commandString = "add -e Event 1 -t 2024-10-21 16:00 -v Venue 1 -u HIGH"; Command command = parser.parseCommand(commandString); command.setData(events); + command.execute(); - assertThrows(DuplicateDataException.class, () -> { - command.execute();}); + assertEquals(2, events.getListSize()); } @Test From 8ae0b6eb2313bd5cea86c706385ac05c65d77243 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 08:17:23 +0800 Subject: [PATCH 525/619] Remove unused DuplicateDataException --- src/main/java/seedu/manager/Main.java | 3 +-- .../java/seedu/manager/command/AddCommand.java | 4 +--- src/main/java/seedu/manager/event/Event.java | 10 ++-------- src/main/java/seedu/manager/event/EventList.java | 6 +----- .../manager/exception/DuplicateDataException.java | 15 --------------- 5 files changed, 5 insertions(+), 33 deletions(-) delete mode 100644 src/main/java/seedu/manager/exception/DuplicateDataException.java diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 7deddf5f1b..39169db07d 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -2,7 +2,6 @@ import seedu.manager.command.Command; import seedu.manager.event.EventList; -import seedu.manager.exception.DuplicateDataException; import seedu.manager.exception.InvalidCommandException; import seedu.manager.parser.Parser; import seedu.manager.ui.Ui; @@ -44,7 +43,7 @@ private static void runCommandLoop() { ui.showOutputToUser(command); saveData(); isGettingCommands = !command.getCanExit(); - } catch (InvalidCommandException | DuplicateDataException exception) { + } catch (InvalidCommandException exception) { ui.showErrorMessageToUser(exception); } } diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index 20de81aea7..c2c3fa6eab 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -1,8 +1,6 @@ package seedu.manager.command; import seedu.manager.enumeration.Priority; -import seedu.manager.exception.DuplicateDataException; - import java.time.LocalDateTime; @@ -90,7 +88,7 @@ public AddCommand(String itemName, String eventName) { *

        */ @Override - public void execute() throws DuplicateDataException { + public void execute() { if (participantName != null) { boolean isAdded = eventList.addParticipantToEvent( participantName, diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 29c2ea1656..461e7241af 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -1,7 +1,6 @@ package seedu.manager.event; import seedu.manager.enumeration.Priority; -import seedu.manager.exception.DuplicateDataException; import seedu.manager.item.Item; import seedu.manager.item.Participant; @@ -16,9 +15,6 @@ * It provides methods to access and modify the time and venue of the event. */ public class Event { - private static final String DUPLICATE_PARTICIPANT_MESSAGE = "Duplicate participant!"; - private static final String DUPLICATE_ITEM_MESSAGE = "Duplicate item!"; - protected ArrayList participantList; private ArrayList itemList; private String eventName; @@ -203,10 +199,9 @@ public boolean isDone() { * * @param participantName the name of the participant to be added to the list. * @param isPresent {@code true} if the participant is to be present, {@code false} otherwise. - * @throws DuplicateDataException if a participant with the same name exists in the list. */ public void addParticipant(String participantName, String participantNumber, String participantEmail, - boolean isPresent) throws DuplicateDataException { + boolean isPresent) { String name = getDuplicateParticipantName(participantName); Participant participant = new Participant(name, participantNumber, participantEmail, isPresent); this.participantList.add(participant); @@ -217,9 +212,8 @@ public void addParticipant(String participantName, String participantNumber, Str * Adds an item with a given name to the event's item list. * * @param itemName the name of the item to be added. - * @throws DuplicateDataException if an item with the same name is already in the list. */ - public void addItem(String itemName, boolean isPresent) throws DuplicateDataException { + public void addItem(String itemName, boolean isPresent) { String name = getDuplicateItemName(itemName); Item item = new Item(name, isPresent); itemList.add(item); diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index d2b43d09f5..5c981727ec 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -1,7 +1,6 @@ package seedu.manager.event; import seedu.manager.enumeration.Priority; -import seedu.manager.exception.DuplicateDataException; import java.time.LocalDate; import java.time.LocalDateTime; @@ -15,8 +14,6 @@ * It provides methods to manage an event list. */ public class EventList { - private static final String DUPLICATE_EVENT_MESSAGE = "Duplicate event!"; - private final ArrayList eventList; /** @@ -78,10 +75,9 @@ public void addEvent(Event event) { * @param time the time of the event. * @param venue the venue where the event will take place. * @param priority the priority level of the event - * @throws DuplicateDataException if an event with eventName is present in the event list. */ public void addEvent(String eventName, LocalDateTime time, - String venue, Priority priority) throws DuplicateDataException { + String venue, Priority priority) { addEvent(eventName, time, venue, priority, false); } diff --git a/src/main/java/seedu/manager/exception/DuplicateDataException.java b/src/main/java/seedu/manager/exception/DuplicateDataException.java deleted file mode 100644 index 62040d79e7..0000000000 --- a/src/main/java/seedu/manager/exception/DuplicateDataException.java +++ /dev/null @@ -1,15 +0,0 @@ -package seedu.manager.exception; - -//@@author jemehgoh -/** - * Signals that an item being added to a list is a duplicate. - */ -public class DuplicateDataException extends RuntimeException { - - /** - * @param message contains information on the type of duplicate item. - */ - public DuplicateDataException(String message) { - super(message); - } -} From 1371cbde897403dd4a99066528fc0364b1ab036c Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 08:30:41 +0800 Subject: [PATCH 526/619] Update UG to reflect new functionality --- docs/UserGuide.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 913c1b2214..f592930ea5 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -99,10 +99,14 @@ Format: * `add -m ITEM -e EVENT` for adding an item to an event. Remarks: + * `TIME` must be entered in the format `yyyy-mm-dd HH:mm`. * `PRIORITY` must be either `HIGH`, `MEDIUM`, or `LOW`. * The values entered for `PRIORITY` are case-insensitive. - +* If the event list has an `Event` with the name `EVENT`, or the specified event has a `Participant` or `Item` with the name of the `Participant`/`Item` to be added, an indexed suffix is added to differentiate the different entries. + * e.g. adding two `Event`s with the same name `Wood workshop` would result in the second `Event` being named `Wood workshop (1)`. +* The index value increases as more `Event`s, `Item`s or `Participant`s are added. + Examples: * `add -e Origami workshop -t 2024-10-12 18:00 -v Building A -u HIGH` adds an event with name `Origami workshop`, time `2024-10-12 18:00`, venue `Building A` and priority `HIGH` to the events list. @@ -148,9 +152,14 @@ Edits the information of an event/participant/item. Format: -* `edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY` for editing an event's basic information. +* `edit -e OLD_EVENT_NAME -name NEW_EVENT_NAME -t TIME -v VENUE -u PRIORITY` for editing an event's basic information. * `edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT` for editing a participant's contact information in an event. -* `edit -m ITEM > NEW_ITEM -e EVENT` for editing an item's information in an event. +* `edit -m OLD_ITEM_NAME > NEW_ITEM_NAME -e EVENT` for editing an item's information in an event. + +Remarks: + +* If there is already an `Event` with the name `NEW_EVENT_NAME` in the event list, or an `Item` with the name `NEW_ITEM_NAME` in the specified event, an indexed suffix is added to differentiate the events. + * e.g. given that an `Event` named `Wood workshop` is already present in the list, editing another `Event` to have the name `Wood workshop` would result in it being named `Wood workshop (1)`. Examples: From 3d52b9d8cde8d00f3b42a556244c019ac53aa3ed Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 08:40:32 +0800 Subject: [PATCH 527/619] Update I/O redirection test --- text-ui-test/EXPECTED.TXT | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 7da766c73b..b38be93951 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -53,53 +53,49 @@ Enter a command: Event not found! Enter a command: Event information successfully updated ------------------------ Enter a command: There are 1 events in your list! Here are your scheduled events: -1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +1. Event name: dinner party(1) / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y ------------------------ -Enter a command: Participant added successfully +Enter a command: Event not found! ------------------------ Enter a command: Invalid command! Please enter your commands in the following format: view -e EVENT -y TYPE ------------------------ -Enter a command: Participant contact information successfully updated +Enter a command: Event/Participant not found! ------------------------ -Enter a command: There are 1 participants in dinner party! Here are your participants: -1. Name: Mary / Number: 98624759 / Email: Mary@gmail.com [ ] - +Enter a command: Event not found! ------------------------ Enter a command: Event added successfully ------------------------ Enter a command: Events successfully sorted by name! 1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N -2. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +2. Event name: dinner party(1) / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y ------------------------ Enter a command: Events successfully sorted by time! -1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +1. Event name: dinner party(1) / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y 2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ -Enter a command: Item added successfully +Enter a command: Event not found! ------------------------ -Enter a command: Item accounted for. +Enter a command: Event not found! ------------------------ -Enter a command: There are 1 items in dinner party! Here are your items: -1. curry chicken [X] - +Enter a command: Event not found! ------------------------ Enter a command: There are 2 events in your list! Here are your scheduled events: -1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +1. Event name: dinner party(1) / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y 2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ Enter a command: Events successfully filtered by name! -1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +1. Event name: dinner party(1) / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y ------------------------ Enter a command: Events successfully filtered by date! -1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +1. Event name: dinner party(1) / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y ------------------------ Enter a command: Events successfully filtered by time! @@ -107,7 +103,7 @@ Enter a command: Events successfully filtered by time! ------------------------ Enter a command: Events successfully filtered by date-time! -1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +1. Event name: dinner party(1) / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y ------------------------ Enter a command: Events successfully filtered by priority! @@ -115,7 +111,7 @@ Enter a command: Events successfully filtered by priority! ------------------------ Enter a command: There are 2 events in your list! Here are your scheduled events: -1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +1. Event name: dinner party(1) / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y 2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ @@ -133,3 +129,4 @@ Enter a command: There are 1 items in anniversary celebration! Here are your ite ------------------------ Enter a command: Thank you for using EventManagerCLI. Goodbye! ------------------------ + From 5d4e8528a43bb0679d260aa8f31f1333d056f0c2 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 12:47:11 +0800 Subject: [PATCH 528/619] Update I/O redirection tests --- text-ui-test/EXPECTED.TXT | 1 - 1 file changed, 1 deletion(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index b38be93951..62ddb613fe 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -129,4 +129,3 @@ Enter a command: There are 1 items in anniversary celebration! Here are your ite ------------------------ Enter a command: Thank you for using EventManagerCLI. Goodbye! ------------------------ - From 38ac20539bde4f99fc974d6d12a13cb41320f899 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 13:18:40 +0800 Subject: [PATCH 529/619] Update file name and add copy list overwrite test case --- docs/DeveloperGuide.md | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index f14e9f1972..d6c4ac1e19 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -653,10 +653,10 @@ The interactions between components of `FindCommand#execute` are shown in the ** ### Saving and loading of data -As mentioned in the _Storage component_ section, the program automatically saves any stored data in `EventList` into `data.csv` file, and loads +As mentioned in the _Storage component_ section, the program automatically saves any stored data in `EventList` into `data.txt` file, and loads the data from this file when the program runs. -In `data.csv`, each line represents an object (`Event`, `Participant`, or `Item`), organised in the following format: +In `data.txt`, each line represents an object (`Event`, `Participant`, or `Item`), organised in the following format: ``` EVENT,FIELD,FIELD,... @@ -667,19 +667,19 @@ ITEM,FIELD,FIELD,... where `FIELD` represents a value corresponding to a property of the object (e.g., `Event` name or `Participant` email). This functionality is implemented by the `Storage` and `FileParser` classes, encompassing two main operations: -* `Main#loadData()`, which loads data from the `data.csv` file into `EventList`. -* `Main#saveData()`, which saves all data stored in `EventList` (including its `Events`, `Participants`, and `Items`) into `data.csv`. +* `Main#loadData()`, which loads data from the `data.txt` file into `EventList`. +* `Main#saveData()`, which saves all data stored in `EventList` (including its `Events`, `Participants`, and `Items`) into `data.txt`. #### The `Main#loadData()` operation works as follows: -1. `Storage` initializes `FileParser` to read data from `data.csv` into `EventList`. +1. `Storage` initializes `FileParser` to read data from `data.txt` into `EventList`. 2. `FileParser` processes each line, identifying whether it represents an `Event`, `Participant`, or `Item`, and appropriately adds each object to the relevant `Event` in `EventList`. 3. Lines with insufficient or invalid fields are skipped, while lines with extra fields have the additional fields ignored. #### Loading Events, Participants and Items For `Event` loading: -* `Storage` creates an instance of `FileParser` and provides the file path to `data.csv`. +* `Storage` creates an instance of `FileParser` and provides the file path to `data.txt`. * `FileParser` reads each line, and for `Event` lines, it adds a new `Event` to `EventList` using the fields from the line. For `Participant` and `Item` loading: @@ -695,13 +695,13 @@ The logic for the loading of `Item`s is similar to that for `Participant`s. #### The `Main#saveData()` operation saves data in the same order as `Main#loadData()` and works as follows. -1. `Storage` retrieves `Events` from `EventList` and writes each `Event` and its associated `Participants` and `Items` to `data.csv`. +1. `Storage` retrieves `Events` from `EventList` and writes each `Event` and its associated `Participants` and `Items` to `data.txt`. 2. Each line is formatted based on the object type, either as an `Event`, `Participant`, or `Item`. #### Saving Events, Participants, and Items For saving `Events`: -* Storage obtains the list of Events from EventList and writes each Event line by line to data.csv. +* Storage obtains the list of Events from EventList and writes each Event line by line to data.txt. For `Participant` and `Item` saving: * For each Event, Storage retrieves the list of Participants and Items, writing each line in the respective format. @@ -1007,6 +1007,14 @@ The user is able to organise and manage his events more quickly and efficiently 2. Test case: `copy Event 1 > Event 2` Expected: The `Participant` list in `Event 1` is not copied over to `Event 2`. An error message is shown. + +2. Copying a `Participant` list to an event with an existing `Participant` list. + + 1. Prerequisite: Events with the names `Event 1` and `Event 2` are present in the list. + Both `Event 1` and `Event 2` have `Participant`s in their `Participant` lists. + + 2. Test case: `copy Event 1 > Event 2` + Expected: The `Participant` list in `Event 1` is copied over to `Event 2`, overwriting `Event 2`'s `Participant` list. A success message is shown.
        ### Sorting the event list @@ -1045,4 +1053,4 @@ The user is able to organise and manage his events more quickly and efficiently 2. Run the program by opening a new terminal window and entering `java -jar manager.jar`. The program would give a warning that a line cannot be loaded, and the `Event` represented by the line would not be present in the `Event`s list. - 3. Essentially all corrupted rows are ignored and file parsing will still work + 3. Essentially all corrupted rows are ignored and file parsing will still work. From 8c8279c6c813d10f61ba742521a3a7c87cbfc018 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 13:31:05 +0800 Subject: [PATCH 530/619] Amend parser description to reflect functionality change --- docs/DeveloperGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d6c4ac1e19..92f25b1ff5 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -238,7 +238,7 @@ switch (commandFlag) { ``` * Otherwise, the `Parser` parses the user command input based on the values of the `FLAG`s in the input. -* If any of the `FLAG`s in the user command input are not present or invalid, the `Parser` throws an `InvalidCommandException`. +* If any of the `FLAG`s in the user command input are not present, invalid or in the wrong order, the `Parser` throws an `InvalidCommandException`.
        The interactions between classes for the parsing of a command with parameters is shown in the following **Sequence Diagram**: From ebf83551784fcd20e929bdfff93132522c16fbdc Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 13:51:44 +0800 Subject: [PATCH 531/619] Fix absent variable issue in CopyCommand --- src/main/java/seedu/manager/command/CopyCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/command/CopyCommand.java b/src/main/java/seedu/manager/command/CopyCommand.java index edbe2a9ac1..049f6733ff 100644 --- a/src/main/java/seedu/manager/command/CopyCommand.java +++ b/src/main/java/seedu/manager/command/CopyCommand.java @@ -90,6 +90,6 @@ private Participant copyParticipant(Participant participant) { String name = participant.getName(); String email = participant.getEmail(); - return new Participant(name, email, isPresent); + return new Participant(name, email, false); } } From a2fd49ab0c74b6ad1a940b4f05243e28e33bff26 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 13:54:50 +0800 Subject: [PATCH 532/619] Fix I/O redirection tests --- text-ui-test/EXPECTED.TXT | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 911f7cb9b4..482635766b 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -65,9 +65,7 @@ view -e EVENT -y TYPE ------------------------ Enter a command: Event/Participant not found! ------------------------ -Enter a command: There are 1 participants in dinner party! Here are your participants: -1. Name: Mary / Email: Mary@gmail.com [ ] - +Enter a command: Event not found! ------------------------ Enter a command: Event added successfully ------------------------ From d35e8bb6f8ca44f81628804152619b2c5552a280 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 14:08:10 +0800 Subject: [PATCH 533/619] Edit user guide in line with phone number removal --- docs/UserGuide.md | 20 +++++++++---------- .../seedu/manager/command/CopyCommand.java | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index b255ba16cb..282ec62cb4 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -59,13 +59,13 @@ Here are the possible commands: menu: List commands list: List events. add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. -add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. +add -p PARTICIPANT -email EMAIL -e EVENT: Add a participant to an event. add -m ITEM -e EVENT: Add an item to an event. remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. -edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. +edit -p PARTICIPANT -email EMAIL -e EVENT: Edit participant contact info. edit -m ITEM > NEW_ITEM -e EVENT: Edit an item in an event. view -e EVENT -y TYPE: View the list of participants or items of an event. mark -e EVENT -s STATUS: Mark an event as done or not done. @@ -95,10 +95,11 @@ Adds an event to the event list, a participant to an event, or an item to an eve Format: * `add -e EVENT -t TIME -v VENUE -u PRIORITY` for adding an event to the events list. -* `add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT` for adding a participant to an event. +* `add -p PARTICIPANT -email EMAIL -e EVENT` for adding a participant to an event. * `add -m ITEM -e EVENT` for adding an item to an event. Remarks: + * `TIME` must be entered in the format `yyyy-mm-dd HH:mm`. * `PRIORITY` must be either `HIGH`, `MEDIUM`, or `LOW`. * The values entered for `PRIORITY` are case-insensitive. @@ -106,7 +107,7 @@ Remarks: Examples: * `add -e Origami workshop -t 2024-10-12 18:00 -v Building A -u HIGH` adds an event with name `Origami workshop`, time `2024-10-12 18:00`, venue `Building A` and priority `HIGH` to the events list. -* `add -p John Tan -n 91583215 -email john@gmail.com -e Origami workshop` adds a participant `John Tan` to the event `Origami workshop`. +* `add -p John Tan -email john@gmail.com -e Origami workshop` adds a participant `John Tan` to the event `Origami workshop`. * `add -m Origami paper -e Origami workshop` adds an item `Origami paper` to the event `Origami workshop`. ### Removing an event, participant or item: `remove` @@ -149,13 +150,13 @@ Edits the information of an event/participant/item. Format: * `edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY` for editing an event's basic information. -* `edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT` for editing a participant's contact information in an event. +* `edit -p PARTICIPANT -email EMAIL -e EVENT` for editing a participant's contact information in an event. * `edit -m ITEM > NEW_ITEM -e EVENT` for editing an item's information in an event. Examples: * `edit -e CS2113 -name CS2113T -t 2024-10-25 16:00 -v LT16 -u HIGH` edits the information of the event `CS2113`. -* `edit -p Mary -n 9182 3213 -email mary@gmail.com -e CS2113` edits the contact information of the participant `Mary` in the event `CS2113`. +* `edit -p Mary -email mary@gmail.com -e CS2113` edits the contact information of the participant `Mary` in the event `CS2113`. * `edit -m balloon > cake -e anniversary` edits the item `balloon` in the event `anniversary` to `cake`.
        @@ -296,10 +297,9 @@ For Events For Participants: ``` -"PARTICIPANT",PARTICIPANT_NAME,NUMBER,EMAIL,EVENT,STATUS +"PARTICIPANT",PARTICIPANT_NAME,EMAIL,EVENT,STATUS ``` -* `NUMBER` must be an 8-digit number * `EMAIL` must follow a similar format such as example@gmail.com * An entry for the `Event` corresponding to `EVENT` must be present in `data.csv`. * `STATUS` must be either `Y` or `N` @@ -325,13 +325,13 @@ If the above format or parameter constraints are not followed, the `Event`, `Par * List possible commands: `menu` * List all events: `list` * Add event: `add -e EVENT -t TIME -v VENUE -u PRIORITY` -* Add participant to an event: `add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT` +* Add participant to an event: `add -p PARTICIPANT -email EMAIL -e EVENT` * Add item to an event: `add -m ITEM -e EVENT` * Remove event: `remove -e EVENT` * Remove participant from an event: `remove -p PARTICIPANT -e EVENT` * Remove item from an event: `remove -m ITEM -e EVENT` * Edit event: `edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY` -* Edit participant of an event: `edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT` +* Edit participant of an event: `edit -p PARTICIPANT -email EMAIL -e EVENT` * Edit item of an event: `edit -m ITEM > NEW_ITEM -e EVENT` * View all participants or items for an event: `view -e EVENT -y TYPE` * Mark an event as done: `mark -e EVENT -s STATUS` diff --git a/src/main/java/seedu/manager/command/CopyCommand.java b/src/main/java/seedu/manager/command/CopyCommand.java index edbe2a9ac1..049f6733ff 100644 --- a/src/main/java/seedu/manager/command/CopyCommand.java +++ b/src/main/java/seedu/manager/command/CopyCommand.java @@ -90,6 +90,6 @@ private Participant copyParticipant(Participant participant) { String name = participant.getName(); String email = participant.getEmail(); - return new Participant(name, email, isPresent); + return new Participant(name, email, false); } } From b5678af10a9b9f3d90298d6921c20cfd0bf2e62e Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 14:20:15 +0800 Subject: [PATCH 534/619] Update UG with phone number removal --- docs/DeveloperGuide.md | 6 +++--- .../AddParticipantEventSequenceDiagram.puml | 6 +++--- .../AddParticipantSequenceDiagram.puml | 2 +- ...EditParticipantCommandSequenceDiagram.puml | 4 ++-- .../AddParticipantEventSequenceDiagram.png | Bin 34674 -> 36455 bytes docs/images/AddParticipantSequenceDiagram.png | Bin 25997 -> 24027 bytes .../EditParticipantCommandSequenceDiagram.png | Bin 35385 -> 32777 bytes 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 92f25b1ff5..f2ef4f0968 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -818,7 +818,7 @@ The user is able to organise and manage his events more quickly and efficiently A `Participant` with the name `Participant 1` is present in `Event 1`'s `Participant` list. List all `Participant`s with `view -e Event 1 -y participant` after each test case. - 2. Test case: `add -p Participant 1 -n 9212 8765 -email part@gmail.com -e Event 1`. + 2. Test case: `add -p Participant 1 -email part@gmail.com -e Event 1`. Expected: No `Participant` is added. A duplicate entry error message is shown. ### Adding an item @@ -908,11 +908,11 @@ The user is able to organise and manage his events more quickly and efficiently 1. Editing a `Participant` in an `Event` 1. Prerequisite: An event with the name `Event 1` is present in the list. - A `Participant` with the name `Jonathan` and number `97835365` is present in `Event 1`'s `Participant` list. + A `Participant` with the name `Jonathan` and email `than@gmail.com` is present in `Event 1`'s `Participant` list. List all `Participant`s with `view -e Event 1 -y participant` after each test case. 2. Test case: `edit -p Jonathan -n 91823213 -email jona@gmail.com -e Event 1` - Expected: The number for `Jonathan` is changed to `91823213`. A success message is shown. + Expected: The email for `Jonathan` is changed to `jona@gmail.com`. A success message is shown. ### Editing an item diff --git a/docs/diagrams/AddParticipantEventSequenceDiagram.puml b/docs/diagrams/AddParticipantEventSequenceDiagram.puml index fcdb3794a8..33a10359a4 100644 --- a/docs/diagrams/AddParticipantEventSequenceDiagram.puml +++ b/docs/diagrams/AddParticipantEventSequenceDiagram.puml @@ -10,17 +10,17 @@ participant "participantList:ArrayList" as participantList group sd Add participant to event activate eventList - eventList -> event : addParticipant(String, String, String) + eventList -> event : addParticipant(participantName, participantEmail) activate event - event -> event : getParticipantByName(participantName) + event -> event : getParticipantByName(participantName, participantEmail) activate event return :Event alt participant already present event --> eventList:throws DuplicateDataException else else - event -> participant : Participant(String, String, String) + event -> participant : Participant(participantName, participantEmail) activate participant return participant:Participant diff --git a/docs/diagrams/AddParticipantSequenceDiagram.puml b/docs/diagrams/AddParticipantSequenceDiagram.puml index 02227fac8e..3488e81b54 100644 --- a/docs/diagrams/AddParticipantSequenceDiagram.puml +++ b/docs/diagrams/AddParticipantSequenceDiagram.puml @@ -7,7 +7,7 @@ participant ":EventList" as eventList group sd Add participant activate command - command -> eventList : addParticipantToEvent(participantName, participantNumber,\n participantEmail, eventName) + command -> eventList : addParticipantToEvent(participantName,\n participantEmail, eventName) activate eventList eventList -> eventList : getEventByName(eventName) diff --git a/docs/diagrams/EditParticipantCommandSequenceDiagram.puml b/docs/diagrams/EditParticipantCommandSequenceDiagram.puml index dc05ae2834..f6e123bd68 100644 --- a/docs/diagrams/EditParticipantCommandSequenceDiagram.puml +++ b/docs/diagrams/EditParticipantCommandSequenceDiagram.puml @@ -9,7 +9,7 @@ main -> editCommand : execute() activate editCommand - editCommand -> eventList : editParticipant(participantName, participantNumber, participantEmail, eventName) + editCommand -> eventList : editParticipant(participantName, participantEmail, eventName) activate eventList loop for each event in eventList @@ -19,7 +19,7 @@ deactivate event opt eventName matches - eventList -> event : updateParticipant(participantName, participantNumber, participantEmail) + eventList -> event : updateParticipant(participantName, participantEmail) activate event event --> eventList : updated deactivate event diff --git a/docs/images/AddParticipantEventSequenceDiagram.png b/docs/images/AddParticipantEventSequenceDiagram.png index 55567f5cb12222238d38c122ce7c436764f8e15d..faa5c0810ccf2cceb6f45a02bd6cb520729ea9be 100644 GIT binary patch literal 36455 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

        }+uxiyuxT@C7 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

        @eQ&Vrj+=UiYSPa(4vCy?y0RLM* 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 TeXQ;@{Lxg`A>Y`%_xS$+#dp(F literal 35385 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 From 2234a9d31351d6940aeca8092fe0ce253b0f58d0 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 15:03:45 +0800 Subject: [PATCH 535/619] Update DG with new duplicate name functionality --- docs/DeveloperGuide.md | 21 ++++++++++----- docs/diagrams/AddEventSequenceDiagram.puml | 24 ++++++++---------- .../AddParticipantEventSequenceDiagram.puml | 21 +++++++-------- docs/images/AddEventSequenceDiagram.png | Bin 34001 -> 26559 bytes .../AddParticipantEventSequenceDiagram.png | Bin 36455 -> 28429 bytes 5 files changed, 33 insertions(+), 33 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index f2ef4f0968..ea35cdea7d 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -316,9 +316,12 @@ The interactions between components during the operation selection in `AddComman The `EventList#addParticipantToEvent()` operation works as follows: 1. `EventList` gets the `Event` with the event name `eventName` from the list of `Event`s stored within it. -2. In the selected `Event`, `Event` checks if there is a `Participant` with the name in `participantName` in the list of `Participant`s. If there is one, it throws a `DuplicateDataException`. +2. In the selected `Event`, `Event` checks if there is a `Participant` with the name in `participantName` in the list of `Participant`s. If there is one, it adds an indexed suffix to `participantName`. 3. Otherwise, `Event` creates a new `Participant` object with the parameters passed to it, and adds it to the `Participant` list. +The indexed suffix added for duplicate `Participant` names takes the form `NAME (INDEX)`. For each duplicate added, the index is increased. +For example, three participants with the name `John Tan` will be stored as `John Tan`, `John Tan (1)` and `John Tan (2)`. + If an `Event` with a name matching `eventName` is not found, the operation returns `false` to indicate that the operation was unsuccessful. Otherwise, the operation returns `true`.

        @@ -331,7 +334,7 @@ The operation logic for `EventList#addItemToEvent()` is similar to that for `Eve The interactions between components during the execution of the `EventList#addEvent()` operation are show in the **Sequence Diagram** below: -1. `EventList` checks if there is a `Event` with the name in `eventName` in its list of `Events`s. If there is one, it throws a `DuplicateDataException`. +1. `EventList` checks if there is a `Event` with the name in `eventName` in its list of `Events`s. If there is one, it adds an indexed suffix to `eventName`. 2. Otherwise, `EventList` creates a new `Event` object with the parameters passed to it, and adds it to the `Event` list. @@ -450,7 +453,10 @@ Given below is an example usage scenario and the behaviour of the `edit` feature It looks for the event and the specified participant, and then modifies the contact information and returns true if the participant is found. Otherwise, it returns false. 4. If the flag is `-m`, `EditItemCommand` calls `EditItemCommand#execute()`, which calls `EventList#editItem()` to edit the item. It looks for the event and the specified item, modifies the item and returns true if the item is found. Otherwise, it returns false. -5. After Editing, a message `outputMessage` will be printed. +5. After editing, a message `outputMessage` will be printed. + +If the new name of the `Event`, `Participant`, or `Item` is a duplicate of that of an existing `Event`, `Participant`, or `Item`, an indexed suffix will be added to the name. +This is done in the same way as described in [Add feature](#add-feature); The interactions between components of `EditEventCommand#execute()` are shown in the **Sequence Diagram** below: @@ -609,7 +615,8 @@ and is invoked when the latter operation is called. The `FilterCommand` class is constructed with a specified filter flag and keywords. It then performs filter operations based on both the flag and keywords. Given below is an example usage scenario and the behaviour of the `filter` feature at each step: 1. The user enters the command filter followed by a flag (`-e: name, -d : date, -t: time, -x date-time, or -u: priority`) and their search keyword e.g. `filter -e work` to specify the filtering criterion -2. `FilterCommand` calls `FilterCommand#execute`, which based on the flag invokes one of the following 3 methods +2. `FilterCommand` calls `FilterCommand#execute`, which based on the flag invokes one of the following 3 methods: + * `filterEventsByName()` - Finds events containing given name (keyword) * `filterEventsByDate()` - Finds events occurring during given date (keyword) * `filterEventsByTime()` - Finds events occurring during given time (keyword) @@ -808,7 +815,7 @@ The user is able to organise and manage his events more quickly and efficiently List all `Event`s with `list` after each test case. 2. Test case: `add -e Event 1 -t 2024-10-10 18:00 -v Venue 1 -u HIGH` - Expected: No `Event` is added. A duplicate entry error message is shown. + Expected: A `Event` with name `Event 1 (1)` is added. A success message is shown. ### Adding a participant @@ -819,7 +826,7 @@ The user is able to organise and manage his events more quickly and efficiently List all `Participant`s with `view -e Event 1 -y participant` after each test case. 2. Test case: `add -p Participant 1 -email part@gmail.com -e Event 1`. - Expected: No `Participant` is added. A duplicate entry error message is shown. + Expected: A `Participant` with name `Participant 1 (1)` is added. A success message is shown. ### Adding an item @@ -830,7 +837,7 @@ The user is able to organise and manage his events more quickly and efficiently List all `Item`s with `view -e Event 1 -y item` after each test case. 2. Test case: `add -p Item -e Event 1`. - Expected: No `Item` is added. A duplicate entry error message is shown. + Expected: A `Item` with name `Item (1)` is added. A success message is shown. ### Removing an event diff --git a/docs/diagrams/AddEventSequenceDiagram.puml b/docs/diagrams/AddEventSequenceDiagram.puml index 711c68e1ec..a369bc06b0 100644 --- a/docs/diagrams/AddEventSequenceDiagram.puml +++ b/docs/diagrams/AddEventSequenceDiagram.puml @@ -12,28 +12,24 @@ group sd Add event command -> eventList : addEvent(eventName, eventTime, eventVenue, eventPriority) activate eventList - eventList -> eventList : getEventByName(eventName) + eventList -> eventList : getDuplicateEventName(eventName) activate eventList - return :Event + return name:String - alt event already present - eventList --> command : throws DuplicateDataException - else else - create event - eventList -> event : Event(eventName, eventTime, eventVenue, eventPriority) - activate event + create event + eventList -> event : Event(name, eventTime, eventVenue, eventPriority) + activate event - return + return - eventList -> list : add(newEvent) - activate list + eventList -> list : add(newEvent) + activate list - return + return - return - end + return end diff --git a/docs/diagrams/AddParticipantEventSequenceDiagram.puml b/docs/diagrams/AddParticipantEventSequenceDiagram.puml index 33a10359a4..e1d3f23c6f 100644 --- a/docs/diagrams/AddParticipantEventSequenceDiagram.puml +++ b/docs/diagrams/AddParticipantEventSequenceDiagram.puml @@ -13,21 +13,18 @@ group sd Add participant to event eventList -> event : addParticipant(participantName, participantEmail) activate event - event -> event : getParticipantByName(participantName, participantEmail) + event -> event : getDuplicateParticipantName(participantName) activate event - return :Event + return name:String - alt participant already present - event --> eventList:throws DuplicateDataException - else else - event -> participant : Participant(participantName, participantEmail) - activate participant - return participant:Participant + create participant + event -> participant : Participant(name, participantEmail) + activate participant + return participant:Participant - event -> participantList : add(participant) - activate participantList - return - end + event -> participantList : add(participant) + activate participantList + return return end diff --git a/docs/images/AddEventSequenceDiagram.png b/docs/images/AddEventSequenceDiagram.png index 7d3087218363f140fc9a32f44eab3d1a1e9300a9..185a23ce6045bbe459bc4acc22c1c3d2818368d3 100644 GIT binary patch literal 26559 zcmcG$Wn5Hi+c&HzNOuZIhoq>4N(c<0NGT~XgeZcP(hMM70-_)Y3KAmHqtYqNhy{q! zD99kvG33zCF}mH?-q(G<&+qy2?hkGqm^EviaUB0TC&oZei-z(r<-UFUXwGRPF7DfR zpkUv={d(ji@XEpLXYb&DVxAgip7w6;em5MhdhXM5aCNw8>*;WX*UpdE(bLoY)@f;J z_ZzmZo?b3Dr0m^XygT0Wz$I#~8<~0jd41o0xQ_3mxr@4PL&vBaW=!3cgqj&oYM@`W z805LUur+_ds+(TtgwEXe@c5N?7P~u+oZiZVwoz981$1N@jcx0q9v2UetA8ve*odMH z1(J0e8ZEutSK3Cq;v>=RkKJY$jS5W7NAKypu*Od+)Wd|vr6jRM2| z%mfcBRqKGVO5>H9eCr;?Ey{>R(|AWg?>P>UiwkzN5oF#2S4bD1-LpB*;@;_!;;J83 zq!h-O-0L-C{dhb3_;!DHUp|$*HadQx!DBewWzWDl_-E}49WIJ|_I#NtVcWstp0CgM ziptvPmG;XRm4?bE$L8Ploh1+UXr68_UP0O)x$Ng)Ib`Kh7TA=lyoNh$-9)UJ@|FU3>*U1*sUMEiMP<$f z?*qFmf-KZWbM)y?iu*4!A6VY9D?Lw2mqem3Ju0P@uHRHek!Eqej+PaFYTBgVbLR!<~4oU0q+=(F<~VX z;aN~3pKvQ5p8JgV=czBOapQdI%q=Yu;t!;(N|DdP@3QYZl&7F*ZhPGP#g&Ia9|f_DBrNLxm44MgC&qnN{-??j}qG+EIPBXuW&nWoy9^Q_ur-|HWR8_7ro-jah z2!`OCgG3v7jvJsTVz@;c1#6!Wj%$-(`?d{GDp#Hm7#YtPpw4-!;vMcDj4j*9CIr2O zaT4@?Lbx{>iu=Gz!His1$M4(?!Rctv!cV$Lv8k$zqK!YJa9ex_u&HyA?7BJ`j4m2}f?#7tlAU`(Nau-Nh@xgjs@WZim5z}TZKS?;7B8!U7HPD#U2kdS zVgFJ=dMC#0$I|##ZE~(w=llqd-OGB41DkGc--+*vdK)d>SeRz)`Fc3D@3qaX&Dxtn zB(KwsJUok!msPGNXl`}bqvy91B&6tMx@;NlAk8vduvg)8v&fBxqEp$fh&et$_MNx%bDZ(j0=sL zc54UIT(e=2ED)Ngmsi^#G&jGxe(R1g+QT90QjN_-b$wx1>1R7EY{D4(;>6zY_T&-Yx zmwZYX9c6_i<`LI#o10raU1aQG=qt=5v{`958+O($vD+)-ALKbwS!{oP+&Fdf$I1LS z;)vNHQTF~5Q{Mv4j=%4@FL>_e;&%%B(l9~cVhn;CZY4;O$N=_xIRanBg)%t`YJmw+(%<|GrXO#KFdFq?hCh{ z%@J$l<72xotV=f2Bc<#;+f72MC~Z|MpbXQyl(qNqu}bj3^Gl|P^V)AojY8G?R;HF0 z+f@SA$UY8rx=9{}ZIvtE_C$`N>y~U1BBqZbRPg?~~2% zi*$ZPk1Y#0QBKfTSD7XQp?jHeIq;=lWY?6*Y^V68G=T z9-f>BHpUX&lNcZNSU)`<-x3jLS3c1>Bi%Vg+~}BSf?ZRwX<5=H+M=q_;eE1J-t{jJ zDxCW+ec9U@dHU|2P?`Bl*MS!-8%$I%-d z1b%AvW7M%R-uOAJJnCDmi}niMJXu7)F;PV-(%YlaB2OEy8K0hgDlhNCL&i&t?|prJ zbLbokE>~QpU&&Nz>dfeC(2TEre(9O(x7vn+?GMsT?~{+}yu2!@!7(~gpy)GSKR-`e zXj&H5B%0`!j6MCu;oZFoU;M?az+U>EmcFBn;V84&m@@AdFGLy*I4-aiihjSr#YE1p zkX&1vFOJ;(vbma(r#lm?F3iYxDDA!S&Z}vWtmM}E)MK`4TwO^C%z35-27cJsk=f_B zH^-#&&vbu%HI?1dcPVp9x725=L=Vrk}hXqJB0* zj$0!Ct6y*N2Dfa%XNn{ZI(7B3*VD(Zye+WS4voZBM>2D5y-9c+tKdJ5yC-K_sz`5; z(T1U95%Ze-WG+E_DpEgpZ(;UWZIrCRGrb)s*kim>t})%T19ny?4jiJ@ia2%ar{=+& z8%ePXJ|nA`5bK@jkbnRm^(!sm*V!c+mkM}>v@NG&KRUIsVqQd0vAwRH`&twA%|A_5uaRCxF`}wInicPmw*KqEAN`_?beH#ouu-q&lVla}1 z^BOuHTwqOG*j(X=_6;M; z8gmxzh%uyi4=re;97c8SO2k9TC}Xbe?%OXN|F8dE9+q%F>B2v*e$DOU>0Wk zY23RPSFK!I9v?bnBAP2!ZASUv271?k;^-rpu_k`*xF^}9R1YkMxny)6NJwTLdFgZE zk(>)H!n`;HN~P*GY3ur(4qBh-Ztg?6Neb6GaFs4i74=G2xXilH>9R9YmtURVQhY>@ zd|R+~Ca%M5SLrKHh&K5EIYrG~!E=n-ElC2`3=$Qt2&^oqARdJyu2vN7Zw;BxJ<=a4 zXGH^zlt}f?bP#a4{ajkbE z2y1g^$fcZ%k>NbST)91VuObH5=4nDR?9>=yY;Ap#3Wkl0YHqH=)~YhYvRxbHM+dA2 zO<%{=dJP#`2R=I}OzO#qykT~;D@RDe1h1Q^7%?cS_Z9n2s)M|z=D_9$3vTj_?=T-O zw+T24YD0t8aEdPolfKfxLgONbjrHE>opbkv&-g7Jzr(S7;Odc&2l(^Ojp4?Yixi?= z`^zs$C|v!>{HVcV_>0x$D%Ys%dG>9kI;o|7)*-os^!)+24EeGxHsmYA^{9(a-&eYg zytA8sJkkAJ912dBT>Bvw{_avM{cS~Y*4JnYB@!I@P}zvh+>1B%xQ*qii_i34x{p#~ zEM7TEGOs=6eq+8L!@Q*A{GiN#E5!S)S-irX%IjZjhbqGc4~G-hCcBVZk6H2)_UZDR zbQI)ojY?$umZ2PYWZJNABbtG!oB(|!$$ZWUU>>uaW3A_ujFU_4VL&k=Z?NkxI}h7s zy)o4}h)Ozst%LHARfQ9k_tDi}(%B0X#W@-7or0 zl>hN`;9%$pwMWy>rwE(bm9ox3Z5=c{tT75S8vKpnIQtYaSxlG*J<>z(&TZzrxN1VJ z-BHxC1&mck+(`K`+3(4Nb}Yz>n{li4HCAWb5bin88&U?^CD{O0(dh_c`+kgySrML&@_uwKLG6!4EQ3)gvUE2d$*d<$bfD5#&T*lqeN&fYGL?*1lbhk^y^U;(qmF@Z`1p~E1`W5 zyx>GgOf|JdDDPIYTe2nrjK&>Quj^o-J)+3)u;<8;-F;E3mn)QYG8Hw(-n93X47uJg zBx21Nb3Ar8e8+dRCB=!-`$aeflNv|FRH08&TwMZhG``ZtoSNxW*}C%Xp0O3>L`1<{bI4d1e`9aJkzJoXDYeebkq=n5{G#2@;R_=E z+IXQKt+*!y{_oxXE0gciuCYp9cJNzXo^)&4C?a*YMC3GtIYMjJuBD)}O=` zH+s#i;S4j)U!q)U?mbMlSxx3n+cg0{2U0@z=QbC-#A{!oQ&3)>oS|e)X+czbN z1x6&Z-oxYL^?o|MlXel`@6O@wnFLO>@&t#+#o=Jdu1?EFK3thPVX*UX(3%Kp*%?Nl zhDn>hpiQ!Eee>LByCB;RD~6K~J?`+nuc(i_jvH0w)RPV?HvorV_ipD2-mdz2`}P;Y z=fbiRtpg|4?5h_Zp6Kh$Y}l_6c?l}aTe}{+M}xFn3S9VG6Rsv@))o>hlDN40Sol;M zMzmSe^|X3Q)|Jo3u3gb?W!5S`+GnI(xiIU3`xjtr)$R3BJ@4Mzv5a&)4*0H6NHe{k zGwR33hc9t6WxIqpbE=o-j+3&O(Szsi38q*owPdqReR$wvu;9P4Y*FMw-jQ8+HiRT| zc=#LU7Kv5eTF7JG<36Rx!B?dU^Mj~4mEX%Zj4Zx+o{x)`b0s%X`680UrSS2gHsS6& zr_sEHpTDVmYTCOCnB_aKI0G`E4I?k4bn}P%B_!u|2W{|0@V&HkTg z%}dM=O4MC#U&y(h9P-84S<_%4)p78ZkV&1t6^Gazb?;QE2Ezjhvyzuzy-7MOE_l3% z`uJ73|QcU1? zczc&ZYAEj<)tpNC?Q`~R8t-6*2E59lJR$7F#!%tAWD195sJ& z(vwR_h98y1_ce`eHb%NpkkB|P!StDqw2c|K*N;{^eUz7*m$uDW#f-$;Whhu~?%hVI zO8zSn`BWdtdN;(zq?;sO)z_q5Q;fb`+*vPDK0I*rCo6Z_juA_LwTEfPqZ*kE+sJp1 z&y@KxF%^^2WdHct9?-2^5Q5`$?q?d&NuBqcT;#sGJ3Dae`>{M_2?v>hj@-tc?7%HO z+*K2o=7-ifh?qBtd*=L&YY8#@KA)Z>0nB)_58LMBO~AyIzi<$@+4=D{iOH)_TGBYG zcrH_}f9nwIWQ}M!Y9s%k8`2kA#ThaZzuQ)4dwu4q%Mq>>oEBAV#8Rw@S#M|=Z4I`m z`XZzzzrH}%^{q>sq@!~&zUAUz>TKbD^TBm;O?!o#KkoQOoEJPm7NK|eOT{l@YNLo+2|_Z?9NZrd5fHbUS6H335_ zBhn~L0cAm5su6#Ru*HMNZ^+*ISv+_s0B7;P5Z<*GU^jph`)h8|*_&+t|3;~qN9Z_y z-5)cO(drNP=VBazI&rw_wEB-$0-i{y!$w=j2v@K#C(RB_u)kUDZ02n#FdSPApqAmF zjadk%xP(!Wyb`TOSnW%3?knvnyQHQ~eayqoGP4+JXU$a_k^5%2XIVkCG!0H)DXFQ` zuH;|XIQN%^vAZ#m1*DJT#MPF`t}%{b`Prc={U$XEJ{k2#nZWL7aGm(pC(qJMD2A_kysL zAE5U3P{@6{7!h|<5j`zSR^)HN$mstj5@8(hv$LA<`|XH?tl-^;xS4}+*B(v;%64w z{eC4u+?F4^zHey zW48AM @auMU{ZN*?)uvv_)*<)juUef{D3+rMVP?xvk3>Y3i-%TO&9{g#r&O*{Jf zOa;~Gn|3#6LP@EB303Q7Da*C97!{e&^bWnerq9f-=v$ud>W064`}S$CXJc|BjV6IP3pqK`6uj4uwvT2OHFyFfH(+g+ zp~j`;W2RD_V^eBKk-|;LE{G6RKf?5U&aqdR!!n^w-h5$`f8a$^izPR%4 z=Fg9Q3&ToD4!7`dWnj-j*FWbyKJCTW>&!ed61>MPY*lQA9&QMztF8UnnYFhzH)P+I zpz-edm;4x#=-{ons>SaYOg7i%sC4u)6*szawG7Wm5*)=tR8d$O>XOS9 zgVi4Put4~}yng+f|HFq5;vvQrWma{OiG*q43u*LgckUsBcVyFTDgAz|EBsiz?5Uq_&?pAJ}_d)5+T^1?Cd0D{a-q49OG}6smrKk&-Pf zEuVw}r?=E+gaqeRIeC9IupgL6!o9b|m-N*ByoAs|H8eEH-(x?!ok~fZD7yblR4n0M zT39bMIp~7w^;v{ipK5D3w?t3=I-`}7uo!9 zLyTOSE7nu-<}-&mg5Lv|0)s|OGkvx7j% z-9+2Bbv!zii~N`zjXp?9N_z0%py%|3H|$l$=b>YJl2q|9H02Gzgy4w~Hg z{;|?~ZgA5GrmrK+(7_>!(*F8=0aFXV(nmhA(#b}toRWFE8K8&c^6z5Vkj0lPrsuXN z^E}4hKqE0J#$^zz%Da2q$|$odr|Jli;o&IQyo1SbEA|NX)byqIvH8*G4BM6n_%ZlZ zD3BWMlyr3Z_XK0Gb{l)2_2O#f#Z2%$)^Co;yFMx^D(WDF$Y765SN2xg0q#pLMmAYz zohRqRoI3_TBox1ftRT{cP*XyuDU=mOtb@c2mFx=T%*HWK+ zH~+0JslU$0&G*8?;||{QUn!ower?^bvyZ2%_Sv&*FqN2vZ_d5NP@xjvl7^AdT&}q( z#2>IeUt(1!cRpyf$5h_+>)H3KGkwrtreFBw&Yz>bz!pohhY)!DgfZ2Q51dBP?cL%MBC#0M1`L)_(u?E1&_}iodLS3E!bzwEF!?sb?H#9R^U77j3`}ecmyco9K{W|mqx?`oqLRz!g#iCByh^X?Prj`vy!Kzm_%t3%-_<9o) ztD!FMHjLQc&q+K ze6e1R0Ib?BE^4E=dB?TGFWMhsm2F;jm&)rOpv<|$kny)&m-l>T5o&r$#k)q#4^zOdeYn?}^ zIkf74C#4*{q{-Zjma~6zhkoSCGktX?@Jk}%5H%I%crE_%1#XYc$h< zn$K)X*`+S=843t?T52+-;MlF7A8~ds?W`sM4uyu=cxLUo`;gqR;QmgR65xrpZRd-&&Q+g6;_ZtM4r|sdVEMzz)lXT{4yy&!^(MxbMNh3kRKw3-Bjj zBk;FgljAnc`!-5wp8&>!y4hmL(-!oWH30)so`;uL`;+}w_u)${YhIWgETQ^fbP_iN zwHr7?90}Cz&_pNa$$qrJ=TWoq52;#tK%8)^a)k^9ZpshU$Tn;0RffP)_-QKMqKIkwX zvwPWjKCe&k(bfKP+nhqEh_9(w!X(5%RDEYQTY?f;^Di*dmxI<1tU;<+o%v-|5dVn> zAcprozodmOOE?An2qK2@`MNtNmThIS>%a~J znM6l8soC80JN+M{XEOg{&P4RJ8_*mk9T^Fpq3_h^-^zQj`OEyvnqS8_+1b++{cf&S zQ}y^hBj6k#i|8M56uqF9cjbLD#nq#@f@xre20UDaMMls08C_!ChALe~2XdO>{jb`y z^Qybn7Mk|-Ql-8@3$nDdM4XRfmBcipghCl@^2MvIZ`WC(vXlZMFOhT$)OwD+p(zdl zq^0i2>|ADq@1e}mV+AfuLu%w^5VSIx^rOl?BhZAuLD=}2;p~T;B`JK$9qjP?s+jg8 zV!hn?fm>^zRI7QF2Q5^RI6eS?x|n|8`v4Uql7raWh{ekX}iNAz&O$ISp3fb z@6)8Uiu|gckg`6T@?%tvCA!QXSypQ*@6_!GGJ+Eabz588AzX%nhn;L!K7s7ep|P2; zRm&U%MTOv7fL;wn-xwVa`~#b&)OyVnHr-fT7~xTGgj*VTc@4}0K5L;$SP=(%15l$< z?$T&AUYT-rW7LP_qqmk_jChuomH>1#ZQ8p6hjQ*I6hhc;u1vww54#ACSlSm@G|V$S z$33;pFa=mml+_lN2LU?S9AKoAK<~#HVa^mYE$v#{wvhvBuBJ zT{X_JWCXIBCz;=ub6~g`>E9h-%W??D>%EppBG)PY^M(Dhd^m;R=EBzVv~+Z)#de)J&J-}0i^vD2<{c*WVd$RUe>xtJ;B+47Q1AK>z zOs9tn>S19OQy0dUmD}z7#3|AY4Q3LYEcO#yiP@_YM|vsVNY%s-9r;^qAyR_(fFYjn zDh#uU8IfzLGBZWla;ZWoryF3TTaAkvvI(iVH6aC6mUf8d@JR!#e8~RQi7~JbpPsw_ z6I2S^7_`#tql-tnspDDYwFj6+K&s_cb{RY=s(?T=sO&$VB&5UY5fE8bRprlccs}K< zJ%y+W^j%ZaK7Nf@n>+NR*u^)Oj8RZJ?ur`b0Mwksn4%j6)I2G!egSp|pggsLM2q3u zgAX}&fo7C}&A#8hepTLCxr84%`#{nnzmC4Bf9fUgap%wZ5^755(qji#y(kS?k=Ty+ z3!nx7$tO;N5_5NvseXzawqrBqhZ$7e&_vu%R+fy%ub!v%^Vr0SM&@s=ObHN|a&x8| zYA?0DL%cVO%AmwQE@4Tz;UctHB`jN=Xoo#fVh!kk-P5kQfj*n3Nz50$mWHm{&*X2vdD3v?o8D2WtEA8bEHwm`5M^LCI#k>(Kz5k5SQ;Zu){ zt^>Ka>n*It>`Lh8J;JyvSNlq>qPb3cin4IXDoo@{RRmz>W zgOvFN^_ruGqTk6B-q>bD1~P(%OzZKitlW%_F0mzo3R#n)|O0QNs)U;?y8lquW7m*xug0VU6qI`|HZ6>iECk zYxv_!oFb5MZE9QKw{TMmu_*r}kg3UI_bGJLolCq`*JQt)P1#+d()Kt7NE1xSM)&hen>UjLBqU~` zvPE;9@t%e4xH;>?ciKKNo>M+nuW)vx35gUvUoba6R3$Aah{%XY1U=_dK7uXrh|*=W zU4*jiCVf~7vbdngw9M(H_iVq%&Zd`3?3m3h`?;x00*8>-H2-K5zwee)7P#f9z)erY z_RfxsVd{$|d>hZR3lEp>>nqoI&!q>2_{ad@B+9p+f!~j|M$No@TJRXHwe;hilA6Pp~rp)_w7oy&CE@6hVI=wfgY~|FO`1Pqkzmn=~sMf=$YjJfl8f zU5c@_wbi1+X?$vmLIy*g&mIgN0F_wJx9tFe z=s6&@1_JL)Z%N!?5Wfi!i4{AH*O&*5gLy`O?o&Drwyl(<@7ue4xLSej3TTH%jvT?p zvM{|Unxj?*rd|c|#pIkRGSCaKN7pM|e1vr{m`2k(6xTW)y}sM^{x@mff-63dMjlCt zvs`fk)u=r~UQ4|_UAFG#I3=sJMWw_W+OD?PPy+4YlW%)^dO*;Z$YB|Ic;cD~sJzHV zlxU^H2i82xrl1Dh3_13rno%r`Q0w+~*PFl(mzg$lYb`&;T8xGj5?zfhGTX=sTpIxF ztN}ToRQsNzm2&)!124t_u8ISx1C$JR4!VPcf&%*tk;Z^>SwW99lm2S@ExM4P9JF1H zYzmr`BeWctoqM}m3!n-(U)4Z+6&*;XV)O=t z3iL{qrY)W`Y8Uc)H=zNVxx>T)s|u@hI&%vI2@rsat?F1CxMl1PqG;FhK}9BIb*9fD zlb`D;N}U|Oz5f7!(J1m+Rx%KH98S_)x2W}eKFN~j4Pnv0IIiGD^zi9NV#bA3Y*J@a zZC|mIAmo7a;Tp}1QKqGqFk>AcxaCHH4}m?c>L-x`L8?dWyd?ITRb88aDTu0zC#TK; z7nL5F%?7w6Ih}HKlv4;5js4L_!~1_~B3u)=PPtp}r;Bv5zpr}EkTHi^D@v3KkM%v{ zIcbo8fx`or9qR@S#A7;?X$%=rz=Els1s3F?8A21j6uWxx z?2St+9JR#_qj`Ymf&Lq+Xfi5){jc&8%@_Ug%yO&(yj9XW2ELed04D=3?$*Ap;8#6hh+*A}4q(_C zuRE(hzI>bOx*ysKvT4iY*MJ zj^x&k%p*q6FFsd!U)1~zaQuDcK>uio%M7VC z#?p8I^efD1C})F*>+9=*=ybm%IeEF--4>fb7_RmZ0Bs2NtSOc)bFj({X~tViBaii< zA(O_K)~l#uG?b#_R)=1bJEO^k*M9Qu45sqq8-N)f01GfoiewLBBp{iCl*WvmY z-~0;?A;iP`8FVxFWDsdIaDchH=qWj|phwjMp=ZTD34PPpIo1dT<{MD$0CN6W1GMt#$c~~^KG1AD!QdF5^U-~aHAN4LJ%)`8 z`=2Uh7GNKYv%0#v$9Z=kv?YYtB{@j1nPG4_0c*9C<-)e_4E#Joz7A`KLsT;cQ9}^x zrRsmGlNvciiI=>X_ts}5P(*68Wyu)d^S)FM#WJ(|#5EfF!lAgLg)rx#%93hYU2V%2 za1{Unc`$FR@OK(BROJB2U4yC!erP;BGR*`WFD%Ug1_p-t`FXX4Ck~)lTpW&G(1jtl zG_Uo%zBW4m<|FU4gmr!OqQ(_feL;_?!4t7=P$EZh(k1ehpcj;a=)oj> zLDaY~+2AQOk?bg(SEbW6KwhA#3cI3dC@IgUpL|~3whtHA6{AN9dW*x{_a-*SE;KdA z@$jf9aTCtvl@&m(1$GUd@#$E}w{lpv=@?<+?gAZ-lxU`{ho1+@vdV3wk-q^H9ql$h z>>1*~WvT=xw1;@JY*~?-NdiA_JI~59=Yq(Ok>tT0m96OFh@(v?H2n z)2imCg9m!!F>VNalFJoN6y`*;nM}0fLNkOl3YE`mYd?DZ&jAE-i$lDn@jQ6s;rDi{ zXXOQ8pG705!F|H2>$xXG?UTL!8ByP6dKYjrJ72zQg_=T6TpZOwo%-~%EJ#s9(5`K4 zptslg;&beDP&|sh`|uH(6YuUH8n?Z1*NB`oxfCt}L#N?qcyW$8oLYEpdirvnHbeES zbkjC}?S8!RnWJal@6{HFf_BYxSy;gXcaT*p7kt=qnQY={kwo=`4yviCdE%(5-b^!! z)qsrSN%lUW#SGogWp;gm85v-I{nL|>#Kgqtp;x{=;q zI4U6X51PdqqxCZtIk4|j#G{NuBFm?2o8bbF<^Y_rUpw5NFj=|jc(_;a!e;)eY3O<= zUDe;P{x^aygsIf7cmxeAPdf?sbTx%M*0=>S0b)`vh2L{G2PG)nix(H&=Tubb88>iP zs&B!hFW*7H!f$KMWi@v)#|$ z4$uQ&?JpLB6ayZzRsE2-@F!~}A;Tx&XoC&AY4nU#(;DUtTJHabR82oX;lvc#5_|VB zies+1yysc3HnT#&TJffe1a2SHK$V@9`^vI64Nx(_kp4{-L>ndB>w}m>DbuV z0O$g9&v)_@U!e6#hK&yTCB6T_pi1o;FrYhs1;l*?jBTw1E-<5dQlpiJ2Z+ym;vZuu zSc7A918qrBNy$(Gs+f#ZL+q;)VA!_(qmQ!R>d~nurDFX^oON-uO+#!+2k<}3zen@i z3O}Ovm17!-X*G@*tI*f)glG&oPkV}Z9~9M*{~jD%=vD>7Snu2jaHFaXSCun~>@xh7wYyKV?p~@_4j=K#jURVWy5V*1QG<|n-)miuX zo(G7oP}C+b!4qKqJOSPh|t{h@Bnc$oH^85w1(ML?yp zd!X#QNbEqsEfhhfGUQcMtT!$)0awUtx|@QWoId8n)sOVvR9|!-NDM&wP2;ozguo#) z6c!fNWdIlmB4Eyfm5yC@An9ntGIO{QE2uW&%5TOgZSdsmZ;v(<19k-D+1cB(CxAAw z#4)M8jry~{k{ub~%-kPG5-I>-K~o?l5O4^D#s*GfDLgg|9SnR#30Uq=j@`_zi53w5 zZ5f^l+9p6xA|Ay9RszX_pYKzgAwmnTv{{3{7s$;J9w}$WDJv`IocfVd11SXE$ER5u z#Tn7x@A9ehmMvaIeY__`bz=*hPbJUEyZ%K7_)AMmfy)uS>z+d6>^|-7(I_5}5AOqH zCnF;Rv9AxrY$I))+`m>yjt&OT)egRe^Bmsc5et41%I63F`d+2RF1mH*zbqFjPPW&SP?|nrk)VR1ogr#`n^bB`6fj`ut2iahF3M-!p z(e3}#$uy=BaIliajL+Ab`FzRO)ebiiBOB<6SpYZ;_DN0PmUkWkfjFyv?PFR90n`cx zcJ}DEfFmff*4EYa(K|xP1`u-rZjAguzZ+0a#p9U0q#UE4Coe2uT}|&y=nVwzlTNzHl^U=JnwG7gvUZ z8Ef_f;#1HC z>S}5r7-N#b`DGD0rRIO%n5?NKt{u`kP*$jzMfc&YK$seGpzsj(J)-fShPgCFN<=QO zEnzQHk7&G)dSU%PM(T?H0EoyY;vi}dBVS2V{dS?%O(p|@pI;Q_%0=Us1 zdXG=9jwPyeJUlVcH0X?l^D}Z;*98QHA)5S87-x9v00~LDyxaWGpU_m~YNcZi{0mEf z`d#}KGUm}#&7Vd<)%+Yt5u*aIx}~k{T1)sj>MllMy+^P7R}b%8?zQ=khK^1Zm)aNL z>-!0QolX&?JviQTko56Ovm?h5ro^!P?ry;9%qGo0hStwjVh_;G+o+bdYaM9&SHq69 zqoZ`1ci4-NeQy6iaGYSP#;7qBeo86Ch(X!sf(9qmO%jNVDJ3H?g#5jmC}mQwdBm+BoEUf#1! zjD02QI0%1$2U~`GQ*0vvOiQ&BM5lregCL1Q3ezh_c(mb&>!tN`vp=RE41!oqB<@lK z6-d#szAFp!ws2lYaTmCN>af{u7LMaohc7PR1Y;x|!LhMoC%q2gxiov72BHkTGCs_s z-Au$FL2y*{185Mk8y+DbC4%U}odn)cjBzR$Nf1zqRbZTG&oG5d_>NsZ;tuJX2N0tD zCc~EV01QOXIGmXt6N5>ng+}Kva8Nu!HAd37-q!;IEa%dr%!Y<=unstryM+c3ztVS# zft$>dAi5&67%brIx2OTiMW7RskfH)v*0bZ3cp|J)ZnZrY&{u{;VnFq^0;*WGJVpX0 z2%z{Ea!(=2bNO48)-L!5>8RzL1P5qd(A~PO1}?YD4-XFyGK&Za3jTm&PK+LtH$Woj zE{1&X)y~XszI_;R@mfSi!O-QQSY4=By^vT5bh`21^N3D$)<=N@MHsl2r4+ntiLwMM z3UC5F1s$DRPhraMNE}$x2v-18roa+m-vd4LS{U8|?+REVDE1J~-rk%kGkgLq736NT zDLXM#3GqlIIONOYANu~%xjo<#&~J%d7$6gfCh<~4nHr9CfeQ>d+1dgZST~@lOJ9C9 z3E?;m3?z>^etH5+hW~}ng7wL$d&t1m9vG&(p+7&lAd$$EMiAGB+u-$p zoIl`Dwcvapr6xH{Na}2&T!NFZN1I7NV`9xXi?+_b05*t?%@cy-tY9RW>6=gG*dpVi z%7ArOLF+~o$5x`*LC?ugsw>N&h(ZotiB(I;(MZyU$;yKM6ERh+_xO7ji3DzH^{@rCThRT>$5v+tm|7vuNu&8=e7pkun(mj5UHreac&)@E z5dJGQ$Zo0kTgLGB7hP*lkMQo2L6=mNfVz?gz0+w2L?wD-TXpE6>+z>vH*+2D6&O} zQkyKfC$4CBd(P7SbtQb;N}6LwXQzI{Ww)32?Hs{JR#$?S(z1qSRRQ!0uGwCny~fes zAzk{A7`rh$4N9Jt|EU5hR zDU{CpYKxhW%<6vBtVN`)*Sib4z{!OyI-IxOH=?25uR(W2F%19(GH8P|2L2FwkbcHT z%H&0DNsmdng2^gCv%BOTZ4XZSE#)~9MJ)wWzc0SUjAw`^Sym2`-JIxfmf)x;cS9~F zAANae3YgEAs&rnkpSU z(X3hRL&EuV{K^VygUqoFwhc?s2enj<2x3ARLSs2KJ^M><3qwKSr|g&D;^Ly#F(?k& z7ZJ)KZju|?7JUyueq>clbz-7Eur~&V2Lh)LG~908*;yaSxkDSE6g8(>P9IWtHjy5` zwx(IueebvFa7K_!z1n}Zuz=>U$h>LLL<#L>yjKpo*s|s`a0N{E)HGlJRS}t!6^mfT z8Tug*;kx*SpqULt$$yj{(^!ilf3fc{L0s4#}@8NES2u{R?g9rN|`J8FW5j?kcOR8>)# z0tXJhGm|C(!Ap@azbGiy>lD0=*IKo|!RU;OJJ&k07cIx7;QrO@xKp-n25oyr)$x3F z6y#)!oaIlh6r!(mht>svzj=-GizEn#|JYb-u3r1x1-P1^U%^ShPmoLz?X6R}FQoH8 zRUOhnF#54P)v7>hVY}ozV&p|d$$N85oL?^fCGVdI>uvUrV-e3c)6D^MI45uIs0_w- zg1Fn_04O_cYqjpoHu*aWcg^w90h{i@dmt9kzbH^HOq_phpS;eD6gm6>ya-^e z(SZl92|#6L)VCX$$@6wJP&W!%pSQ}u)j{+&(pgx&-QdtR9DpCJ z^~%y7XxyO>zlaG7>y$<|8cN<#KrrDlgyZAT#OnS)a>yNrNJ|ery*@|9il^c9)=NKm zK=z475^f=wxn}?VXI-1{tu`Hx>tYb(p7Dph05CSXev?BfdQSc*G`2waMK3Ilj(NrN zL#~u#F2_sOVPi=*hx1JrAEa&%)MUsnJXG}inJ(KDmm#z$6R^fL64-ZZeg3RH)4!`H zBc2pQfe^9R$1qfBV451E?KEWBf&?;GqL>IFHgvj?C%}IB>#7fGD_bNrNfPoC% z0qlQfc?$9y-WMSohax8JZW*%?kB9j>uru~3jRFELbUln7cwpDyR|Qcv1*TSt+jfDj zjG0cwm$u}{0&qnQJ*uR*A|-vM)q{r)LEhnFpdN!g15z}40Yd*8Il6c(W!q5<#O6JA zp9Jz)f(wTA+U#%3By18SAi!G&dtka}=DXW;_j4@i;H77!%wj7ZyW6Bdmmz}HE9Y{W z*Q5Ei?bGuqEL7ezy=P&ctQWU);SDcB|wgiO_}``a61}V>)F;L`?zf3CI)=U zhkWY7uW;kW)mPqq2F{v*@t&*iGDzTZt#AsAwAAlZOO+l0L*mFqCRsy-O2;9Sw&3Z|o{*vo>3z=76X9=r!2H{=3_! z9$Xx`?<7H;tr`LyLaa9`OAI6jslkRztdLzX14o!o3Ho2>14&NBF#tu2jNk67ulbjn zjl7JMDXg5Hn27SnJSNKFkZ^-Dn|Vs+;pPxU(AG8OqDQ`rABQRqE(VMtVAIre$CvlP zj98-xWajh-iANiAmNx;U6Ns1^7rW`4jRQP%saO-fbf8y0ew!}Cvs&;|8RN^ zvVMSgui8I`E1cmoX@TUyQ^@bx@x1Y8T|oJ6u3U$x6Go{`4r@9TYo`>^TmT&Y7T$1i z>RDFf@<1cI8h>N|g`gm3NfVw3s_FR+$D|Mf-7qgp|(1YhN9*+VYKy`!36R9W86lj_xUOLE`~>|qd-R~ad~A~6U$#@ z+nQhUe_FfpKq%Mt{YH{h#u6PAS?Umt7E9JtGAbdbELqw_A%xP&cBF(Od?%E#6)9y) zMZ_3FSrb`P4ici8Nis=%*W~D^uit+^{~7PR^UU+y&;364bzS$x(nqlyWql^hiOTEx zVN#-3;3evU?#k?g>4Lm2p4q`g$)OwAol7QLw2NA+7j@rEMinR}(j5i7Vx&IPe3u#? zl@NYyEP!(G-kd`o7Uf5FKvw|(EM(+_jf8}R3H=b82v1fzZ$c7U7sDpA7#em=pnzEW zvvYJW48N?Do{0S8UM(~c$yc&NY7z_|5{AkNJUtEp!9LZqr&{oX{2aSZgR-rTE zNJC0+>>@j+a+f(6N6u%BHeR`H22@}voeGgS=0Qz(z+a6^fG;mz&5a|zBq#gGqfW4V zLW5fODn|Xy&SY`*|K-CG`4tZ{zS;|JP#g6gSfC( zAzSB_A)b%UxwK|?8AeSC)6;lWGGhg(lrmN9$kz|yctl^wUrBBG5=w5DGz*+^THzUp zFmo7$=Lyt2Z`+1H!1yTNnqx=KNveK?K0T3c9Nh*x^0}oj z%#}8U7ux4(3oG>7-3md)pxk5wD+B&8%al>pmA>{ZE4E);o`cR`&LEl>Q)QjVh=SF< z(*1rOBwI?MIVn0^5m=8MZ+Xk|kLOo$OrLh79{Z5@ZbY@Qi|k8UPCKDUV62K|5F0A%2Jw|Rz6hf?5Dz)_D7b~PxCq@Hvqw4F8y+7YMA*g6mXnrbyUoq)` zudi?9FR`1w@n}u=b!yF)OA+Mvat; zS=M9$i<7yAv3L6GyEIIE`|5}koQYLoRn@-RxB@bb51Xw?8A*x4X{`3brjq?dMIg(> z-TTHqjjaMwdh=eaqYHaxZkyM4PIeAg_BTXEuEj^*rJW2tYG=e?)x4CWAIn` zbBPAqU`vY2c~_Q=zGC(X7m}#JfJ*u3%`DnUTc#d1gdYr?Ak9wS7Gon-{-S>g03 zEPT9QYP#@!nSYCp9N9FvPnV+Eg{~54{fa-T|88tt4`a9#Ie~b(53(K=01tKsrrD%0 z#`xjqkasZ1LlrSk@b38MIcLAXdoR*U@ojJQsI_%t$AC(;$zJ^&(K>7NM38 z1yIHI%F28~ryED!_w$=Od&v@0+v>e89(ejJ8Emvq^2!ffHM5+@@$7{tvt5+oHiZh|8I#4mD?FS*9LtBsX4rENL^MeC%c5Yz%0rRF2aG zCvOr>HUsurB)ff?QgAtFESFVuTAaZSp>-c(%V})s&?vTpyR@+3UT`XRUd1gdvVYQi~G3WQ_4v50JqwMYrSKFi_!pX?HcUFKG+tPl}}SBJG(1FauCt8?RwjI1KlY@8FuR*I#BG;cup{ zFiOA^x#0eNHg~F|WW2}!=hwoU#U0JyTBnY`f$UYNb1~cv|1Ex}1hQt5FM1pc%Wj_j z*)5(-sP=e;_Dtr7m6ZH|Yi;ZXbhdrnR>@_TH*-nvtAR1Oqti%KiC!HrDw6 z>{kCTFZZ3{%ParccR-=bjWi9oy1|~b|0qlS_D=>UqpGCDpt{hQ3oE<0fX< zHp(ISUhD5>Yk!Ro7%ZHf5T#LofmK!W06z53BXtWId-n)bT-qA?{UqLDBi6t)kgGyH zHaiqe&9#(H_%qqf@o%?*O?G>=eCDdJHY+0Lj{*eZejY>GFJJbB z&yAQ76f$O31iM!QgnV42n!9yGe-cZb`#;H{?=!!F&Nmr4dHmO8>-zbh@Z0C6f43jb z4GY+RIM;t}?Vjd;zwy^SAH4SW%^qc!sOCQg^h|o4O>aQ(zAY|)6{TB##@w<1nY;o^glzjZ_u=VNYs;B= zm&`Z-ETWT9Otf4~vU>PNdZ5i>qePV_fPjAofrk}OA=R4Qfn~pFNvU_&L@Uo!!}JO% zn7e{xD_|F5qk}C*We-YAVfevsHip&y)-x z708@`dk1hafU&mVE%Th(qy!L6jzFNH`$pvnZeuR92zD%J^+XBP3Fv!sAnR;U5Zpp0 z03Mw?z(n)*2->Vdlj;EJhqfEf>DAKG8hn~2NFw=Pz+v->b!6y!K(PW$$QGSjvr7_K znP_Z7q5JwFczisr1R~Kf3jR)P#P5GPuc1PGfo<<*)8(y_UkjvOnzBwE32j8 z5_VIj!nJJIjPUw+Y}t7jXKI2)$MRL2UqS`+&z6+K+(c=kghV1xY29_Jd3c$MW|pZMxaYO<9ScR;OjyV*pvA`n$rfyt^vupe+ z>jGE-usLkA%y+nasT?LuyCHCZ|#^H;T;cWtRhk#nP@n zIOEzI5U(g|Ajp5%pyQsDZh+L`H4AwJf=I!_Cj86mo`l!BUo| z-rin;#zSI+FV~4G0UGgl6s=H(str&dWl|0k39q7Ji-n8qua1t6z#R4;mE5Q9&2r`G z1XM?X{GIh=$QI%No=))Y&}=*yy1-a)X5*pH`1P0z0-6owy16kW{NVoe9G}~JlTwy$S^dzdugUT0J7l?$2OzJ}TJGa*0x64G;0a*hB@n*YTTR6XQI#awcgFEaw_! zS|lX}JqGB%P||<`=3psYmhK9a9J&_BcHF5wuIY`XSt&1Hvt!vQted!F@s|C-6_A7O z14qK5_xh$3yTBsG^uZ_?FJKSOPEO*mIm%B2%yQ961;9vCbMv86RoYq$R+R|)p-zl% zBGMkj<|!7KMl-mGtPj1iZ61(v;O(l<&~%aWf^ATQWC@vZ%+j#ClL0UM?%MXOtfVF; zy6o;@D`v!0Y69OOgk-g9wZ`pOTaEY@EB%dr_*)-s>&51sso7H-OQj-+wb6fn_~@q) zft-@P_1>90wx8s)1RwRq4uHUgOy~B#2Xlt^L0>FMQZiG<7KKVid-PqWkudFj##>;Y zwBnqc_t?=)zApXdIFUfku0g&^8|(Q#^N8oEWO8LH1`{0^zwYo(1A}0p%N;|=!#R`i zEkI0w;>x&weKG7TPP#us{fpMLkdP1=8xcjzgQaF;<^_#bzcFIERz5?6$}e#0$WOX* zpIo5VTG$r=#)vM*qJo)8D3F4Erc9oO_6yV(mx;kCH!;X%BC2sT;?xX9`xZQ6f zLQUxu{)~)_1q&9uw_V=1!On1LNlC1Jb9_!9nee(wCXYQ$hHMIOMOnV;U4wH*RFyZ_ zn02!zObiVT%gf8VT-5}E)$9$-zm9B1l=hpxgOIwhqhqLpTFTCs@EGc|N%6-(?D1n~ z2a5JK;Fm^0dLVgcoQ55bEy37oYx6-aVrPnvtoNqN^{8dBs>z8&?yEvcr`{bFr6NRO zLyU;eycE$!+NC%0^72*H)%U$P7E_epUXb;kMPKQ2a`miPtQHicy`9iQAuFrduc})? zFdn;on=@^$owdj~?(Xh}<#RY@rMoU8Y3L-w0WdQwIX+1qn-{846FxNzz=fmu5Jk5&H(tuY}AKPC*M z+S~v00xs*xYUiK6mm%`StN9v(_eIAmzOiA$M2-!4SbJ@*aXp=c5jh4me|qQXC2~w$ zk$5~N#H#I(+s5MXHye9@#Yk_RsI!BEgR`^eLjR}9KmK{UbRFp6Af!_YTC7X_aQqwuG1xGw_JaeNKqJN#!(VW$zJZ%8Q(P6)ICI1 zXr5uBww9`@s)h#j^_gOiFAhO|%)y#*T|e4@DbcUub29SqxR8s5MH_bG+Gi$3jN~2R z$NN^XNZ678e#7m&yu7`g9UWGG6-trjA`KbaSRZ^=Sdm?uOU_-ZA$WT768CeCZ%be4 zq|>tpKf8BFCnid~JB?!qGeLzFt9)`cx8qWaZ|fzqLpt&iwzm7RV*w?SZ+MGuFAx8l zPJK3hc`!?hs6YLow_GbMkytpJV<-I%**k=x7vlacde$hf@W-$Y+p;2+`?&V4{C3y= z#>Ia53kcr@|Gr{M(8)7HiAbx64K<&!GP5L`rXy*|y_$s^M*F`mYjx~!fUBhU7hOM3 zlhjCxjQBzk5s~4FBgFG01u_=L-|t%@aIy??Stpu-=8*LCnyRXKb56r{#-oEE3QCI# zWg4!{yfpS~*7|bfQ&8lhPWmGp{kfTBZGXe`N@+E7cm7ZfyT+B?J=eUpZQE8|Rka4I zLTJABV7k5KNZ-JcD$h4nDJsoNN}^xLG_c{HI~)9$jFEMliqYQOwnNl6#rNaeE-l_G z?O4ZKy8G<~!z@PFmSl*QcN^f`xVsEXU0$v?tgsolS9~u(kU`r4YuWIg#DEy81 z%;UtAZwSwRb&w~i$2e~hqUZPa*N8B==E6gS`a;h=7Q>GUOml}BV1ftyyrrb2dyX7i zXHc6+; zMQ)MUx9#6s`;O@;?L8|g$ih2kHiiAEr7aR`G0(&4Nef9_> z7618ork=vr@u{1S=jtJm62ua<9*mS=iOm@BKbKQ@r@l++B%yJmw4?rDp$)Di4D@zv J&fK^+;J@-795ny{ literal 34001 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 diff --git a/docs/images/AddParticipantEventSequenceDiagram.png b/docs/images/AddParticipantEventSequenceDiagram.png index faa5c0810ccf2cceb6f45a02bd6cb520729ea9be..ac705a2eee0af701036c7a9560de94d4cd4651b9 100644 GIT binary patch literal 28429 zcmb@uby$^K7d>i{(%lkDm(mDGgNk%W3Wy*`cdK-RfFNBeAtfauproQm2!bFWY`QnO zferlTR?m0*zI*?;_dfSL=Q&6B-fyin*PLUFIo2DYaZ{N9j~4I5i4z2>DhgUBPMkhC zapI&I&MEjL3+MV<_#c;>qJf*Gqm%c2tGjL|l&u`BT+H39?wq&qK5ygZ=Hx2D&+l~K z+`-M={yv|jqrJzME+#ld={+3-w|_oAaT3nsm9e5dq23}u9I$5Qym2Oi*gD$A5{Ju1 zL4!qRe96!{v5#-eJ>htqve!NMLenS4C*xzD6P})pJFa)IR=6&(Yqb~6oN_UKk(cN_ z@xpB<>>H}A8RsLtR>vhvyj>;vx@b&Ij;3kbg~D#YA*Yg109W$ z6!BHV`nAO+dj{enoZ#t*cMrR@Xe8&WyWW=Tv@T^T?$@kIF7CkOCz8@Thr7+0V zLZXS&pc8n{KHF1Yse3TdaHYFVG>Fi*jA|2gH9punS8Smn+sw89*#B&2jEn<1a2R!O zu{Y`?HJ-Uk5rsnLX4PiY%{p;QoXZLCZ&Bsh(VFxX;#YNwqnx6I*wtM>)CgCeSZ#~; ztDE02y3>Y-<*1kImLEEFqpjHWFo5aZ;At)q}{Y!h_|d!r}wHq$jn7tiip-CD%;cOC&GEz83xxnLl;Y zdqB;msCa7cc-;DE$E2a>GK|^NuIgFd%lo9d2bXi$poH8rKCer)-!$3o>paD(UCz2=!% zZ(c;_`EjfjvK2>%;P(@&@{0#_FV5iagv?Nj2p_GwpC0&C~*YXx=m{PZ(#!=Y`K zeb}L{MJ^N|7hWZYuy$&?iV)@LMX5$&2FF>?27T@el?^)dEUk>HW-kht`3qi5_WQk4 zF%uP65$v3Jv@*k!Np zA9gqzJc_r=V+AkPmXoZIy zx#ezrp2?MO?tKx3dA3Ltb>QO|8~+@L2+|uYG{=uG*ro8|D^I7G@l9I1w(OMkf0{CT z@qFQm)rWWz@6Fkv6i#DQX{BZJz>BB~-`#`=vKLEV6~iMXjymWZ2VUM%&feZ|av%-l~%IM}|xaMr!D&K3J_?rt0*@ahUhKX)-4c?H=u{W? z?$6`j?Ei7*OiiO0>HMuKO4V8Fl@a&*-(ST@n*<*n%HR@~Elf>qd{ytHt@ zU``ve6L@^s#ovs^veqmJ-0b#q>m4%dky97Hbd)Jc>e^4u2_N(TR% z^o5QSvf?h&Enj-Fn{&VS%E3&XQ|>q}kG45vhCquygZO}&JiRpJDCxmN=_BAe`>4vg zocq@6N4!S0(n4Ey#z}-s(!8Y1-mia{li|!S4yHH0ee1h59~MQ;XY=}Hrnsvbxjc>W zkBZjR)Cr#23sTqk+-Bzc@MX{y&Mm=3>7vI4W#^=CW{64g+)tb0Eo9^?9mXxo! ztfW#t)#zZt_CvExzkEDc3h|1E_O<6)pJC17`-P#G-|ttB^(p%&5%8NvZ|>~8pXAah z{82J=;)2PTN3~UV8n4ZV4Dst!yoS7#i#BiYWzG~b-<9lQ)GLd=8a1Uo>4itaWbp#ddLXFwDVUf-Tm8$zE6L=oXm9T z0+sGq&5|`biY$^*kAM4N(o`M4klV&9t4S6qX_>%zCiFnSR^JPcK)k`p3DKjj2F;T-S5MCPgO8DeDwz zHQsoNH`Ar-hlmlq`#Cktt>Ap4*0Y~8p90SR%qC5jJY&4kFI5nuGmW`@TH)h5nh1>5uF}d>3b3 z5?B;ZpT@7V9jx_2YQ1j46}KBIV~u=I?<8yY^|^dUGz~sgfZg;5+o*JI;Q7%DhDD>&({M^(yfR@91>TT3qPQSIa9aQQQJTu zanrT@>@)o!^m(|IH7sv=u{K{+gUPscY^*Bh>-o0*)fWC!ToHvSKUUB*N-uFET1Kiy_~SU+ORS(mN$S+arLsZ z2!!{e=iO;FDw(6X^7;eao$TuAB5R1K;LNB7lX)o}qI4mLAE!vRqAvu<1g1K7r`Nr_ z+bw~j6u#H5bwg%36c#HHgGA})>p!t=WN4qCaeLY>;{GM`K<)Egh02^97BO{7Bch#E zDGj!~D8VP|GsFx91$7Q%jHk>aCW;x`QBjn={BBgE71&ckJ-<+Y%9k`%Z%%3%T&VEGxr&U_(XP|aD<9|es57_Dk|z}H5T%!SlQXf z3+F9m$3>BsMs>2Cu~I@EX0PthRL)Uwixj9PVo^zXUD2U%Jzc3g_eJVcN_l|}5uQUO zF9DZEPVa-0@;peRLDnSlDZ*0nuM`9I=B;;2^c`QleeHL)sm!$TwA~|nqx+t{%&+J1 z63QHXi?poTEnmgH!Oy%^ZYrM;PCi^QV?|NhCO=%PS9&r`$zQ~Nq-6YbfTsZ6Lm^fk zlQ#}%6lZEoc$V8h>oBj6K?XlMzNkU5D6Tp1YMq0>0?Tt(75%vu)McwKwu_OSamSJM ziC(n?ndco`nEiIgNHc8Q2DlH=la}SCr>|UbvCyA#WJp_IqidFUM+7S<@}{Po&HSB& zkh|foOeB@;_9Jfd7sJoeqW9)3*D0t@PLw{q+)Tw#?O;+c?DRP`B30SYv=22}yYhh3 zGKH^kAkZ=oNtXBX18R`@qf)grrbOc^S)l7(n~VH1#GK!xq||L7KO|H^`XZr{2)Eo_ z_2(5?D%IgM;LH&{`j}`f*Ozo^%A>pkB`@Eshv(&c5FDaL=1lG3h4MhL5Nf_OP>m|} zS@_z(72>?NGF;g(qZ`dc@t`6vD+tS8vAt$>sRvt*8p4 z<>{@3lJc!hDl%6ZUODb7QjP1r#a~F@yLC8v5}ar$Gm)`mq-XGNvKtylk+NDLI!tVw zy3^c|1llb>>OU!9bE>Q4L~C zzxKm>cxo7>97~@q;ch#ifIEEcrO!~EKLjGnYGDI08jTlCw>wy@oBm_0D!fLNztqVu z*#7&gZTBUScO-No_n%)0&M_OzKcg%aJvQa3#`#<{pqfD{CrhNzl~)9@_M`sAW5SiT zFT5h@ou0U4A4Y1Ha?g3VEDj`l9ii>NlWvduW?r)D3N}5QP2Y=UoK_R*h|_p}Bcw0C zRY23I;wSc}%^5YBqu27B6;6{}Y!Zv-Gah)+9zVP8iJT#>`kctlYd;$B0GDj)>x-Ue zNHP{LHAEe?MBX-l6&zIoQbbSIn0&qS!FTKY_A@zZ>ATmHI7+XipE+>5jXp_>2+O+r zCF7Q6wPKVW5tFo@C7M+^H1fyru+jSM8z-8Me4ZHO^Yzyk z%EsR3cRpUSXeSKrFGJ?Zkaz&gEE0A8h3Yh`>{8Tce@`;qYpY{9LHa^M-7FG?N|ElHj$9{ z4#*-mDk|>PyENj;XdGo}HTtYTk&Un(MXI?ts~!OGqIV~5B34nBvG~Rj&17b`{cyce za}{anFQ@wp}Zz_dK}GV5;7v>{+F?axSw2xg&OgNStbbmQT#I_pFSD+tBnJs z_~dG?NTXwl);*c>ZDWQzg05dS$AWTn!m>Tm^?sC(?f7}P59_Cw8*)uZF|$B9 zns|Gm|Cw@B(lee7JR?(+;V)T@d=9*-(G!|PcF|^Iyx06~hswepjJM{F)~y*ozj4-` z?+Z@A$hVi@E%w&T7+Xk`106V6)#ubo>z<>oTGU;g5~acx#z zt*qAjTV?Cw&c4zt7NUHfSy`qPuG1_gJk~=7{BBGsF98A;Wd?Mob$f42w^HzHKfggh zClb_pFPdql>TY-FDQRi%VC>E|V?N#Dmkqv@(^y!Pj1pV;#v;y&?sw3(z7MaK@PEjG z0H;iTd^1%*mxur1YXmL#xO-}8L*iG)mexb?$MV_N`_k#hK<|7*lq zFp$gV+1Kmb87IuiWG&FKJ_eTPMF-8rAf{K>k{>yXXg&id7V#ouup`c!fj0Id-Tp0a zmD8CI9LZ-X#6A^L2hgYR8f8~x%P3<2;t)|Pk)k4lXSIVWnSfxwI%*kV?7b4E+}14?>dU zCquD&S{-&*rHawwI^WqO_TL7OHON}d)6;Z`7R zLTaizJVi70wKew5S!-=?DJZEZK{ELoGDP9|;8bztIk@v8#(^WOyQ8HF{l2au3TKy}!kV^IrtEJpsvYLpe&)Q0Ps;!+nBpFW6=On-IrFXFp`#!=i0A z|Nn_^t4M$7>%I9ZjIkyaMu=LedI#bU;y}U;YhqpcUF{GuB4u{!|-(jqt_bcvPj|-UdMX#d6+r z=ROMkv;=B1=gLT_y#Vvgn0v}@Dj!f0WbC;GU16AANBAoiqR5)N>Kg5B#*#3*@q{`8pVGvGa_)$N6^b9TQTVuMS_eq<{-hH0NdS*8C~ zz@d-duE+9l?x7axukSg{{I@A$ve{1Cpl_bYo?!VsiWeawA7cvzus>L{Vg28ahW!6b z1?iDLA}%)8^tIC@(Dl6Tic0q-z3IGY5rlZG$V9C@T|Y=F&s77}9LC;UU|ITBYV_*P z$Ec^rh>jRKvHjWZ^ctG-Fc&w1*#5*+Ns;OzELnu-DX%g1KNrO06(pk5GW)Ximw~%& z?Iz6uW38>H>j`LudS|6N`({C+k$V$xab3diV5QEn`LH&;dHb8u!q*ppg2#dA{iSj- zAJETgXmHPJr^Lw|dA)mZ5_v=2hlQ2(`V*drP`k_L9(AmpS$_kP->(UHR1_09{?_}0 z53p5ZV`B>oi|X$p^!8cQ9oZMvXv3Sr%Z=+v2Yun>KVCZ{8rGWdiHL^ovL(gPiROs| zx(K)S>DMkb6dnlfP-k1;V z`~8W_-N0mAQ9wxu_lOkK2o2{V-J1g>2krdn-s89UOJhxu45eByu-gtiFX*^D@ z^4>^|UDOy{zRI-G=jiB&f?Ln{t(Txyg%SA@fa?-Qx7JVsj_7)Y&DrkC*1O$lnG)`c za7^LpG!U1@N{#B~O83?X0@NgYuy&ZJsSWZJaJN1Wmgpz9Jd*TW4Gs>z%}tJ)PE>ao ze;d&S0vFjKCmwK)QxsPzr^1MsI@)mEm6m#yG;j^KN ztyaCujQwb>luTMe_%8Aoz1cIuf8kf8Cp>=L(d@Hro8S3anuX7 z^w73*G?(5UtTyx-w;5I2Jlv|aA8nbHber#O^z~E_5SL|z~%6W+1=>4)_ z%2j$Y_RoPyvo`&?YZj+8hOk)XrMg@8&09mCy*gyFWsvkx&;>{rrf@?s-fO;>xlQI6 z?b;?d^BVNdn{=nK3ERj|*^{4Dpts&^C6f7^A%595)~#9)n85J*O5KFsEEd+IruHw+ z3M-Y(QU#AnP=8wk5-sFF(=d2kZvC=>LQU3W0vm_z z#lfBo@hab42fzDcZ)!M#8lUyk977cN`}t{ozl*=UG!%A$H5TU;y*(d`Md%42-0|?J z>Zt;UJUP zC9oVt_m=4Mw`mG$iY2eaaXI&_A)^=~o2hw>UkmW{MQ39&QZVsG8e17M2+r8T*%`-V z21`Sy_Mi;e&M`NLyUzZowCv23^xT;F6xP}T#wQ~NnQc_7q+DT5+<>Oj!x`j!(|m0KL($3&B%Epkl&OfI}( zg|!3m%XG|@Zh6ee$jFgz+Q~o8to_oUa;@p$=F2Q)gPfnQ}y-?4lR9Cny$8yagJg+!a zEcfAB^RcvqaR#e$2meUy=D}u<%<=JiQ=-MD&G(+wB)>69V*Kllz?G32sF5$A9wgiA zs(*UI+s-fp3E-V@0*>q&d{aynbNr*;6=E*vi{Rjhqv&&}g*6ldFkMR-Y&9IM~byB5oqFo|*-^vSANO3<&9y^ML^r8&UyiFLE+F9daJZPfssf4{&-! zL`2j(O+FGC^!S13j9VI|wr-O>J4~;A%5C=gSLdYRVFO(fUhAGLMSjjT>BkQkV`F2L zq-tn(-pM*^RTq^Lx=-AibO-GB3poZC2n1~Ae5ey)72MM&O!LcKl@xrt3Mdr=5)`&u1c>vJBBOn;O%Xaa&OE!^ns`-1~swB5xK-52H3Z|A}j=;v88Hc&ez_c6H zF1dEFwNQmHV*w3kgpFdu*dhR$3@;DAkYHd}{19R=+RRKM!h5q@v__R{y8buzEV#Nw zsQypm(Ysgj3WiZ~`~@X`f6a#Hr%d+;CFA;pz4&k7srsMe{zW$9llOkX=6|u<7Gbtr zjLfA=8~fW!X>G97jy68=hi8Dg)a}~R+Nz#)rHGSr4)8k5t9xIc8`U{9rtTdBSa9yi zk{THZ&Z8&EsnyifEdCsP9)!VlbGHzYo{k`FqF!;#w*!H@t7CnAeTzJPS3H(eCE9~I zwo|qYSTd22f4L`g-!IWC7Tvjj|0RkN))Gy`hzl~P$MK)VkmHFWw?&8GQ9SChBZZzR z=!Q(pmn_YluBtabCObo3jzk7QQ?SgWVJF1p*F6dPgn8aXWQ*7v zLO{dfz8y~|>OdZWO-TQs6KcQH)_fo2uohIgS@Sp?3EE_}-4G#3LkAJ9u{!DU!I50x2GECwXskM)*=8;E0+iaZ4ou=Kr({W;A{SF#ZX zWonc>JdMqA3CgLBPovMaMkSxg8#I7mi|qZ2#`P{|C4td9R9duOOW`A6m!Ep;z3DRh zIl>;Wb8uYv@>qlZ^2rdmPYtNdEg|?}p`nrWotTJI(joO#%Kwrj6{XTnrP(FuA zAE``@t&+LOa)Zj2p&_bbe?aT;@x(+#MAVDGMShHpS%1mc8+B}!_3z~~M>|Q1&CGmC zfiB`1$0|ECQ0fOkc_$*F)oczGrw)pCcsK?u8@Oe`_#2GuP6RShP@L8NoGOR_(CnmP zrK=A23$cP;DsPtStg`wP8kjsomU{2bmkjT(&((&l@#$jI9{9JkPtE{5d8C(D3paql z+i?D{b2N`07g~c#nbgenb6!?f7Aj=uXIZKCbGiEErl}^7Q~E3_F@p-huY#UUckHEH zK2sxi{JOrr^j6g@z{@V$WY8DhU4p@Pn`}9ILqwobQ*ZlrBEVNmrIVcuG68Sn;(A)c zh#1_-i-YgA!XdlM--EtlQz@I@U>2yWcUyQoco$vBZWtDNn_Vv%Ia(?nn+59tB^td0 zAi9Gy3rNU5w*R9Iz0o$+0s2g$^5mCZvQfS9fYQm)Dh2ScuLDqe8jY2iJW&Gy`q*whip7sC1|)$e1v2 z)xu?qa4oolC_+2{{d%yr&0_9Lrp>7&tNpD7SS4g<8D#Sl|!_kiCN~t zvA3B~pe=syYc*j-2d}2|V&kC^JPcM;}8fFARDm;y+YoQdwDP zi=e{7`sq}tZfu+}b`j?zCFA`X-W!h`40TI{+y_`A4<8iAFx`B4e`#(Gntu|?3?W>ys)|0a z)Z4Swgi3tcKA-U*WU48So^a@Pb~AWA>;bLUYia^DWF`(`wPRNnvXhWKS z6kVhB92hupJ|wY1&yA1l*&H22?&H=7$gFx3W8{~ymub>wR#*AP^-m+hQld`zAY{DO z&(9KdF`j|JjOBK6c7C`tYX3+>YlboaIn^GBn#3;Y!jSudqpxRT1E$(=NhTUR`8}*^ zN;RSK5TF^|L#NHzA#Xsan|#-BL<2Dkp5Z?GvY6eoj~MBRD+^1c-LlO?5>I!e$-jYP zZ!(MtFS*VR4F_~Xb2&rYl^juL{GUqQ7I`KbqjbJj*T?ydF9*n_WSNGeV( zg{M*-*gH+j-z=}O>`eSQ*ds{c!%=<##IEvroO|Zn(DMc2MPUpc68JB651oycw3`uW2 zR?@~U+L*@Wiw2+s?_Rogk{%PREU{^j7g@AG+F+FO2~Tg}D2J{~qYol%!NP;hMKcDV zYe`HqAlk0l;bVwgdiSLL8AXpnUBLk8H^~hYK;g|x9ZRz_)?2FqG^!I!%}$#x>GOn^ z_gcD0>4w;)nk0YGsVX~h0g>NM3s-NyOKDwva(?EmBMoLRgk96pcAwl&5Fv(+;2S4C}%dT zGiTm?Fz;FCtwFLrW>;s_IYA0F+Pfs^BJ^xvy*#^_`39D$zy{bf%pF+qe$E3rRbJ9) ze8OwgG8#`!NjbZ^YMLu|cI!ljFhDY5=@_Kv^04OXatpNQ+IR@k*W26tQSeBM26Rb0 zWS#mhuirx&GAlD!4VkHDh&|*23(sKjt)o#SmYSWyS zVqH_OLFS*bkX|qTmsC9(pUmttd}xrL0!*2@0nsBgtojP$DKi(h#1ha8bwc0rG%_ zz`l_ECCO=k2KtQmbv5Woww1Y)woq~fN<8KXEP7VeQ?+?uk*OzkOyC`B>69`z5o% zepIBSbOh4n?$#D4s7piT*|S8-zW_7QZ*DbpwxC%hfd%xdj^3bsY;5e!Co-7J%Kc_z zZB)#M(0TXW6n{H|5pGfm8e7>NfyJes^g7;I8LcUjsI~+{Xt?Wpc26~!rNlaZ5{d+A3i-?o$F2?`t<3#zqVP>f6gNmkO)Z(S|!sL zuI>gsdbB0FE&L&@;7SVI78&?E|FFnA#?1l#eR+x=j*E8jM5^9=@R;lm)K}BaG`4<) zPD#gkrpFt`7zj!o@{3XuTmJJixoEjxcMvZ4=e#(~O1Zx-*+xAruLaE#I9L8}YHD$A zgPF4j{I^qQ)<2s3xwGFtOTP`O>O~g2EHXyMCMZOpd^H;gn6`CvC@Cs3yFk$eMbM_o zEL4l8;dWSFCsvMOjyxbH*W zs+90))td4w4`iW^6A;Lv~PmdP%X( zxe|nW4NzX9sQ6bWCm*)1{HWh-pW?S(94NvF^mjlYg&6pH_qwKj2j6gRN{aqHI>*Ls zJ;<>j1myEhpRk$(tS5iH=6ervXJ@?9GE78Rw%UGlXMM6Y+;8W*wb&E{dEp&ix2vvcWNSDf-P^BtLykr1{R_7~DXG zKwnuLc9#vlYxXRRHy%`&wG673>_=jEKEwk;Fm&&5tXUvGM?|vhG|}YGLQ;I@sr;F= zR4BVJM`M6PLkLP5b*0EI-gxi~0K`1d?bP6C21&~8kMYc{&=9ILS5Q!ZhE`sF{$O&Y zkr7}I=GXC{3-FiyCZ(q$?V%T-Vf2|Bpjk2)=r9OlWD|N)9FqE!CGU>GO;imc4Xj_F z&PDJey+I2Kh1>5i?69=uVjmwHrtLx)!`kwA@_DLS#FMG3HbbBSN~721@8c{T0&NqZ zy9ELSL=*F?dHQ9%($FkJT^74K?zTS76V7*_xYH54p30`Gwsv2wqU zCYDU_f|MY1ufMImeIbUaGbAm_LQqh!w-X53>Ug73!8;u2I^@{t=~~ebQc8YK6Sgy@ zyY=eM!&8wIa{`}0!ere5K?&seJZ7L!K_6Hi@i?Einv49fGvAkgJ%x{jN|?%BBZ>!V zKA%Aa2J2v0+L_SE4^Vb*mtDA)R54<>xVFZBt>sds>vH%0lm!Lz50KlTlqr<4fT!`4 zvNC)47SKmd;rE{BxwyJCkEcJS5N%3n_OE_7SB{8%HDb66W^^>d>pLkkTS)$2DZ4}i zq7&9HHxq>MZFIg;3@9_1VR(~HE(pirib+7iFJoiOe)LlOyjlSi!}@coW@DP1fdBrM z%S@LQ0Jul<7&e8QuhXGvUnx(|ApD*X=pLjz`N}#>pX=wlhk*Gy2)T8OgF~+pGrxkS ziQc$jKGk=ivKWEK_-xIGEHP&}HekI}zDm>Ry-iT79~wX^rK1E<$+@KT+57kJ^Vnje zGNY_?d=eC`G#X*mmQa-pui(*}@c588&(PdzbB?9oj!REZcfnf8f)Kdm{ytapBytE^ zw0-~e#J#YTK}sQMc19?1jY`51<(e z1e3T+ffjYT8Kg!>xWzerhb!_dz~CAo!ePRep;$l$Q2~lH2%fT$#UUjA{?3XKZ~#bk zsZ%fpCEz>dZmWA3GM?FwBCc^FY}My&ytXku=M?&=TmumHsOz<3fumj zqbb@9SH8Ybm+?bYfLh;zniO4s0j_uhd;H7j!^3uh+th=-x$^Cy9QDBVy_gm3p}h<+ zr4Tv*UcI#n5u~h2(G?@#dfpvTAUXqXCt~PJ0X(#x?-B~?UXbbsnC49&2T)GjmcH={ z301o-^iPrWtgk!KdxFBS*dXm4b<{U&$7qEbjH6 zrPhL8d3$6mh^TnU*`ki7kgC9TYFk6od>-O3J{JU7PJS;)Lop2vk~~}j0_%;txEwq-awqZ0IW)iyfzg-Vrrs>%wydj-jShrp zf{v7cT#|BPpQeCJ%m*$>{pP!jA(hM-{XISEZ)dc5Utu_kOb#tf6FGNyOG`^HQ7XPU z*#H|56ahnJmeEQ}T&h>3r3kT579aI;Q1zU38+Rkg-yjZ;T; z1D52R3Qon7uDAQI;!Tm4mzU%|7%#4`uRnuqgPsbevVgF5%xzyYW$E`#+1 z(ix;9TPUREvbJuobm|q5`hHSy)%f8QN+ z9)GT_F~L~T&|r!HgqO{A>R_j9_Qh2>P39TV)KInbYmeoaKYqFCvdj@33zW`Q8&?oa zE&qi#OYTA(5T{*KOS_RKv;a(K?T$6O zxW|AplYiT>Q%Wl3|CHljh_)An!T8W_`4=1iFNAhXJ7<50!Nbp=XZ%$v$&y4gAr&9{$96<)Y`hCm_7sLU%>naTZc|E9RK3s{}i=>Q$qQxa4t|Z=R09h-ZHxU%}_a=YW6^{O@qhK_UjL|C@lrHzKV#rZtyZqlK6MJhsM;HgyV`wkBZQY%w3lv*jUER@f4G^5|b?VOR z+;CIDY-ayH@->%swL@4;7>5tXECP{O_{K3=4>JU+tN-5kz#Nz8HqaYrZj4taoO$C| zqyKB{?)}3%(wI5VjaL_zT!Yh#k^QE3(XyA>W?0GV7k$xSiIHoAl8sS-c-4TLiog3! z*?vu@mo7qos!QSspo7*vxV-jS>RkWBjN)%2s5t7-uyg2bV<6v_i&H)K9~KubNNtC4qdjK$d%%Fb0qMm0GbX2@H3;*6 z`p+|9jMP9qPyPu9%*HQbxz7*&1R}=UsDc;vS6Em-+*9@s;eTTE*HdxQ|IN#OU-7S@ z!Z`TYLgfF$VWa;X^w-+N+>`3$-&FH)5z-9M1F*K&KNJ-dV5Q4k+XoD<^Xw=aWGXP( zUrWctNGk510gb1RVJgdp8ViOfjA;l;7q{tK6!=OK0>IB!tXpDx-KZ4ATslFEV3B0Z z)cg}(%-?B_p~eCY0|VCuX=zaYZ#=yuA9_yqiiCs&_|9#MVV#EZP%m9u6 zqaY_H)&TSc7mM2Z&2fk$0BaKg(~E$=6A}?YOI|BiF2w2CK6IOa-WV6CB!JW$ek$;2 zZ|>*&pePV@0d0Wh711`<;Mu(SMN%()>c#aGhhLp2=rY>CdUe_dTL}0Mo&%5omzOGhif(X?YV@Wqxn{5;tQA}JRHZy$IVR$kCiGQPV5yp zK1`rr3LqClC)(R*fO2r0U=8y)23Mbkci|p1_~OGarD}$^#?XtChLxB#AHlYuSbFh1 zozq_*MAKY`R@N%C+kohI2qA!{#zjVI>205X3^)M(1xs2U$hlC$Wv4<3=&oG30t||h zjt<(hCdM+Fu2$KgO>F%gFwwAwGBA)NtOh|!PDSMjXdQ+zN+GI!3V}G?UN`cKEU-wy z$UFIybbc|PgFn5WMeQ=tK}We1W0=U9g?V7|-y+F4iV+>>04e9jjp*%mT`7ShK#WnZ zM^JFfJfuKz4PP1vDgajy@k2Q!;4EO;`&zXBDnSLRsQ2<8Dd(Z+@H%V+33z%NJ=1U30 zM7`^a@RAs_1Ye!!AUuR8ap_)rN_T>aiVBt*X7lbp;!yN^4n(BIFv6&F5H8y=MwnjYF0NE8V>c9=QHy$f6ySgRz3^!qID$;zW?0>H2dwk@-R6>0W z-bevDao{Mh&L!O!6(A872>q2$*s_qVAE1Wd{Rf~8l^W>}*Zx3}hfI7B0^Jxx& z(0+C;8N@ILZdBSixQ zz|^7wn%^AY>dHOPo)je@g`W94g@#f$v$oOs9-%kY?Uk;)%aC;#Pc_VdJ|Dm)4R#Q& z$QKrqQb5jh$26Q|+!vEdN=ke_5<_`-Ec7SwhAIdjVFU|&fblST;M)WF;d`z;wmmLp zfg=Bb7(xL8j^kI5*(d%3fBxrd4D|RXn}_NP2b>>Yd=Qu@hLLIJC@=+y`tKUm9be7a zc+P#2ZFWKmo=c2-Y8-EG=%0)I(x@y@=?Wlzo-8l>qgnn(G5lMJ`~y$U1%gn@Ciru3 z@V{`w#ed+*-`D=7*a^PH2XAy+#NU_1Z1fM;{HG#eeg?J? z;Mjfl@H8}vfN@1fM)uEMppC`ABoJi(feg}Y!u8Ms$OKauEX9_zfyYMmfC%OmF%J#pWCt2~8yk6BWbhV*KZ^A~XjTo-pJzL7 zAb>R{CZ=mLf<&NEGF`sNCggTX-US!7mK)UAChsVaK7RD?1T1jq|JZUE~Jb1+)S6?lqrubac!( zZ@*ZQzgqXkeQAm(3UfxsKSHsfH*zT&;{1$JWJAJ))SQ2Ix99+T^+9a)~kpt6yIGb9WQnVi}e zNdlpz2WbcP6o7|oS{C32kl&a5OQLt~9X(GF7&yd294}Y(n0^lAZTkpYQg38ksSi9p z;wO(36*`)x12oI=Zw_!vDiI72fHVz~>@9nI5$XN;e9Tkt?Sa*49)?Ec91#(duq|v3 zE4}uF=X;HvJ{468$Xbd@N-#{$pj_#tw}4f#5=0QiNb-lbT5f?Xq*bEFdxyFIjl13a zZTJT)Y;7#WPSCS~^@_*=cNMIkPUi$MIK}@$DcBmRu1PaM>Dz!|=!#L`PUGFl;pgcG zuex5o62SmieY*;C3*{R;R)GFKSOor!QJ*IKcgKtz8$+bHOYDG=4?I_+(;;<%K65~V z4V4gf0~fegz%4H?FCUWGTs_fy8ZNA$+c$WvIpPxNCi7>uLQ%(YmB#?KXh$7mqh+L} zEbC<2KkCvQgM19Ab#1I+*KeZyss-I~dGmMzI=hLAzk_-HD*;huWu4+xe|SR#`Lz3! zIoki5AwB{jymcLf;zwSfhAj@3U|YdkPXM6U^%vlhHt)@*gB(NvZEQf|;LQVtZWO)) z14#MHn@2VxM-dbdyyRWJ&SsAFtCpwJ7hv!8o!709PRBjYQ4$SCP? zE-Ugn6RCMNXaenDav#G3ggs&(o<;f6KF>P$_I3U**^i>D2laT#16~cjIV?+RZgZXCYJkc z?Ml;?I(6fIFXfCSTJ;<5Y9@y{7)YY8~Ufo%NH#DTR zl^X3n)0&)mTnoGZTxWR(9alLDjo8You85v|?+~Q`Y%lM3w-3`(>(?wZ=*%9%LX&>c ze}03;IcV=g0;`jc0yr(sIP=4nfWfR`Uduc^7KcMVlNq#Vn0B&>XR*bTc*r4zJPuDZnrCsXCUj#NcfaHJS!qOihngKesa||XQL;Efcl3VCXYK^<=|oy>rC{Wc+kaidSo2ny(E$(44sGtxWKFS+?2sReMix+3Xn+bWSm%4cH;m}Qh`;d%T`fPoDiwu|?si^lr zAy)8%4lwkKe$N9CUNNur+X)BI$$@NgbhtYaiKH8LbV1b7QDF=mG01%B$IUS+V3a?3 z@*%Wx__PX!1CKUMXFoeI1zx#PfUpD;CG1Qx$?q72z6fPqHYU2)%zEMF2(Q488C+^? zVgjfhKSWn=`&}+R$ox~&6-V;Nj{2qLiKjZ^} zheMw~u_MOle1Ea7(KDZ9Zv9qS%}f41L%S1ekJ?Ndv2LG=W(79Q$kZ1DFD9xOzI^oc zML9SwZt5KA8WjwPoAXA75684X`?8ayvC;n!jdy#5xQFr{yanpqf1^s}`q=1Wu#sb| zN<oeywPOV3K9rEbR(E?8 z`nJ&AW*u*m@m&4!;K7N?Kr7uiO~~GBuv4yv${USBUjOYFE7y9~1#~DW4ykN`zHt2s z$)z_I?N~aTT#KmjMrGIO4>i{6)f`{zU3)+@x^+Jw+7RAY@!7&xN52tEN$_ZQd`YKR z=T>EFc(@eM-D7wcm90z%y((JxCkkmc*_Oy27$sJ)2dz_*hJAQ}M4=MA8A}rakP9zN zNp=1p1YeYwzwDu`lsddoEQ{_~->loX39TGVb9ol#2h@)H%5kPDSEG_7*k39_CWpN} zLBoR)WK@Ek#3c`=zOtxcK=5C38D=F7B_M+;Dg-<|ckw8=-qC_pE)!}f$IA|52yBi! zI)X#c<7`2J+zB%jM$S>xfdYfDaiK;oV5g`V1Q^gTn`A(j=o+0LYp5HJGjYYZKJlpd zqB9kgl@Vd37?|^5tOX#<=K4B^$r~Y&ho<@1U7}{VfiX}x_ACQs z3&J8$IC+-Z8zd_To2U)wfcT--bA0s;c20>w4xnlbaG z{>&1Z+~6AZ4g~XRSZnp1;Um)wF2SST-ty$Q@o{N$^REh5F3#4iudh_}!{&Do%kEX~ zRYqMmoDmlDh>=mx@?&OBOk#*^v6XQcsZM@8ny0ul+iesj)<#8E25--*vD=;CKVJB% z&s)358P|__6Tw1-ZPaNQ%8vij*>%TLz5o9Yp(wXHl2M^@8fM})lo2YU=!$&HDkI@u zTO>P_CdaC*wmouFB%?anqmSPpM^Qwcx`8`hy-TT+iKRtS!^Z0mw-sAOtzMjwL z>t&!nf%C6;rGnF!^b#JrFI(5=B$d^?>UJ%+!waM~axedv=fr=N_%l((FTac5Sp47T z=S1dez#-WKNt*t&K4#M!*t<+m)En%$t8NuKQNsg&)+3*Z`-;yNZ&`ZrSnl5(MH66N zj_D-RL3+W48R^gD?ZEMiku^VHL>hul!pI8ZJ%Tm|p5=xsl_x_sCMT>}ynah&_XZagtSh+^NHxf4q3`gsf`NIU6h`+xntF@rT-P{zI_0)mrAYgICXY5b%eQ|>< zwP~gA$X>nM*{1JK|AD19a$S-uies}s{$l*;*LnZC+n^e+h*WuJKvQDFRR4Q5yJ%`VdL4F%`=*#rX&U5q=Vil4H zmM?q4k|`zENBD#B6M>OA;@B%@sASooua3b6Q&=nlJ^hleCMPHR`}=#eov;Drcvb3G z5`^2022@K+$NU1D#~dAfSvKgJaAKhC=Bh&T;>X7)1x3;~Pd#XpP7T&1p^N>x?pHy73<`tY!aJ9QvcZKE-WNqvmTtRGPhtjy-f5|K1D~z4%aTPk?Je< zmZf{D(OyOBVte6)W`9ewYuL`7G61AX3c2s?)1w9Sh-DT4+@US3{Z)mJ7a28<4wnatV$$a8(Q+=g5yS63sEmB-qP zlAc;)w0UR=n{$aoOMp^U)<7?N5`{{0nv`GuGYJj zpAmR{>2J%T>A9MGvy)1=@hDcww?#d@yiy&_z3Qc8wJl zmX6HfDzeXbzH8IX8yD@5AG3nNt`rmv$H}3Okm|_`s6mmSjF>RIqNc>u0j(-Dc%EDu{ZO%4e8;(e zqgi0fFohs3y2VM=v?P2;{<6w{5hxT6Fv2ZOO-*m!7{j4B=Yk5W z1BTEHsqCx8kQ9r<3LEI;ULW4C+56F-{bk%*24+lVi}eOS*8TOffXyw({qL+F3uHms zb#Xx`Gp%2!n$M}Rh>oU~<;vfuhjw~vSFY!uwP~wS zkDb08RWZ$Xbp;^{rRuo_f{eP1Y{*tmeC2wM*Q80@Zk?x0%U_Y8*izsca=aX*p56v6Vc`0X)a9MdM%uhj65as5AMW`-8}b;oI1h>3dOU}z4{CK$hs zU=hW8n$m>Ta={m$D%de_VU6dmFzX=5q3G!5-o5K87xTlzDS%$0$ zv%2tQ=2un-%-k1G^C4RxZ`j%L=FLeEbh1_|Hs8FYch;QwWmumYDRf3!LoW+_|%s6ihFZaL?JP7N6- z_W+K=w|5=6^;3DEl6$X#crARps55Imj*GQ&l`9AUA}ua zkP0DN&Axhvn`v%DVT6A@X<`W;3Yr!(&wbw+z$BEfDJm!|xw8!_ji_iMT2`19d2fYQ z3!h@4&&2T`uE*cD0Nz|CywUmwRj`0cXlui&mP^=v;)Yacig__h6-F1^CS=`5tDS}J8TNFrvitr9K@buYj&X?o!`f1InPa*54vpw^^Z_m zzP;+tadQP*e6WzDD5wam&37ep$+>5Nw#3JFyO&)oHPUUAB6z(D`bZfkcne>?P>_yi zFI+I}a{-N~(TETy_87@n_9vEyu?yK7v`cFDWlz5uZ0)ow@U zmxy#nD;PZu-;!2qD2c6U@E{tKn~cn7XlO`CNC;A$IkL=aYh-ki4Rv~*PrwRHDw56o zVE)+oplQnuaAI2fAkO`Rq_itc-7FdMP>xFEDPI1VjI>^my7wWPs$R~M3T0*%^p6*n zLUIPFc{ECV2wfjFr;Ix{toij?Ocp;W!97WL?W`z%To?A*e->`MKv(rj)$hdufN?8|$LVA5&i~T^vuv>Av=<*nx zk`!%ze*T)v z2k!4xHIV-tpU-2$+27*Mt@Jd4&er_2h0<-eg=F)NM!WCODx5r~J09y;GzO121n-*a zYJ;R?xE3V~QgDE|WG+-;gZ$o-Hv~<7jsUvgCMF~(LwLNh6({-7p}!!?2EKDa;{fq> zRi1y{v+cE)L*eKRhqL_fM}!L~qJk_hFD^EAo6oqLkb$9LMFHjTig}52Rt4T`nb%8& z2Hrf#f;k)8abez3zD4rYJ~o-`XUx1p)(*|dKAlglX>by+9rsoa&8IjhiCh{_y#k`4 zLOrV~7P~PbLLO8NcVmFgyI}+YM4?qDvuQMozWYtcm&IFbZYW z^@F5ATmV)sIOW{j+%9e_>nQ7_V#WHn1!B+_tr5NrP{z?QF;(oWdK@utT2^Lew1A1cqg`{-nd8>aF7jT(-BiUY{b2kY}61-YxFxj-|bP$(lkb#wJXT!%Zg4l28C zdIUP3%lvhgD|1ar*Uyu|YgpW#7!%Wkcm;n}7$u4xe~0Gs{&$1WfW7{IFYpmaPU8{t z`XH1*UC25WuhKB6v9U2UiP*bm&mL`UeSzqpFiU^V`AdUp6%T_vhQu{L{(^*DHg|S> zo5y3;#&zn+)Or8?2@5h)BgW0LjA*`gcB$f1hu$gs+q;dKayJJ$_P9-NDE(aBUYr^w zNy#*KUYc@8oMOR7H=evr;=VD@<+q25`YTmSuQyDrTg$w2=T2(6>~@hl9oa&0m6cZM zzPcNZRyUVA_dVnwj8pW)dgBw`YB7k9M;s~|f9;{SpXiB4B{)Y1_3yL4F|YUYgeb6mq;QZgaYm>mzmN1|1C6G-SGKv%$kDHoFh}+GQ=|HXPnPfe@umf5t|0#VaU!K^y3Mx{Hh#b^tTGW zmpZ3^UyUKLSe17ACH;Kn8aLtHFcJ~4N zb8>RRD&S6H5!a1Rp~}Hx!qt$~4DatvE*6a-D_eYzo&~4AA3E$@|IxJx59_x&#Q=Ui{#sQbzwyogd!}0o^nI$+}Fi@wJYH4Yq zfms8&>s%XTFtp^_=JqKSZFB}}Hn&GU2JgC2US3i{LM?{)xa(h&*^pjKW%aJhf=E+8 z9<^RZrf8^iSpyx{Y2(<`qK&c*&tIpZ?ZlZTvy*!-p!2}sKQHyn56%6!Tlm!Mby0VR z!iLvF!IIDMaavZlMG`lPRz-2eR`uC=aw$45gU+o42(POj52v z$Gi3Q^?`xx-0vlZbV5X6;5mdI1(U2;85b7^)aWzxOki`XTSWT7Xyl}?(F08)A~-l0 z{uv)<=ettgZ~k~t!Bzr%Xl`I2UdFY##p%>`Q?u5GsXav#{mYcS>8#osSlpn78cyYA z_J*tfa&QcV1lIA)jKvPdR`EbAE^cVR+7Bak)tjl&CUfi!u3wgK`QtBzgZhOdh!Ctw zV>v=&J*jv`^fGEK_G99%w%TWE3P@*OrQAae<%12j_r=ZAhpwfjrm`+!I+kv|^H^5# zl>P{GgngmR@ZBO;p!{8p^pv&_o5M9ah$}m4PDo{?c3)#NAO^aV?5g*>wq~gKbK6Nf zWqPVe6uqjl(h3wuNxSz*4O(>t@-g@8Dc#m4lgY!S7e!Uf`tBz`5Z}GR?k$k24{F#0 zbh3K6U!@NQ3z%h#u&XN2K5I_LhK(kps4u}D=*K#HdwUPG6U?vE%g zl&R=UgV5jwKTO)ghh7+%1i21T8M=Do#$H9=;`Vlw$@Z1LUYp>lMxH{`D(!Kj2vQbE zW^a`6j_y043=JKt_2AeGwI`FfWThi2Dk=`p9u(Q_*JH4z>!>(2P3y$NM*$sF71!=P zhN;QPVPseoOfZGitmp+ndW;-?R^8j^BEmoI&W~Hb#JxOhWv|))C zOO!8U1YDKX)R&Y+B4bX3EYb$vmeV#4@y3IcG zl&#p8qcsV+4mx>M*#TBHexrAyvJb56N0m6@O85m-=S*K-Chou@lvZ-M$A|izq-?1> z{Z~zMthBtnA9a4j5008?YyJdIKXB)L6njwaBebNFikAy|ZWrNyZ}><=**i~awO*pq z$>Z0$W1Xy&%(6B^?p?dqX0YS2Y!Tg}qn_&b>Epo@bB0@3;Hb9s3plFlv4>AIh?}pI z9LQI^Kwn?KGhXuyOow`6)%SyR7?go!zuGAPz>W4|?`%V*Nv>cAM}I1{OA zFOU`!p1vRr>f*N<>FZmVp0z~!b3SM^tODi4td0(ym;PwQMUJGK$7By9;A(O5ZQW)` zQlpNJPKJ(~9l0-k)FzhE{HKG!eN9@-(~#6uiN0tPa?AZ!+HKdRWKS(rrmODsEBQ^_ z*Cd=}Ouu&zSPTgH(EL;Ft7l%bqrw@;;HYO72VA2LC`8fKZL-cTzhGr;ol;B?Th3B1 zN#-KXL`FtZsZ<=&?w+0|uS4R3iE_Xxk3Q_aS>zUUWp!XakJyuHY1>S*0$6eJ<;a+r zp02Lo#^u@QLV@%-xYjHRYf+P^qT;sHiLhN@v_s7g;az|Ke$>vq8}+J5VvPNK{UZ)% zUgVj~u*YcJft6a;`^}711}eDJ<-~sd)o^OmtB^HQ8MbPEA|)q&02u%ae|sbYtC8;% z(4j{93`uoh$TLu{_wZ&Fmnj4kMHEy(9N zJ-sJbpea;T_rD&i$#4oh@vmXCuoGW(frl&qFE74BN88M^m6er&fq}p)&)JDsryiNO zpWj5iVc;_s>Gtj0n4;iDg6KcmTsXHkb;hKO+5w$|nE=lK*p10UqX*#}f+(5%r}gB9 znZHoT#BlAXkFq&tSLt)hyCF{~o_zPD2r)a8sany+H@}A*{nSRSNu1HsB3|e{o{(X` z=rfy`S3~~D!uY_EAMi`Np=YF`7$`$eSNFg{^YhC#_v0>#2^e3x7>Ds0T3$2H9N~?L05)I1^LID19%c8GF~BqqcDWLPW;7Gr$&G?$UKs40R*4Eb5MRzaja&{u_<^wA% zmMVvn5t#+gm3NVf6;lRA#y~r<6qrk8=%Y=$X3e&xe|Xta)k4-xd>xc%YiPS-N;`6B z)bu4KB~^(#izW-WZ~FcH694j5tO+Y+Vc8e)bRXqJMr?e1{N>Bd4@0Pvz_gWfbxV6K zf%M*$pEqtI6W7dA4sgajwW-F-;Nmz=S_b34#CTNl9eiXpBMLirr0HW8=;;w9^gfNtw9_+ z);v;xOu|xP$e3sTdXZY^j!4F^#$q&k=iQ;y_bz>L_70rP1m1tfvun@A-(l zQlLAvB;u9iLz3=0`EChHXNG~JHe|}d9AOX+VHVmyME;BNBEu5;dBhz|9{<|sE$j=IS67Amyrp< z8=dy$4d%1btOE*UUtL||x1bQtmJsT~q`N&H8OO94A5;C;sXb+PP&azQTCa1+bQdc~ zb!>7Y$CcVt=V~&Dv~`uOm5ohgw&`Eq3;KHs&k)>+>)JMCOuE t{Mk9;j5WqRV{p4@bMapbq1hi!E}&S0Flb{tN~N29c7Y>`e>| z990Yq%xCym@X9k)_UG`QOAqDrADTNjde~Z6KEzP4u(v>%KD4;UVCKPK_3)vi^9^2J zM_W_-hc0%uJmwB|u6ActG zw2>vw;ygh=mE8BWIQO$MPILO?DawU?Y&xxWiDyNb+6&9d-;MIUjmLgkv-`dNr-y#d zjOyO|cTAq^-7%*-;$e;*W9(9A=&VApQlHX`+|n<$)*)M^&(pnSQ z(XXfl`7ad1s&8lgcQ5>=)tHo{@G5GLuUec;dF#a#+?W} zsyh-aD#axB=~X#XyB{~cMaaXhY{?1Hf( zlXh!x567fkLkv&H8H;(ojZs6SL)Yw5s;31Cw@fj^DDWpQ1c^U}lC0D%ccbNWJa=-r z<96&|bt_DMNsesXSTa)lcU0eWNM)a$`=&$k?6Hy2vw}^cgv)i5e{m)>b zD+#pl61=XM6Nr@g{SKvDnu!0rH{3lTt-qho_-kjbeAMxg*VmTh?PcMt6+XtW^KZp+ z6{1r4Oq&w!f5@;gP{l8IoO*96BI^7Eby}}RDLzl!?_y`7-On%BdoE8>X!)Zq(mfZZ zcbU;bw8dm1b}KsXc_wiTetd4DTdex6i4aIdf+4Q>0H*($*8VAHhuDHgb_1 z!YoRp6rKF*ks~b1#EiQ9l89p8cb85l<6`q*jXpy3hOK>igIvy5VCuxK-$|lj}G`$_4Bmx=)aZXrY$NC=#~$OrYOf>Z>_Jh;;W5{^^P>Z27~!+iuyn+Sb;dypkR=gQ4r|&HG)Gg6{D!6iu zf=Nt(OV8fuo##_=<7Xo!6J}d>6WiY-%rebJOk9%fo}VI0&0laGDSm0}JN9keA|5XN zj4+~3Z2coOi^2UOQFMGMx_5pXbH+GzE1i#HFO^?WNY1G$n(nPh#bx1+NYag=ICI~iCS=M&*(9V zVdvbZw8MQ3+tIQj+uIIqzv{FahGYMDvi2C`v}-m2uq5a^nj=ZE6_R-tk|!A;J^13o z-~#jA*9eKbZypX8eL7mMblv+n`Xc3;{$~rdHy#@U-v;&6C_4*oSH4V{*x$zGzEgF{ zYn%46LCrv^85d_WlS53Mz$qo4n(@@>J(kRk0VYhA`wM-|@Sbzs_+j!FSZtMpie-6xxl<|j z>YWAxbdZ*_3eU*C^%bLL6sg~r6=Egp>m4q7rJlNpt$v-A9+OfXRbudq(Q)n9*?gTM z-{Hb**X_omv?(TDyRKyCv-K@PMBeOMylilwkx^$>aiFvI>#GCAjd@qX*ju;bJbOZM zh&H#SA>pp;SL#EZ2Ji{%LP{9JDvdVYMRJ{{d}-ukQlS_<{}O9Ef~&1BT|w1#l3Dwn zo}kD3`zi>M541NPo;uDktsO1QbdqKW{=V`|>8f7o7q)fM@tg)~Rg`({(2B6zkNLeV zkwljPCtJte^{AQG+|LE}oWBiCH{Zv`;xP|R;To zW{w*bKKqSn!p>WZ0}9?Y`3+BFN$ROMG~IhsjR&781(_G39LB5g@JQ$VeY3k8jyy5& z&c73KSvod|n5}l4?g~41TxrsHrra3kyT06Qx+h7z#j%PPBCDKcc^=Xz;Fw!{bh)hr zF|{=2>|bOfST%Mpj<)xzLi6J&SEo*nq^-*Wa?9kNkO6sODaX|BGkw>a zyPOT2Yx2~dQl__l@_eQ-d6F3zodvfF&J(BT*HDmMzWaulVZ26NcVba2_w5RgjU)zo;f_-M@=NnompipC z>NR6FCmB@j)X7KP5W;l)GBe3xRL7EJGg9n!bYRyT&ZbPPWHyRS!x7HidYc6pLScYp zRqH)V{{)$2ngPDNPQa zr#vGtW$WLFbzwh%UnLdUY+Lr;k)h~H+NyVA*5{1+VJN-PmB1N;S*pFDZF`QQUz8&W zfv+maq981w_j0m*Dwn3@j!%G2nQ?;ehMM2BuDV=$tU)2g;Y0%$gqlfsS$Q79a#}NkP>1vBrNoY zR%paL$y_(Ty@=v}H(-n(bJO~}e`?OvSJ&=;?~K>m`$eD1+#W)W6WM_Bje`mtffGyH zQNF%#CRkSJ(2*q}xLok|5Ir{LPpaW?%FEH;lRFU>0iVNF4L$jOtg1NiC3ve|X;IC~ z7kinfs2)c4oIhL6vcdOj`1jgd(yj3B}SuQ=$Q6shBA_jpuGXDLttlgKA^b z@)!YWYN+Pv)7?Aj0=E<1x3V%bQLI^4tfxfXu$A7KC^6tIXOiYfo5~ASo|@YV8(kl- zp3r`#7%)iFNP=a7qiKYOb5AQaE_RmMuKQ~+34a@WLG|h>kKqosQmyD*{P|_#-mU>eLU>zG`djL_qT1I^TT4NJ4u=ODSE5j|K0MhTp$(7NX(fC~d*3fU z$yu#UMOY{1>~<4&h<4^JNz81gJe~CJQiq?Ph7}3(X!r7pG;A@W$tRa zKU&+lUOilH{;OtsFJOf^kBV0a)xE%P+2f~h5zlS3j6bjAJT0~RSt63?5V~vDL*BD( zciD83`R({v`O2_Q5e`lY2Uy-J)|cy9vFH{gq`PtE4Ttc%FwWq2N{%5H)Y zim^}*RD4Q3)%fb>T=fK6641z?KDOCaC()&37rQHPa;-j05_FgOv6`k1PVJHEckvqGi z6&6n^FCXon!DFKJJNDn*NX~5-<&BgRko4g0Ekt=A?IwqIClZD4OP}uy+k<3>r7N)| zY9|ON<-CCm@?q?6AC0D$xa$$we{VlM?V{KoKpmD81KIhYsA8jcI=3yR-v4a5Vwqg& zti0uAC?#dOh(BaDS~jpVf9K6ZqAPf3FEU1R%AYP|NR$0yVtcMB(ue50fHzcrW!&f8 z`Jip+E(%$6*{<`xGI>olZrMOJk3GKC|}d;VwdXy>v?Nxv>n zdf>3%d5xeTsYtlA<+Q(@PTC(~Koi=Qdi_}S_T5q(uU{A21IM{!Z*ny@J>nYPtu>tL zeg(TxaPv8jei{A@!VpI}fx`}xcB%cts#;XX=)HZf+sC!3$mKePb*`tPQ}K%G3w`2U z3c)w59$VN98X8`i?|D+>y0VuabZGP%VJsjyImb5^OWQIA#8Ih|>LeRYKP@ekmXQ)h z!#r`NSx0VY>G)=_xGX@TV&HIxs6*0vUA2TL^>HBct=K(EHh z%ez-KYVq36crAaNyU@zN8B@gB`8)NlA%iw>KRzEzl}Bvi3A}MO@TqBX2!x2J&)R&d>URy5gq1pF=R43Ln$z3=v+6GO^bqA2HmSH-r-Cnoq32YkjJ zBDe(_nT_jZog=?0WD)<^lEb~IgqUkKBS9MsI8D*M2TlbYhSk;)@z*-FUMUQuyu9lb zZm`B=T9wRmH#aUV{{yQ5GM5%h`(7UjiR10p6EPTPnI#~yggmQ^xp`kga>i*iyaLV%;Q$dz0J50ge*PF?-(j@7T=kY36||Dk)d{e zt~}gQDmk?yEb`)D<<&-wG?S_oYF3~vfC?FuoBxG$QvP*3_Nz8w?k{V5^G}ajBa-=U z`?8U>g$=%6@>>NRqIAXp8P9OPs-EVr0;nNj7ny(97G)A#HWPCQS~xwX!8^|jNp8zRRSw1&t}I5l zjXG4HjJ!qtj%wr)Ln~SWr%ZVSE9^fL$IrbQfSd!0cAHsPD^sNg$PEr##MSqML&mH^ zi(T0Pg+NtwWG7yz-|bBkj;MY9nD33>aW+$=ZvE4xq1{_0-fZ0(ITjsLOcxiCiqSq8wRqO*;X=)xtD%=tr7K1L!N+Hf9W(vm5{jc|!eTG!7SG)CSTt6QK1C}mhp4gtyznD~ z3h!(?r^A@-jGq^**AVA{aasn8QeiRf&+ZUTvN*K@Kv(SzsWd;k?RQsA$@L3!{AL&1 z*&P;SP#MLc90LKPmJzM=SM3+-LGQ^+T0^G;>pZt~qfjZgRalLRG~+L5Jwz+^Q8D_+U*65WJJ-rUNqiw! z4ogve`P{RO(Q<;WyMi8X+}EOq_xbjMt=ZLa%(|DpuC^H!pRYkX7SuH??Ax5`eO73F z8mB^xmFm1;AD%gVlT2M+c4LMWPw5RXa}P45bVsDMAO{&1b1kNz*XH8SCAYV6n)JQ> zrDoTZ>XYqQMSjM0Zlk4u5({1cnM6RO~E|N25XbPJEh>5*iA~3Q&s?Gn}Vc`xiv) zuVg6zCFK#`J8)NS`|vziO(prI-Pd~Of}8Z;Bghn#N3kz~MG%NQw{Zd~uoBUsmpfm3 zkD-7U?=85^iU2O(Ik=x1#zxc6d?J?RBUe`j@0W>7WFXg^IZd_KW>^6sE@i~4CUBab z&HpdAt%fC}lMyL8Rmm!>sv7+i4Ud`#vkbJ0B?Wd0X*NpeArj9!fi|xt`TxUTw&bEB zX@!lxZnh+_siqX8t<7Yu+~vKW`Dc=lLINOe&vBlP?(z17H z_`>FWqWHrXTzWtHQr75KNOj6Rx2$EE_b9-16_C3Dfhwxpx3Tcyh3b>}?;;N-Ys12L z)Px=`men)|vsf>0M_!chU9WmDI3SAlN-3jhg|GP5ZMT?KY=G&y`Ryvxy9&nhQmQ$| z>0zDIH^~>ghr$#(`BT37?yEhO!!Or!Zz7X6J6p=qf+5sPo6y26Jea38Xh|x)Op#F* z96Q>~b($YT{VLugFqoAv{&+JvL;(xt)M*v`FtIu$3HFqLvnH6Tu{i$h+>9*StIE=Z z{)0VIN}|Z-Pfhqv41atW{Y@v1b})%q9tv%3!~c@vC}NP8z6N49GhzYMZMqm zTWose33*(c5^;_y`|nrq%e{Pert#$Nf##HtI_o^R9Cq=D ziT&@TW&}T^-5(jhIPG@oAFqOe36|7kg+({d-8auJmzBBwG)l;cu3?}xDEc|^>g?`W zdhsDtJ2Ezwq`b_cJ1LP%PoDdL9{70E7q_2ZN-l@eb$z)u+I2nU1!dK1CmdGxf#!cM zqD<^6@~X%BJ=={JnZ6$>gCC#5!+ZPYO-_|*^W*UfN86GwwNB=!?{n;e2L~G;T$YAN zyXk#4wU&kon3IlUB#w5ly+Etx)iC6}A9+kj^RdD2m}CAzOhZFMax&G8mzP7C(NF4o zpXBd2#d@2R#;TH(#c{jhUSD5dKtRB_89|M1%-K$*I40aldG1o`Dzr#HV1;!)J^{}5sQIpPf$S#S|9-C{{%!3gWay{(8J>aQHW zMtAkUpuBv?B&hf4^#;(W%^_z8PCaDTdujOjjSIog-s7)r11R%*45Aqs8P8Rc+d4$u zS0xL$-Qfv$)@I8oFM02;yo#ZhkTf>%h5kryoc{D1E(llGnoGh|Jcg2oU5Q*@-?(t;6yEyrFnMvmvK=Gag)M#b{^4SOw%4y8`u;JD z=Yj&yjJk|fSTyX;U)ZFRtB_tVVniK; zLiiaVXx~0QkEp#KSj}*?pPjpzBHLTpO<@ z+7s0_A*!QPS2WUZJenhAmN%hEase{6OnHis8pB4KUJkcBGItDihmht<)?9}IeWgYB zV~X!X1-Xlww1MTVZRH9pkt`=mC980t+y_k)P5Q>YgWU~mEUdu5z}V9dq%7f{r#UnnQtnpX|3FOSw{5#JUY%W|_iJOL8S4(U^=o6TEJ;lE3&`BbYRPBO)SvHN zx!d6D^R?b57RS%e59d299U)ONZ8j#>)~t0nYV-T2v%|WjMs(J%pI`Mo*okM?SYl-l z7ok96A2+Ule(RQ)G49E&mfm1Je2Lp!QkGOOFy?}wt>&lp==J$tt{%KXY`GRAzOsB_ z$0^Bsl-&9xX4nxy$xP>>6z1cY70S5nRizMR-bV)>+`pEF3A#reth~iv$~XV+Sq?Dy zvMwAQ?nCZ4R`_?+du}a#dU;pGdxuZF=E0!+P~%A2L*xdkGk)^5v&d~6uwze=U~`*e z%GKyn5lDwiHa{jxw^i(ez-VdzAihsXA7kJj`%EdGO(ltYrbgAO7Nwddq;>mqA=+!{ z;XDuw4KzaJ)M_&dLkE;BQTw?v>ozq-Cyj_}v36~e|C6itZ^()2^KqeAAn?*3!F6Y5 z2XYno#~~D7Bj(26d0j`e^yWC!@1E+mO37co_u7T>yf3?gt>z>ZG&gTs)hQ7Zg`89` z+2ox>TCn>qf(KwtU*0M}#?RTm2P{qF-e$VA`Q!7161(vCPo)ZZ5fKpvLiokg)BsyG zy2fQD0r5-2bZb*dI-R6$UXsIwI%{k5y-!1b!jAh+y$^s?obOIP`<4K{a5y z!9hY-ERDW)w)7))gV6>*i6e@J3Nh~;$6GvlFKG?QpL8@TGTk4qda#2}-z?SA5pstG zua8+!2!T?3v6Dc1UL6_uM->W$CnmjNUSi%JO+C?|2hcAS=8VERH1-@TeVC#c82wgP2acjSFj4_{1mFc-QML83^5k_Prx~0kn|n=4Z(P35lWQUDCu`#_>0H7&1fbPD zK@DqY0{E_@!b*lo?e2FaoTiVUynIQZ6T;ShQvcwW$Y`j051~{8{#v%iaFL#Z_J>S~ z(q!7TBm(8~+gr!+*aakKA3j%oQUT>Td*q^C#EiO~lDea#V`Ct$7HWE$F&roLK+J19 zRAIlx5-?>bQRea$?Q%0YEk=m*x2`KU!&@RW;5%=kRo0K0nLt(AMq;`fq0Oc$2+I!{ zQ9M)3EZSqzk=fHMQakBVe-k|X89fBfub*F!4}X2#lDO{;@!qnS+LLeYvK1Q}3mVhf z_ok}UP8+1KmYS&dbCWAiUfzA1*H^A=VloANxT@DlheoxIQeWHqYex$(ikbuYQsU;# zc>yeSbp{ZJdoGd4bsHBlz9tA@8Ifw-k@xCOnpLj{LLSEp{7Gy0q!G(_t=Fq?*OUU6 zhn(P6Z~u9#W=z6&-@1NYN-?=9Xg}!=p7MC$4vUoQQda2kT0HuCe-?f=q>SQ$)L%$d z&f08I)f*B%_d3T_i(Qocp6l7Cf%@$Knp02!|p?n^N|B71oid42ksnSb{JRy zWq0Bwovt+D$~T7`OJkKU)(42S=$$%4Tc=6&V)TKL5>WAQ&lhGHys{@PQow#52N3*H zuQX%K?8xQ&$nY&@^p^5dzpLqB((VyMG03a&zYr6BWnjc?i z@FoE)7uC1toZ96Wo^J~U;isN{Lx=mr)9bw3%CVf8w-d*KSUsJu0*K!hbwRJz(UeiRv9ZzEdrc0Y0?lJ^i;&po zVUb>F&~r0n*$(BC>hkIoCge~;vSvv5`G%3Pf(+KI_ueJvylLW+uLWa0zQ>1dx7@dv zpTxwR?I|>TjX0sDcdnVd$KZzgOKN!&7>GczN-__G2-U=p+ccE?(J3I(P^NF^snP^z zcNkXOQ`%l0EB^rudX1DoA?6~5fux0mL<1V@xpZwITcuy2!%jRWZuH6x7eI!4W*lwN zbP-1G9v&_$qG^0}NP!HnJ_0QF?+8O@f=LnbwI3 z3CX=)-O#l92voZ0RzV;e@bvG1tT6i|mu@>&;j=ZYXBmMaydcO8QMH(-FBeB!bh-V@ zKnE}o)1R>S?>sgvkB<)d@kg)S;iy^N_#mN|uZbD7{n_oSX$+Hg4D}Zv6Q1zn<>m1C zjSkBEDRATVB`bCT>R!pb($b%hV&%8-{r5t-nAwD9oJ7pPRr(lLek~&>&bsq*_!EK>b8D#-Y>YMW1Q-o9<-0eLU#d*H68r-w5KlB_F*e^x`{5W0h6vR;eTv9!UJ z__;s7ynE}tiwG{%WnF+(#(%4YIs7qC?Je}D*)=kjCtqI$c0GfOq!mUm@Ey)28-osd zJS7B^Bk1%{Pi!BCVCx4Sg%)F{fap^m6p2#dyzYu+YzFu)>rJAxb-|nn_LYXw4&XpN-z@B!wbwKT=flfYHFH z2Kf{C3g*4Qs4N|7dMc`9sK@Wz*Q7mmtf8lkUkr>I*81`eg`v8KAyE;qGFq}nWl$+Q zA*GIhgxe93r{ZXz!N&(uf=^7piJfSw*8e&yi=k2u(XYNqOxGyibE&g@9I-403Qm(4 zXASgbBV)!j8_G63^T0jJ2(IuX^HtI=m5X!IG5v9%ow9npwwD{FNCVHj^`|p+hmbw1 z^qw=Q=YzyCtu~hBTc=t1EmA#sRYc3IYYT(0kYo2P{JUWf@7YGZn0LBXDL2}0BB1Jh zLg)D}zN=vo?v$Ezoo>RdoEysy!aJK26#8+#FWum!p|IBU*7r{!P|h`QVCZNX)kvki zILY+&J3CWBXGx}gcIT2u@967~PB(|hSp+}E*Jw2tjZFhg4ENq@R*^;o1_ceAniGqc z2_gOr5PMmeX%PqCU?8KvU$f{gi4mi;U*%kwi0r84@T|3!41AMZ!B~Y`2U7pBAS8|H z^zv9`4l7Wfz#;~JK?4?c<9hF|@UB^F<&GcUzMXDA_Z%2$=<8u5Hj(DY*6J#>DkDk) zq~l2*MI8M2{5ImLd20J`aHNzXN#Ii*qSzqY zdj%q*K)c@Cqa|?Sm4luGYQmvGhXt?3ak2^0bI7lmvLg60b43sE(w#^Aio~~MZ}qG6 zb;h%2t9DW1Sa*_|zIzY2;%Qz@z;s5>ekkFRjx}J2Wg<#7Q~a(E_8G4R_q7~-anDT- zL5mtu@2yrUW61~omMztzp<_(KfGB#pLn`V(&KU%iaVwWX@cK!eekp0bb+udL!q)}< zIo{yckPq6>*pwHN6>b?EjN4UKaZJLx2GQ^IO77?s7ZDcdw`rOb^JTz2yXr97KU|cG z(Jb`d+}g4m$ayrjF5`_3YSDlw)Q3#^Uf9U{n~MWEc}577f~dVh&&aIxdK~}6MU5h) zcAdMETuQDwxv@EvuG4?HbofvzP%JN?mQY-}g-=N6{p-hPfcs!Z)eKRZfoC@r>f)WD zY_x=SeV>A-uiUFmMb{-j=2MxZe&cR#Zh9;VyPu8Tp>S|x4B^b++~^FTUjFiKq8OP5JoTFWBsG@*Ww1mr1@n_=VRVPT3}{eb zQt;!)(1nP~3q!*4fVsMD>5j)NaLIXP+6;2VW0 zRTTV+BlIG)*UoiAq_i^Z?C;~@;AFWi#*M8Tw=)d3x3|-3A%+wTBU27S+gC!R5F;<| z?rT2UIh%!IKKISNkagi_!?8TxfX^EL(yB-h37MBWE90s659Uc0t64jh`s#i5v$*hS zA}F{XFVYXorqo&umrh~yVMbZ>`5b!AE##AGAu~C_c6fbWn zKsUn~a^kEc+LpmlUimF}IOSkZ0N#6)JciU{Sf-Mp1xd8rphWP9{9jGhc?{a-64bEV z??kdf!aIx<)3C4rAL$p?!t`?J&%*Q!nFslHCi~Kr7wYM${O0lw4i1qRO`8wDePnDK zR#XQRldCONRM*$1W?=`OHBw^n!0n3wrBGb zU->76-pyxK@M%dTji+6!rQ=tO)|QQB-e#hw*@b1rBO*CNe)mtUbCS_`2T&oUq@?za zJ8%QUbClHPA^g?Y;!BRd$YSRVzjgb0NrUOO+<|O>;HP!x;k{$6Tfwd1lFRy`8PVI_2a>%x7@RbBQ__8j!G%L8(O2RW6rC^ao4pGPY zBe)|>xw~Y2eNII{{&Oxs8rXR%I&*#wG}$q!Z6+9V4VNiPnC(%a;83{3z+H{c{YMO*1+e4ci3t#*6ku8$1OQO~0TGcz;S)&0`STvzU_v3v<7Wwt#;>eC{YNBP$- zM&zC&BV)RFD#C%*riBs`)Zwdm<@2%KjRiMn=Z)3X#laUb^V7W@*3&a4;4=Wb*oYsrf2* zshoyU;sZP5lb*+4LQqJOKaGr48Q}kGd;3C5*tw-M>)JPsl<^sLO*fU$T^Gjw6VXX# zU?K!0u=mN;7keX7r*=6xp;bas#J9)tS019L5*&*WVSiUgk&=GqA33UZZn*}?kSjr zN$NzZhLZmEVG`+3oZmuMo5r24 z0iQfPJOl7`yD6+$>srXqfvJFS88YjO0Ec&lgUHP)sRlY= z8q^sYH9I?>jQvXV%cTuCtyf?9grVC@IG%RdC=%&NN%W?fw}BM2>`i4&a^mEIaUU9j zM`tL|begx}fUNwDTEYsqep%L?YU}YCN6@=2Q|~eD>^D6&7qvj3wp_XM{l|}Jzjt+Y zfX0aVo-hnCv#n!(aOxgzz!&Qvk}ezQ0z~R03YkN-0UvE(ULMclmcwLifTc}Db6AlU zF60@M;;OMx^g}paR0m!5B2vhQyv3xAaG(R6nmqONJE$t_;ic8-W>Oou)AE@oEkLYy zHKPaC{02pKdL6k;u+=Rls29)b1S|#Y#vg)0Hls2&?+LUe zUAb<8$sf`FJK_pYt>y2?tbcs2Lb@Gx-xB=v`kfg94UG?=OK@>;7|;b^tnxnZt^9t_ zp1n6Z(GEF6T1Ez92~6$xV32sZyMqz81GmQU831dv+#C#nmAScV&hx4kA|kHK)O;rX zqgYF~K=(s)2_F0`F|j-hmfMl!e{S%jC(tK|THD^H)R^@Lg`Q&x-&n2;B&&4;5lTmO z`OZ+G4wr2MwA!F8=keEFZAHRwAuLe>$+`LG1)%pRo{zX#xCPt zZgFbVGny>aV{DCwi%qIx+2v!t2h)iT}eD(!% zlnk?ee0jJ3>#N^FXFLou^FvnagTnw`f+qB_v~gxY5BVJIlndve>c9+o>QK+AU&fGB z?(cX`iw;W}r@oBs-qFr%46Ihu8v;shO$P-JReUX5`0#bx(N&0lh_&GogHNK6yKl{=}*vBK!=*yF)Mt#W!Kj7t~vspH}c$7A#ywY@XRQ>H>Z<=;r zzRYmWz|qaEJ+J>O)a%*UY+fLkN>8p>#IvcHynr6pO?e#;L$xb~W|-yTo_O(60-|2q zwv|!MA=6FKVD30VM+vx?nH=E|cxZ-(hI~V4+WJ2`DUC4U?7o%t)UrGGF*W8gE&+65 zn(^I$W;To8>mXU~;HJ~)owd#a2!PM)0->%aRsTm3`YSE{C0$V+ab`45&tlVHD#_i` zv;H)mDP@yT#m1i)}!vPN z?ZtsyNd6oF0ReLUwA&PhX2#%(kUd8?<`%bqd=>$fxmJmpA49bL{nH2A(>$=0+}1De zR2Ra?jOFK9YkW#*XN_h_1wo$stv2FyC-W*C0lAJ4+JRn!{ts{kciz^Ae(p_@xRDby z8b|gv3@XY`6RGOUor1^BXv|%JOc-ECGzQp(r!Hct%5dZ1;yzc5!`gr3 zVp!{lDZID?Oo*T1Lxz}4M>H;ZSXWp6B_uPAPI;EV2l(mk?zWv>o#vz9(3BjK-Q=|& zd%`UK(y~YLHtROC<$-80%4E~J!0PjxYT<)Xz?84HyTW+f5e=M@4AWOFzqv25;vItZ zRNuq>5Z)!Zu7e}QWYq)Ra@?PR z8K!Plr%%y0@e%$5KYXuHXJB5Sw`C@Y^iOnqmjRQdO``?K0~oF5RyKa;xizRE zAtjhFbppASFdzk>@GR2eWS=qmgK%skyGr5P&Z z0x@pcEhB_`hMdHYQvr3uc9gF?N2e2*nwajbqZiTO*MnFaDvqbM5K(q~4G;~3d7=Fv zH(DPNPze?t1xEXT&K$ILLc${KpXf{>5s`?HJo~TpQL6Ox^p#Olpf9@dHH_=rO>0hq zn*NStX~V&~$}&{|oIr)L7P^(FQgy=>4^Hw(s*Et={ntO?||1ET;m<*vs zxCiye;X9n-p(Wf0GpzR%@etg+dWI;c^`#cymdH#XDZu2yJn}K(B5om2vjuT!FdG1B zTxwSlpK(C?9~8JC6%=T*GmtxyRpCbs*!~@ykbyG~GQn&Oe=z`s4GAj*^zn(EB5}$M z7i-8A5Cx>8P@KT!eu$rZ4Vi1JKqqGY^X1Ez`rXaVGLv_-@R9*PId4A0KR=6BlcJQv zP{huP?_||I$`JDkU(qMxIo@5Me~5Dd#(`+DWM4Q!lfw9w{oS>DsTfrEgR{GiJM+Un zmk+{3MueTX`zi*O=84qit$GGk%B*31^s}wG$qTioBYA2Uw9eg?G$yfTc7%4p5EQMr z*Px>aqusOdu^$CRT(*&RwYW9hSYDz%YI9nkX_9|YQ?{}K`vM*IM;A6B#+J|?;a zya*7P<9}9>*5cwNhO0L_<4&TGI$Lre@PCsUmuN*?RXzBz8BM^-NWepPwETYkxVsi| zAJ_ZV53f-ymzE86vSNEY;nCdrV-_vxcVIa^IFC*51%1~W?UeZPiN{THO~5^e8sE_J zi#uZ2N!?q-qr5AVb+C}>m)bl#`>E78x9@nQoKRg;GZyi%m~0DVK}hRpLI0gc`LyD= zk%jBw5tnBiv&xDau9^0P(g>fOlXVguaHBO#NvvVGvNKWtA4-jG>iyO_XMBBqAyY_yK$0BE1)wd*tPM04Evj44-_SoHX0cY-!Jc>8Y^fM?=>!XDGG~&ncKfwm`dL z_}=-eW^FyqLieC=2E7U({+NF=_YR&wv2IQ7&F4By zjnGRk88Z+unE)YKGs1c-nU$`;%KJ3>a5?Eh7o%!5`J7Z(TM z5O-Zpso{Y`b!2WYjro`8YiHY9c%RuRX^AC@NiZH?DK`<|$ z`CCD=KA#y;gV835y+!6*-O%T(J0E>}{A3YF8UL20ODc&5*X1H8!P?*H55#&^ogm7^<)>*BR@WKVk%Gs+VAO(g&2cl_Q0Gj3t5xi)oBAI@`KavvCjQ)qn1Wd7kJ zNO7|&H2NR2hmg#0{A(WqYmu~4&>n$G0L|@cT=;&Re{Dyo0eBH4SK+Q6|27(b*Y)4c z_?gpxEtw?xP11^@*?&DCG}j@9!r1?cEKF$ELrAR!{}q2QRw+G0`)^WQ>z(Q9~OJS6Ge1%jPT#Fi`%?A@Tc4@XJ8`1WAR-y%e zMh0<7r|?;C6ai2xFe5nacurD*;;(%rVMlI&>H;N=d+JoGok|~cE%tu>EcK=Z$`3NQ z+!4kFL5D$`))#thXinA#5*Ge8MJ05Oq3;O?uq>gg(6RifG_$hO8AiZhkRmY(9StoR z{{bl{CSjOQTAq0I6EdxbvJ=LLR8*(AoF@3fjP(SlXhPq5v3H(}kus0W^!(V7yQoiWBsBe-@g7e<6)XpuY)2nnSRB zJrK{dcz;)&lj3Ib3v!9f7R0yhwL($b(8H!N_3-Z_+0f=;a~obY!yXd}h{ z@XQ$0S@0|?z_KbUpB zZxra|d{9nJv($Aez6?S`mTqm~wDb(czYNlX#?}2u5`}>KTz}xo|G2jQ!W;DK|A&th zG>+;(fg=0gtXTM1j4L{e&Hn?V=+c{j&K23fe^l;|Wo2b^-N|@(cs2wxcwbJSmzLn~ z;$@eZA>@<;=>k6>q6U*%FVvhzuNKL^?BASO?Ex$_Duk?pB?Vdqe|F(~IRM51)sa%*A5e^X!J^z+@>D~77sqoJ zoY%DAE403uq%$0=wtu2~C+BN$InG{2`w`sukI&Lamr`fa0rt`xXv7#b?Oi$2DJX`Xf!i zTDDehZfa_YqPu?m6|BLaGkTr=X|EeRpJ`Kvai7JLl2-mtXW*Y3f&Q3u@dNZ=+W*0) z|GzW&!JGe^+O`;;oQ=3D^*?7L7}HLlW3#e3Cq457`gs@2h?J|jpxoXQaQI^QR8G;b z`GKWgiYi-4y#7v%x`7#wa2f7@4o&dm7?|aJN*YyG2Md%F&F` zJ_l2!UtplXhyeVIL0zWPQRp5RG{q?X0x$L0h_L#hXqNksU85%8mQ`JwiKbR09v=bM z4=!p$knWPoxnS#l08j<{lBvcO@2~r|&*RTs318KF6-!(gfyF{lR)SE&*i% zm)=V-|3=SWDK&ik5qjfQbs$W^7Ln}(yI%y3;=8X-0Yj*=`9%B{iWT{R9oWTiSmNBo z!M7KgaFQMlZ(GKVpkNof_<<@>KA$ z?pcSOfo7t4XpNugB_c)4$&leDrz)a<>t$ytaVW(I<< zPZ}kQivn$lF8DBHA<0{&rq~DV?6Np`q^wQ2TYX}Dd`(xoYTnVUe68G67>};D(X(|t z*jXDT_jH3ccETxKT+>9T^zhfO?(c7}n27+z2+?M|5BBShJIq)uTfyKl&Y_jl0dsJiylw>yPNlW`P-EGV5|fVTSmYLCZ<2iNPQRCtS^4bZ&!R#K%Zy*!FZIJ6HQ@(bJ}%~i{LJt?HF0X;Cu$P@}E5MU5blw8Hni5X;t9hXYDRfW! z0`&@-hEcaul|`V6VMa>kmqC?PfRQAA_6<$hlu<56LG?BNV znt=Z6bTYXiWYBPH6miQSem`)KW7sWdUx0H{01pFwsp|$Tc*7S(-Tmh-T({@Ie8nWJ zPx3O*g^?ZLLQ6&cmTSPa(CrrNZX+WjP4db)F`7e|^=gCR81#vNJs7&brjU?k|M?B$ z0$fbrelV{WvMtz6%ZQ3Y?HZ?ryM609!H)5gpXu&Gxh9 zmDGC(+l%AVz=gli{nhW-2goow$@(RLuE9AVTbRzcVL_Zsi?eBY;bc6h<(JtkOrc*l zuzxC40CSXg@jCu^W67!U)OctE6?(3j**=3Bju^ga;^Ml3U6d_ka-rfRFq6KP@TF)vP#dN+2}z1GA^-&PqF8j5(Xg$vQjm>1{1WEv6C?E~37xNS$uU-NceCfUXeyM_g=kCS64{k_ zZ3kQN%sc;d8F>=YvLmhENFK=2hf-Sf66zwrXy8~$ND zoMmLh4Y-hGpuWeQId!qmtPdn**$x%EY?G_n7g39ab*;-8xz3kVEZ_%5I zTyDUMD7G_kVALM`ATSV~&34Yy^g8msddORW zS4)0&4umUAZ4&fE!8E{Zpxh<#@(BLnsybo)Jj>zg>Uzj9WM$489(aptqGzWp3?t!) z_|%B;$`_ydv4{)p6-m;ZH%hMtG)gVZj_z=|`bFkNf1Z^NzmU+@lJ%(?69>L`<%@W7 zzz3lnVV^0zbTxBBSpNdEGd6sqI~i6Sa++H|3VD5rt{ksno;iJ~AmJBL*}V!e`UZqqf#auHoA)DV`TxHqL^?) z)U((M`-)w4jCsi<|$N`~BvVYDtPE==6$fr{FHY&Aah;6a0FqP8(t)iugz6*unr{ zDUu;`Etv)@uAL2^cN!+&fFl{t49;)ZYEESI8z=eQe=pQezQIcL=lutiA%Y=%3PdA% z!1?0C{NT%6XFq;P^VUnDit1>v1=w-`6LO@4cBnD89h_;-Q;;J%m$uskUdEUwgHhEj z1_8>fp*-a0g^t!ovd%+;FDxt!I3j*%)q@4<=4iO`2{{y~<{|LYU1Y}fJ4L&9X;>al zEWN#SYVFe{A)v)5o^sEj@`b~OF{ix^Js$}8`e>KZj}p7Mqjm%9YqOOAE9;#;M6O*& zU2>CsAeCrsHsPXBA-35%w#{}jN6hBTp;So!y9Ve0uz{R8=H9$I|aDlm9xXec=WJ`Up?v$GA%uZ`ftoj*U6X!C8znL!5V zLblny90I$?C}8fhI#djv-`~2V{0Lukz8yr@CB^j(NJcTz2cS1Cs>XNx_>g%++Z1v_ z@KSjdE%+~BIugHqP{ZNnHKRH#01+3fkw$FmGwPA}gW2Bi-HphM?Ph)*={IGKm{?b! zbm`~8!HO#t*|FDygYL*6??2L6B>#1`&b5#kdY9F?t~F;GNWQ833+XXElM_lq$sr0e6iCLRq92eOby~q%J)x2b;t*xQ5+0r)OQxs(v8HT$fHeaF zYE_s+F2E&O8!IE2a#+IL78DmW%=M?OUU;D~;l|zZ3ux|pd}hD<+11ADa}PZeup`5t ztu7+qP%&mz{pku+I8-TI%T%u%N*zCbYZl}%o99edPQdJSlW77Qdr`s&VlE=yRHMfl zj!&qi8-LP($x4StiNe7EX}iejqgC{6cGk}fUF>UJ(PJCSZ^e9*Nt`k2v|kf?Rgs`^ zUblaTttgM3>J&v;dSq9c53S=i@R>L-s6X5I49Dd3% z*o((#Wh;2;Xi$H_h59pM29J*W%3hS|;`7*5Z_dH_dxd|an#rIdknCo11Z<&MA$BwL zZ&_oZ&W|_lE{f~=fuk%C{W!X46{;e_3o#V(bQnGhERb?d@Vgb&4+0mfE=PvHhDz2l zuYHX7@v>n9E=HL#up7eRGxjZrgI)%#3uKfmqo8|U`=ZQKZxDj;SlqKK^m6+APFYW> z`f%>f8{i{j7_ za&DWy{rwE@R8}wQSy1J3tD-Ny(cNU{)AZe_HbZPnK?>Pl%D8RW~M0|VEhivbTPj8D1uL&etoEhGMUYmO}4mIFVRxIZq+$%^vv>#kf zw#)JS*%ub4)5~<WuvkVV_c(W?L4p8E%zXFY#XPokE+wj`9hq&D#=0H|8FSJg&@BC?S|Ew$#6E$pZ#G z3O^IS-7Mw}zT>C7PNjNoOX!uRP*Ng1?~cDqr`kI?IbGKJI;^cxRaM1ky}+S#xFa4( z5fzU(d+~S%S_L`wG2Z*}&T@@3zjFVX8o~R66%`dqtHo&>JCOfgd z--Z=8!CV+!@QrI3|CXECZ*$zXdGW+~}T5-OyWL4wqT@(+{t1NE@wUFV@Tgqto#)m16wRh+CBI z`$L$+p>{)w#s_^8iM@TW%hZsCoE9c?%H92rM^<@xx!gIPFGyNdhnh_WEsxHW5h^2k zKr}^#g~?kixSOh1!;<(de4Yh!ubb5?zk7F8%+Wdbu4>hd$lxA5Bo=~9f;$%?((dga zv}iy|p=;LKH#cqck~nylCvH!kRq!>7!-q49i|9;h%%~+pgM*`9@PEp+Xf)}#&jzie z`4l?vaR#{IG4)u_vJKBr*5&O=Td_)I#axNI8WayYVyoh@4|bZ^n3!uQ5~!}GR!O5# z$ii=8og!GQU%guN9{CGXzf`vmxT|+~dPJ0=lAKo6XDQv2ySUN1(teo&rl@7)N_{+Jy!a^Ij-x*-FfP%pFJ{07K$D>n5U9z4gxE!ElH9u*ns`r0!4 zs8rK>4cWVMOA`X`)$Z8-Y1_7K9Q?&+^Z5GSyYaOVjY7X)MXe15ijR`d znJ@|R@aVL<2<~v<;>Ag0yl=wl0T=SqbaJU=vPi3XwDY$&;#4dz*`<4lRb|J%pku^C z%Xb_TPGOw7tHe*NyxEvrw8_1p{?J_V%$YM?nvSa;K782Ivozn}ZNV;uvS3M0n@A~c zh22~v6|+H>-yav7L%w|ZvUJIy?)L55K{A<{nLSn*9{PNLz864Dvq83{KQBHfWNDI(jxpkf_4jlRh&P8TmfFY6}@LH_*u56SbxH@ooZF;%eKs(PXHc z8@_z`!r_E}mDD5EeZ`Q0q!d|)n-5N*w5=9(e*XOV;j)%Wh72@e&#Kj%=}jpRAkbsJ38)I zjRvey?|yghOtXp@kZ(j>UT$vj%*ChlQm0>cgL^?^{Q$Rv!S%hulDn^HHfEciv3;1N zi8k*HOG``qEig$BI5Ikq{k?6xT;2L4#k!vhH?(_ja{FXo@{8ZMX@XyMJgOUUc=MME zPW0RrwMQERBXb@*OHD~hIWYFY5V3IG+Y@!=XIUTH!sPu45L>+(46|l6?2jyDrQnM$ zY9(_>{9o)2OfF@^v-^*;4D@MXzPoSi-<00${_#3U#xT1!Un+Wv;YNQusG$V6a6uF75J?y{1-r! z7-^UGB4f}Gs*ma#4tsP9$gLAwyB0)94ucAtcHZRjEA0qUY@Okp$84%Pe_hdDef~5j z?b?;Y!^2uM*zdh7;;&u1hSK0=rlCEUZam{OO$E6padM(cG={^ACLb7cz%x;gGHkk@ zu2w67KDX`1%c>BalbkkT980JzSN@LJGP*oWxsU9+pAZDba!-g^co*Xf_y)U z7z(d1(Jnp1mnYfk+0Uo)Ys)(i9s@tjMGRi1MO|77yAZhm4 z$g8_j($bqTqd@aT);?paF1Xb3SQvj_k3`Y|P&?{;D?=qD2X!>%Nl^5`-MYFCL!V7u z+Q4-~@BcKq1HX&o*G8QDMNhnF>Bjk4ktT8mTaizs?sN%Y`OJUqUTb3E+!eQI85uQZ zB!f^Zw7TXGWVkna0R5=0tWqOacidq795;CoN&XI#Kc-WTKBW2A4*d07i6}Sigu33A zo?P3Xxsf!Q{BvK)jQIY_2jcv*y?Lhs^0Xi*jKhEC|Ml?y=Qm=JwEl_)B)+O{!~qTm z(vb519$;A$Cr}gvyWILpzV{Cdz(-vomrmF)Cyt^9NA=pg_o>f}*%qzMFVD-`cgCW- zqcAJm&nUSxJPCRaPz(b5l8yuxQp!0b#;Jwi&Kha;>sNFEbdT%B8Tg85wVDrm4$8R_Ed4AvE_Gn_PWx`1vbI3kK8SWpRunyhdezNs-;;LsbXzT+>fdi`Y~9r z3!MOw7G^XGKV&vrOisD=YQJsP0uE3vuoJ}=+Z;ap0X-p-eao0b4jq7>2&;PwF3bET zhidTg!dA2@+Uu(4sPLj4v{U;?>u4G{{)Mq>sclGn4fzgLi6vu~>oJUVq;W>s- zg!KXgXPvq~4PE_=I~D~QqI5Je8=s4k{SeiCvaiH&*1d2ki`Z57zd-)jaf#^+GJ;m@ zYEv8|Fc&3*&o$txI$&VXVUqO?!{Dp6b#w2*pq&&KH%yP%wf>cS-_o_f}P4`iTT7f zswv98Seq#+SN$A@Yypi@;T=m`JO&=8rV3$Q`#E=QT(E4}svCRJi3AxRHZyqp?N|)M z*H~^sw&Shk zthnfKJGI7l{oQnP^<%Gr6tREy-aKUb662y#zYpA8;tyj%@l62Ix({i!K|fwlE6e{O)Y8ePF0X zBYb`P_a~-j8Ru(lFYBcUa-s-aU5}!$+B>(n*aNI#|Dxyp2vb$AE>Q1%-ib9eNeW_w zhOL%Vq4fUn`aK25F2+U2SvJ{S5zg6R7qP8!i95(ApLY+eFo=ed-wYjQZlk4&x|LO@ zgS@ry#AxScji<8uUurk>!L|2fxr0TQojSbJsF|338?p9#^N$|sh&+BxTh54cxV@vZQ$ua-_?O+i1#N5r zAy%`D&*sNE7GB7EfS|l0;{1$zEy;NqTD0_TBE~n;ssSi>sVZ>pza8>MNsPGA_s^;W-p_`=U>4D>;CxVoVRAJ)Q9$#qs{UbqWIw{AoaQ ziL95K_(j*QeQA>fY7rE%g^Eh;&UJ5vY-3T9Jm4}6f|G-t=j=r5e6Q7xwJ;S2jlbQ} zi~#e(Eit~vPHVvuj(Ur1Pt2M`EWDhS_Nb!b#K)IAUnAC+}L8Vz?K$Y;l1oAHTiUQ@&2x+ z!aRusy2=1h9kY|nMf#3Pos_E+*%oWlxG;3nw>?P3=KH8UrkS4?4Hk;_2IG+TMYn)v2R5xFjS&+e&-L^^vGwC|oDm>*A9Uj5 zoh!9y!}tqL8$c1@vU%8Dy^kJu^NX^3C}6nRS6Ef-6t74WVqzh->T1yfdc>XC?H$73 zwD&*!(mR*W-n#ebob+fL!mx0fnsG6qGQfo%53Ng>bvfr4X5Mq(<%#xwvw&-rSbSdQ{cA;*RZug*Z9PV7u~o+jJ=Z`rj(CORW{8%}z+EWX zV|T5?L4Wb$g}3cj@xlj9sGiC2IyHN)=cErxUb5e{i{>`e>SuY^$&<;u>*AlX@Lc9O zRrJ4blst+O6O7&DROAVjxeS!$e6oJm|pSdQ9cY=do6B$Vj&~y z@6yl+3ngKCqicSk5jgaHmuY( zp4E#)@)|1r8bX0zyVhWPem@6yO!Xql{EytZ)g(hjb1*&$QFEF4?!pb?28d;O9hB;k z=ssU6kOaX{SQUJIX^dGb3z_pSs<1WA$dc^9PFW7jvwlE^AdA|@BO@b&g61|VK&o+W z-p5@v`?QzB4ucvKd*@gCT;lxPTfnE)n&&R(YBs~t;=#Ry?)uhP(+YX1N>o%dezQp% z8#$`cthc4Wmzrdh`fSYk+f6&}QzzY3Lav<&P$ID(nO;0BMV%5?cx4BFo6Zk=8WDlr z%DnG$FVd(SZ7DVf41<5xIp0^XPk-s?ec4=g7Jk6(`P4c5@T;wol5&3H0TUJWP5YBV zrqhOd+zdq6Jr)~97B|%$J@=shN^W`Yx4cH}5Q=dPAyDQr$_{>CR9jK}bS%K)wW7RE zoTLcr&HSL7w3ME^!MlegJ4PR_YLm!M^KdpYRWoQ-3D(xt4UdU291dnlzVaM=$gesk zV{_BQcdz}JX!gZRYm@zJ@~7RGo2*$f0^y(X1fEXZetXZ3`5Ql%p^d!cy8I3Z6@Y}u zy8E@Y-(5d@ZyLg`FMal@@aE^rR;>(%m~!`4uuY?1rUFUrp;;uma7TIz&JG}CnQ@+L zsI*c$yTc?S_@@Hg8uh*Tq%=SOJ)vlTsymoy2g}Hl$B*T$9R}~8-9J;@d-nXT1YI}n zi&u!W!aXOxYE>rU2boMxJo)pp+Nb`i`;;Onz7espOL%$v6rI{G@=6VgdwXCP~y^=k9}>;jdZ}W=Y=-%KV>nzuq>W!CMIV_=8O(r7q8U zS0~Z^{@~H0r1pFpUk|1-ub&KuNj-R-+_uI0gc!CsJfQGzf%{Y=j!>}yV8Ek)L;(R7 zz$$w4(I$mB*AMAw`#ruqfaU@7Hk3Rw&`(xzD9!JFdAKYhA_Byrg_X@P7RkZ~&UKXi z=2li6P$;E?5nd0!zL{POuUb;nt12jQUwwI=p=xaz?N}$911tugL8S_PcN0P~=3g>z ztx+Aa+2_N$_2{;97oml3dst(8dc$VdEv{mCeDqP{Wl!1zk&=3 zQnmnAVWSR7<>y1-)QbJ*VEp~2~ZfdhPw z>Lz$A+#srC=tsjNA8(+hrpCmG)^&Gx&)+mishPk8UbUN)wj*>8ChN04tSbM<@1-&C zFZUiWcW~%GFy0@7(iOe$4M>Bz+rmSc5|vi-*CcLwbF=8iS6P;esi|Ap4&jH(2g8;9 z41lPKrM3BFpZsN{7Vhs8$nG3^pj-td+uPfTIwD5nWwO z%8ma7$Bvqsn$RQ&c#MH=%py$OkK)Ond_QAXs5L9xN=+)@JY9IW`YJG)#hEj+=Z7p? zr==TRtb=Nu?kYB1CB)RpMvO}-LF)He&7!PQEC0$QPrR$oYl3K1P6+p<#vi?-wl+{G ze^pk28M5iLTl_nm$n$XDYjJH0t_=m09vVoR*a)BjTh@*xtF2YQYEda|8#NoXn8CC< zC`BmWwTX;byl`OwXE~fZht;84g^_WpFd+213*LPSV2{Owv7=-Ie=K>1wL0^+P2`7| zs3L`tECj2AGu7V)BQ}-7X~WC#If;meqzvi5j<2BL5bT7Y?mB(mwVa=%pHLiv@gvL0 z)lvNsuY7o}G~=Gjx>-ySx*)BuT(ydos?IFy1q6ZjW(Y{)>=29!!TD-2qv~0C?=Pz{XQ57&|19=HWxt?l_g;LU^%jUkAs?P5H8Hvx}_G+yxp?}a^B#T)tDwF^~*d1CFw1za|1yY#nZbPrI`OC zBXB_xb8~YO78dT^Zq0N6&TD7^Y5Qh;E}KG;7n5M9&Z9!0d9 z!y%>@Y_7zWj%qTNxji^DdpbaJ8%~!agPaRaO#p2qwT6xo0+u%2?YfTouT^}N#0$le+m?FeMd7-9HV|DQ-mwyyv{h{z+xGuWpK!M~QM9%n{!Pj*?ID~{>r&t)^L+_4*tjEoTK zz<9I$|3OBT6=3OP<>bEiG`1zoAOU`#o>D)5t*ySxL&^Z}#1~$09xuDUI_{nZi4?4z zHm2^&fHnY+KpA|{j|bru1N?GyUtTuxzw~OVF46gq3L0z>H7e>B@KD_zZSAKpIs&q6 z#Au}S^mGwA>cS@HH%GuP!(bD|!s&4S{CSY0=m0W}8wY&Bcz%Jni=Z`L?LYYmXu&%A zHpXs%ajbGcMMB>i_@5Z6uK)~$Q8}XhN;!C}T@X4sa@M=_j=r|Np%!=z?}ll!c%Pn@ z=#GjCZ#J-;H${!-Y5vHI)xUr#Y6#*uy%2BQY|v?7fW>aVg|3flqXoDZyjrL7P25@1 zvH#+P>esb+$gNzdrt$#sDarMHKtn?VASEE!mRVyURgxg@LCV}iW{;x?7Pf;Ql#r6D zt*(yHG*bzwIEQ@@clk&|_C-J{47`F5<~xXomTc24M!7WvhXO=pxOB1feiLNk@^baG zQx8a_xlC$XmGxBO3Sr|6ciZpQj`uEj1Z;unj}lW|v>_%FEjDSeO%tr-W{}m@Qbn5M zPEv*uk;1H)5*i>e5S@H1XB zm~dQd*v$ABNl4inO@WJ+kY8#y!gUr#$-}E2zN>itc++x$ zQU{ETZ)jShp5h-I?9>6WWs>$RPZeiH3Y35lS%~K zF#AjJd2D1P9b}{1Q)k*raq;k|uqLym?d`dYy_5lhaeNLL*`k&($Bjye&;gxVw}g0{ z_gmpk8(u*2K6L3%8aS6}1=`Jc_yHysc`Yh#=)v@}bi9!q4Q(r!#~G+eGy5vTTnYZ& zaqH_lPPTS-*I39PT^qneKjzR(iCuf-f+jRjSg%fi`a|VVTT`>9Q`dqldmqBo0)L`rm_Qs*xV7zwT^WY=p^Cc
        lR0Sgx?<*KzB`#NjQ%@eEdONd-;={dDsqxM1uIuFEcos_VvZG?z=o5 zJ$9d;U*taA9T(yLITk=>8FJ^IOR3k-uXL0eV7X;X`t&$XtE0Qy1M(WTgyR6cj>Sp) zB%17#JP{rD0Y&6-kf<0J<46SmJ@9K`x?fzYDUI9z^-&H>AA{k%lzC4PUsY9g;7#yh z5HmCLDZGq$EVdPBJHvgj2nFq}s-7ae@^xgyACNgTG=aq!ZJf2FBQx;UEfHb<{7K4U z@z(G=ymYwzBQqjyR zkJ-s;k932Q>orcpYa|X>77@y?;1e#5#91zqI_oiJXiTKz*GQo znq0a)A^AlrSAHK4V3US+BK-^Zr#s+(sW@ZwCWK)My7nphG~YV^bq&+bxm|U0r^kL7Kd2zHL^Zqn~}y7O%S45xu6yV#v`F(zP_oHvA6Uvcpe& zxpVz~i5Iz#y;*`RL6;CN>X20Kxp*o}bS=)Hc!ZEpj7RsWX_zs(xv6ZDMUomRIV|QF zL^r>*$N;*2=FT3wdk5{`zIl`ecO(29%IV-k=*Mk=G? z;{^iB$I5L?939V0@<@!nfD(A+K4Y=c=sS0)_;sKgrK6+k&W(7IRG>Rs-p+*cLjw;2HuTb+cj?pFIQILt zv?DJ;266*q9ffH*^G;1A?i6uNBP+OoA?phVY*;GIG6yrHKBkQW$8$1U@FneWVxUs< z1GhEiEv&;ZoEPug+Z$!dPM`N)zeKUjwsu*Q0ZY(YE*+_itTd&c^q&pA?`ZS)#<- z;xam<;?78%zH&wkXUH?|$K#1D74rNxF%e;SvK!Ly^o)AM-uo*ZQ0GAmh&#Ksva+_e zc3NznE}xWMQxgq&`<4ACrd?X0>v*CtN`b58tI&e9iZyo_nwU&KD=b_9_WC?hq?wj( zbFaU^k?WG_z>d$48&Uxqk+yXQqYa0QY<@Ct$3J8>#49)q#KN==bSDNsc$AElt;H9s z{lN%A5Dc(1@stSb7=Og8k`eIECT}10Gryy@--5W9KGN2PBfwMS{ZqJhXpUrWa&eI#8n`5ksN>lb%*=MT=D+)$9^$m%mp6LD4oe>4o`>(yrSc~( z`I0TjRtJB)T!mHrk8RIUFJ^Q5w^?P5fYs9qmMj>ld35fmH ztl+mdc-!S3OezuBonD(G$qN)q5SxS$_YuS&I&faC|hSZK%D_lek`kc^HV$skS z{_`?0&!K$^veWVa+g$nsHw4?9OVu4Co3;eEbeH_=IW_e#)fW`!stE8CON)yg%)?aOG3dx~UMifg92Z5w zBdx{!OCjPcC;O$PrSHg<3%t2}X87-p|L{|S0eUG!rsyDaFS%RYXGE=VhWOu`WGpKq zvr++|oqyZ>_tGfcvv53V9$vdD_c!_0V2}OhEveG6gVC)?z_5|Z_4^wpa&mICY(N(B zE?q=*H66u^@*5;Y7qF+$6|3s>J=f=(i{Qry&s2+R(BX~_-W$FMG&{$uSFgZ&3hi;4 zCrkO6MWXbnqi}f4Ln4xCkapKMAmEe7x)V9Bu@pLLEcJWMo>AqZNRV|UsvXRJmjsR+ zbJ?s|HSM`?EHjD!A~rg`obUcGa9`I2^o2#JvA5t!K zZqok0^Isa+|4myUj@~4s`UaYNFkb2E`27zO?eAoKAdyQ9%X0qt?o`u3l^+=7w$wSA zwaK?Qk5~PzT~-PUF_WsBfc7?lWNjInImXlC`WKPJDugu!XB()dH*ekqPX^8`-VM0T zuKT`zfeuG-@F95P*}1r$xPzfk_o>!tai>!YG3K(?9VqtWIC?@Nxo>F&%+J}1QA7j; z;0{0M@|D4!VAQcWf@J93+qX|Zh6ee}_Q~yp1adO6mSrlgOG;F_9iR|{Fj1gG3Z}U| z=!_0!iNzq6z^~4YlV=)3j(1#nezm0DX;^gNc3JVY8d|&g`T3D2swaOtfr&VQ?Brx% zZ#MMPzI2OtRshgWzPm#&<}kqmeWayobX;6ZwK<(>8qVvhu~-RBHbk_7z1-f)Td?3? z*#@#6=$A>!@xWi*uid8A&_qW?Nr9UV%x}=hZsmf-@v-Wb;vB4t|C~0M z(SFwNlFL%Wf*o1fzK>l`{6^0)3K@QWeojsz@CGhC(});Q4r2#LA(%T4BVe z@mAf5GvelXLbWaP2VgDx%Y!ery1E)Y5&a{29dnugec7C?O^fFY18*hS7UKjv_i;l0 z&y!?I*I&`~;SEqF)BjwDRfDn8pg;$!AGEhsrW8Y&a>fX9f=h1>_O;4HGnN#wqpq&L z_zk{2h%WjL*x!r8cl3k61@PX1*NZ;1DZgJ-{(dvBW-4!MZH|sA>%C*dGTw`)3PbTA z2R^2HHF#gl(eM_iu`oN*;jQZ3$~*f$;|?KpN@#)2pMrFBl0_RqJ4!ws?Fij;tYpxy z?-#S5YG-2%ZP@-6t(4zrL!4R@1`%6xF-m#5y1VmUdvoqjGfrwj@3IdHDu4vG@(K+Y zH(|M=26jX+xwVL~h>LGP;|2SzVo1lEYzG6B^5EKn=rZK!k~`e1(0(N8mZKqnKPgWC zN0jRj);6~cHv{PE7a+C8S-t`*qczsrzPCR5X*AerH;TWvE@}@%#ZI}xU zoRM#J(7r!^8ALj-=`apkhj9OIO|SvXjTn%Cy&n&y2sT?tD{TGXr0wkOb%XzRc)>i* z(DaEAMkDUzKi0J*?itW$RYg64vDuDS0wFV{MS2`1`QOrSR4{qR;M_Op^2|O4FqoogbarMqc z;s2GvbCa|zfHMJtVdK{?P$K$4S=asr+6x#hr>W)^7foL|84=ush1MIOxxw`Z391(O zP#83b9x;6W_MZa*yT;VI2s}^VG>z;QM?o99M>OU>`{9IsX^HRg*X{4#z3c8Sw(d+3 z?uOc?M?bPHq_Zb)%9#j46@bT(IM|l2RK&z-K zDcv~8+k}=fDZzYS@I_1CqcP7erRxnr#k(TOiY%_0j=JG`Jc5GDkhS`VQjyQL!L?yu z%)~<2q@NOa=iXa5W-uGYRjkkXEskcxu63qP8ZHM#ojah`&>*y!tzLEVK{w2KtMSR zs6`N@_4ATjapRB#$eIZW2{^|W;fFM&n0|X9~tX7>WFU-9A zf_!T4?69-3RO7W^VDHT7wzstk!&;h-hm(+^q5k(7VbHlVnd+n z(D50Njp@xFT7XOJ4Y&}+9QubU>`vnNp*St@bn_CQWa=L|{(G+13KWE*J+MGQik==5 zi98zM15pLIvIFo(EPzQrQpBq5F^ZXa9DMgeLM1S#2P0-Fl~6l_pi*~afFU$!Ymzwb z5a#|m(lqXJ_kx!|pZ-}bBwchjYyIt)Pt%J2%n-szNAc!5SQ}>M=l!9&!}{4&Hh+9l z%_Cn$yjG*Pw6X$CG(j@9i&5H}n%@uyl(OW42lNn>$-ta`fzt=62%s+@uHb(;+j|c| zy#`Ks7_t{&yh?91b#)%2@)@A$hI(NRf3)02vsStd=6>pLj!Eggsji+x6yXOFRRT_v zmXwV916*8*7`$Ov>gCADNE+W&a+UKzd#_VdX*{DJX_MCye!C%SvjSFGaL~%$+PPcD z?y348LvX1$rNSGyxSu8c=G%!Hw3TuNp)^T>wE>$69&Ds6(TZrOL@}|kHNLB?4oS%j zvi{Vmh;H8Ac>ZEW?HIfOA0_X*t9MSA1A2nQq$=x9oll4bqZ&0x%i_l1VqZHsZ~`U? zOCQ*4cR=kPYQ)W)fW0eqP9<$X*VbG$jf(<&nV!QIdRSON5BTqX0Fg*UNQi#@1kjWW zEiG-UGK<468h425mVNM(v9KP(9K?kS7XYPz|3OPbLnnqhrxJhdWb|!DaJpLoZ9v^n z1CG&o01C0k8zn#zTY?1P02*78kl6*dk4&=u`Td-dfm_1TBQVyuv-z`xl1J&+U8Bnr z3k$LA>b~kIC2y5%3Ay;^Nx*CZ4bS!*2rn2!cmWwQzlBv6=QlC0%I*m*LGd4geyn{; z*jyft=8Nlfx7qPe$34Zo^fo7)k>XwV@RE#61cFztQYzyxY^s~Km(KKYNjiMbEQ}7y9%cIoL?|`T2xeIcLz21*G4)oE|D#!`Dj8 zqYS@$^6YXJ`}$Bi<3&eeb`j`&X$L_@nt>^UDf(jI%FQ$RWvB4{5M$>qR|DJ@&Rj|9 zVf@gaauUW%Em%s);-jN`I09p!K)fYDCX>L?kPFx-dO5&t9*HJYzjP^093{naSdgdF z!9wyD1^~Z(`}P^62*5)2CIhUyyfbhIn$76wGeG+Q1G}2B=3M07vosBKI6GOFS@6Ei zA0iUQgh4JTxu|g$v!Rd3*8bx{ZtiJhh3W`35=>a&jW!bHfm%!LZF&mjMfVw>$PLvG0!9Ly)=Hp?M@2=|)ye9HJ$%SW znG7vP1^>~M8II0@0XBl~CvSvzJ^}eMpTY;%Rp2-ZcxT2*r=~}Fv7g9EaPSt#^!#&< zJu-a%nwqO?Df?0q4y_y!ApaO^j|lDAFZr|$Ghkf=Ky(TJ_1$K0SQN*({5|m=(TS7k z{;(o{jo#nE&HEi)@5hBpkRE`OK^@q5h4mzRK1*Z3<@A5Qf&nb70588SEp;Ehz=Ll) z5Q($IYYF2}QAAYK)#rMhkXyk`z6Vc=AC3KJ2}i<{P=@eFTs=H0%F0$(R#<{zC;qIB zNH03c8#cE>Zndhik^}dIFb;3w7%l6jFhaN`1_f@eu7<$x!Jx(!TQj3<(bR@lGNAYt zub1;40tarqP@rYwHq0xlR}OxYrq2qrqTnLRWr3Tz=nhko!|m-+YZl04u{;f(!*@KAre@4iS1 zc^#bdWTytjYUTPgE%5KMmju`pN5PzC8!O--{-?pchY>3%eRPwbszRCsH-`f5haUh8 zDOjW6fc-Pta6fcZ@Q1MZ^UDJr$fGy^UwCB*u>R*B{)&?Gr+b@?FTHD)w=6agmy(Pf*DB9FyeP)jE321C?Z{H0zeqefi7P0VR?BO*NXAsgZCbOO@Ks*WH@D@ zKZOR4@zKWi_@9TFX+{PH)bH#FoPB`LU=c2u{}Yl9ZtR5I0SAV5|Nu#ui(>h_GfI|Yp1Y_{0po98EYt;HI7(qg!U>xFq z@7Q?-@J)233wP%%9p`Kg9|g*K{98DFF1^17x#k1A5KGF}IHZ z5@FoD4hW$`=}h{1Op+ZS=l14iOkh6FT7O@RPgqzxFcU~7wn2(P)SA-2q0$waa@R>r zE`9Smxa};5@{>Sif#n3?=Em>eN~gsj>du_CjqAawGdODmaBY%aA;OfDlsz6esLClL zV|tbp(494mq4L4l{5D{}l`d#^@$v8sIq=~pldjVJ=SSjxqM-gOd=88&k~2t#tN{c7 z9|b_j5*;~G`<}+GCQY4a+eru?6-uM0d{xq}qp8fgm?|z>3tmjz^_8ziN z%*8p~*LzSBseiwHk^uN*Q|d!nOAZAIm(?QBX99VV_zyW?(h~>{@&b%Me+3e4{|Gf`)ko-ci1%3~`B88) zfJ5R>pFMM{Ws-N1iJaXOP=+);Y>-w!-~mc^cQ>S@BR75^@n94KQWpbJOUw(c+tjxb zF}VhOJ85Ypc%^1eMN~$Hr(EM1TE)E(jl&8y=UqZr0lDv8;j!BJsgpmYb}&GZ4Oz%xX@gM4y6Pl7gw|BLM1 zpPp*0rcnaq^Ms&vd~+EeO&KXdmGbYDjj;UupH%-(YMyVGNR_0k-y8^pbHN317V)qi zjfK9yvz4Im3ivsTEr4f&z)lnRjj}xEZ}9bMc4s{l!3cE_h=W}@kg(l>_i6S@ZN#Cf zUudDmn6OhFiW-;Jym#oi%~Tk%$Fd2L5{3UgWG-pPA&;QUq`TBgGOox`)D)0ef58jh z3?`ns)Cb#Vw&M#>17L$!|5mO2o4V~2({Em>Gg}&;->kjT4-d&5)Eldm3s6XELM%n= z#5dBA$WGQux$T5>U4zPk#leGd|0^~*S?U+hku1j_te~Sw+mV-_k5P?U3X%|dZi%+~ z`e38qjk1=U9Z8ioRlWjBwpgWRScqt%mWSt(j4)4`IAg|S-lk|zN~7ak*JmF1X$@iS z!C3VF{exwS()iu?pHo>5M=YC0s<+VHkvX7uVMR#yj0_9%!G-X*We_s^iLKPxc~b~R z9_SZpN__C|ok>=}$?M9f2)q)4g3|d<0WN@dz-vi1NYa#$PeTXTvemd<;{Jn$Y6dm80^u zFhj>90ofuB_7-J2WyiQS;<4zd9C?a6Faf!)edNu{X25f_Rd%>K>LVE;X5^UOlaZ67 zb>uC-YqUl%bQ2-YGl03+v6ZnC?XTsMOV;Tjm|W-AFftKuPyN;2Zn z1X)*!nKoVPVp~E8N_38eXItxpwaCfy>NcaUYl8n?8(`eI>*XcrpFx_UyaH&Q1O<4` ziVPZQv^gUxEKCoZBjo#Xq9!QQveMEwKaE(#{dn@5BLtu6Eq+1-@lKf2ZGSCDODHg+r!)Ykqr`w zj!|_ki9%H>)t?AjsX!q8ziE#d zY}m;hIl_JkB+iOQEMfcb;L}TC`{=l<0+DMAtRS5{?ON_T>Cz&Vtp;NYsEZ?C@yG8} zt%4uLSm%)=M=DRj#=*|7uK+{fw(S>s$1xP|2}}os_DDy|nBXrVwv+AoMXMs}KZZO( zw)3=)Cu6y4G6K5%O)BQ{NqHnA(p%!F@twmx+stM$S3flU+(=`yy1F!vJzvyVOlwwF z7M>}&g_V=V(4f^ZVyrnJHMu;;|K|^H2VS|}0;)ogh*}!UV@O8PXP?eq-Za=R`1GLm zc zOXp#e$91&*#+qLWfXZ$~Vc3t0H8{p#De_f{*72sV$`hBAJZ&3Rj8DweUey*A7was2 zSf{$oN>EU6Gf$JRqx*KO-S>1(`h6yIkro*M;#dU99z zi$Ktkg**8|?$1lqj29~G-Lprl;hdd1dA z{xP=Boh5|Y!?)bJBE<<0YQzcw>-X|t8Z3eIEK)he5w$< zEShbz&Jhykr~|3)nOFizLSt1E)1lXz5x+o$eQ;&zWhMLV03>F^Z6^Rf=n><1=Nap_ zJaV{So?BCwC+zseOSMumV1^{d?au)i>vUDBdojEl?6nH~rrZuhya+^VIb1ks7p*`9 zkDW$-clPq-=*d4)pTMjEmNqUi0Ku;-1jEEmlcquCAeq;gL) z!h5Ooj5dyZ%PM>8wI=l#y_eGclbCP8d7S%3+KwOYZ-B#x7KE@vzqTWNm8z7f;Fsq1 zb}{m$bDtDx3*8N1xq9DaL6tY!u;$A;8gq#BG;{JIPTnkFsF|=o7%_+$@3X(@v7}>| z%Xczz)I@@-=D{qg-bJ}mneY)_WMr$+_jV@xQm7nXEPX(a5iE0*g^J*3EFuz*WOVLZ z?p=a5;W;ZcF3at}CQ0SZ#)SUj+=Du%c`mWa1zh8ZJ0F_TxY&bhqv9d6yk>EI1$9Nx zM*63D9G{c4hwaf3Pfy2&LSW~|S0*4Lm2myZDptJgIo8OrS6cgAxZa$}obS|Kyu+tw zFUx@;V^Ff3oBINll$2<1 zKSPPDN@ymHSY9=h;Ns#6XMcc>$oU--X{76<%tDdE&(^B9(Cf z+Pi~cPm){xXL%cWq^M)=dC^XrL1A;g%-ZOLu z$(EY;LO&7%@_p<4>xb6QoZmO9>DHc9bhFRIC(pjI4{mYhTbYaY zFWS@G);1)n@j)T@MZwOdD~nV7CSO?So$A#$pZe>8eN#}|=w0vdl3ACr<#t@+6;)ur znsT#6G!&~^n!`xy`Yrw|bi%JtE|G5xpipXQQPrDlZEOr&sUR{l@0X3}Xvim!BNKPTqOT;oDI#|@S#1MW zr;pCaI?86^mwxrCg}M1=y}j;++bD~~d_O;D9WHT~`Q*v2ik{P3(7}29>=~@^9GsoA zhp7WhX0A@AErWP7q)s5IA#8xa85|N4(&w(~!LeCpKt6W0DEaB!Es2dwZ`>$6O=|a2 zttFE!%BrS~KJ8~H+Yi-iC2~*4o;|w(_A`2&eNthJKPPzxH6GSC*7I*C98XJ0NhvLz zDLxbyEWX6!g~H{ZExPNdG;a@Dt@(BL+1(?Q37SZ`+jb8Lw)Sw}*b zpZm@Z2OjOU>Z0Uy_4ym)Et`J)>(q!{xQIsx&N){r6wUmL7sFV~&S+Dw`G$N>f*YlC zO=Enpvdn+q**imAbXfRVz%b?4MO{W_XTKkw0gL_^`RwM*VL_!LbSEDr-+wV(fxZgH zexSyso0+M)>Lf;ysCUoeCu)Y;osz6?x(F`?Xqvk5Of44^PLSlEwa&kO{SnQ}>q~{e zff&EfKS8YF>}$EX55`ek03Uw*GdN4|jxaeCv{l~;jUdD+x@ zmv4GeaHx;?fLtKKeX`5=bpystgf0G5f_2D915$7bXJL}M*NAa_pq@FM-l1{k&Z~PP z?!wZHW3mi}aM`zy_eNLA$n;L!1)NOh21H6wDj&>wGmC=qi!6@TaM17=nM+B z!nZIr8ZCLvZ-$}}V%kCbc9*-iL(``xo*PYl=u|mA?jR$`iKGE9t;3VIVmwC6rn<4L zUrswHPPzHtjl_P5TDoLM@vwnP*F>YXK(=FbU?ej#lINI!tYN}dzfFo``Ab!b%4fg1 zDic*B><1ppCPBayA;EGcy`&LPUKV1z?rSBNiV)@&P zt|RCAZoah9mKEAe4V{ZUh!nw;MA7c-KJSAMcwv&oM~v_=0VR+vO~Au9Z__tulhaOU{92coorotRTVvBc2k0+RAp zc~Q({T!@P+1`64^woK@IU@S;gUa|EK=u2Y6L2}c<3%;_iKiuxA5zL3eQ0Zv9WBeL8 zwXGh<4x0eMtxM=g;}%?H8&H7pBKa+=>22jF)Hmh&YjFr%-s%U%f(&>>Y^mxj(%uW+CU1R=8;eU}zI1IW}t8;=gm>Y41UOuOKHE9!+GhoyY6p zq^m<%n2dT8k%9H9QK?l&8@7gNF}S{oPVl7|*N#qAOm+KR_(|Zt{E;LedIuFl;WJRx zM`8c6VZ-O~aZK~7!SEO%N>qR~4e%&tdDxgJ4A5d!x}jjA^1>vDc1Tcwn=^QLCP;a> z^Y&VgPf0zEMKz}+qIzm)W3$dGA?;9UmQA@YUc7+jz^p!;!7BY`a{YC9lViSOg=Vcg zi^g7~Ln5}BqN#1Xckg@4pLp$Sm!H#jnSCu*c=22G_0%gJ{-0mDL?+?Yos_$P?gb=< zA6)G1rCTjV)8sI(R`ElL?Vz~C>0vXPBp)B&5M4>~a>xb}f}F@2nYaTlSW-I&hh*V4 z808=((D9xmK{+83_2m*=7Ple1=9tJIx4W!M)H*Ogz0KVMuwBi?tVIh=qW^&$!pEgSwW3VepoF8W`CD~ z!MRIkN)**6erM{4Qpc+V_Jt?W2R~q-|EG$^b?B&n;nDs zabS`DwI#8vq8(=Si+JbMS(!0RwQRWGrCC7QZ(+t5_*~TJubXrom+z;6Px(7gk3Wca2o$vnl)1>|62AexM+_x!=!?LD&vA=F4GGy+$^Z8Yh=5dbZ z^j~LM8T<@%L*&xd4!)r|uyO7tS-58Wq>R~vzA-eiZovFEH#c!3g^zIKrAvMeH{Kw_ zZA>eAlULmN^KSCTv-DS}oU-9IsBL1C7a$|5vYC@iy!sj&SyLQxBVXz=B5j z9=ZB{(w7Pcu5C%M-Eq9Yu%z#ft^c$2=$^lvPqQG5Kzj9V>)LRVG;<}Ee7NmF6*!#B zuHH+30i%0#>1rGPum?bemA1x{D_3L^1~oiMZn}gX!}L>2{1|dxyZb*+!@_5aK8bbC z+=?}?m!WW*zlckg?wg|00zz%PSZjlqFW-EPzj`9C9f$?ia?Inp?Sxo`-$)dQ@;~sO z&{~Ae{BrS9Z3Cq_K$r1i+GxOb$T5tIw1hv5HCcQ1?1P5K#(%KRw;{dNXi7-`OkqFt z2<(V<3KLt2Gx&)>Wb7QCTr;TAB$mB_^)e+D&%ymGS-3GWW$I=`{~J2P%-kGrOZGrPMrJ0(Z1#D7PtL&l_>ec%t(H1( zH%t^g$R`wD?4E(qv@T+z6wx?L?fkT&8p&kmaNT27#qHsI@2rfClY?Xw6rxsBbq4Me zoI|?ezW!ZaT&$c)AjQUznxozK31qP5#YIwXkuuM3i*D0z=8;ZMpzq_y+I3{U$j(?K z?RBPjKbFCXL~Yr$eb*ZNo%KVM>>&D2`9WMCP1;?L;>kthHl-T0dAi2$@9^+Qq=(Pu z06HmlY92{b##cx)!oxelaRZnOqy@}hwYX{?K2JE!)gSr_bI-DN-T(KSZo1(q24e3T z!hvlJm)uO+OQP!NIBnUEU%QF$H+OM-a;Ta>rlfBACi$hu!+E`S#6|qut_AwKhC0`% Hwn6^~OWWb1 diff --git a/docs/images/CopyCommandSequenceDiagram.png b/docs/images/CopyCommandSequenceDiagram.png index 86b220665894e36ac66e19360288244f22622b2a..7db851fda09c814645f1b104794c4500860b2cdc 100644 GIT binary patch literal 36605 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≶>h&Jr%8o0`fArvsR(cgZeH*0Zm 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%0AWt&o9)P3pWo&2wgX;NZ%6D!r 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 DE%E$S diff --git a/docs/images/EditEventCommandSequenceDiagram.png b/docs/images/EditEventCommandSequenceDiagram.png index 00995b8e337f4822062ba81ac9d92c6045fe29f6..32da31410e4329b93abcf5d0d3e3c85831bb7429 100644 GIT binary patch literal 31058 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 NmG>wmZ9j7UzW^`7LoNUS literal 33089 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 diff --git a/docs/images/EditItemCommandSequenceDiagram.png b/docs/images/EditItemCommandSequenceDiagram.png index f9edd74e919f7c999df3fbb33a9f5fe7e77344aa..473c9d0d7fe728892a2ab579aefe0847ca2eff64 100644 GIT binary patch literal 28899 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Ï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 O_NZy8CMh4e^nU>VP>%F0fB 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 TeXQ;@{Lxg`A>Y`%_xS$+#dp(F diff --git a/docs/images/FilterCommandSequenceDiagram.png b/docs/images/FilterCommandSequenceDiagram.png index 0592e16d0e92ce694d6486c5e5ddceda3b795edf..5eccd9d9b9a7131aebe593c8d978b159d30db1ad 100644 GIT binary patch literal 63006 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

        oX2HK3hM!tRoj>p{-Bam)z>XESCLo|&P6rHPn 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 P%(YQx^Li%L`sn`w?%LT% diff --git a/docs/images/RemoveCommandSequenceDiagram.png b/docs/images/RemoveCommandSequenceDiagram.png index 1f0714a4cc5409c73ccae475a423dcba96329d21..1e2c23c4e80078feb1ef8fc1c4f32d3ca9214fce 100644 GIT binary patch literal 14512 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 literal 15708 zcmcJ$1yoes-!HC+BQORoPGBGd_VD>07V690z3-5D_5=%$jV44U%7IX z4*V6v!2s`+2cgKpKP+~V>UKy=D7 zKxe;5P&d-PYPF2=V84vidcHN*vBb~N@MtQ2^g&)iL9gj`wFuiq{HD&2H-C5XJ4dEW zQ_kBj;V5FIbsI2`>9O{BFOUb~y}4Ic%Pt%LfltHnCHgQ%krm;Vs^M|LLw-n`t@`M0w-W%(=zW3TWb-H$2S(jKf3`PM2q--YF6ww&Qae&?-} zjU>sV9)%_e_V*@^sNc40+0OoXF|>lth&*wlnzZN<2* zr|!yV^JZ-@rTIxSpBM9n50O$I{{x=|@xb`s;`>7c!H(SL zcqyExSFQ;9$V!N*IKJHYi0eq8c8*2{+#R8fR@cWRlUtW0)x>%IIlV+fZsX=aU3%tt z0PlvTGdnw(+(tlj_Jgv_vDdhdGB-3H6Q^V-%_~CffGJ zA#69hw|JHlWVz=Vi7`{|T697@X<>K>DdO=*C=&0oFeGLQ`(t!O{u@E~&ZqrR+6HG46u@HNI0m_cjYKNP)!!=-) zVaSm%WC_0w9Xf{&ZEU^p2=zi7H89ui11t80rM8CSBMd`?QQB2@`*W>=BZuuZE{Jae zI(4(}S@&~x5OQr)$Xo;bdM6I8-o)BM=l$@51Gy1N0WB+1Yn9v`_JvrAJ^rQH+1aI~ zz4_4Ug*YA8QsTJD>UyKvx)PNvW%Hw5&fLpkSe4T<;~~5vTm`ro<8PnDut}p5%)ggC z+gsm6*epow{P^nRdc3ETt2Q*uZ7~t0QTjt;S+gB}f8CDlX`+x9c4(LppDFp=W}?^D z*eA*GYI~}p-eopI>-C|hOw^)oSGx+4%MZ+t(ltsco_{&g%wIjZPNfz=I>m1XzS<_u zo9}we;e&t6!*PUl&4>;?D5*j9z07=zvwq#kgny)PUNc?pSSH>7eT~!3eG3>HB09{< zyd&Z{kD*Jci@{7qWrpyvVWQuhl_%R9NnPCJBO1GJH)xtja5%Rgs}joY>t*TxiKc^2P_ zc<5$X>b_1?%E5^x-CixUan@_mx=PEjEc-t{8+uy(%iw|8!3&Wx>7|?(wu(H6XpX@j z&^9&maXVcTe&0yHB>o9DqowZr?>KFa2_bX- z{X^%o!fC`^IUnyDrHTTz#m?u-l+)jr$IvvP;@8y2#|u-$r5C$mlH%UwD;6XhHT#M| z3&`#%5-a)3?>dGNn>Uy5?dSWv_aivYR8H@#@PF0wfoz&;O{*g8YtKS*MBN)7JTfJx-h|32_j;P|%)aau!Jpz=%Nz1K3QHnY z(N^gv8|4zwzSAQlq!Bq5de*F|N#mRpCbb&H2ZfD`{(eLj+ zhq)AxsKOP$z}BFcOzmpwYP@8u3cr>p=2?HGJ+c`}`+?FmL7DjiT`E;N)U|4^-y4EB z#|ExcEYgv6r}hLaE#YFK&8n(w>fgG)jQNu!6@*T^*Hhb;2|K$L`%}!kD>lVk@X%QQ z>T>#<-dLA}O8od6U2E7?6Z?z;>2@Byrh07lQd{rN0hK)i>nN*`hVq~Q#5=NnTl$@o z!}tou2&4&9E~?|!5;TqFc{W6ZTKFxYcH>t4bOfx}zdUhoL$FT26|39FDv@iYsOE?I zPzHM%9{gIPfBRc$a%ZYYP8?&cSZoM%q}WKu4!__!QbpApAA8R7$o{+_$k6Lr-NLrcX=kOYFRg~lkIH^ zUx}ER!+)^jCFzpb@|Mps zl~fCM3r&CCN5X=ZF2nfRR0hpg_;Aw~g)-2;Eoje;h_+vMfarODVazj!1{BIwEIB><$R7qKukU&Sj68BH_7prrPXM~Qc>rM6N6mGE^mr` ztkK`hg--j<^Ja|?%Clq}Ermf7-tcp~nMgEx&$E))yU_nMvD`sc>z(4$flsY3{NCkZ zi7`*(Ye|Y=s0BKji1j1q0$<{ohn=I+40{Bi*EA&v(!LiPi$^l{yr6i-T!u@?Sa-jx zMf%kzf7h1IoNrkl8JrgRF~-QHkzX^PTAN2`c#_=zb2kAT+Eqlb1G>DmScLj3lpc3O z-jIyABxaHVteM+#s@y;RI)3zvm%Y^s<#6KZb;7hK=zh+Q`ld8lo)mI92LJD+Yr#qh zc5Bb4cGO#(MGGeB6>J{I>^0Iw1d`r3e<%zfJvd14uH`i?$$TiaNX&4wHCkCvIvXX% z0?|r$Mks!S$qAagfiUSVc0OTaNB9n0Cln^PFO7zY^PVh=&a=-+y0(WYCNM!7*c9v_ zR5z=g8(GvQb{f3#;@0cveRH6)jCZue1=!5^mV{#4(_0H^+zv?QS^1V5ql#X23=(_g z-k@}bP^l#fIoWRtwcBtVHOWNuWR#f)Ns`19>qC9(2sbya23MB#jE!Fev1XC3%sw zeyJf_p4L=3hKGdKY^AnoKVlcBbsk9s`L*NQZYg}M`m-z39U5b?cT5f~-PSeNZP{w^ zj|xwZ=NBWBcsW)u`?v1i(JJLAdZ|l+3i!c!tuL|m>NkLO7TR_{zLM=muAWksl(4M| zOY@5ur@cN-2TVeW6%8xpM+3f5`aj?s1PG}hhFkw4ERWHQ^09^&gvQ&)=YsESFWkQ5 zJJ;2O7iBwl?@`4go=ICi3JBJ!HyL7-#9#FGbI(c|8T7Ozp{D+eG3{?nC*5BQ%6ev` z5XaqI+VwSyXK!=zi*X`G2|3f7ao*ALXz~_F@AY2)?K=i9o;&XZYnYq2orGO=}?8{>FFo;7sZ0%be{%I2mag&s`nTfbO~|S)PN~MASDqUnZE>84u8#o&B6`elYD~+ZKE~$E{uUvjWwfPpPTGLP9eeqUR?( z4x1B?-?NCd%f)b%T250RH{mfoO=MF{e&^ClPC?OWzd@=(bW4vATuH)oS5J<8*323!p0USJ^U~YDoDOKjxdJMAo`6i0~Y7kN`d0;EH!_4xPOC@poBy?Je_ z>^B4~CiqQyz!MX7J+eF8Ufk}*mU_WPo`ZPvLnYelYT6sorNzZkB$_a~t^e0}sVT7~ zptZ5Zh4NT77#J7}2+UdHgdb4f*8thtGKp3f78dZxSi0kQq=}c2baZq$r{wG!y8iwN z?d|QPcOPrjz9n0oc02BwoD>!jp{CJO(9%kvonjU{0@KVOjgt7he{yImzxRR9yb~tq zdc@0jxYH*ZE~OUG2^W!gySM%=le}tkvbx-O;M4guw-{8^O{gtz8|G<+qwofD^0S!; ztgPnD9L1DJv34oQfWW}c7)}~9vDI|BnC+z=N-8RXX|N)^;4gpw7=~AA7U*96?y@mn zI##1m`kD*VmSrJ9)VD3_F!lx{fGM_c!20O1BWE0v(VgyqumvY!(b<$FDg zrPWoZz4aGadQU#^ihWND-Lu|VdZI-IzWAAqmK)w{FHgKIvl6b()Qn9<#P2t^U!9+whB>YDr+`Hb zc7GgcE^O%h4z(-cE8QW{13vJ)7b*5US9QR{sI9G~d|(mGtglgZ|CENK$)d!joA^O0 ze0!qE0KcjNKtxA%MX(owsV$F;Rn=@HCoVrfzsI77*e|FcRDL5igR3X-7AH!{cqrqE z>1bZh>c|D~<-%AM)IBUhP66rtT-1%Xc=awMNEJ2U6E}HsC4vvIcOn9UCyyVKwwQ+5 zT)Tau+@x;2sLq(w!qdog!;Agy<0#|7G+8^l5|`_Bl7D?_h~@d7U6cHEhakswm!N}m z??PHM41$R~uS{L3xcQTPE{3$t6J~qI;P7ORT%DC1N85gMU*$JtDAoqu06Q}}} z%(Vu!x62GmGZ|wOc9ob6MOE5|hwsT@D?Tm(n1_2PsEo-ZxI|oH#im(i29WAm-YoyR z6~H#t($~WP{DWR+Jpua?J>~1M`F5hhI`DH8Po7RaivDotbVC<_#lh3~N#m@X#{ZDCb?S@cS_++tEO&~UyA z<(;2zxiwWgn)AXd|5>V3$eXnhy(bF{XT2WnB=%)CkRZ0;TepPXIpI$u5xd;zdl0EfmdvpGbakn+|@BmEbQ>r{}85(juY_4KK zEEJWXZ=^T=Fj($|?4FF@0+5osSZrER(=B)?WJPpp)W^xw<9!C2T7syC_tXgB%o(C` zHA(}`FXn|$H428r<@+TgFYir_hgNrJ{C3?oxRwpil|+K9W%RJ>MM&ukwC+Bsl9JLr zgPorMYLjVn$x}3z#-f;?DSjeK5=gU{MqoF+~_6(7Zb111cpVla`i- zGnZPFDD0eJ1*v{WVsxt;&PUQ@brbuE%p^SL9i}OnKp|iYx(9(@C?63Zpbxpx#O~?@ zPb9sr|I+^4ENgpi#7}RdtXRb({a~dT!=Q*KOBZs@{!~A&56yPrM(Ah z<^asJ>6=eBGS;E+@j^LAE|s{ncQ{LS>q-BUk$!Z4&2K2(omiu}0QEU&=Ce)OA z5L9=0w_*4mivtWFyB9sk3g$is?2dx~Il=g~zK?>p=unD=%aqMRKFHYjvkbhEup1I^ zu8JmU`6{k{Wqx1nWQAT16)G=h{ZG=eLJT?4ub{f2V~uvF04O4qtv;& zHjf1RZgZ-Z^*Kk49Rwp8*-h{HrERL#d2ucCt*0EMtW~<3>Dy8EhT0_g4bc+pTge{R zu&ct6He;qHg}5jN1zZIzl;t)s6XtqU8z2&uwc2BJ;A$bFL1e6L7FO`&kRO({cZgd6 zcUF8wZ@(Dn>{}A#M?{lhdJ7UfW>6XcB3}WJPneNN%ycpV`h>3}r?Cg+^%&S_Sm0u^9cN{L{G3wQI@%hD`_c1nd=CeIYwpx*#coox+#Ast> zAaz^*v%nJZ?z*}Z<_)vcyV&(n{p?b2a@^0)2Dn9z*Nd0(GL+LFTg+M7IDfv8;H6E^ zm$aPH%}u)=gB^#LDj)@o0#A~)FY_Bb5edCp70}lfrbG2DcLS(|0bdLPsp5h6vQO8; z5~uVC>Q&AQ6u&<~1sE^Jif=k)mQ|D=tkFv3+W4kf_UrOG&$R@sYyLFSI#E6?maB1= zMZp1$qTAnmt|^aNrLmDultm$MZP<8{DGC>2BWcmx*Ro0EP^WTcX6w7FLosYGY&OR4 z8^n42`Q*!cBv#e3^-4e89(EQrHT9tF8yF!X`nF<-dM?ZsC!5{A0tujB(g%q~JtybC z`Db88haB+cHAxoL94Hx?L7_Sp1gZ$Iv7zB%FeI`SZ8?(~e~^Fdg-xVtu|*32dl_)i zS_uh>0?S6gcCy{u;Z7MHRIEy$Fxxx;5&oi@s{ts3l~qA?wIDA(F0S>Bb4iEey$!Ic zC99-DC`@vAY9AH=Ypx<76diVk2n6g(aqHoezdpb&+6qbsMnDnEYj%pVywcZQ$ryrQ$@Sk&%YGV9l?phfnouh zfYEeS{k11<8QWaUkBiC7dXE&SbRa?#=d;zmSyLSer6LIk2td5uH7+tlS%by!qJ?u< zbRkw~=md2&y3T1QqrCjVQ66A3dn-XNYv0~AormghHAVwwc`AH;fYL`1}b zo`8~19{d?;fXDyqj3zedoJ!|?3l|q5UPW?#{}LR=v7*1{Ock}dkmwgFo2u){{;%5+ zS2Ty)$|s$tcDN0gJ^R<`LVmukzA{!}Pz7d==j$LIn=?N1ag}V9EHe78Xm-l`uP>Z}oB8F|gcpw; z6j6Q4ik4q`mh$CTx55|f>I|Mn5}e%kBM{Qf3*pIj@Jaw-Z32E_yI_ z4Ri6S=;=*LN>=TffiAjsK$pL50$N!Icr{pEGVw`*4uo$K1>WGT0>XxFZI%5Fp7`(W z#V*eSK54TvaG_n(Gwp0u*7I1ZaxyXx?`}Vkcr~r6Q4&4QXm6Qy-CMtHqmaPwF<%4x zj`;k@62`x;-X3yQ18Bn5pj!+fVrpPN`Vvr%fK(1_Ai9Uwe@%YR)hyo}`b-p91qf$_ zH8O2yp`-bc(@4$>z;>Y`E{=eT{k(w~{-Orhq~I4Y|4X1c`jmsWo65Yf2)2L!_KD1i zLXcBaqs##lzfC~_92g}&tB~N}ZZPXdV}SC4q5NNXbEJd+-hchIfpM(tNj#r=C7{$R zVb_11wjR*axbBj?ju&{7OfN+^g>LSZ8$SuctitAc=WQM_h%dh~lVR}-!3MH>49M?cMCqJji>Ou0Z; zY_Dy>VcPZ9lSfIu6({qdqL|j63mY3D%quZEZiiFOTe$ktN@+6TfXxFw{uVrkoN8-$Prr-qhwQN!t&=R_%yl(^=iII83?hyJLot_9#CQYuwQJYDsfQzc>u|92H}Ci# zZw#dR(b~$Fx|uk#4Tt_7$fXO9h={mvs;WiNA3w`Kqz>24l*$1ccP9~h4p+FZ5Lgs2 z{(hkI!RZS3Q4EPi;5ouz6RK%|Tmo4|_EL(4RM39?p+gIc2Tw&CavhsJ{R8kK%u9Hf znLCDtc4nLXR@D3N(gS}nW5q?i)aqI-fu@cPG0E|yEyhS;GMM-%n(q~=wWTFFNEhMBpC8X-L`VvK4R#tSLkYM*0vgQ{ zV-j+5#^=t!l`E@TfKtA~=w9UV7RO*124o8P+FKiG$AVydQVVnz!bU<_jo3)FU)%=F zo?UC;QMx5ddIub!%vkqYEbSE2!*wZ1NxBfHQHfu4bw6`~+yfhgtO5mUDN*EY`?V9G z8-Tb&M)H1L;%rit@*^iDZSqZxWO~|m(|=J8B}Qb&=IO{})gDIYZw49W@;4X;Lcswz zDotNddUGvUj@|HJ75J#^?=x?o) zt->t7Mq&j$ZX|#(!h>IpTB49LKyIYV$8nEk19=E_EmX#|2B}`Z%^nGI0MK0Eq?LgO zovBsD#EkHz%S=k5ITDTq_d)dvMRA`6?4q9+`;1D!E|%9M;%7Fpy)nn;*IetMFcCxx zC}#>@<9Af2z_ar-%gNLb{g9hEJr2L~;l3#r?hR5>b+_@3b_6$XHc5OXtQdFcX!Y$g zevUop^P>1L7)Y9fZ=-~yZ6K5QB`Q&$IOiN_S3dMlciQ$x0CjNB%^*SJbYEftk)5n? zxJ5aL%2<}^`+KeWxrGU4uoeFnTq%jvIMqO+Y+wCZC4^$7txNpw-JgIh0ahz>7i?Mm z^>5PY;_#OH`dkr>*iEH0A$?9PFlt(^MFSsvi^hbW1U|@l0Ojk4Q z5+T~S5|PZz%+(=8Z&?hYA#PbpGNYChJsz)HKrypzNU{cw$>gUCwqtrxJnq^By>0;| z-hN-G`|5?slA`%fndtfFjgc#;t9v?32PPlvrfQs?@4TQ$&pwPAaUbvTM=6O)L9Y+{ z|5e2PK7J(;`_htmRDL-{CJtM5fbxMt4kjT47#Z}8j978Nn6~mC9#;bL9_&q7nnN%Z zKEbX!S$Em4x=4%-dH4qdUe;#I1|WZ{cK@Z8)&x-1=nzT=;1~j@!Kfo*v3jd6GC$)1 zauuvMeik zVj9~=CaM5G>7)lq{FliCD@5RYU;Uw1Q62- z3Bfi~cp5idr1ZazfSxRLh*%>w43U2v;resvXBE*-lVp2p|s z=vcrfP#IaUTFE!d8_ zH+VH^(Ipc1^-FEKH@|tphRHPreF+J0gFg~4%Ghm9xdPBy=?SZIKNo>@g)?A#{@$N< zmnM8mXZAf$TW~cl4boB$poMe{^Go4ve2#Nq0<4?@ccqW|7e4yK14~p3=yE8aaGv3S zKnMsXYn*s&xENceWDYfP@13*c3z3K~#IRF?$NFL_)ag^Vp_@K`(TkC^}=is-->oVj^SrOrf)P=zZ< zcBfK*%e{%|`m-baFDdylj~}x<%YgWP>@NaI^ZJ0l734d;$E4o;a721Q;8G#O4!-) z@1b zg?_&~e8KEEV48!70p*)n|9wuVUL;ELc~bP1qG1naR0?q`R7!k950bf0>b z12e8e7P$0PfO75&kPV-^nu?bw;@X)Qo6F`HFgGRqT0G`%{I#od0$HcKM-hdRIvV{s3x z)NjT@&W1P6JDve8(yTCHVIwcWiY}>MZiI<{Wu(O89otwG?ZzuJywtowi8t89|FHfJ z_@#8|fHR4q46sxfqG7hAz_EUKU%#W!Js>3HBiLhL+2?6jXRz54|M>*$uZR0Wpf#%H z3~#Erc^-Iio%+~+jt63*q|RaMAsXO8ARYjfFKkx#{v7sXQynTnj8PW?g% zlq(tVH4hID=xu$Ul@((b37@*Uy8m~{D|QzIl7M$RPgcE|Y(XQ_3VU}k8iAtm)J`T? zCt>)H;QKHQ&w*VCr$dPu7Lu-Zcj5GQ#&1=d1|EhT}iu~#u z$gj>p&2kHa(=n3p*x1-q=}<<~C8+ej^kvT$RCg7qnYYf)sat`;!N7Z#z6-$p@kkrI z?q9OgkRIJoX8zs9#brW*g3k;L7MtUN!MwEd;Ka>+OT$FDUIh98`%pM6#^IF}`m3WgTy zHe&3d@*z#-{?7vWCaN8t66<`hP(5RpC-yQ~Df`5(9z9;GlFE+C=R6EVxFlH#_Q0x1sEr-*Sst&Yw#puu#-fVY5{1gv^|2*m7brc$wC z56G*DK7u^TS094~2=WKoH`0ZLh0n89#O8qe+>t1J4E%W&ka|BA zIg}W`&j79wdiTQC1(^?Fd&;UJNW?I^0;P3;{um(f~xZ{B`u!#}NcaeWh zdIy}cp%6^KC`lHGWMkP z5tJTO>ms|=%iVbhD3hd;CdsbGPeo#?=8`AG(@nurQ}ymNCU#yc6H+Z5 z*Fp)b6i^NaYHu%nefsZNCSvXBTYKX#OG7A6?ECkdipj4=i7f6qbNi1~#_!Zn@qhQBHqU?#o&Y$5p8F zH-s(ZqkNg!w=^|5eH`@WM_q;Ih5C{?Ub8R}{cNnr*?1M6>Y#fmR>8TPx!ogvNT_fT zIJs{)+Y^*Y$m^B}B%fk88bqI7CVdy(5VlL*VPV9vUfm!hLlQDtQHg(&jbt>#37LZI z6aw;AC;-m~yJQ;VYJ+2#u1Y{tgw?qo^PPlSm~q7-`EiV6OGHFEN14!CK7U5%_dO)i z7oexdNUi>lTH{&(*@!1Qn)JpE&?{b(Ol>2M08lgrI^}@%p7x(BcmkH#UR~ zI&VfZH^QocIS5qSw|B&AskgU(cfi$BfFe=%eHdy7vUUTGTf2Nj)Iu{SSn|Z~qP~^4 z&toS055Te-l#X8$yrKP(!3ZdrKL|mgHv~6`PT~5;g&Ufv9>uvd>i$w;a;QqI|C`r9 z+iOhkJRIO)c$TS1cd4Py^q5dE3{|PkJ5T? z#634ZuXOXqjZ`*8HXADt3q$My=M7}B72s`9;Rm~a zf;|H`5g{Jl2N72R=jb+&$F{?pJb)DRplXgHN(Z7TflCjA6bQgDSiG<^pXzrY>%l0X zDavJgp(85lCMRb;u({dQ3z8ptV1T&cCKzDgFD=<8ZUeEetgg-{XV$8)GB(a!P=EF6 z4(Zw1S(3{(uJeSDi#TCab7u&}ec)F|KSYtB0OKpQk*{{%k3iD6{1gLt;9K_!;M(@# z7~sjE|HY33AF-axDzm#X;FT-ncH-y(V}OAzMKM+=8ANW-5pfp?R&lZJPEeN_5dh_d zx~tj9yFdsGnuPd(mDbWCkt1X>mq2PERt-+MF z9q=e90X;$fkJ0=-Y7c&(Z-tz;X^Vj|0$44{U$^Q(g#_hgO(Xzb_g zBa!q{Zy-wXX7~Da%VW;FnZ`Z}LnVI&l)aHg~}aly~Whq`RdUg&al-8ukD#05T*!&!PsBG^Kyh zTd>2{oT-maXrAnS;rn+;17e{IirfvKj3ECPC*@5;NNS^+E zArv5NXU-I$F~#xZ;1{q@RP&% zfLl4hQO|dWo&w6ItoH6DAsuLK>(O`voO=*|0jv`nKLPGh=FZowXPyU%jTIIA9iKp# z=F2*l7sNXFfjvOdE`xp=bwNhXRv#(q+15?%>T}L zZ{6u=H%r9}Y2AbvWV(nwvy!dW_cp$RCNP~ENBBkKC7W8_M1fwjz?&c7h8Vm>xGz)} z@S=cJOwI)31N@T`02C5L0}`ts69jEQT!4QAM`)JGCR;6kb9J?Y#d50V5bW_;DZpk6 zHj>4>TwGm2&p=u&{wKt?GSnGVI?$Ro2`E@P;K@?vfZ@sHnuG4URnTx+U+)eQz;GU9 z8wB=np`fR<0e4v@>7oo~V8EJZ3Q#gVAMTU<0-Yd6YG9hy@-@p*xxUFs4=kxk`%UKC zLS!1EL3Andb{A*$BIIC~PV&8X4nmGFFBh;Mx>f2=w!6TbGAx5jlnlHHdTTpCgniLi zo2^}8MYq>G2$3`a-MHbvw`c|ydboO}&D}_*(lYa@n%eB> z7AblfT)PyYCzeZk^a~5#hDl+|piKNOUEP$e$u4wY>=;P!cYh4a5r0-j*e*$2>#f0@ zjG}GhSj(D$R*96+*|LG+CQR2w(&97;P8Rm?sm~d9D*C@<6knjMERXw=L__6wzkm!H z{4fK@O<&!(*j)JoY>4neN~r+u2>^(s4!CKaV!y zK5nnHTP0;wGK=uN9aWE`d7DZ@Mh1rxrI0A}0Vy* zUl`cL1jsmz8E@OPrx(V>v&N%3dirY6%Lzg+KPKogT@gICg)8DW77QIW2HKnBxD5)P zgQ9(lO}*i95NLxu!`2CNZBZ`)>)!zU;!3-kk40@48K}I9G62yr;q|tXb%uKLZ95>R zKtpMKSXje073xNBxCmfrHr><_k&(dBjH=A?%Dcw!z&8^YsSsgxYPI_1+0O%Knk<}&+v2sviHUfUV(<(wC;$D6Rfv{ zBQNUj(UfosD8Ilul9QGFX71AejJf#LPq`4!9-W~$BH*+oBA4EY&Vzo;3$pkZ@I783 zzg)D~Q#+smd`Kd`NT@iuxw+Yi zGP&+va^phK6yGZxnwgmis{8Tb;l^~m&WmW1OP(C;ql$VF85P9~{7)b~W9}(^0_JGk zi$8^^Nu9qLZl?vn!$Sk-Bfu?{T#fsYe~KY!8zrEM6v&(7G?}P?EK)dWVz)Tpg@kMvXg%|bWwuxcLi4_TB^KBG7&4S>=;lV+ep-m3xL8nMq zj>W7h1=gU^_H-!o42+{`rJ?~Y#R!^Yuk(Q~X#M~GtAzjj#NnSGDs-J+rD`~tiO8CL S2!7^#MOIQlBJYu|=l=pL>&TV> diff --git a/docs/images/SortCommandSequenceDiagram.png b/docs/images/SortCommandSequenceDiagram.png index d75e7624efdc4e06524e5812707bc84b7acdb7aa..b9c8ff2449daa519d9d6104135a7048ab4abad00 100644 GIT binary patch literal 26726 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 literal 28156 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 literal 21991 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 BgS7wv From af87f97bb2ec08fab68d925fb2cb48e1450541bd Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sun, 10 Nov 2024 16:51:18 +0800 Subject: [PATCH 541/619] Add regex for copy, sort and filter --- .../seedu/manager/command/FilterCommand.java | 21 +- .../seedu/manager/command/MenuCommand.java | 2 +- .../java/seedu/manager/parser/Parser.java | 192 +++++++++--------- 3 files changed, 117 insertions(+), 98 deletions(-) diff --git a/src/main/java/seedu/manager/command/FilterCommand.java b/src/main/java/seedu/manager/command/FilterCommand.java index e7fb40489d..5600820515 100644 --- a/src/main/java/seedu/manager/command/FilterCommand.java +++ b/src/main/java/seedu/manager/command/FilterCommand.java @@ -22,18 +22,19 @@ public class FilterCommand extends Command { private static final String FILTER_BY_TIME_MESSAGE = "Events successfully filtered by time!"; private static final String FILTER_BY_DATE_TIME_MESSAGE = "Events successfully filtered by date-time!"; private static final String FILTER_BY_PRIORITY_MESSAGE = "Events successfully filtered by priority!"; + private static final String FILTER_NOT_FOUND = "Filter flag matched no events!"; private static final String INVALID_DATE_FORMAT_MESSAGE = """ Invalid date format! - Please use the following format for date: YYYY-MM-DD + Please use a valid date in the following format: YYYY-MM-DD """; private static final String INVALID_TIME_FORMAT_MESSAGE = """ Invalid time format! - Please use the following format for time: HH:mm + Please use a valid time in the following format: HH:mm """; private static final String INVALID_DATE_TIME_FORMAT_MESSAGE = """ Invalid date-time format! - Please use the following format for date-time: YYYY-MM-DD HH:mm + Please use a valid date-time in the following format: YYYY-MM-DD HH:mm """; private static final String INVALID_PRIORITY_FORMAT_MESSAGE = """ Invalid priority format! @@ -43,6 +44,7 @@ public class FilterCommand extends Command { protected String flag; protected String filterWord; private EventList filteredEvents; + protected boolean isValidFields = true; /** * Constructs a {@code FilterCommand} with the specified flag and filter word. @@ -85,8 +87,13 @@ public void execute() { break; } - for (int i = 0; i < filteredEvents.getListSize(); i++) { - outputMessage.append(String.format("%d. %s\n", i + 1, filteredEvents.getEvent(i).toString())); + if (isValidFields && filteredEvents.getListSize() == 0) { + outputMessage.setLength(0); + outputMessage.append(FILTER_NOT_FOUND); + } else { + for (int i = 0; i < filteredEvents.getListSize(); i++) { + outputMessage.append(String.format("%d. %s\n", i + 1, filteredEvents.getEvent(i).toString())); + } } this.message = outputMessage.toString(); } @@ -114,6 +121,7 @@ private String filterEventsByDate() { filteredEvents = eventList.filterByDate(eventDate); return FILTER_BY_DATE_MESSAGE + "\n"; } catch (DateTimeException exception) { + isValidFields = false; return INVALID_DATE_FORMAT_MESSAGE; } } @@ -130,6 +138,7 @@ private String filterEventsByTime() { filteredEvents = eventList.filterByTime(eventTime); return FILTER_BY_TIME_MESSAGE + "\n"; } catch (DateTimeException exception) { + isValidFields = false; return INVALID_TIME_FORMAT_MESSAGE; } } @@ -146,6 +155,7 @@ private String filterEventsByDateTime() { filteredEvents = eventList.filterByDateTime(eventDateTime); return FILTER_BY_DATE_TIME_MESSAGE + "\n"; } catch (DateTimeException exception) { + isValidFields = false; return INVALID_DATE_TIME_FORMAT_MESSAGE; } } @@ -161,6 +171,7 @@ private String filterEventsByPriority() { filteredEvents = eventList.filterByPriority(priority); return FILTER_BY_PRIORITY_MESSAGE + "\n"; } catch(IllegalArgumentException exception) { + isValidFields = false; return INVALID_PRIORITY_FORMAT_MESSAGE; } } diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 114a6a4d55..533015de2d 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -25,7 +25,7 @@ public class MenuCommand extends Command { mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. mark -m ITEM -e EVENT -s STATUS: Mark an item as accounted or unaccounted. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. - sort -by KEYWORD: Sorts events by name/time/priority. + sort -e EVENT -by KEYWORD: Sorts events by name/time/priority. filter -e/-d/-t/-x/-u FILTER_DESCRIPTION: Filters events by name/date/time/date-time/priority. find -e EVENT -p NAME: Finds all participants with specified name in an event. exit: Exit program."""; diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 249b6b7c8b..7401d00c5d 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -78,7 +78,7 @@ public class Parser { private static final String INVALID_SORT_MESSAGE = """ Invalid command! Please enter your commands in the following format: - sort -e EVENT -by name/time/priority + sort -by name/time/priority """; private static final String INVALID_FILTER_MESSAGE = """ Invalid command! @@ -126,14 +126,6 @@ public class Parser { Invalid sort keyword! Please set the sort keyword as either "name"/"time"/"priority" """; - private static final String INVALID_FILTER_FLAG_MESSAGE = """ - Invalid filter flag! - Please set the filter flag as either "-e/-t/-u" - """; - private static final String INVALID_FIND_FLAG_MESSAGE = """ - Invalid find flag! - Please set the find flag using "-e" and "-p"" - """; private static final String DUPLICATE_FLAG_MESSAGE = """ Duplicate flags found! Please only use each flag once! @@ -152,34 +144,38 @@ public class Parser { private static final String ARROW = ">"; private static final String EVENT_FLAG_REGEX = "(-e|-t|-v|-u)"; - private static final String EDIT_EVENT_ATTRIBUTE_FLAG_REGEX = "(-e|-name|-t|-v|-u)"; private static final String PARTICIPANT_FLAG_REGEX = "(-p|-email|-e)"; - private static final String REMOVE_PARTICIPANT_FLAG_REGEX = "(-p|-e)"; private static final String ITEM_FLAG_REGEX = "(-m|-e)"; + private static final String REMOVE_EVENT_FLAG_REGEX = "-e"; + private static final String REMOVE_PARTICIPANT_FLAG_REGEX = "(-p|-e)"; + private static final String EDIT_EVENT_ATTRIBUTE_FLAG_REGEX = "(-e|-name|-t|-v|-u)"; + private static final String VIEW_FLAG_REGEX = "(-e|-y)"; private static final String MARK_EVENT_FLAG_REGEX = "-e|-s"; private static final String MARK_PARTICIPANT_FLAG_REGEX = "-p|-e|-s"; - private static final String FIND_FLAG_REGEX = "\\s*(-e|-p)\\s*"; - private static final String VIEW_FLAG_REGEX = "(-e|-y)"; private static final String MARK_ITEM_FLAG_REGEX = "-m|-e|-s"; - private static final String REMOVE_EVENT_FLAG_REGEX = "-e"; + private static final String FILTER_FLAG_REGEX = "\\s*(-[e|d|t|x|u])\\s*"; + private static final String FIND_FLAG_REGEX = "\\s*(-e|-p)\\s*"; private static final String ADD_EVENT_REGEX = "add\\s+-e\\s+(.*?)\\s+-t\\s+(.*?)\\s+-v\\s+(.*?)\\s+-u\\s+(.*)"; - private static final String EDIT_EVENT_ATTRIBUTE_REGEX = "edit\\s+-e\\s+(.*?)\\s+" + - "-name\\s+(.*?)\\s+-t\\s+(.*?)\\s+-v\\s+(.*?)\\s+-u\\s+(.*)"; private static final String ADD_PARTICIPANT_REGEX = "add\\s+-p\\s+(.*?)\\s+" + "-email\\s+(.*?)\\s+-e\\s+(.*)"; - private static final String EDIT_PARTICIPANT_REGEX = "edit\\s+-p\\s+(.*?)\\s+" + - "-email\\s+(.*?)\\s+-e\\s+(.*)"; private static final String ADD_ITEM_REGEX = "add\\s+-m\\s+(.*?)\\s+-e\\s+(.*)"; + private static final String REMOVE_EVENT_REGEX = "remove\\s+-e\\s+(.*)"; + private static final String REMOVE_PARTICIPANT_REGEX = "remove\\s+-p\\s+(.*?)\\s+-e\\s+(.*)"; private static final String REMOVE_ITEM_REGEX = "remove\\s+-m\\s+(.*?)\\s+-e\\s+(.*)"; + private static final String EDIT_EVENT_ATTRIBUTE_REGEX = "edit\\s+-e\\s+(.*?)\\s+" + + "-name\\s+(.*?)\\s+-t\\s+(.*?)\\s+-v\\s+(.*?)\\s+-u\\s+(.*)"; + private static final String EDIT_PARTICIPANT_REGEX = "edit\\s+-p\\s+(.*?)\\s+" + + "-email\\s+(.*?)\\s+-e\\s+(.*)"; private static final String EDIT_ITEM_REGEX = "edit\\s+-m\\s+(.*?)\\s+-e\\s+(.*)"; - private static final String REMOVE_PARTICIPANT_REGEX = "remove\\s+-p\\s+(.*?)\\s+-e\\s+(.*)"; + private static final String VIEW_REGEX = "view\\s+-e\\s+(.*?)\\s+-y\\s+(.*)"; private static final String MARK_EVENT_REGEX = "mark\\s+-e\\s+(.*?)\\s+-s\\s+(.*)"; private static final String MARK_PARTICIPANT_REGEX = "mark\\s+-p\\s+(.*?)\\s+-e\\s+(.*?)\\s+-s\\s+(.*)"; - private static final String FIND_REGEX = "find\\s+-e\\s+(.*?)\\s+-p\\s+(.*)"; - private static final String VIEW_REGEX = "view\\s+-e\\s+(.*?)\\s+-y\\s+(.*)"; private static final String MARK_ITEM_REGEX = "mark\\s+-m\\s+(.*?)\\s+-e\\s+(.*?)\\s+-s\\s+(.*)"; - private static final String REMOVE_EVENT_REGEX = "remove\\s+-e\\s+(.*)"; + private static final String COPY_REGEX = "copy\\s+(.*?)\\s\\>\\s+(.*)"; + private static final String SORT_REGEX = "sort\\s+-by\\s+(.*)"; + private static final String FILTER_REGEX = "filter\\s+(-[e|d|t|x|u])\\s(.*)"; + private static final String FIND_REGEX = "find\\s+-e\\s+(.*?)\\s+-p\\s+(.*)"; private static final Pattern EMAIL_PATTERN = Pattern.compile("^[A-Za-z0-9+_.-]+@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)+$"); private final Logger logger; @@ -544,47 +540,6 @@ private Command parseEditCommand(String input, String[] commandParts) throws Inv } } - //@@author KuanHsienn - /** - * Returns an {@link EditParticipantCommand} that edits a participant with fields parsed from a given user input. - * - * @param input the given user input. - * @return an {@link EditParticipantCommand} that edits a participant with fields parsed from input. - * @throws IndexOutOfBoundsException if not all fields are present. - * @throws IOException if the log file cannot be written to. - */ - private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException, - IOException { - checkForDuplicateFlags(input, PARTICIPANT_FLAG_REGEX); - - Pattern pattern = Pattern.compile(EDIT_PARTICIPANT_REGEX); - Matcher matcher = pattern.matcher(input); - - String participantName; - String newEmail; - String eventName; - - if (matcher.matches()) { - if (matcher.group(1).isBlank() || matcher.group(2).isBlank() - || matcher.group(3).isBlank()) { - throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); - } - - participantName = matcher.group(1).trim(); - newEmail = matcher.group(2).trim(); - eventName = matcher.group(3).trim(); - - if (!isValidEmail(newEmail)) { - logWarning("Invalid email format"); - throw new InvalidCommandException(INVALID_EMAIL_MESSAGE); - } - } else { - throw new InvalidCommandException(INVALID_EDIT_MESSAGE); - } - - return new EditParticipantCommand(participantName, newEmail, eventName); - } - //@@author MatchaRRR /** * Returns an {@link EditEventCommand} that edits an event with fields parsed from a given user input. @@ -627,6 +582,47 @@ private Command getEditEventCommand(String input) throws IndexOutOfBoundsExcepti return new EditEventCommand(eventName, eventNewName, eventTime, eventVenue, eventPriority); } + //@@author KuanHsienn + /** + * Returns an {@link EditParticipantCommand} that edits a participant with fields parsed from a given user input. + * + * @param input the given user input. + * @return an {@link EditParticipantCommand} that edits a participant with fields parsed from input. + * @throws IndexOutOfBoundsException if not all fields are present. + * @throws IOException if the log file cannot be written to. + */ + private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException, + IOException { + checkForDuplicateFlags(input, PARTICIPANT_FLAG_REGEX); + + Pattern pattern = Pattern.compile(EDIT_PARTICIPANT_REGEX); + Matcher matcher = pattern.matcher(input); + + String participantName; + String newEmail; + String eventName; + + if (matcher.matches()) { + if (matcher.group(1).isBlank() || matcher.group(2).isBlank() + || matcher.group(3).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + + participantName = matcher.group(1).trim(); + newEmail = matcher.group(2).trim(); + eventName = matcher.group(3).trim(); + + if (!isValidEmail(newEmail)) { + logWarning("Invalid email format"); + throw new InvalidCommandException(INVALID_EMAIL_MESSAGE); + } + } else { + throw new InvalidCommandException(INVALID_EDIT_MESSAGE); + } + + return new EditParticipantCommand(participantName, newEmail, eventName); + } + //@@author MatchaRRR /** * Returns an {@link EditItemCommand} that edits an event with fields parsed from a given user input. @@ -930,15 +926,21 @@ private boolean toMarkItem(String status) throws InvalidCommandException, IOExce * @throws InvalidCommandException if the command is missing required parts or has an invalid format */ private Command parseCopyCommand(String input, String[] commandParts) throws InvalidCommandException { - assert commandParts[0].equalsIgnoreCase(CopyCommand.COMMAND_WORD); - String commandInput = input.replaceFirst("^" + commandParts[0] + "\\s*", ""); - String[] inputParts = commandInput.split(ARROW); + assert commandParts[0].equalsIgnoreCase(FilterCommand.COMMAND_WORD); + + Pattern pattern = Pattern.compile(COPY_REGEX); + Matcher matcher = pattern.matcher(input); - if (inputParts.length != 2) { + if (matcher.matches()) { + + if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + + return new CopyCommand(matcher.group(1).trim(), matcher.group(2).trim()); + } else { throw new InvalidCommandException(INVALID_COPY_MESSAGE); } - - return new CopyCommand(inputParts[0].trim(), inputParts[1].trim()); } //@@author MatchaRRR @@ -960,17 +962,20 @@ private Command parseCopyCommand(String input, String[] commandParts) throws Inv */ private Command parseSortCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(SortCommand.COMMAND_WORD); - String[] inputParts = input.split("-by", 2); - if (inputParts.length < 2) { - throw new InvalidCommandException(INVALID_SORT_MESSAGE); - } - String keyword = inputParts[1].trim(); - Set validKeywords = Set.of("name", "time", "priority"); - if (validKeywords.contains(keyword.toLowerCase())) { - return new SortCommand(keyword); + Pattern pattern = Pattern.compile(SORT_REGEX); + Matcher matcher = pattern.matcher(input); + + if (matcher.matches()) { + + if (matcher.group(1).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + + return new SortCommand(matcher.group(1).trim()); + } else { + throw new InvalidCommandException(INVALID_SORT_MESSAGE); } - throw new InvalidCommandException(INVALID_SORT_KEYWORD_MESSAGE); } //@@author LTK-1606 @@ -992,20 +997,26 @@ private Command parseSortCommand(String input, String[] commandParts) throws Inv */ private Command parseFilterCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(FilterCommand.COMMAND_WORD); - String[] inputParts = input.split("(-e|-d|-t|-x|-u)"); - if (inputParts.length < 2) { - throw new InvalidCommandException(INVALID_FILTER_MESSAGE); - } - if (inputParts[1].isBlank()) { - throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); - } + checkForDuplicateFlags(input, FILTER_FLAG_REGEX); + + Pattern pattern = Pattern.compile(FILTER_REGEX); + Matcher matcher = pattern.matcher(input); + + if (matcher.matches()) { - Set validFlags = Set.of(EVENT_FLAG, "-d", "-t", "-x", "-u"); - if (validFlags.contains(commandParts[1].trim().toLowerCase())) { - return new FilterCommand(commandParts[1].trim().toLowerCase(), inputParts[1].trim()); + if (matcher.group(1).isBlank()) { + throw new InvalidCommandException(INVALID_FILTER_MESSAGE); + } + + if (matcher.group(2).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + + return new FilterCommand(matcher.group(1).trim(), matcher.group(2).trim()); + } else { + throw new InvalidCommandException(INVALID_FILTER_MESSAGE); } - throw new InvalidCommandException(INVALID_FILTER_FLAG_MESSAGE); } /** @@ -1025,9 +1036,6 @@ private Command parseFilterCommand(String input, String[] commandParts) throws I */ private Command parseFindCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(FindCommand.COMMAND_WORD); - if (!input.contains(EVENT_FLAG) || !input.contains(PARTICIPANT_FLAG)) { - throw new InvalidCommandException(INVALID_FIND_FLAG_MESSAGE); - } checkForDuplicateFlags(input, FIND_FLAG_REGEX); From 36d3cd828aec4b99d1124b71d89dddc302db07ca Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sun, 10 Nov 2024 16:55:52 +0800 Subject: [PATCH 542/619] Solve SortCommand bug --- src/main/java/seedu/manager/parser/Parser.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 7401d00c5d..1cefbb68d4 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -972,6 +972,11 @@ private Command parseSortCommand(String input, String[] commandParts) throws Inv throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); } + if (!matcher.group(1).equals("time") && !matcher.group(1).equals("name") && + !matcher.group(1).equals("priority")) { + throw new InvalidCommandException(INVALID_SORT_KEYWORD_MESSAGE); + } + return new SortCommand(matcher.group(1).trim()); } else { throw new InvalidCommandException(INVALID_SORT_MESSAGE); From 5a76d5799ff24650c8c0641f1abe827f2c2fbd18 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Sun, 10 Nov 2024 17:24:52 +0800 Subject: [PATCH 543/619] Wrap line according to review --- src/main/java/seedu/manager/command/ListCommand.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/manager/command/ListCommand.java b/src/main/java/seedu/manager/command/ListCommand.java index 1ad5d09756..b83ed46b7c 100644 --- a/src/main/java/seedu/manager/command/ListCommand.java +++ b/src/main/java/seedu/manager/command/ListCommand.java @@ -22,11 +22,14 @@ public ListCommand() { public void execute() { StringBuilder outputMessage; if (eventList.getListSize() == 0) { - outputMessage = new StringBuilder(String.format(EMPTY_LIST_MESSAGE, eventList.getListSize()) + "\n"); + outputMessage = new StringBuilder( + String.format(EMPTY_LIST_MESSAGE, eventList.getListSize()) + "\n"); } else if (eventList.getListSize() == 1) { - outputMessage = new StringBuilder(String.format(ONE_EVENT_LIST_MESSAGE, eventList.getListSize()) + "\n"); + outputMessage = new StringBuilder( + String.format(ONE_EVENT_LIST_MESSAGE, eventList.getListSize()) + "\n"); } else { - outputMessage = new StringBuilder(String.format(LIST_MESSAGE, eventList.getListSize()) + "\n"); + outputMessage = new StringBuilder( + String.format(LIST_MESSAGE, eventList.getListSize()) + "\n"); } for (int i = 0; i < eventList.getListSize(); i++) { assert eventList.getEvent(i) != null : "Event at index " + i + " should not be null."; From 4e314bfc9a9883a1110b22dff8ebbfa15969d71a Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Sun, 10 Nov 2024 17:41:46 +0800 Subject: [PATCH 544/619] Update time remarks in UG --- docs/UserGuide.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index d45a182ea7..a1a7bf885d 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -100,7 +100,9 @@ Format: Remarks: -* `TIME` must be entered in the format `yyyy-mm-dd HH:mm`. +* `TIME` must be entered in the format `yyyy-mm-dd HH:mm`. + * There is no year 0000, no month 0 and no day 0 in the AD Calendar. Using such inputs will throw an error. + * Throws an error if the date-time inputted is from the past. * `PRIORITY` must be either `HIGH`, `MEDIUM`, or `LOW`. * The values entered for `PRIORITY` are case-insensitive. * If the event list has an `Event` with the name `EVENT`, or the specified event has a `Participant` or `Item` with the name of the `Participant`/`Item` to be added, an indexed suffix is added to differentiate the different entries. @@ -160,6 +162,7 @@ Remarks: * If there is already an `Event` with the name `NEW_EVENT_NAME` in the event list, or an `Item` with the name `NEW_ITEM_NAME` in the specified event, an indexed suffix is added to differentiate the events. * e.g. given that an `Event` named `Wood workshop` is already present in the list, editing another `Event` to have the name `Wood workshop` would result in it being named `Wood workshop (1)`. +* `TIME` cannot be edited to a date-time in the past. Examples: @@ -237,7 +240,7 @@ Filters out events from the event list based on name, date-time or priority leve Format: `filter -e/-d/-t/-x/-u DESCRIPTION` -* `-e/-d/-t/-x/-u` are the flags for name, date-time and priority level respectively. +* `-e/-d/-t/-x/-u` are the flags for name, date, time, date-time and priority level respectively. * `DESCRIPTION` is case-insensitive. Examples: From c6b0d0101938fa7c6f4072fc1119beb3c2ea5856 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Sun, 10 Nov 2024 18:06:01 +0800 Subject: [PATCH 545/619] Update time remarks according to review --- docs/UserGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a1a7bf885d..40054370bb 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -102,7 +102,7 @@ Remarks: * `TIME` must be entered in the format `yyyy-mm-dd HH:mm`. * There is no year 0000, no month 0 and no day 0 in the AD Calendar. Using such inputs will throw an error. - * Throws an error if the date-time inputted is from the past. + * Using date-time inputs from the past (before the current date-time) will throw an error. * `PRIORITY` must be either `HIGH`, `MEDIUM`, or `LOW`. * The values entered for `PRIORITY` are case-insensitive. * If the event list has an `Event` with the name `EVENT`, or the specified event has a `Participant` or `Item` with the name of the `Participant`/`Item` to be added, an indexed suffix is added to differentiate the different entries. From b333b43c55fe7372ca99ec862be7a7810e43f076 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 18:24:04 +0800 Subject: [PATCH 546/619] Update and simplify sequence diagrams --- .../AddParticipantSequenceDiagram.puml | 6 ++---- .../EditEventCommandSequenceDiagram.puml | 5 ++--- .../EditItemCommandSequenceDiagram.puml | 2 -- ...EditParticipantCommandSequenceDiagram.puml | 1 - docs/diagrams/RemoveEventSequenceDiagram.puml | 1 - docs/diagrams/RemoveParticipantFromEvent.puml | 1 - .../RemoveParticipantSequenceDiagram.puml | 7 +++---- docs/diagrams/ViewEventSequenceDiagram.puml | 2 +- docs/images/AddParticipantSequenceDiagram.png | Bin 24027 -> 21671 bytes .../EditEventCommandSequenceDiagram.png | Bin 31058 -> 29495 bytes .../images/EditItemCommandSequenceDiagram.png | Bin 28899 -> 26831 bytes .../EditParticipantCommandSequenceDiagram.png | Bin 31171 -> 30077 bytes docs/images/RemoveEventSequenceDiagram.png | Bin 27043 -> 25237 bytes docs/images/RemoveParticipantFromEvent.png | Bin 30636 -> 29187 bytes .../RemoveParticipantSequenceDiagram.png | Bin 24947 -> 21927 bytes docs/images/ViewEventSequenceDiagram.png | Bin 21131 -> 20549 bytes 16 files changed, 8 insertions(+), 17 deletions(-) diff --git a/docs/diagrams/AddParticipantSequenceDiagram.puml b/docs/diagrams/AddParticipantSequenceDiagram.puml index 3488e81b54..153557f8a3 100644 --- a/docs/diagrams/AddParticipantSequenceDiagram.puml +++ b/docs/diagrams/AddParticipantSequenceDiagram.puml @@ -15,12 +15,10 @@ group sd Add participant return event:Event - alt event not found - eventList --> command : Invalid event - else else + opt Event found ref over eventList : Add participant to event end - return + return :boolean end @enduml \ No newline at end of file diff --git a/docs/diagrams/EditEventCommandSequenceDiagram.puml b/docs/diagrams/EditEventCommandSequenceDiagram.puml index 2e4700e7fa..ed2cc1f0e6 100644 --- a/docs/diagrams/EditEventCommandSequenceDiagram.puml +++ b/docs/diagrams/EditEventCommandSequenceDiagram.puml @@ -8,7 +8,7 @@ participant ":Event" as event [-> editCommand : execute() activate editCommand -editCommand -> eventList : editEvent(eventName, eventNewName, eventTime, eventVenue, eventPriority) +editCommand -> eventList : editEvent(eventName, eventNewName,\n eventTime, eventVenue, eventPriority) activate eventList loop for each event in eventList @@ -18,11 +18,10 @@ loop for each event in eventList deactivate event opt eventName matches - eventList -> event : updateEvent(eventNewName, eventTime, eventVenue, eventPriority) + eventList -> event : updateEvent(eventNewName,\n eventTime, eventVenue, eventPriority) activate event event --> eventList : updated deactivate event - eventList --> editCommand : :boolean end end diff --git a/docs/diagrams/EditItemCommandSequenceDiagram.puml b/docs/diagrams/EditItemCommandSequenceDiagram.puml index 0a5abd47be..509c82a979 100644 --- a/docs/diagrams/EditItemCommandSequenceDiagram.puml +++ b/docs/diagrams/EditItemCommandSequenceDiagram.puml @@ -22,8 +22,6 @@ loop for each event in eventList activate event event --> eventList : item updated deactivate event - eventList --> editCommand : :boolean - end end diff --git a/docs/diagrams/EditParticipantCommandSequenceDiagram.puml b/docs/diagrams/EditParticipantCommandSequenceDiagram.puml index 6d4116b3a7..f75e2d95d4 100644 --- a/docs/diagrams/EditParticipantCommandSequenceDiagram.puml +++ b/docs/diagrams/EditParticipantCommandSequenceDiagram.puml @@ -22,7 +22,6 @@ activate event event --> eventList : updated deactivate event - eventList --> editCommand : :boolean end end diff --git a/docs/diagrams/RemoveEventSequenceDiagram.puml b/docs/diagrams/RemoveEventSequenceDiagram.puml index b881036512..d3d88df02f 100644 --- a/docs/diagrams/RemoveEventSequenceDiagram.puml +++ b/docs/diagrams/RemoveEventSequenceDiagram.puml @@ -22,7 +22,6 @@ group sd Remove event activate list destroy event return - eventList --> command : :boolean end end return :boolean diff --git a/docs/diagrams/RemoveParticipantFromEvent.puml b/docs/diagrams/RemoveParticipantFromEvent.puml index c23dd1e11f..81841c566b 100644 --- a/docs/diagrams/RemoveParticipantFromEvent.puml +++ b/docs/diagrams/RemoveParticipantFromEvent.puml @@ -23,7 +23,6 @@ group sd Remove participant from event activate participantList destroy participant return - event --> eventList : :boolean end end return :boolean diff --git a/docs/diagrams/RemoveParticipantSequenceDiagram.puml b/docs/diagrams/RemoveParticipantSequenceDiagram.puml index 5a0fabfc24..5854b113eb 100644 --- a/docs/diagrams/RemoveParticipantSequenceDiagram.puml +++ b/docs/diagrams/RemoveParticipantSequenceDiagram.puml @@ -15,12 +15,11 @@ group sd Remove participant return event:Event - alt event not found - eventList --> command : :boolean - else else + opt Event found ref over eventList : Remove participant from event - eventList --> command : :boolean end + + return :boolean end diff --git a/docs/diagrams/ViewEventSequenceDiagram.puml b/docs/diagrams/ViewEventSequenceDiagram.puml index 0233cab0f7..efa82a093d 100644 --- a/docs/diagrams/ViewEventSequenceDiagram.puml +++ b/docs/diagrams/ViewEventSequenceDiagram.puml @@ -14,7 +14,7 @@ activate eventList return eventToView:Event alt eventToView not found - command --> main : Invalid event + command -->[ : Invalid event else isViewingParticipants is true ref over command, eventList: View participants else else diff --git a/docs/images/AddParticipantSequenceDiagram.png b/docs/images/AddParticipantSequenceDiagram.png index c7b8e2017b942acd9969b70aaaa73d73407b756b..c24289d81ce9320fc9ddf951527baa19fa6fe656 100644 GIT binary patch literal 21671 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 literal 24027 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 I@Z5ahZ)5`Od;kCd diff --git a/docs/images/EditEventCommandSequenceDiagram.png b/docs/images/EditEventCommandSequenceDiagram.png index 32da31410e4329b93abcf5d0d3e3c85831bb7429..e9a654b32830bd82f83cc3293c265e77be95706a 100644 GIT binary patch literal 29495 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 R-(a~&Q%#SY^@pY3{{bw=*mnQ` literal 31058 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 NmG>wmZ9j7UzW^`7LoNUS diff --git a/docs/images/EditItemCommandSequenceDiagram.png b/docs/images/EditItemCommandSequenceDiagram.png index 473c9d0d7fe728892a2ab579aefe0847ca2eff64..26f21d0785a34b272b6da013afbf53ad888697ec 100644 GIT binary patch literal 26831 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 literal 28899 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 O_NZy8CMh4e^nUN)IU_f`9^p3eq5*(g;c@4T6A3 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ÐZckOH#gpE3y|5M+l}~8%M&G$iwKI=@(ad1 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 UiGbx0el3Y)q;IB|u45ncFGm`u(*OVf diff --git a/docs/images/RemoveParticipantFromEvent.png b/docs/images/RemoveParticipantFromEvent.png index 92783e647a5999a3e64e9f511ecf39b82b7ec0e5..c896ded7dbfe082863f657f41fa27257ca5e443b 100644 GIT binary patch literal 29187 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
        $ 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 ZCAF=(9irYUjw`9ulr@!ZZP|bN{{RsRC>H<# literal 30636 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 literal 24947 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 WTaFs6DFvSA$KdJe=d#Wzp$P!_>jW17 literal 21131 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 From 8254180bd297bf17bac73bf73466f4cbf94f33e7 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sun, 10 Nov 2024 18:24:34 +0800 Subject: [PATCH 547/619] Fix date time bug --- .../java/seedu/manager/parser/Parser.java | 57 +++++++++++---- text-ui-test/EXPECTED.TXT | 69 +++++++------------ 2 files changed, 68 insertions(+), 58 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 1cefbb68d4..dafe873caa 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -23,8 +23,11 @@ import java.io.IOException; import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.ZoneId; +import java.util.Date; import java.util.HashSet; import java.util.Set; import java.util.logging.FileHandler; @@ -92,16 +95,23 @@ public class Parser { """; private static final String INVALID_DATE_TIME_MESSAGE = """ Invalid date-time format! - Please use the following format for event time: + Please enter the event time in the following format: YYYY-MM-DD HH:mm - MM-DD has to be between 01-01 and 12-31, and HH:mm has to be between 00:00 and 23:59. + Ensure the following: + - The year (YYYY) is from 0001 onwards. + - The date (MM-DD) is between 01-01 and 12-31. + - The time (HH:mm) is between 00:00 and 23:59. """; private static final String INVALID_PRIORITY_MESSAGE = """ Invalid priority level status! Please use the following format for priority level: high/medium/low """; + private static final String PAST_DATE_MESSAGE = """ + Datetime is in the past! Stop living in the past! + Please enter a new date in the same format. + """; private static final String INVALID_EMAIL_MESSAGE = """ Invalid email format! Please enter a valid email address. @@ -234,6 +244,9 @@ public Command parseCommand(String command) throws InvalidCommandException, IOEx } catch (DateTimeParseException exception) { logWarning("Invalid date-time format"); throw new InvalidCommandException(INVALID_DATE_TIME_MESSAGE); + } catch (ParseException exception) { + logWarning("Invalid date-time format"); + throw new InvalidCommandException(INVALID_DATE_TIME_MESSAGE); } catch (IllegalArgumentException exception) { logWarning("Invalid priority level status"); throw new InvalidCommandException(INVALID_PRIORITY_MESSAGE); @@ -266,7 +279,7 @@ public Command parseCommand(String command) throws InvalidCommandException, IOEx * @throws IOException if the log file cannot be written to. */ public Command parseAddCommand(String input, String[] commandParts) throws InvalidCommandException, - IndexOutOfBoundsException, DateTimeParseException, IllegalArgumentException, IOException { + IndexOutOfBoundsException, ParseException, IllegalArgumentException, IOException { assert commandParts[0].equalsIgnoreCase(AddCommand.COMMAND_WORD); String commandFlag = commandParts[1]; @@ -289,11 +302,11 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval * @param input the given user input. * @return an {@link AddCommand} that adds an event with fields parsed from input. * @throws IndexOutOfBoundsException if not all fields are present. - * @throws DateTimeParseException if the time parameter is not entered in the correct format. + * @throws ParseException if the time parameter is not entered in the correct format. * @throws IllegalArgumentException if the priority parameter is not valid. * @throws IOException if the log file cannot be written to. */ - private Command getAddEventCommand(String input) throws IndexOutOfBoundsException, DateTimeParseException, + private Command getAddEventCommand(String input) throws IndexOutOfBoundsException, ParseException, IllegalArgumentException, IOException { checkForDuplicateFlags(input, EVENT_FLAG_REGEX); @@ -310,13 +323,22 @@ private Command getAddEventCommand(String input) throws IndexOutOfBoundsExceptio || matcher.group(3).isBlank() || matcher.group(4).isBlank()) { throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); } + logInfo("Creating AddCommand for event with details: " + matcher.group(1).trim() + ", " + matcher.group(2).trim() + ", " + matcher.group(3).trim()); + eventName = matcher.group(1).trim(); - eventTime = LocalDateTime.parse(matcher.group(2).trim(), - DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); + SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + dateTimeFormat.setLenient(false); + Date parsedDateTime = dateTimeFormat.parse(matcher.group(2).trim()); + eventTime = LocalDateTime.ofInstant(parsedDateTime.toInstant(), ZoneId.systemDefault()); venue = matcher.group(3).trim(); eventPriority = Priority.valueOf(matcher.group(4).trim().toUpperCase()); + + if (eventTime.isBefore(LocalDateTime.now())) { + throw new InvalidCommandException(PAST_DATE_MESSAGE); + } + } else { throw new InvalidCommandException(INVALID_ADD_MESSAGE); } @@ -519,11 +541,11 @@ private RemoveCommand getRemoveItemCommand(String input) throws IndexOutOfBounds * * @return a Command object representing the parsed command. * @throws InvalidCommandException if the flags are not matched in the command parts. - * @throws DateTimeParseException if the time parameter is not entered in the correct format. + * @throws ParseException if the time parameter is not entered in the correct format. * @throws IllegalArgumentException if the priority parameter is not valid. */ private Command parseEditCommand(String input, String[] commandParts) throws InvalidCommandException, - IOException { + IOException, ParseException { assert commandParts[0].equalsIgnoreCase(EditParticipantCommand.COMMAND_WORD); String commandFlag = commandParts[1]; @@ -547,10 +569,10 @@ private Command parseEditCommand(String input, String[] commandParts) throws Inv * @param input the given user input. * @return an {@link EditEventCommand} that edits an event with fields parsed from input. * @throws IndexOutOfBoundsException if not all fields are present. - * @throws DateTimeParseException if the time parameter is not entered in the correct format. + * @throws ParseException if the time parameter is not entered in the correct format. * @throws IllegalArgumentException if the priority parameter is not valid. */ - private Command getEditEventCommand(String input) throws IndexOutOfBoundsException, DateTimeParseException, + private Command getEditEventCommand(String input) throws IndexOutOfBoundsException, ParseException, IllegalArgumentException { checkForDuplicateFlags(input, EDIT_EVENT_ATTRIBUTE_FLAG_REGEX); @@ -571,10 +593,17 @@ private Command getEditEventCommand(String input) throws IndexOutOfBoundsExcepti eventName = matcher.group(1).trim(); eventNewName = matcher.group(2).trim(); - eventTime = LocalDateTime.parse(matcher.group(3).trim(), - DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); + SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + dateTimeFormat.setLenient(false); + Date parsedDateTime = dateTimeFormat.parse(matcher.group(3).trim()); + eventTime = LocalDateTime.ofInstant(parsedDateTime.toInstant(), ZoneId.systemDefault()); eventVenue = matcher.group(4).trim(); eventPriority = Priority.valueOf(matcher.group(5).trim().toUpperCase()); + + if (eventTime.isBefore(LocalDateTime.now())) { + throw new InvalidCommandException(PAST_DATE_MESSAGE); + } + } else { throw new InvalidCommandException(INVALID_EDIT_MESSAGE); } diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 482635766b..6089cc0e6e 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -21,7 +21,7 @@ mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. mark -m ITEM -e EVENT -s STATUS: Mark an item as accounted or unaccounted. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. -sort -by KEYWORD: Sorts events by name/time/priority. +sort -e EVENT -by KEYWORD: Sorts events by name/time/priority. filter -e/-d/-t/-x/-u FILTER_DESCRIPTION: Filters events by name/date/time/date-time/priority. find -e EVENT -p NAME: Finds all participants with specified name in an event. exit: Exit program. @@ -36,24 +36,25 @@ add -p PARTICIPANT -email EMAIL -e EVENT add -m ITEM -e EVENT ------------------------ -Enter a command: Event added successfully +Enter a command: Datetime is in the past! Stop living in the past! +Please enter a new date in the same format. + ------------------------ -Enter a command: There are 1 events in your list! Here are your scheduled events: -1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: N +Enter a command: There are 0 events in your list! Here are your scheduled events: ------------------------ -Enter a command: Event marked as done +Enter a command: Event not found! ------------------------ -Enter a command: There are 1 events in your list! Here are your scheduled events: -1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y +Enter a command: There are 0 events in your list! Here are your scheduled events: ------------------------ Enter a command: Event not found! ------------------------ -Enter a command: Event information successfully updated +Enter a command: Datetime is in the past! Stop living in the past! +Please enter a new date in the same format. + ------------------------ -Enter a command: There are 1 events in your list! Here are your scheduled events: -1. Event name: dinner party(1) / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +Enter a command: There are 0 events in your list! Here are your scheduled events: ------------------------ Enter a command: Event not found! @@ -67,16 +68,14 @@ Enter a command: Event/Participant not found! ------------------------ Enter a command: Event not found! ------------------------ -Enter a command: Event added successfully +Enter a command: Datetime is in the past! Stop living in the past! +Please enter a new date in the same format. + ------------------------ Enter a command: Events successfully sorted by name! -1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N -2. Event name: dinner party(1) / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y ------------------------ Enter a command: Events successfully sorted by time! -1. Event name: dinner party(1) / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y -2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ Enter a command: Event not found! @@ -85,47 +84,29 @@ Enter a command: Event not found! ------------------------ Enter a command: Event not found! ------------------------ -Enter a command: There are 2 events in your list! Here are your scheduled events: -1. Event name: dinner party(1) / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y -2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N +Enter a command: There are 0 events in your list! Here are your scheduled events: ------------------------ -Enter a command: Events successfully filtered by name! -1. Event name: dinner party(1) / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y - +Enter a command: Filter flag matched no events! ------------------------ -Enter a command: Events successfully filtered by date! -1. Event name: dinner party(1) / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y - +Enter a command: Filter flag matched no events! ------------------------ -Enter a command: Events successfully filtered by time! -1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N - +Enter a command: Filter flag matched no events! ------------------------ -Enter a command: Events successfully filtered by date-time! -1. Event name: dinner party(1) / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y - +Enter a command: Filter flag matched no events! ------------------------ -Enter a command: Events successfully filtered by priority! -1. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N - +Enter a command: Filter flag matched no events! ------------------------ -Enter a command: There are 2 events in your list! Here are your scheduled events: -1. Event name: dinner party(1) / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y -2. Event name: anniversary celebration / Event time: 2024-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N +Enter a command: There are 0 events in your list! Here are your scheduled events: ------------------------ -Enter a command: Item added successfully +Enter a command: Event not found! ------------------------ -Enter a command: There are 1 items in anniversary celebration! Here are your items: -1. balloon [ ] - +Enter a command: Event not found! ------------------------ -Enter a command: Item successfully updated +Enter a command: Event/Item not found! ------------------------ -Enter a command: There are 1 items in anniversary celebration! Here are your items: -1. cake [ ] - +Enter a command: Event not found! ------------------------ Enter a command: Thank you for using EventManagerCLI. Goodbye! ------------------------ From 18140d477470076a884c5dd8dfc12230e54a3853 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sun, 10 Nov 2024 18:50:35 +0800 Subject: [PATCH 548/619] Resolve test cases --- .../java/seedu/manager/command/FilterCommand.java | 2 +- src/main/java/seedu/manager/command/MenuCommand.java | 2 +- src/main/java/seedu/manager/parser/Parser.java | 12 +++++++++--- .../java/seedu/manager/command/ViewCommandTest.java | 2 +- .../seedu/manager/parser/ParserIntegrationTest.java | 4 ++-- src/test/java/seedu/manager/parser/ParserTest.java | 2 +- 6 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/main/java/seedu/manager/command/FilterCommand.java b/src/main/java/seedu/manager/command/FilterCommand.java index 5600820515..5c93da7aeb 100644 --- a/src/main/java/seedu/manager/command/FilterCommand.java +++ b/src/main/java/seedu/manager/command/FilterCommand.java @@ -44,7 +44,7 @@ public class FilterCommand extends Command { protected String flag; protected String filterWord; private EventList filteredEvents; - protected boolean isValidFields = true; + private boolean isValidFields = true; /** * Constructs a {@code FilterCommand} with the specified flag and filter word. diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 533015de2d..114a6a4d55 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -25,7 +25,7 @@ public class MenuCommand extends Command { mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. mark -m ITEM -e EVENT -s STATUS: Mark an item as accounted or unaccounted. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. - sort -e EVENT -by KEYWORD: Sorts events by name/time/priority. + sort -by KEYWORD: Sorts events by name/time/priority. filter -e/-d/-t/-x/-u FILTER_DESCRIPTION: Filters events by name/date/time/date-time/priority. find -e EVENT -p NAME: Finds all participants with specified name in an event. exit: Exit program."""; diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index dafe873caa..ab4c6eb272 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -163,8 +163,10 @@ public class Parser { private static final String MARK_EVENT_FLAG_REGEX = "-e|-s"; private static final String MARK_PARTICIPANT_FLAG_REGEX = "-p|-e|-s"; private static final String MARK_ITEM_FLAG_REGEX = "-m|-e|-s"; - private static final String FILTER_FLAG_REGEX = "\\s*(-[e|d|t|x|u])\\s*"; - private static final String FIND_FLAG_REGEX = "\\s*(-e|-p)\\s*"; + private static final String COPY_FLAG_REGEX = ">"; + private static final String SORT_FLAG_REGEX = "-by"; + private static final String FILTER_FLAG_REGEX = "(-e|-d|-t|-x|-u)"; + private static final String FIND_FLAG_REGEX = "(-e|-p)"; private static final String ADD_EVENT_REGEX = "add\\s+-e\\s+(.*?)\\s+-t\\s+(.*?)\\s+-v\\s+(.*?)\\s+-u\\s+(.*)"; private static final String ADD_PARTICIPANT_REGEX = "add\\s+-p\\s+(.*?)\\s+" + @@ -955,7 +957,9 @@ private boolean toMarkItem(String status) throws InvalidCommandException, IOExce * @throws InvalidCommandException if the command is missing required parts or has an invalid format */ private Command parseCopyCommand(String input, String[] commandParts) throws InvalidCommandException { - assert commandParts[0].equalsIgnoreCase(FilterCommand.COMMAND_WORD); + assert commandParts[0].equalsIgnoreCase(CopyCommand.COMMAND_WORD); + + checkForDuplicateFlags(input, COPY_FLAG_REGEX); Pattern pattern = Pattern.compile(COPY_REGEX); Matcher matcher = pattern.matcher(input); @@ -992,6 +996,8 @@ private Command parseCopyCommand(String input, String[] commandParts) throws Inv private Command parseSortCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(SortCommand.COMMAND_WORD); + checkForDuplicateFlags(input, SORT_FLAG_REGEX); + Pattern pattern = Pattern.compile(SORT_REGEX); Matcher matcher = pattern.matcher(input); diff --git a/src/test/java/seedu/manager/command/ViewCommandTest.java b/src/test/java/seedu/manager/command/ViewCommandTest.java index 72cf94e43e..2bca2941f5 100644 --- a/src/test/java/seedu/manager/command/ViewCommandTest.java +++ b/src/test/java/seedu/manager/command/ViewCommandTest.java @@ -21,7 +21,7 @@ public void setUp() throws IOException { Command command; eventList = new EventList(); - command = new Parser().parseCommand("add -e Event 1 -t 2024-10-10 10:00 -v Venue A -u high"); + command = new Parser().parseCommand("add -e Event 1 -t 2025-10-10 10:00 -v Venue A -u high"); command.setData(eventList); command.execute(); diff --git a/src/test/java/seedu/manager/parser/ParserIntegrationTest.java b/src/test/java/seedu/manager/parser/ParserIntegrationTest.java index 2097bc0f0a..ebb3fad40c 100644 --- a/src/test/java/seedu/manager/parser/ParserIntegrationTest.java +++ b/src/test/java/seedu/manager/parser/ParserIntegrationTest.java @@ -29,7 +29,7 @@ void setUp() throws IOException { @Test void parseCommand_addCommandAddEvent_success() throws IOException { - String commandString = "add -e Event 2 -t 2024-10-21 16:00 -v Venue 1 -u HIGH"; + String commandString = "add -e Event 2 -t 2025-10-21 16:00 -v Venue 1 -u HIGH"; Command command = parser.parseCommand(commandString); command.setData(events); command.execute(); @@ -39,7 +39,7 @@ void parseCommand_addCommandAddEvent_success() throws IOException { @Test void parseCommand_addCommandDuplicateEvent_success() throws IOException { - String commandString = "add -e Event 1 -t 2024-10-21 16:00 -v Venue 1 -u HIGH"; + String commandString = "add -e Event 1 -t 2025-10-21 16:00 -v Venue 1 -u HIGH"; Command command = parser.parseCommand(commandString); command.setData(events); command.execute(); diff --git a/src/test/java/seedu/manager/parser/ParserTest.java b/src/test/java/seedu/manager/parser/ParserTest.java index 101102a117..011d90518d 100644 --- a/src/test/java/seedu/manager/parser/ParserTest.java +++ b/src/test/java/seedu/manager/parser/ParserTest.java @@ -61,7 +61,7 @@ public void parseCommand_listWord_list() throws IOException { @Test public void addCommand_addEvent_add() throws IOException { Parser parser = new Parser(); - Command command = parser.parseCommand("add -e event -t 2024-09-10 12:34 -v Venue A -u high"); + Command command = parser.parseCommand("add -e event -t 2025-09-10 12:34 -v Venue A -u high"); assertInstanceOf(AddCommand.class, command); } From 2440a313b8d4d5f7db261cbfbdf284bb90342f12 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 18:51:21 +0800 Subject: [PATCH 549/619] Remove "X" from sequence diagrams --- docs/diagrams/RemoveEventSequenceDiagram.puml | 3 +-- docs/diagrams/RemoveParticipantFromEvent.puml | 3 +-- docs/images/RemoveEventSequenceDiagram.png | Bin 25237 -> 24057 bytes docs/images/RemoveParticipantFromEvent.png | Bin 29187 -> 28058 bytes 4 files changed, 2 insertions(+), 4 deletions(-) diff --git a/docs/diagrams/RemoveEventSequenceDiagram.puml b/docs/diagrams/RemoveEventSequenceDiagram.puml index d3d88df02f..0f19eec4a3 100644 --- a/docs/diagrams/RemoveEventSequenceDiagram.puml +++ b/docs/diagrams/RemoveEventSequenceDiagram.puml @@ -19,8 +19,7 @@ group sd Remove event opt event exists in eventList eventList -> list : remove(event) - activate list - destroy event + activate list return end end diff --git a/docs/diagrams/RemoveParticipantFromEvent.puml b/docs/diagrams/RemoveParticipantFromEvent.puml index 81841c566b..879c3b1b1a 100644 --- a/docs/diagrams/RemoveParticipantFromEvent.puml +++ b/docs/diagrams/RemoveParticipantFromEvent.puml @@ -20,8 +20,7 @@ group sd Remove participant from event opt name of participant equals participantName event -> participantList : remove(participant) - activate participantList - destroy participant + activate participantList return end end diff --git a/docs/images/RemoveEventSequenceDiagram.png b/docs/images/RemoveEventSequenceDiagram.png index 519cd419423687a35f01c3138d480950f3019e2d..d1eaea5242c692ae2a4a67557f7077bdbda9019b 100644 GIT binary patch literal 24057 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 literal 25237 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 delta 4760 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 Wcy6TTun1@h(NNV^$vJoZ-hTi+27FEc From d4d3bb2cff028afdcb7f4858611dc5402dfc3153 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sun, 10 Nov 2024 18:56:19 +0800 Subject: [PATCH 550/619] Update input.txt --- text-ui-test/EXPECTED.TXT | 61 ++++++++++++++++++++++++--------------- text-ui-test/input.txt | 6 ++-- 2 files changed, 41 insertions(+), 26 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 6089cc0e6e..c151f8e73b 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -21,7 +21,7 @@ mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. mark -m ITEM -e EVENT -s STATUS: Mark an item as accounted or unaccounted. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. -sort -e EVENT -by KEYWORD: Sorts events by name/time/priority. +sort -by KEYWORD: Sorts events by name/time/priority. filter -e/-d/-t/-x/-u FILTER_DESCRIPTION: Filters events by name/date/time/date-time/priority. find -e EVENT -p NAME: Finds all participants with specified name in an event. exit: Exit program. @@ -36,25 +36,24 @@ add -p PARTICIPANT -email EMAIL -e EVENT add -m ITEM -e EVENT ------------------------ -Enter a command: Datetime is in the past! Stop living in the past! -Please enter a new date in the same format. - +Enter a command: Event added successfully ------------------------ -Enter a command: There are 0 events in your list! Here are your scheduled events: +Enter a command: There are 1 events in your list! Here are your scheduled events: +1. Event name: dinner party / Event time: 2026-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: N ------------------------ -Enter a command: Event not found! +Enter a command: Event marked as done ------------------------ -Enter a command: There are 0 events in your list! Here are your scheduled events: +Enter a command: There are 1 events in your list! Here are your scheduled events: +1. Event name: dinner party / Event time: 2026-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y ------------------------ Enter a command: Event not found! ------------------------ -Enter a command: Datetime is in the past! Stop living in the past! -Please enter a new date in the same format. - +Enter a command: Event information successfully updated ------------------------ -Enter a command: There are 0 events in your list! Here are your scheduled events: +Enter a command: There are 1 events in your list! Here are your scheduled events: +1. Event name: dinner party(1) / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y ------------------------ Enter a command: Event not found! @@ -68,14 +67,16 @@ Enter a command: Event/Participant not found! ------------------------ Enter a command: Event not found! ------------------------ -Enter a command: Datetime is in the past! Stop living in the past! -Please enter a new date in the same format. - +Enter a command: Event added successfully ------------------------ Enter a command: Events successfully sorted by name! +1. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N +2. Event name: dinner party(1) / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y ------------------------ Enter a command: Events successfully sorted by time! +1. Event name: dinner party(1) / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +2. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ Enter a command: Event not found! @@ -84,29 +85,43 @@ Enter a command: Event not found! ------------------------ Enter a command: Event not found! ------------------------ -Enter a command: There are 0 events in your list! Here are your scheduled events: +Enter a command: There are 2 events in your list! Here are your scheduled events: +1. Event name: dinner party(1) / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +2. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ -Enter a command: Filter flag matched no events! +Enter a command: Events successfully filtered by name! +1. Event name: dinner party(1) / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y + ------------------------ Enter a command: Filter flag matched no events! ------------------------ -Enter a command: Filter flag matched no events! +Enter a command: Events successfully filtered by time! +1. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N + ------------------------ Enter a command: Filter flag matched no events! ------------------------ -Enter a command: Filter flag matched no events! +Enter a command: Events successfully filtered by priority! +1. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N + ------------------------ -Enter a command: There are 0 events in your list! Here are your scheduled events: +Enter a command: There are 2 events in your list! Here are your scheduled events: +1. Event name: dinner party(1) / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +2. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ -Enter a command: Event not found! +Enter a command: Item added successfully ------------------------ -Enter a command: Event not found! +Enter a command: There are 1 items in anniversary celebration! Here are your items: +1. balloon [ ] + ------------------------ -Enter a command: Event/Item not found! +Enter a command: Item successfully updated ------------------------ -Enter a command: Event not found! +Enter a command: There are 1 items in anniversary celebration! Here are your items: +1. cake [ ] + ------------------------ Enter a command: Thank you for using EventManagerCLI. Goodbye! ------------------------ diff --git a/text-ui-test/input.txt b/text-ui-test/input.txt index f7aa41a48e..5cdd835dc5 100644 --- a/text-ui-test/input.txt +++ b/text-ui-test/input.txt @@ -2,18 +2,18 @@ hello world menu list add -add -e dinner party -t 2024-10-10 12:34 -v Alice's House -u high +add -e dinner party -t 2026-10-10 12:34 -v Alice's House -u high list mark -e dinner party -s done list mark -e Saturday brunch -s done -edit -e dinner party -name dinner party -t 2024-10-10 15:00 -v Bob's House -u LOW +edit -e dinner party -name dinner party -t 2026-10-10 15:00 -v Bob's House -u LOW list add -p Mary -email example@gmail.com -e dinner party view -e dinner party edit -p Mary -email Mary@gmail.com -e dinner party view -e dinner party -y participant -add -e anniversary celebration -t 2024-10-23 12:34 -v hotel -u medium +add -e anniversary celebration -t 2026-10-23 12:34 -v hotel -u medium sort -by name sort -by time add -m curry chicken -e dinner party From 12bfb2fbbbea3ced585626bd97caac766f0cbbff Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 19:23:04 +0800 Subject: [PATCH 551/619] Update instance destruction in sequence diagrams as per review --- docs/DeveloperGuide.md | 2 +- .../FilterCommandSequenceDiagram.puml | 10 ++++++++-- docs/diagrams/RemoveEventSequenceDiagram.puml | 6 ++++++ docs/diagrams/RemoveParticipantFromEvent.puml | 6 ++++++ docs/diagrams/SortCommandSequenceDiagram.puml | 10 ++++++++-- docs/images/FilterCommandSequenceDiagram.png | Bin 63006 -> 68391 bytes docs/images/RemoveEventSequenceDiagram.png | Bin 24057 -> 32762 bytes docs/images/RemoveParticipantFromEvent.png | Bin 28058 -> 35826 bytes docs/images/SortCommandSequenceDiagram.png | Bin 26726 -> 32526 bytes 9 files changed, 29 insertions(+), 5 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index ea35cdea7d..94c3f5a9a7 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -629,7 +629,7 @@ Given below is an example usage scenario and the behaviour of the `filter` featu

        The interactions between components of `FilterCommand#execute` are shown in the **Sequence Diagram** below: - +
        ### Find feature diff --git a/docs/diagrams/FilterCommandSequenceDiagram.puml b/docs/diagrams/FilterCommandSequenceDiagram.puml index f7f2992fb9..1d506664c4 100644 --- a/docs/diagrams/FilterCommandSequenceDiagram.puml +++ b/docs/diagrams/FilterCommandSequenceDiagram.puml @@ -59,8 +59,14 @@ else filter by priority deactivate FC end alt -return Display FilteredEventList and filter result message - destroy FEL +note left of FEL + The lifeline does not + end here due to a + PlantUML limitation. +end note + +return Display FilteredEventList and filter result message + @enduml \ No newline at end of file diff --git a/docs/diagrams/RemoveEventSequenceDiagram.puml b/docs/diagrams/RemoveEventSequenceDiagram.puml index 0f19eec4a3..afcb6013e3 100644 --- a/docs/diagrams/RemoveEventSequenceDiagram.puml +++ b/docs/diagrams/RemoveEventSequenceDiagram.puml @@ -20,6 +20,12 @@ group sd Remove event opt event exists in eventList eventList -> list : remove(event) activate list + destroy event + note right of event + The lifeline does not end + here due to a PlantUML + limitation. + end note return end end diff --git a/docs/diagrams/RemoveParticipantFromEvent.puml b/docs/diagrams/RemoveParticipantFromEvent.puml index 879c3b1b1a..f8b40e161b 100644 --- a/docs/diagrams/RemoveParticipantFromEvent.puml +++ b/docs/diagrams/RemoveParticipantFromEvent.puml @@ -21,6 +21,12 @@ group sd Remove participant from event opt name of participant equals participantName event -> participantList : remove(participant) activate participantList + destroy participant + note left of participant + The lifeline does not end + here due to a PlantUML + limitation. + end note return end end diff --git a/docs/diagrams/SortCommandSequenceDiagram.puml b/docs/diagrams/SortCommandSequenceDiagram.puml index 6961b36a9d..5657c61c3f 100644 --- a/docs/diagrams/SortCommandSequenceDiagram.puml +++ b/docs/diagrams/SortCommandSequenceDiagram.puml @@ -30,8 +30,14 @@ else sort by priority end alt -return Display SortedEventList and sort result message - destroy SEL +note left of SEL + The lifeline does not + end here due to a + PlantUML limitation. +end note + +return Display SortedEventList and sort result message + @enduml \ No newline at end of file diff --git a/docs/images/FilterCommandSequenceDiagram.png b/docs/images/FilterCommandSequenceDiagram.png index 5eccd9d9b9a7131aebe593c8d978b159d30db1ad..173687f69b045a644006e2c5c31a1d3951b9d3bb 100644 GIT binary patch delta 21842 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 delta 16415 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 z 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 diff --git a/docs/images/RemoveEventSequenceDiagram.png b/docs/images/RemoveEventSequenceDiagram.png index d1eaea5242c692ae2a4a67557f7077bdbda9019b..fa3f2ed79042ffc437397f1b66617c09d43516db 100644 GIT binary patch literal 32762 zcmdSBWmuH!8$Bx0Eg&EW0wSPv3|-Pn4Jf4`AxesXbSsSrf{G$Bl+qF^f^ovh)cm=_+unPa-bXGEOHn(^1xN+UW`H;%>o7ZodIbXlVeAR>5%Gue$NrI2h z;fC2wXBWF0yyo_HuC4Ex;1b)`ItI?aUO$8d*KtpnyI6CxpP!`S8&?TxOu;|>^yAiJ zcb)A-xz$Qj&U@+KXrN#Y59U7JGJOA~d81~BECKl&B^eo+jxmH=N9oC~v2ej?-m8HF zbBIX6g?>&M`_O?nnZTxFStn!8kB@MAzk8(W{R|PqUU~Sbf{q_H151(`;%440{geW6 z#__(ho2D-Yw(=KrXMAEZWYw~^$OlL$!=9fEkP5zho$*LDJ8OpO*MhV+%c6~=J}PDe zZ{Fu~l5ie`s|!pExkxT!X*^o$oHdRV#8;%=aBZ?Cx>bn7wJq0HyDhxFJH%aDOHc5m zmGfcfXXMj<^QC~^m6a~!(dnDTE@^V)gGB9(QUa5$9eF}y4I~0X+1I|^7O@-~(lbQ9 zm3u)VuO7R@eU>VTx!8(Mn_28I;Q_+rcJaGioOIpn1n0XSGr!Fjw;uF{e-r-}c9%@q zdAOyzTao@b#SmZm?yA?x^f~$~dXp~&RpfcOoNivH7uQN{c`I^HMYLPAIIY?A3?sKd zz&FBsRYBur4pMg}@~Jl+nDN4gxtg*HC^i}%7TH{JpSu&=e4*CXEJ0Nuu!=6O7oF6A z^(kHFvHFaPgqI1!Art!$*+=ZxvCOJTHBJi4MwIBK`%7R1)t-Dc-KdV5h% z6Q4>~Wt>3GNOW}#>e}lke*JohvX_u0@QD23B*pE+@&qh_QHKIi!AIaMLfs3zO}ubZyVRI*6Nh|?kW3}?8fKl=aZk1k~(dl)N^V;EXi+w)%fI{ za5kin`(kJSzMV+F3%lRBW8u-PDqr!>Odpfk{lFY4VMNcX<=3LgefhQ3_Nqq%GvQP!bw(d(gWZo0ssvGp84G$n=f!kHo?brstE2 z?VvRwX*YRARTpxff4;W<+4B^I=jTUWeZo8LcHZg?`{bDl#ly5}sB{xqPx=E@!Wy(` zv#7BHNS*8As8e9uUevfUw;*3e?}jAK5xicr_1l-9Tb zKLzqgDxEMCI{~FM>BAUBBvm~8yjhU zQRMiC_|90kU+R3XxGB_5m7?Y|)tGFfxB6zx_k_pU_BO|}DcMv<>ro!;N)Jw*pZRRJ z*~pX;(Y4E|o2~QWVg~uW2@%gYjx6H}B92e>-1F zH0&)z9Bn_){u=knvI26v>zk5IPr(_y>8Ye{dbV$0yY#t^hny%Dk1V-4xX`f8+02pK zLChC86Tq!~(tN63{M{tOz2;%5mJ|g6pKb4(+#3@bHtMjiclo494|^^QQJwQzXD}>x zzdl;4L`=uWNbR!V??iv7vGfT_gociVAL>dW0PG)7*`BsX1?0YT`$?d2Hs~naGGkZ6A8)q+A*PUCDx2kbe^*KSt2$=tV4F`7kiY& zY|p|=ix!Lj-MYS1%kso={k(zH>A4 z&UBy|FXHy4sj$D8>E)hNMSRr3#1oh7)>0Qqk(&b%SF|?wHi#XTA?TQ7eL3@R(Z#OZ zv*9arBD1#Mv09&Uk`TUhUZbU-^9J*DWn5-Bd1***4sPR1M=aGww~ek$@m=&#f1;aH zX`LH@rF2eAc3638p`X^yDG>eIdgaL7P-Bg~rAA$?C%jkgqfAO1g6P?ASTsMN)-xcD z`buAA`DqE4_;HTZd&gGl$kjS&x%NFO#H3xuGjZ&r zIgpiao&3%}6?`tjQ|&ZjT+MUO3umKyeo)2HZ*+2RCMQhNb$6WOUNQOMLrhO!TR5V# z47)nfBg-k-`SD4fwU=uL@u?o3K|6_A#@C^}*Pk{Y$V@KXRKe}3v}n0(yOJF>Hf!yC zQJ|GcKSk4!EkVdaB&J&_Zq9FIo$ll7bMF&P&klPnu;w0~wp(@b9(>k-sTl6>(A7Rw zTNaElqMr2XL@X@Ux=mMAJ=c3JwcmPgb))?DaVIp{H4{)mmh-hi;U~w;7EQbh4H6~R z)SmE$Q|bge$|c(MlTEh7%bHXkj*cc3y#C&(%GW$lu$GZ}rH5X76Cu*Oy@>ZOq&n$qrzr;pALdL8!C z&ANcyZSd@zqtUtUJZT4dYA!w12dBceGy7g%mt-JLqRiIMk73uK_udZlfEwZXIoB*R z?EL5TPvt^19r5@fLfnt9&4nQzH-BkPstF8T_Qxe=O@&GmDpo(1!f9I0-*)VM zw@LnklS=Ptc=}QcoTlatOtlWe`GWh6a+mtt1RM&joZvT~@E z$l|2av+>nd`_d_luG|uvQRfNk z^7c7{ckv>2VU!;Oso2%g34sFdTF|kY@07wTS8MPqbZ|e)$0}v0Z`D}PSc^24NAwcv z-;t@WIz}6NDwhAFuS3phMe_RYpA}7Cid5#D_5C9PY-W{bcUgq3I}Y2v65-h2_c}U% z(g0tVYBZ0VV4k$aF4wRa+oQ)Wemp`7=jOrw0k?H*>xf8aM1|AT=xb|qO;+;Zt9w-k ziMjOkd+F(#iX!(Oan@&?ua|JGkq&r#MS4c@L#(twS9Z%nl}Qx$rDf9Nu4nq&E4=LE z$DK&ng$Fujw2$PG88=QYB1-I+tn1c49YpU?&(z)MW#|qs-wwR9V|0n@nSE7a#HAA| zIuW)Rcf*bi5zwiRiP5d8A4lUzM4=jD`6p^JvZd11K2{k}BtG1}XIQpwc7u;b<(9=hVQ-8dI)lWpV?N5(kxO8lm>JN=DR z$N2FXb$g~SOP8i0Ub1fG?m-7J^NP#xm?0dGtdqD)zQ^R-qvA91jBQ}Q_vM5`WFh3# zndb4qJj!j-aA$XSEQY?WsX{S#di{$_Q7i{?PqJ&zKeQMLbX?9msnOD(O_3lgq0#cN zby)h{{|+(2N&ZWXVzK@3TB6&K#uHv?hUzzV_%R4*D+RPAR65(cD`q8ZBaP82Z?mbO z_y)yU<{K1VfX)+L6LM&Pvrn7fvZlPBVV&XT;N+$ZK@F)nRzMJq%${?UYjRZ7Ybp-k z`$(75jV-g@Z!TXhb*^Y#8ewfJFgwtFqp%Z~r5M)HHx+AKv7O`QIAYzIA^q&qD;kdT z4-|K_f-csENX0Zp6nn0{X?|!~JD1W@7xF2q!Ef8TD4XA^?FlZ?QN?uSh(3+@Hy485 z_zh)bsUlf9)SvLbjEzowNZ&#yL{p2!B)iXnhnuvMp%EWmYxH&*+M;^+5fa-Ry*azc zuNS;399!b-jxk=>HLq%@!#6KFZTRNoy{wfDRBhmKQ6v=n4_Du*T0Oblvb)84!`H83 zv*bc%TR1cx`3uEg$Yr?;rI!$W8<$FYmr`oCGISgI@q?tjd@n<3iXZpNgvNe`_#_-6 ziht(X`$u%VHua$bD))^YZsIhgTC|k53W(h3=~i8KFU|=(QO!1f1FGB$nKN`38Kfd| zvX0SkUVr~c?QyPLVz%zE4$Z5q@N)_>N_QV!j-RIMp@`p1S!EBNr+*+5ws^HQ!jDWhzQ@o>`Si zc-SKFTmmJ_)Tn|#pmX}tn;Y1dZ#O&05Rp_aOT^W+b?BRD)QgV@9nonCXC4)4Xr#R^ z`B{4FEsl)A>ipi*_pAXL(04|hf;sEYUnOm$morWj*(J(jWZEBcPm`EQYXL}7+Ta*6 z?y8i2qnBvW<}xekagpa4(GPPP`$QVi!p@R3c=go>d&9&wPXm>Bjd!n45!_KI5>HpV z=if&$?%%GR|FF?FLS=icdw9rqCvhst535W+NAF_AMK<*k#}x#@sh*otYFfO*N%^!J zwCn!uD)F47mA)%2=lZFTX%!WBTqyA5``cI73&o9J)~JNKd~+Sq^O-9W)w$k_?z!q% zyNERLlP&E;Ye)~dl(k2uTlKm=ndbtK!D)*5mPZF7BYqPz~ zaQqgiO_dUKLW?{M7iqp?Rm^8nNr)e$290Lu;=#Vg_ek!UjIHUERFCC}nc?g(@}MUP zEJHO+whswuV8AgTOsJqATu^vfsxkDZ>lIz6wMYaFP)N!BF&e#j$lU6b#s;+W z!qD*~>dtP1l5hOvocQKW<-WwW%x73oor&cuHfPV=H*Z>8~g>quxA1Jd(~ zM;w!{fq$0CUOKjiH|6sTf%NMiM64DJOiSw*&Db0?FE`%odySv8bpbMVk3AKc^ofFh zW<}IS{=$bh02S2O<>mKm@XWWD8ut>&0|mN1yK`6230@m0_sDNqLS5Qkr7MW~cDe0& zi3j}v>-mT5y7mdP!+w-=w#09%t}GOondBgMV~G~66&W?zbgCopE}n$KUVQ%oBbSvy zsq@#aL|Z3yda=7JgyX*5QW`fj4W76z$Yk%=(r9KWglr@jDtGvHOw`;|v9}@*LB)-Y zSQ}})6KPCR2xP6fmz|iBbIxhPnjMJ>8$FwpRR7~d$ zi|0ezn;)=!d-X{sry_mMrnKHD%zNT}mtCYl7vuEK074N zH6RtyGCJwV$9&F#(7s&z%2W54-5JlW1=I+ML!(9ob`EMPbR-%;yWsqd`7r6mNRlt#QrzQ>9P;KOT=C^cV> zSyO6anhi|hobYbB)Qm7EPMzs@&>Hn#^x42$;1!L(zQgS0gK6ul4>5zgXI!!>kPcDP z*0H&#JmY%c$217Vo(Z(YkyD=Z>|79mBA6&l$so*zAp|E372K@)pO;ia1s8`@J(mjz z#&9;b?S+6ed5(pB%3Q+TA<9sKo$Cxc9!mN03)!7}57*a(EN=o6!UdEPq!-aa4E@9V zXqeQ~lzpBvJxd<{z;{4ZuN|UxTzpw}+t&5!{J>iwOJ4r@ruu6;QwN%tO5B&OVptz< zF^;)!PE))OyuxsJ;bIZTMV0Su-fBxW+noM*w90yMWYl0*;N%Z(%EVWksM~fn@GLR_ zpZvJ^t3o&1LGT$wEz4QM5veIjoViH*RA@|&=J?W{g#hf}VhPxxgka#;l zLAjhrI)d<}D&^4x|2?`$&FUH!R^uR41I{HjLL$wYKP}VTKlcF+u8H;PAJ=L|&kk2r zsYOvzQZC2XCeOGLI0Tc>rB)H|!8uS&}hRDtK6@Bvq+A)eb_2yvdO)vV~aQ*YuFRwLIl8lwQd|ORZ!|;uQCO&J_ z(i*k?sD_i?&)btmr*Rk<1jpp2ttlB+5j3MnN#w$j2G*d1)`P&4KHPz5{nrwsHa8G;A>=CY zR2-Vlya_^TIRYR?s!})&x51G{sGgUjPbx(L?^2!}Fz!0rLm^4SrAN{z z?KaOqteR%V5y63cb?D0dunu=*ej@_d*Bw%5LCFRyi*RBg}X ze0a=rk$QW5F1$tBYdyKBCIBCn%Fs9mgz&p?+7#X^rAIk6H(wMFy?@Aotnge*O-C>mD!wB%OF)0A z@G9=IUEga*m!qWa$sfsNb{7>kQP2oydkW3#f=OpQwXuTFz#A6rnl`?5^F@!_Q@^=6 zNYBxmdr9bM?X8p}-MANnxRffj)0AyL=Qcm#V_N2`SnUWTq)NCyO(Eej6WGwMw4K6+ zVb~cKJn1(NUDtq4UvAg`2AzRSTdWVGI?b(@8=DOcctw#{Dgw{@(7kt%1I#tlDbE0k zG}Wb7>z3~>f6!+{;Z1Pq=PAkv3Q~HksS=UkEH4seYcOasrdp%ZdyGmP%$%JO4ClXg zJlF1dd0p-3&4H5kE^Wj}hZfdj;w|VOEC)6COw8nbhvWUZ_9o-)DW$*WOrgAZRU#P{ zkxg~I)#mT&>rW#C&}UghsHDGAE%jEUD=5vxjM zwSeg>sG!+om({-1qD?D?D}5x@4=wXteqG|dCHSoOm8H3m$MTmfhU)oiO;MvWRLFq! z=nz^tUx=nAU|9vC>%Ng3<7aNCqP^9%BpvO_V_&r=vRt*dZrJzQ+DtVt&B}RxfR5TU zSSLs^vQhIilaK|;a+=EhJe@2`on!3rEsvYbKImw?4r^(N7v(~(^jaom;U#%YKCKNR zHd%|yNJ#+&gL1&V8*SvWdl&!P#^Pw*hZwFWO-uZ&oSdA|l)x`s36kGLNIolI);p^F4&VT?m=J_0JRo<-Xs}ujiA=!iFF`epVyXN1RH%#gERW%va(ZH< z)9&UHBtr%;5z}ocC4rFrQ%%w1@Sd3?6ciMhG?bL7sz!`T*c)bW#^JPlm5_c=hDL6^ zR@34e^?$DRB%5;WO3z45fZyh52qfafhbIdi&(-pzNK4N#YW5GFL?BQ>e`-BP7Chrt zrap<@91yeacoxPmEG=x+c8KkCNWYeSE#z~d&(3-nYSQ{FRB9^mp_z&q_uRvhsor&5 z`Q@pV_MX`pawiU;nrY1um`v<`a9De|{P~5UEnB*ZqeW+?_TpJB$2$egGu`U?jIQ`W zC1+nuj@E@haOK1SW4Lpdnk!GnL#1chTEu=RH?GTgukbKwMC0hu**~f;RG_=BEI-W; zmg(;~^gRV!U|ixLr+-W>&*<$-zk_{Jv`92mK(_iS?S)nN9rmAl zf#VY56mv2rW*;Owd_redv7w7>yItf|8t&1pDQPxkGrffJyf;DttyM0<3)NsCY2`i| zM7s*V-Y(=b+ofuO(5k`}`{ZjKL=D z6cZKIIQNUoMKiO#uUgqY%hB2mlxUmKOKz&B{n1YUxY~`uQfk%Wt+ zc&=L6y#jIuTF0#p>1F_JP%HvI!r3{914rYrxtNkZ2`ttA?$$xh93eo*fXLEY6L*c7 zVNVMFxbkTvHdit&Hx(Tn5X|RdWZf4>!ucvU?FSz+=h=MDwe}mczL2giezl%JV=XuX z3lxwwd?xQ?KB(otu9DXoOnO`sB}MmbuPsHP@U2;0aJFs^h(;qo;E6+n&HW=( zhj@gwzd7_$_!~RbcZHbjg9Z-ty6apYwSFOh5$~;K>5Ty=DDzqe}(+`4(Z4;I$gtSZ`-BlJoJ+`fzqP@N{zBU$sTyO zrz*ic>_Cm0?Jwp#b?O?tV8AVVu;DZ3Yli-CEqFGjEbe~a@#`XYW2M#NY zx&o@sItR*P8}=`u#Bm&Nw_fOzl+)6fQfJM}z1dfvlvPyXQKNp6Uu> zx^Si|CrQGEs1=Zyrx@u`nW7Ml9S!YrcgI*+yN5^Q&z&{@o}48YfNsR+gx&tumQokM zQ5~9V^p=u~m&RAu4C;LW1*fdzSUrU0$$+9Qh{Ov)4&(+^Q>}^N*H754F!}A?sfBx~ z^e4tU$GuH_>Qg?os2tIG_bq1lCxp) z8U}V2tx*Uo*G2`#FH8A0X73-Jfkvey&W&46CJ5o6@sJ(Uoh@79bd%3w%^AQ!?|ylR zoFzkIcR!B|dieG8i}=CCK`JRyZvz8^o&vMFSxuD1#{8gVYl7S)G(6b3JEAWor6LCE z()ZG55VoIZ(MVa{t)4o4`adRs`soYP*6I$=YtgwTRmMQ!0T-0m9F}!4~v6iS}ZdanL-89HiQ zhPdypJEXhmyS6!g#Ekaifx5hHjjo#Zu2&4jBYzrpel7K?2GP z+uPZ2$;oX;Lu0pG9H}|*V=Ajq45NfW=Cx#{PVE>e-(l9&XVCBSFBhp!Fv)nkPkyB1 z?(xrf>$Pzc#yHcr9gwBpKJ%1?3+bSgxe%Ul@VCkSo^P;1u)>q2r#7Kn@tRcTE_Y?? z1}MBwlq}wkScMFFAH$V#%HeAVn+w?@0v3KT=w${Lz~(zs3bL6OJ(u3mO1jQwp6K%4 z7<7xvi1zAvJ=|%rGTG9FW-T81Q#)3EB9Aop=j!T3e@qY;LLhW}!d}5_0tH}UxauH_ zi}$m|=4~hq=y`WRm~HODtdT7N(8XhAva2%78a6qGQ}d; zvQE~86em<4B&CI$RHOfSe_WmT!jOMLf|-vHm&hcU7kdTbkCQ96yY3tFJ3x@c#vT)6 zsW@VL)h}4oen_XwcYn)rE|K~j^pDQ_+1Ex=9o|@}@EyC&c2`5VQ+rtYZFu1@RCXA( zB4FjlWv(q*W9UEQG}Mxv9&km4CYk<3M1;{ry%ZJ`_V4 zsIWN8Byb8fLY(oPq&e~nR2|`mHMX^BkvIbc1srlITPF*EEHti5(izd%XZ6DPM#%%P zF`N_gk95g>a8`vb4zfWf-xvcfK=m)(u>Nu=N_R}Hr^FU*gMih)Zt_sGN#U5nYIJuFZT65A~~KVRftquun^gZ$fAE15I=L z2gy=k@U^7T)~{m=Q+kwv4Ex8&nt8kC=J4weakHn1NB7b@dP~5V6t7w4F zYtMc0q$3tanVyqkwt?pw(^Z|X*6LBZSEI$;;~>d1&PB_c%vjdfpzkrs%7g?!CNfDl zXP&)tIP1dmI3df(N)$3QEbOVMJ<5r&m1yb>#Qcyqic|@g8Q=_7DyvN^yU#cv$lZZ(?5U zZ7gg+ad~zUd{KQ{_I(Z2MFB!%56@W?e0u%R!A2hMgVDOKWGe#&!}-> zdF8oglOQgo(Gn*N>RCBlvUtcd2mCN_uJ716)#F9x2Hl3|fZGTnqP{s)o>f!;8v_Md zKkEXn{@s>^${n&q2Y~rs%wmA83!>@=Ispi=_fPol%lK_BvYgt?;A2S6m)RV_?o8r0 zlLx#62^mbzlqc*9lt{uSDB)y=0VMRfSIR`lihcJyUy#9UQUe&FU1x85ZDV2B4_dUr zU3lM#4j52PHNbsoDVmU7*m7L-CXiP+J_c~QP+l)0(aCbyMy!I+C-V#nufDm_E8#YO zkE}iM06HHMIiA#pK2jXz6RHiGnw(ykQm%U(jQupg?3L*|-6nZF1B8=lFF3q-^orm^ zXn8Iloq)B-?*TSGc>qXR#HN#gi*4D!ZS92@!PNMt8cKsr;EY~{q`6u4T z)Mfj@f&s6jo z(2tNCTKI1WBirT|5rBc3z`BQ>?Ww>9gjMMR${B^n5g^Zii|>*L`A`V$A=&36b>=!i z=PVVy9!Bh=Cr<3ccs`yL_hzd_bodlymDdFnyMzS&8i?>`OR537_a6A{uOfVjhbh=^ zvg{m5Qw4CAOBrskgfNINm*v3&87v+elkRuqxlvnt%hZ zW!Jk{^!3b`h1D#tlm-xl?R~H_Q6_J1u`R=mLOqLFK(#_&uCoB2MFs6Q#Kw9 zRvCp*SwhH}EIvGb0VxZKaKQwR4%zj(#lVyP8k`kL&Rr+vy*GCKeP68!2$la-GI?pF zTA=V1E;KUv<-T9ql8GMAd1%oR$97AKMQegh?Q#9&(s*M`Mh%6o$Gf}Kx^Med2^>Wb zuCypTGWO{4vR4>N)caa%!WQI;GKZO4`Naofj#oQ@usaLU93xxev0`!V+&Lib3i8aU zB9dDH^*I7>2o*+6dP{T-!H*?u)2ZbvPoajfyIkB117^|hU~dBu9B|1;i7-=ff&#?V z!R`vOtQU?>++{|`r5+Q%=xWLqzgh_3IiyqzjC4>}0(<~Ao4mHtUZdieTFJ;@IVJX& zWT)?m{=o<0-8{r&8dTTe0`tHcsoGGv2ZwrWvbr)z1Nkx@NqB1%9}T(-bFcDr7vIF< z3T~LMMfWh8$c}cj-2&AD=)Fvxv*_lBnYmLdK|dYjH%bNZjJ% zv98N75WCF}Si6l{w;f$Bz&)s1Gw`Bc^#i=2jm3_~m`a^`8EE&e^d%jQ{(A9o9RYQ~ z^Z^;?zu??>xEGdDV=ZdadAcy5pn$(isdWm8R5<6r{FlHqg^k7~rqTH}pvG4b_zoFk zJ^^KRdg7|n#oB<67FN-2zS z6=!!3p;=h#ssGd*`J`KbO@I-s9X={9Ak5 zCZQ2C26QtQ+!<}>`$EyAQOXXG;1=aN|UK)_tt zr=7}mexP}Ak!iEm8Y43Pxrl7~88!dFe^No^#=kzG{$N}cgX{v2jGg(iR{IMS?KA2B z1e8dYeA-_yW9gve!4JUbPUKO+{|gEnG{*dZwI*UeP|-gxw8XY+=J4Z={&6|L*S}Ww zE$CNc+?CA({Mu!Zy1!$!Tjstr2Hn-t8m3@CFfP1HNAbx|47|Ml0l*CK9M8KCQ~lcA ze=IG66x=vA=yXy+cmm?AK2&!MXB`&@xCf%+ApcEBiQj^P>pNK<& z#Ml1icFnOplc7cdpT!Q74wT(C9X^jZs8eoVJCr7%a~MMP_xpxL_;0&WaseEN#&2&; z!1T8cVFHsHJf5LE3TuI8ed*b`XnkXk>p&--1{uVy(t8W#HUAb=0pL#+unnE2+gQ3H zC#@j~x&Vtn`2lJPqNoqDM`;wcB$$kGyIqB8q9wi<;1FaC zp8?n+a$@4+A~#|OL0=!LFs#^zB2>Ym5S(crK4Lu*(RrugK9dQ+mY5`HC=hmYky8Q= znlqssnhEFP5MKw&+`v?+_ww3#-HUfz0ctK7Vbu5FzenH2H6RskbY;i9x%Bqdb@w>1 zO8`(3dq@TN!Bq$uunW>CjQ1W;uv^d!ARGhlS)c+etrUp{(6V!6e5p@4zJM;T%X2@V zRuftxx6k%!E50;9vP|u?B|TuuUFh#oYxq`t|qe<_>}1F@_&C@^72r@EqWHD)8#yLbHNy3t0t(Lr5(U z(-oUz;ehZ+h>5vODtCj3X=fuvU4cB0m+|pT%)qMJ-_BV^G=ZCevJ2DUEg-51KH)g6 z=pdb-^))p$0Vb`(9xa(M7a$9ylJwpz$R;TmhgdIaITS>EP0HUC1($~wxav<3aj`M}pcqSeuAbxi z3j27lzo)wofC5PFuF9jtMkQw(_zd6NI0IV^S9oJToY!qsjp+ja%xKqHgLCJa+=hLM zfy&z$^5T<{+J*V%v;JNE#Vm=FC&w@hb4V4Pq-$=a@}XK>!J)17e)}Ip#)ZPG?;!7G z*9u90w;=r)I83+=xT_YFv{&{*>}~{n2xd}%$#4e3Y=t$UI*2b}8yna+0#Z^QkkSEg zjZ987ih$pQX4%v1=TJ>?aGwjqFGS&lz7#GIhJ?NZ(-5$J4aMi$hiewN+-1o;QBH(w(L7|(9?}7g& z^6y!EiS1NM3SC@5K><_{VY@z^4Veh<51`VG{5|O~6cF^@a%_c%!nU7*Rhq&VlK5h% ztatvf%0F+yq?QS<5p!aMAz56@$v_;4E_ZU4vak zVBPumo0_&he0b||wC;oI=x*X)bHz_cQ2%6+arE}tf4ek`V#vQ;S3Z>N-!2+>gmIaN zHRseF*1rWGhH(0?EpZFP{;xYN9{4|BCK%vw{_UpBn?bDt*;fcM<66Q8F!9WmXTb=M zVMkY=gWu_Flsz5zwHW>ZeCUr~h9U{Q!;=iy{C)_l>(@;k!GQB3-wuOLT%ZSTU#Nw3 z;r!cXA+JLdKXc(3XbQP~uX}HRcK_We1DrFAIJ^3G_~cA72p?aCb7z_VB}Tfap+qJM zS&|7tTRRuS*#(sh@%0H<@Ss(IJ^`~i!-*5{@Z9NRi2z?n!3A>iB&M@LOByP3<83I81G%3l>niD6gHm@1$I zdSHloc;^JBvY9rY7+Vggv$OZ8fj+h3!^VEZ|&$K zehU9m4zjr*Mi9=^S}{q$W_mtkhowTe0wOBj&RU0ah7ExyWCnY@=&zZ^faOiN1mpke z20{u*mcB?ia%qi!y?JV*GFQ9Fk55~xK8s9%;Mv~Z4%2wC(XGgk~PP+mb{l;7Lh>a4S~GprOegI)+)fP~+!%a0u& z=NbQP6VcEmw*WY^?jHatLd$E^(-<6l<$OZANZp6`SJumNv&`m)S?Th#t#3zU}@z8&k3n_ z3k-<7MkSE-HpZF@@Z$*vU3j|c(9PW^OC*1$OQ%#&p zY~G^?jL1+N^^eX5%>Mr$hTShEeN}#bPd3?4o%+JneYR`Cv>}Q`VbzNgc@Y#QABrV= z&>D`$x1^hpFnF`&{V|V6j}zTw24y5FFffPuPax-HW6UxF5EVUT!E4)YvL|hTJ`X7Q z&@fK^xR{~}RKK8q{D}jeKK5f62}US^=g6oMfsy7w*_dKL_lLwmA)YsF4bsRcb3VcR zui>9TA0wbVaEQ{!ar;GDL~;$g$8nLZK0o1)F;rg-D?eG1^HXlQWwcd|&NZ$mg_#~k z@J`|rC&^IhV4(%~&1r*zWa9#5b@h+XHddb(9DiE|MljW+~f33 ze5gYfxsVq@!|ln1??br6XTYkTX9Qk}&L<82SlD>nCY44eGt7_ehg#3g}q2QqVfrpXfkb(B%$Dm z6_1}8o3y_Dexbh@<4yq=pbCc+Ol4&Yl{xS<2u$+ua7cLxxSaGEpA4iZ;2Y@xpv^aW zdpHX`btYo)VBaiwscvr@^ue@AM?)jxz3DJz&I9`mRR9L>OC=60B8?Hp^#QYklZ^X| z6+`^#8*Ry0k>MX<#s`7j02EAc84Z_vpx+X21- z!Ql)PCdf!ixSfp>r6A|{7^2SZ`NRP^{WZTuI4 zG9@12kE&?~EanBUz~Da6GI^IV>@oPNKsyZH26ot_)YK|mcjYC)0c^xlF4{+>LQ$g9$12A`C6jkp@4C2A!aAT(R#F!z-eDQ$;#U9pOtaP zo=ZEm9?HGIHq7ur3qbxJ-o{wXAkUTI6a1LEHId_X)7F2Bzgykt1Tn{xQ2SvXd*>h6 z0ugA2nK4aV-05?@{dSk|muGf@Kua}VTXqAY#zpmuLB<*_d#VS$0nRMh6Mg`Z+@;_@ zR~f~yy=+?$vzYG$3A=uR?wDBT*R~YwWjM|1d5pXDo|I~588>D&^+5(wDY&&bMxD9H z?tGL8_y<%^4JdfJ!V~9G)6%r*B3|3|({QX$x3iXAj2EL~AV{A9bJ-A_=t1OYr~e?Z z*Bni|08ug*b|r$oHc#_@ey#929AmL7?SZ3aVfEesGp`^)42VGpt2R?$?7==rs|s;; zoSNLVv5tiYS&k)5+RpNq(lzf1PQcH}zTg7tOy5qvk2{-PhcX%Ihzpi)` z`%R$VzgUAblESO9m!X~HyM2a;Ln98%#eWDUz<6X{EWE0ui(mc8Yy)s_njq&{Mlpxv z!H*y-pfN;YUu1#jY3QCDeIXfgmf1FOte625%2*p&U*N04gEEZ-JIEFITYPE{-AurK zFzLROOrXjJThI9%b5Ft2aN)Tlb62~eH1mqAqwvP}!9+;IsYBpWTUQ73iaK&!Z8MVp zZ%e!~u!@-3i3VaYy9IFG)mM-PU~Ojy%m#)nd0%j^Uw->UN+W?Z0=O^+@mn}UV_?e! zKl!queZ_N`PC!XQr%s&$Zwv4PG9paUo`GsP+G!0CYcl(r<4|)_>O0Y2nxe7067;8m z7vNgBHBx;CjE@7G6H`vD1y=K^>Zq>^?hK;p&X;OhaD z*ni^<7baxqrG+?1g0r=pTY)a9lQ zpQ#gHa(0va5j;6y0VN|FH!VZkzBLuU(|81SOPS^Ktw;KqTBEQTVos|)5YM2;1T2Fm zy*EjW5)q`aR&0CQwGF-$u$wiu zwY5P$X5Dg+gQ(0tU?wHz(9_e66uzK~g2XwvTzFea!Tg{YY;vgjU5pg7M~#tUYG|g_ z4oGL9y&CAd15f(l3EwxOD~=$FC){%ibBgCb352Sf-XNO@2UR>7_<=_+_G=G-`~r=7 zhC}Br5W|^nw*Nc~YJ6mx7)*dE3LyzLZ4H(0s`g|M4gvHlfb0t&di z9PBmxTcM(hvr*B^Xa53fq^7MG3(J6c-oEf@^o)YS7|Bl>@vq(c0xBJHM{W1`TF9D} z)fnv$$oe;IF#$XaeVlv95BWgi3w6zvpB|0qahs+nmM{jtMYk)v(HONRno70H_qxUy z#c!{4X^j*k!TbSl8J80l{ujq=IhArhbQ?;qFXF@h`w&$O-X zVeU2_hD!tA)NJ&W_n*Mp&rbpz*~9v2>rcq;<;?LPuBM-IlEm*miGBf~(k_souzM-{ z8}Bi`Z5RVRTc#F6YA`0I>8Rg)n$0dHBjc4kBk?UzVB~>r?P8kjEpxL6LSpUZr=Nll znMbSJ|IpI|-C<^+?i%<&<&Kl}tE}vFdZzZ|CWJqy35;RjtX&!|&Hs--&9Zsb3-w+E zJfh$n1rdF)(x(jcB&EAYJ;3svu9=uU1K+LX3?8t8!_Xwb-Z%&K3}#2@Se0Oek@ns^ zLcO>E#JjQY)&xBF1@g@|s5bx)W5d za<$|_xzqfB_@hJ#y-?_Y`)!aj*jP?QB8kB1X9wwhv3e5!|>`lsCd5B~; zM*_et3%rUAs3<*{=j6Z;qhq^-`(wIt{>^Et>y|`d{AX;{2(T@tgIj=~$$0?z`O?KNk7-%4iPZX;2ly30>j5qP8}=22p}Z+jYo*WcM#Ye zePfND1el?(a;M$8_a&QP`rLgwp>)uovL~U$fn^fZDjZQvv8LrVScFOihJxFM7pVX0 z4{yMoOBSAmChwIw?7c$DYYFMWFD(Y&S93|5syj#oV`W;I)ab;(HNapP8!Y`j+W!c} zbWSN!O~VQijEeSUX#pD_uFpTo##5G6Kl44FV1Wgoun16s}mm?})Oq5qMWjkg?g zXT0`^?Lrqow`i!NV1BGc!?vpkyX^0JFwDcezwYO^fivRLDRf+(Anf>WGWjAkiXB?) z%*4Q7BqI2#DtP)c`~I$Fl27^sObhNi>vl$);0D_F3wQMbk+9gVKUf_oI>@?iz%pN2 z6L)~A%j?4o`F+|udf7UJWs=?6CfY?nbAi+d&QEnPh(lbrUj|6uk%3$=S^*fhh=A`A z($RnlN6O&}*tM(%4JUt2+U#UtR0+#J%L2dd=y#TC8Jb|AcH5Bc7Fd-#X%P}kX)6fV z5c4+F$2!+!%(r3Pa4Qc*gC8DdO7dg;)$^r$AiZqNbg5AT2~_}h#cA&*B~c0@tRV1q zEl-7}K+-VteDnxp6G)pZ%z1#V2RjWLxiXWJpDka5zV_j<9f&V|>@0yL;Zjp&{~Iow zv+bj>t98KX>wpK=wCV1Are#P^|B6hLs>;C;^Lr?~^k*{?(JN2H*= zIB&07mwj6wb&t|7`{9O0z%;T2JHiGMC1@?GcSA#);7h+?%IL)S%X2_oW9WdrE2Pz| z2A7KUF1T~DccCCyiGZd9^5i*&-_*X?>{e96yt~o{h;C3eEddvSF@g`67}3pRX&Gk*% zFc1Kjp&e+;Z1BvY1+FnZX*RwRJjx3EUo^%#6b*$kal4i4#OMzf>~BkRw$LJ0!I|xj z444ig4E9+}&3E{!c3*A}7L9?e5L48^caoSL>-61H9NV*7C}Y5&`vNAB_XF-YJuhKN zsg4!Qpl#rT6*g4?wKDiW0^wShD8_}l^a18LsFZ8ZjStbB0=Wq`&9mn4Pw@%{Frb?- z;?)oP=xr0T{B4q~H9pxUaD(yI3cKwiWZG>{W&Rd= z{s@63(gMNv$@Lwdt%5B)M%fFqkp6_fjr{KsMVUn5WvHO=u=>BQ$d>*_c_Wgal=Q#e zB%o|KzH4}sp8l#|-|sN?kn+4Ac;8hlZ4pQX1%;!(Y2TOFe!OYP|J94FPg4Q22t@sV z-1~z~`B%b1CYiU!wGgDF?Z0Uf0Q`TXg$lw@NLI;%o<8+If|s&tKHV_b9L5m?nu>cMG((4VC|ocQqbMY7;wPH0%4nIgNTNtJ#Bf zglixD^6THtKR@FzI4h;_xKu>q8}^#t&oys)`1XI5cIAOkc5T0>9#5-0LZU2X%a+I%p%5Y?M2SqY)R1kICCju4WsigzD$5vR z$~K4*vS-N*V;|cf`!Jb$-9!-F&OzKQZd# zN8bu-X$Y|4N_1ZSq7VNc_cRdTvrM^`%C8dNzUpctM`HaME~&uyIy zOES;@dF1@dgDRJo#oZn};BEekDIN#_2mo!FP-_Xtkj?Eri0`_^?%1u;v7y$tZvFbY zqWv;V7I3*xgS=nOonN4Y3yjrrd|4MMF2jN$~%p=$#{xjhw# zhSi%lk;5=vRi(!^jFE5W>nqFkZfXMMaGCE<7|i;W8=O8slJ`()c+&v|_@_56{XQ4&D0Z#21sl**G5Jz$&~+AR0l3lMQ|7qcuDSN$i!HsZ8$v{*^D)ga5!L`B$f_m5MF zJ}t{rC27@w7F*MtKuASkWXOIBZ_YgA?(aW2PQv=l5w%*E=*({ErkS9CpWxAp@m}mU z?RjPO3X~9|)DTl7OYxr44evOXrR5lBD57M~qJ5jhT&`n|*du~{OS1ef*U`+b{psZt z@l;S4-Q}-1nov?Y+UeX~(6-7nCFIJN1uGTXmzB?6PNq#lAHy$))YK@v zHgH<9r!W!`2>cRl! z`E>x%1mLB~a$2R8JevuyM&GE3=mHqGJFALeAkvS>VDriKDTi z&{Z(k?9Jsfo)IDO!}u9>yB9zY#*1By9q&MEst(0^4~D=;vo=V*sC(LmWalkX`_j%- zzLnPHzmJUkeaE%a{ulnFTx30xe4RCq z&;$OO6y$U9-zlcqtEEGiMmnZG;X7>I?ZS!^M`#OX!>CVAc77o`mtV?HCIxf8y+jF9P%47@|>q-KatmSYhTox$22vFXx{=!9;)0> zrUA`B)J2RD_rG_~`z`jh|n5a$_i=U9LASLXXCKBwJ5uDQj>je%oC&{EJRMi$pt>7uF zi#^M!-&}M}D^~c>>@K~<+LsSLMro~}Elg7^eP$`2K$-unwl+*aMWynNz)ONo3XuHe z<1p!+*CBZ&ZT{a`$`$fH!d#cN)~)+V{eom;jhd@Fh_irYx_xzBo5 z5s*k{S)A(8@4>95b}G&7xa3R4TcKxfqZ8yaHm(-)O~|&Di>UtizIMb;$i|nhXx^>; za>ATgo`_gptoeK=>)>xFEvM>_imF#v^RLX~=DWZ;5-3^GjhO@!|HF7&mxJEX*TcEEaL*VEsWdXRS&mbmu>aENK9(P%f5%yGy@ zR9CIQDK~eA`C$bN?{P{)%(KXWR`Hw5d6^EXEBi>3zG8BtgeA4pCED8I5DlRyfJwPB`JM7q4Lva(cmwG;6t3N)a zPP*YiJTAc(uonv>WqGxxO9utb#>T?p<)tG1jXH@Am&Z%Z`iht;l;yhL^iL10T|>Xy zuR7Zwb-sLl7kcpn+ZMEqT=9mh?wK98xf35-+@`>@pi>Qsu5d!HulTXaq??UvMUJ!t z+Z#>3*f3%{;#$gL%L{oM-(}I(jNHRQ=Xf7?<%pso2;6wU))|=6{14l3)L9iR_pm5um7jorDoDGEKCDK5vT%>4dA)Qou=fi(K?1?xB= zYil(c_WqB=d0+hw*q**0rs6krY5qGxl>aNWDQ=%enw%|K`reOre26SyA-{dIA*s_L zZUaN9h4aE=*r)3}HyWLyy~AWfrp?VPU-vlyv-T1j!;{2 z$@W__3b=bsdpD_Y@?4&C>m^4{pIPTZ-?0UcEb%wyrKdCby|tX!dB`uxOG10xxgGl1 z_lQ~ogZnd=$@j^~1wU|nmRf?2HrrFAUzh$A|;Rfe))5(FDtMzHdBXqU( zcLUa8J=3?BKb%gidhxEQM3p`uvQ^In-u29$TsM6T=UjxrcPCJL50E%oS|VF_jd^o) zt0qlHZa)53U9c=XJsnH>L;^xshf%}JoO8K|V^C>x-gx#@y>VF{rQAcaO}{~;l=O9V z8-S0>yU2Z>I!1a&c*Ohj)rN-5PX&{PUYnyEsbhM9NFnm=HCidH=F@pla=O3B+%C1J z;h?fpphRsgY*NBYCFRbzT1tu#*#la=O)awpYC*p1J;ba)d>#@Emfo1`{ICJ{@jlk* z{k-OgE=PT$Hf5?eXQJ1;t3DMZg!y9`w4VI=k8FsLz@y->fw~{D*yuch3-htPQ1STA zc&i?Q{w1KtvcdIv@c;pwI4<9bj2!5~l{QQ|#3PF!0)y!pS)Pcg-${@Yb`wA@r(43j zrm^wL3$<3WISl@4QTOsNv43vd#*7?fS}OKohy>&V5!m2-Xb zbG+BlJ5_$_N|6fFtfr(MK*+Hkr#&4hRs%$Wxv}?$l|7tDuQclU{8k6X<>o1Ik}2Bz z>+B5;qeb+2g_*BaRQadx(uwCSJl`Hob1W#(Qv5Sh<;S`_PrA(Kr^C^$cgb1>Dk$L$$$=Y_)I`w5JMpUL3sRT$Z2a!Uk;j-<@7&-6nnG1)F zpx{T06sqm9#d;#p9V?Q&y|GCA$K2i~)~C@!(f%;gmWdKvxqILJ~lbmG29=|Eqyx~loJbvJbZr1osDMQR>kfS^b(rBF|+{nKN zIWe>>0svHfMVP6cY1f{pc^brRj%c^c>h-A;?zP7WYcknhxBwP`UUkt_kwbDbF(YQ` z>zJxcv*HBQ3akdzCtJlc2{k1{6qRKBY4bW{_u#wN&cx7`^+jFzmEMVWkQj&ni-D;k zZCrjb6yG%$L^m6mMrqj(L|-yha)ld%WGop`bhKUn(#@}j(b@v)1 zJ#K^17YYFy?vECoM$YN>!i>|@eK?+!Y1y$_NfMq~7Vs>kER8!^DWsbbwmT|7*jB#n z$*ioe^V5`#kzz|JHvq?hP7zXDnXqn*Btet$jFe}&^y_-4soa@)l7mM+g=1BbUy|nzy$F-L$!%EN1Ls7D8tQ}^T@{> ze;q+b*1R9(A<`iN3i7usF5{dsA3Z84C`bpVGOJBxt&JO#vha@Qx~v=~W~R^LULR}E z(x|(DwY-<9hX(G@4KeiC2`#hvkmXC^x_b2r6J zo)FiGIw3~N4L9^s>zxJPtMi5}a1>&jVj5?NuvExF*ACm5I}`1?PSf;Pr{#}joYjot zM6A#AbXJeTP+DUVnqzmAaFD?|YLGZ|^XNy1Jgf$Wm!dHm<1pBb?Q)+s6V^Y=hcWcL zRk8=?uN|62P-8hP1e?Zlqz@bjwLVMMF)+e~Z4?`p6xk@+2=G(wYMcd2W4fSlFYfdV z*hUnu07YwKF4l3=Bg~Qfk+yd}jAjJ3O$V^lBcD+-B@c=E?WrNK0pA z#p@KGe6WU}%aHiP+>rXqGoPdOOFBXH z^rkxVDiTWSTd#V2fse!+2i&krwY6>ijObtsFxcE=nqj#y0m7xT*Zp^~g5>F$JUAIA z)J0=`!2V0pT+OjVX63W?wA=c6CjmnstIVHwhKanVNp!t;K5H{X0r`^>{PxxLY64?B zwI0s|lGfU=JqKoLUR5~ch9HV>#@%vR-~KGQ`V{qI)5njV9ihprtQ0pl=NRvZ{EHx2 zna261mR@x8JlPI=<8R>eW4`|9Ts9#&RXFW-_tMA-ne~;DHa6kCjy-e(NDK`G0~H=| z`tVb!8|kf!6IXdTFPYFo2$Vb#$H9{)GgoNSui7Nsr_MvNq}|$XMyF$!o*QPEwyd~` zq;(yNIsU6h$~w3w=~CRm#uA2W9oMEq1gs|t4lDFtZt4%TZ{|+|E~OQE@{6*5l2&Xs z&txy98hUqGG}<1ap5jZ9t4?9wY!$kwmT0%<5egO$I4d)Y*cKHR{bQ%twEATDVhaQ4jILcm}w@#l{W@qaFW{Ul0O=fv;5w`6jUJckrnm- zxTuE75CJvw!ntUWPJ)mtrlKMwlw$Yr4=xXK58y`G+52M%S{Cjdwmi!DE%L{hj!I3x z5;MtqPPMkiqEv1m$FF9*x)TQ^HZH6Z_@PrqK!1ig4@=^Fk?Lj}=kxgduh}6_vrubMgJeSy3lDm z!g%NB)U@~Z@0gYbQX05lZgTH$SfaCcZoa>*hG;nbqFgp1JM@dq@ju)Qx@yc7u$hM! zdVTF@-rw-zMOgqJ0s2x!+lN>fwUxjJ%&H?RaoL0eAO5HAqH_sr*~5_ZURVGCl%g9$ zBG)#cM-_+dxVI@i9OyD%Du)-2@+My0&4QeHSl`bOf4L$)0;w1Z^g?$pT@<*wo1yZlC zm6uX}da{iuoo0|T^0zc_f7AEQi5_zcgR!d9EWrtr}NWbXaDGX*sS~?=H zO5Udewn>Bh(egln_!8diMPQBIk6lzO`Ow5Fd}NOM$2SED3as(|+Z|$n)-ag%!Bz2) zp2{=g+V;S}(a4$(JW>1s?Z0c&n5e+Oy1hPUXH@?xxnuw`37+@n-hiYJC(iXC?rjwm z5vlfNWm4dkkrBM%M|*l^r%y>U`dc!=v{78nsAq}zwVz{*D6wzc|9eZKOCubNdXw_( zRxY?_O^wLX-B$+Ria)#7z5E#^JxKBC$A@@j=62#ON52=39w03H8Mz6YT9o|IOn8LB z3{^exn@J`Qn_Szta&V9gXJcjB2Hj|h|5kdI!vZj8aX%(t)O^>sl6%<qyfZyC$PUxiWfb{}Ap`CnXo5b~2YG&L8SaqNr&TFTo1FgM_3^3tD|GZp~* zBBPkb%G#kpHfm=S&&qij^Lpfn_xAz+)j52>?9aNfZso#wHEJ#Y+Wvpfy@0Qt6)3h5 zj8H)50zmzz^n7Ol;uN6rdVEDYm>5N5l;{0DCr{Z7X@BofN+*yVo=~8r-~q3g0C*rn z_^62o|N25fqi13)*E+4XL7%%^5p$2bz!+043oM0RVf2Ue9e3w7N7!fYK=gC zS8BBv28Y7|^7RCu_X0f!z%{Lh!z2N~6EKx=t1-GjnGQ&w^ub<%s=|8<0JH?CD+bFL z(1*!6Hw?^{dcCJBtE-*c-}VEDJ^=fI>VPVM7J_aaIdTN<=0@oy-yP2c{08T){03@& z1nuu{H1}eQ7+?s1k9x9Fn*jM{5rBgM^seP3kTN2wV|c!N`SN(TRKe{yB9RE@YSr{Q zIE8Du2>8VUOrwAY8=VVwdM{s|4*d*}pDBcz5I{4)=mR9R-dI$TKAy2cH8pKm{(95r z&_O{#pVvDoKXxMI-et)uZ2;oaq6&ny?pS%vJ7=R~IS6^RW zQ{$p|2&jTZSPN$A+~Hnk%>y6s8Uqp!=3O$&zyE!5^@LDb>9s&*E_J;Fu&4kkI131V z$jHnAMu2@k5WX3*+{0<<;+3FP^qC>wES50|*dSN*z}p7G+QmT40~Ghc7NXFdJ8ziD zo!gBuV;w=xip>9Ni3vcw#tVR*&M*&vgjNR=8X5{n?(dC_jR7W925{^0$^qh-(9&XLWOV)dbtU%+ z&($SYgWY)$W1zSU_<2Ds1OnT>eMH0nVDDiikDX|;9Jl@0zHij@FR@bfzTih#aO+!KY}asckw4fyP?uJ7`P0M7`3pg&vo9@*H+)~5~w zQ^#2oUZJ7om+UMG{NV!3(C{-rDCgwlWB~niKE6_)WjK!GC~{Qfp7_77_z!X>2A>3l zgyaBP7rgMDJ9kRRS~abFIdi{K0r}N|e{&-In8lCh0k3o%p#SrJ->uJOIJV#d)zs9? zCwz51k-{P(^&1Rh%j06@I*_bEGbaItPqT8eQc-^7{1mOL+lS0i3p^cO0dT zlbUL3W`;A%Kub1qUyZmgZg^w_2Rwwlyy^Z_G&-jZd`^LB+t>fSG{{3cCU*-83um`Q z@%ZRjA0Pa@^Iwc68TbdFv_zYmhaKIMM(eoXGVr(mqd8CcgdX=7N_g;)D-7~C&ne@N z?z>i%#P&U4q%1%P0Elg9Ro(9*K|OCo<9nGc_AOX4^P;}aw&2>w5r_upI6JaAp+d%=56$|?^R_w&N@hUsUnM?C2v9SF~idpj1D1tMOG-XQbP6&*@bM$Jhmi4#zBOPva^qs$|x%ojzVV2 z%KSY}v=sMkNe|(zh4J+QS&@G2_p#}9v-=>iqa)K zyn_yScn35OAB0!ReFopaA09VleK$*I7cU3vYi@Ywt(~lIn7dh99k=j0ZtLdea#Kn` zz{SDb$<5u-f#1^E(WASI6)sU_r=#!o`*pkna2?OI#Y-AmQ-Vk8xAn-a(ToG69>`X|MUJlPF4ap}cs`q#*Pa&t)A353~j(4l}{@^V8D-70p0H0r= zecU?V_62cW(eSATk`iX2O9_1(H$6Y>(VLd#_SVpyw#&XI5$d*>o*=SLk%@lgLbdzLt5ln zY6(c?i*f9yMDbOYuXG)ZkUyvr->{$bP;SF;c}(W&jRfnZ_uqV`Cu^ja7fy-TOxN3N zIH_Q*=tIrvktUpddV*vaL9!_p2Q=<4LTgxw0ryUNDM}b#P(LGNjV>$GBceRE@_j~8 zcH2QP$;ME2-*>juJiFMmv6z)}G|-+|%8j#FZ|P7Woe?$v;z)%gq3iAzIX>a+_{$K| z`&e=&@z0n~74S;rp|tubU+*B3t#W&_Uo+{GQ&%qof7sI zUGwU>+>E?l*n+$s)Pn44Q#VJfJt{@r5aM@0i*v&_UQvr{JCmex(@p(9_=x@sC9RB@ z)9!N-+&0~5tdQDn#Ucx7Z6`icHo0*uCOf7J=Hjaks1O0&=T`bYB&FE=AO? zE2)I6!q=%-`wRE^LJ&SnH8Tk()M#l3Hz%5(-4MyWFi;>SeQQs?_*N-O_T=QG z##pvyZ@HaXjrC5~SdEE*K%AJ?RLw`$hiWKcPcN>EaEy8u(1=c$6dVJ(OB&s+s(hB4$WR zL*lnsA$&tEmn1dcce3`*ca)D9U;L8wP_gBWmz#;c-|uupF$h$WYgo?@;vYSF`J)8m zl7b$!XrEI32afan6CY|XBuc=duoX^6W})`>wsVhiu!lFYtEGK;kr1#r=G8wb+*fQY z*B`=gM$unwC&GiG)EBGc4ug)4N=uRPp{V(gl%T_3kUHCyn5tV6Lpv(i7l^+vwwR~+ zFibiIpQt-L$*^*PMaG+%r-J&3NuhV|X3)8Q+ReigHF|elO(r)AUb#>a=*GAOtxzATxcc*Kr@YT`Hi1=;}RU1>W9*}wWou-a-sKS5Orjx!JwN);d^+ zLbG2DXBe7}>t%GkeIp!2xg`T#Pl=Jv^`(|5jC_-weo5>Wq8 z(vVVZ*$y5zQ;v>TCD;1SZm0_z}B1H-j2K zrcJz$A*}AP?L$AQET%f~0a;)e;ks8%;yQw!NGp4aax~64y;tRw(QzS?ec=fHNWG79 zHJ&%q?oJW%v5}61_Lyni_iKJ-r&77mg2#{7&vLv9?0NaAN% zDw!M{C>ZEUmpOb&sE{QVUxw;Uslrn?fkY`VuB&^JE6e;)8i{Xtu0-gneVa>`!WkIl7d!k=y?2j)|f`!O7)p&g`m z4Ij85+T>}TDRi%-(Pa1g%w@R!u|(tA)z*m6byNS-EtAbU<*^d3qrngB)(sfOiU|m> zVaVg^h>THHsD?G&%dZHG&Z?+PQk^itT*{wbLu#du`Dt)pecHdh91!(Ak{Inpb>Hk2 zf%>5Z+M9(>og>$6Ax2!Y9Xye=`5=Gtl2N%Wic)r#gVBtpg-6P9WP>7G zCtduaW78Q0Csr6EzT^8K;>&N&^sRmtX=3cd zd$|2tBB6~!sL7%j%{w`UrrLNpYg9)N6fEPjwTkD{?$$O&D-h54NG1NpRJ(D@jQ9G& zyvzH?=Co{~N>3vTgKDIVkP-6DyZ5G6_Vd5cj9}ig6wkL+R)?K6BNjOSeSNe>U)M#c z?B=45&^Pn;;iiJXgrlqoHvYaqc&yFLnCST7_MO(?4ypx{R%73KZ)fuyrDv6nyC+$<>3LZs@$=ipp$5Lz&sUxpC~_LM+GwnZ zXfq#8;=?jZ)|o`6www?U#;J$l{QK^ii}7auEDsw zhrT5mt^U6E_2ne`*tNGM<4G~q>Z09<_9#qCbon%favP=PT5;!d24wIJdfv;A>f)&C zMwJyBn`!O@kxureQ{DDV&d;TH5nTRZ+q(T6 z-eWzwyf2fSd$002Jq@MYKew5-{=)Ia-P{W43RyqG@a4meQ4T8<|N6SCYy1dp}d=L&5#N4g5 zK7QlT9VP)jtxsK7S{}x2>k+q-#b%(yoj=s-m)#vXF=5?&hmGP>3Ef6V2x;R}zio4B zp%d}nPNyg5uOAgcN-tTwXT`gpN690%HT#xbIYQcqb&;KyCjES>Z5mgUcxSEIC?s?l z{~h$U=7g2|TyRYX{nyiMCp@bn?;LA7G3D^~kp{2R>rYgah_!NR%(HkUe&bpS$2hSF zpOooi?Bt^=hbsKgHWL99U!}D(G%nTXzf!7*b#iGWW*yj>c-9lz)FUXqM6hvk_W0t5 zBM-whzpr$NVNXmeZY~wnSv>fb<@O7AI=U>fhuc3=_0m~ zJwbaex$v5u!S}gBlqAvECxwAmlmxCpOrn!FwY84TVV+zbZ^(#rbePD+Sfi^Gs1hYr z`J_fPOHXMs5u)rn78jYE`_K9;eCv!St$oOmbA)wRzB@V<-;oPSwhbaTGEXalxwwb2 zcTpd81b_c~kD7&XyUf)UY)S3;!%isX;_oQ!BhIbWW^Sz_wjWYSx&#_`w$?|N>o&1! zo<6Tr+*>!WKOPBtoJ+=xKQXrQ(x>^hotEb=HYmS{J6^lfspQOB>N?wm6r@7TYChSM ztFF}z+-)-UI{g&t13Xtg9Er9=xO=*`2riT~rt6p667!iZj^1i!=a`f6OPf~-b{enW zmgMIV6lA)j$b8SUoBJ4Y&hBJrF!%M*N(31VCippR*o?|e(<+u?2P(y>;~M3mB~S#5 zuA{l9+BGoBn#qEg$vL+%C);x&rJ>EoO{PS(9X@u(tIbQ^GpLxuW$`j{E+$c1>PM}w z9+0wVHQ4swI3G4IetuQhSDUO+7f{o=spSU4a`$K<) zEoi=2p9uPM;fs2n%qu+M;CUPG; zjC!bS+a55Fx_$m^_GnOXYmd@<;j3RZE!DDMN&M5xEkJG5a}MzYR4$a zoNA*OB0)BUwO>D}qZL2>LP_X|mOVP=(4q_mU5nDp*xOAzt=3xEt)yL`R}y{URT?I& z#~k0^WpM4Xy*>ez$5@c3C0fR3z3qM6rWHLV3dP0ucGCMAk%WMt_9BM$5Np)Tm&tDw zLsNuM%%~-%$B{g; zH}&g06Q@>U^Sh_QRgGBFJ%#(08%-lB&YkfJcO0{ShU&6zi-;cCuu9ILm*taLQl1|M z)HzWs?l@9DlHjwuA$hp_V^CWlAuBhEgd*ie0ersGLVtvB( zpog@#qFTTd--@8NmRcER?UtZfpuTp6$SSp6x;i!SiBNpM7?xit{hq%RokFM=yFY@^ zQvOXe|G5QPK6>^?_a%@K3}3sYmn~$o4P7Ze?H#_q`R>8<*Je%=(T^|Xp0(t>HzHGn zNle66ODes|Q8mvGCtS2KahbjGiN``O+4A(w>CiT*^p6!t4QeK6aD4W@>qxp?yr{WK z8FTQ~suh}IXy%k{(8cbD(#`+`hm}5|eZB~wlp44wpGX>MJ){=cD_EzJc<(ss(K2iG z^1h7wT>r>3EQ*AB=@nW-^;5?-GI^nphRv@Z zy?H?4j+*CGv;nqQn>x2x@61C|-j=9TQM>ydx@b}74@g15R8NwgUL}@ek7DCA(|1Vc ziD`+R2u(LE1q=C!BG#sZWoR&Rm6bOEoaC^7a*?vjo`p-m#=Q~1-#YogvsbJcbKHd6z2Uy zm+dH5#I?g-VvZCqvBps;$InNbu88`%9OiqAy-L3vNvWyNiyB%)LkKIc_@DGIP{9<; zFEwAgaCR;Iz4|@1vozw`Ow=OCxf$#BC;}DUNZM0uYI~PoCFk!$%g)~(qR~$nq9OVr z*JVG>H;x#+ zx_5KN41G_=cki^o$WV7iV{rtEf>kzUQ@Yd0*9iV6aqX4fmcmn(?DP9W?b=~#Ok#75 zTlOB7dpqBs*$CVn?+l5YTFD^THGgsU#8#%OW$R&+@{-pXjmbX=6O%@NzmJ`Lo&Ism zE?$+^opDE9=%T`LV<~oBofWD!sX-K(gpx7HUhhwqByxok97Hq^tj^0gHVjn$BFdxy zOr-d=t7-MCI?2M?qhIDr8s`e>+X*^CyS~ioQ*4tnq|RDWefj3ve$B-ppDZ@!Q|WkI z8A`U@f2xaORI_u^qWZzwI~l z`hUOp@4S^c!Wt;9WY3m=`Huf}v_Spp-G(l51M3}AbUu-(uojefizFTM7X zZvH(m!d{*!yQQ~7PFU=d-ED>V2br~94{BM5H{5{9~1La+tH0wSTEx%u~MsIH{ zFJHfW@ZiCQuVgyAOnlwFS&D0PFMw}rB@M%5F`TeQ>-#4Bq~F>l#(lFHtjCZBRZj1- zqO3pnX5kZ-8CE%sOiJo=9np4{`KA8-T(u;NBiU&5YW7Qb@5~8PzcrfF`~YC2 zsJ3N@%zw;eAPi=*Y=#g+?WT8DA#kfV2dg&+Buz@|+|3UkaN{ndeD_SE4=T#56tVe< z=Afm-ju@8IwcvNKajrhK+TYte^icY_&%N5sX!-S za>ip}c=hw!>}#Wyj!Ul{UT|gj-r-dyDW;=3EUulPzkB+y4{l==$y%YD(3b5{Ct*NK zV>K`DofL5#5!LqETK%m1#DIoRzf>WJ5T*bbb#b(6==$}+A{3)1PbCY*d6*0-4UbNP z?|0|MU0u=HfkHagkJ-QU8#@)KCbZc=Wm(>^u*y)q1MhImp)Os|d7^B#A>Q{WQ0sknn3vcH2{IwV=_>P!xyJIVllO5mbRvE3B-AH@{cc&kA9I`u!2hrI}H^-%*(cI za(h<0`2|C1Ufv_OzZ1hEE$%eNT}($l(c78sntgk*M|PVJH6N=}?l?-z^$x8}s?##1 zjhep`Id!4zeU55^`}`mc_eH$X6Bq6!3!2~AK8gs2vS&Fn%f8!-lfXnkt*&b z6+!4k+KYEAcJXzpgynV+rEHV1$Y7gc?#AteE$>MvXKC0wrYqIPe9LSdHnAfpXQf}7AdmR4~d zQ>P|;=C|!pO;KrBaozn>7mdozneH~VkKuMkO{Vc#?Xp7J3#_Apat`OupSOH|IZsp7 zXj;l;qKQ+>L11vLuh8QZ>|XK8fZa8{k1;L^SZ+q+S~ms!>JrnHolm~~m7wu)&_5_!_yZE5h^w(#lAR46O%ITQbYoL1APE{j6vj@dJ_NpQge(8vEAE8uM>HPzJHr( zV>^5HY%kyOV8G zxqRS32<~+&^enrpN8sTv_kWVdFsIg8H+S{S1^cC_fPynAZhcD~v*g}ZXa+157SlOt+umq-MgBGnno_y87NLFn{J6FR0zbgfc-s43-bg5k~cnf zKE9l{T5+z`i#lyTUB-u*BFsea;Pz>kiQAjkk_f99XNA56l!vp33YGph(@&Ektka1X zGEu<;Gj+e0Vl&w`jDqF9@O6%cBzUl7e|@l<$=sI2!wR50QKjaIXs@JpJH4+}eis94 zG+#KDd4=Fz&CNXjFSvppJpEZ+$H|e&#QXCJzeJ|;E+~SVTu)CuMKQ`3LN{{q z{aKH711MU4mAVHGkq+n|m0W)p<@>w1{Q6pysrlMzXJ;G+7zk6ZR2J99w@qB({Y$}n zQQ3*Sj`u{^KjgnN5`IVfPKi8oz(&QvVSx$-5i~p67I{AQnB8c={_e)k_iyi851nHs z-N)|qJd~c{e{%KNG%Wa%*t7y2G)}6f^DO@y;GBrn{NNM%_`Cbppsm>Q(9*K9vQknC zUVjRCBa%+Q<1OMYn%6K=6k~50Zi(S7rEbBJg%Ue?S)mes3!D!&|<&N*IN|$pl zh~4<8qM<>CATWibL&WNvSpvE4*HxMlMyg$>pl)Hzp!|gf6hzkv$>;?w+sU%n zxe84i_sT3gN~5Wt0r?N5?fb_BEvWcYs}5+noiF$lIrR%eCF6GpNYl>Qguk^NDgRt< z_qNoK)5fwRM)?z9iD%bdM|@)zxkhGE={)ZLWunM+~)p_OTPb;-!d7YCm(6fi zB<6}VJ3AJTf^*%Y)2=@uJ3kiNA9 zyHEMtxfTb2SFT&DcKRxSf*xwAyG_4(@NBHwe^-iZp=Kuix!Y%|ktVK7d76H6{Uxc#if|1Osn1ttcCYG#0|)A=-Indd+ESfrYHo3G8m`B;)DjkxYQJed68 zz*ASBDv92H(QM>O0~u%M>q`MwzUphh^t&9q_{^rqq)1=Lb8h-|YF}ZgM0xOMtoXqh zKK0e6KzvAJr>+#-+q|eJqP?pB#Gs-(?R1b~^p`I#X@ope3+5Pq1hs$(^DU+kHHi2; zv3c7EQq(?AC1GoD8hA!foR%@rl@4}V{7+^4A8hVmAS0t{J^!o>bCB(h1aG|;H#LL!eQ zrOjbP+p%&RFA`cl?uPAt+3pa#tOHaR^LQQG#P?`?}_t|l8WZ&k)Z0%+aZ>A$OvZYc8-21RVOr3`u!-`*x2&Jh%9?t8UWsrsd8Qi zEj?UkxZWD}?L&Tqaif3z@aXn(<9LO=US2#(%J`%wXl@iNQaKN}Z@j+tI;DBLZ_(vq ze9>E(g~#JcOw7hsg<2s48J)ko0pyP?ovu?f4eT`SC{UoZ;{+se#qXcr(yA(Yi8N^R z-(^z_-P!j^>%MzJjXmT>t!!S1Vbjip@7XSBSW?97Ti1h#DB}{E*$yL=8xl`mMtYvP zI|5gel1a-F)P8bFT-(ao_V`l?ea17YFF)cSC9hs__#%9>7kz|_^=A6*5^C`&4s52tjebgQZf7;vKo-)Fk6AGq7=6m_Mt3Ewo z&+FquH2K{+NRjre{_F_=(`yAw!^00VlhSglQ@4M~V=5~v!=8F5eXIRgYsvYvW8J+8 zs210F63Z#bUr>-k{iKYMI{6pba#Dx=H@~orh&l{ktaF8?Uy}CexfQCx$XicL>PJ3r z3GvRgaj1nNd6?;>`yb4%%@5uD*cr%}MwLb>ZB*;_`0bht;;B~rp^kT$&|TyRTvFi- z)0&RHU-u{zuG?K>OK^;brdX@sIm#k&d9=#8J&GY-5OhfEmSAE{yQ@h_o{}A5tp4Hm zj^4k$<_GB$eSrS-4J+nd5vt*x!crIk!V?yGdS(h;{PxgS4C?fiYQYW&MxSw$@* z$t~6Ud{_1L=_{c=@P4%{bsm?kW8peNO??Pa>$!r?Z-jmeQWp_9p2hqwYe)*p{|x|Gtf%??3RCl zhb?@7#iR8;RSknro8HIw!K0Lrl9CG8+kxaX-r)DV;V2kxj5>cpjV*l0z$w= zC>;gcn!i7&XC>DSorI;=BZd%Sg5Gj z^U|ee@iMQpC+Yhsum5#;$~CZ2k^;)Ye~smDqhHLzhY^LA3H_eV|L+$}E!OgMc8(NM z{)Up4KEFn^yFuk2{$Jo&CgX+&l#yCd1N%0cF6%Ftc%^;)-)ESxFy7c$ICALFA>U67 z`CAgzLTY%-W@gifo`(a_p6*6({amzKi zfT^&2Iji!O7d$^ucQWTOMa!0A9>GYxgGSfrN8< z!$U2}TT5er=*H|_bS0~RCaBRv@&GRZUYT`Zxk}&XX=RYm@XRs>hlYYnOv&f-Ubf=m z&ip`O*js+nhB~CsT;|@glHFg%pWhB`-K9tBHC8X~0*0cX7d(#RO)4Fli&qzY&q5al z1lyv?&B>M!NX)D<-u?B$+7C|OL~eZn2s!M(y;vn;)tPB82rYObuikZm_j*=~I{@{- zbmX_04|i-rUPsub=D=bCwa@DS-krE|K#WB;J?YQ`hvkpgy4&mP>jUl7mB>qX^e7uo zz~*Ea{GX%dvGH>c7Z(=@iS7(Jft*8J{>X^=mUbvMuG4~jQtormyjcTabFN?0g-7(< zeLghF7VvQtuss{uv9bmFWmu?_mU@vRS;Y2HGacGQaKh zkgzb0Ld6U@&o6jXWZPdA3HQe%*mNcZZ;$wqP2zm!wrFS!ILiVwfblPd+TD>zN-ap*wl$ zke@zunmLJ~$PvJYMjYbcyD)7zk6d|LvlL=)GWJgr!3fb@@mpHueBkoD`86&9u%g<|LQCWrX`H3!SAp=FuC zBaMjn74}JccVx03aCfsVC4-U-6d=nPPeJIZs*3^bd<3kkgrageX`~4)l&j(w;DD|> z?*moms#JYk{U{S~jzQZNioOL`8+^TnUqO0(3cW+ao!3nXp_Hr?!~*8S_1&l0jCx%sK`T4;FCJnytdX@S_Bpvm|QYH-y%5Akv%@pV>mv-JM zC4%~Z>=jonj8c7-JX`1W?F;T+5nBMDr%nhnmGywXrmZ##SogYQFYch%KC}dTQtg`ES=~GKWLC%=N&4)wB*sBjl5O8{r$LjjAb^>Q`R; zPpw|usbfwQH1-@`nd;~}c5*XTZZAAK5T6K5?#ozpTr&w38XRnf|AJL#<&@?6!aH}? znK^Z8uAmFd1Vrx6x`6Gi;)dl0Nkq3HAt+snsj|Ec=^i4AGoxTqHc$P*-QXQbz2sSV zfW61K$lkUQu#da%ZU2}kE8kP%a*a1UmQ*505|Jh!^Jw%Q2nV#!3xKH`ShiJ4%Rj`zHzMe*`snq?%slZ5WAMnRnFt>>vIEzW%W+)rOeST92-@* zw)kY`ywY(TDdoT8S+_A2D@VK5X?C|-HrfF&5tSYV=bWj}qFCJ-udg|R+RWPhdIdVF z{gFw;XX{w{KQ}9xKLFwNJS(t=PDx_+x*sE-x}P>4CuJ`?w~bFkp;M@64q(5X!a0_|iV>3y?W*T`;Uc=GRDp zhNjcUO?P0W)6V5xukQK$HZPI`++L(e5=xWJVBn^uGm>XvzX8o2wDIBjtr9T3VHJ!v zzS$tGvE+`vPrH7QAV?ug^q0mc29ZZk+6#wd zw{&_|g&9M&9v?r|9!;H^pF&UZ;L?AmbQcT}0)6T_0?8Z-%>AFY>h717u<9C;z*BQ34un;NAw1XHaGlVj`$;_B6NUu{Axbb75PG=l+Wd zf>9o`z2=Vzjs|E4vgjP`H;rdtnWJR*@BTQ7ylxCTbv3E=497p;Wsq{?#ufkP{6*zv z(Q#k3{vpRD9JXP?OBxcm?fm)CaJV45QEJ9eDQ_%0d0QXoJ#jo(?^3=0>&qe6U~Bo|i)#OiIUJJ;X^3y?#VY zOaow?w9_|NQ^d3bl&`q~Y+5~d;`csWn~DGkyB7KvcJI92KiR#5uFD@}m}eoQ4?Fee z$8X9>K8e}l70y=NWy}8iY7|Ih63z8Lp7OOoLrG>leIw@)@-7aKHP{aoTlg%0s0ZO{ zyUIzmKj1=0U)Ek+AL+f{(62w1R|@aUW9axwfF-fDwS|%lT|$+|qJa+NjCsH#Ja7^L zz&oI{m=xGhblevwLg-9v2MQ7ewI#WISHDbREaXy9AL_iG>6MrOqU#1M0hJX75Ch(2 zT{0%|qFc)!fP62}&TfZ}0umO;0Y+6$#*2y*5VMmmlCz);-k9lT(ME{_iaR=*Y1VuP zn#H#!!ektof159TLBQU38<6-Q1>tc8xlbOnd7bjf&Cg{dQz7VWp4Rek8NRqUWD=MZ zaHlv#0PgrA!9K{aAYN7KJidfgG=8lF^w_0B-6xPVC7EM@lv*H41UXF=nt4!3%`%W;)trXCzEvpkIyvUhW3DtPLcoeK(J6M6+4LDo$S75$9 zrPFAf1&nLU^Qkk><+R;D_lKx%x+rsN$q44=4@nEQMOKOxuUN5~lIR*l5U|=AS z#fq9c8T&iu%c*^V%LCNsQBuY}w{LRi--8P_8IMu53oxbzl@3=k{!w4D5bqBuW#2h>R}xqbjy<_K(vMBaVZfx*16G{jKMKwaZlDSL7q%mQYRu2e2byU%@0&oQ7|1FnDwsh)g_sAP(zS?TerN-%ta3V)KA%)9YzX^j^_p_FrC_9{z6S~upojSeL~b70ldWTa zsAvw9%%YG;VLvWC&ZF?|>MdCQ=K!YE`uFRD>rpW=6ciNqFKe-^-pjf&t|)NvH^kGH zEB?uDz_A|1y8TGy|KkG&2mg4NVWm?CWUOrmHhTY7SwLSqv11m0BJ&SZAL;{4Z+Zj9QxzzzGxZo{doos==-<-Fw9LVacwnuEe3-% znZNB4DDrn%q&=d*NC6!#)6yDH9ybC`LLWVVGuu>Dkj!9y=rW>LNosRqy3cT|dgdRju2)GJT-EgW<>Aa;iNVm>eAYhQt{SI$~J?A$SiK zT?M%hPEz69IQF620BkCrJqs_sh1R~_X9Img9O{NnnMGS~Z!eG)?`v*$eBNSxoFd_D zQfk%=N!e#-bH(#{rA?^zfq&ms1zgaiHvkNAI0H%?9)&v72;psOGzfb5?p7htk2Nyh}J2RMLH2qss?1f<4UYd}Z9!T>U;0WiYR z(YC%H(`wAFjaI1q}oEWK2d>=evX0@ zmnJ$5P$z*&0w0JS3|N_*Ueq?u^Z~b=z7_Eww!iC}nwvJsxjwG}zd%}A-l;<2Xd3$o zC-jJAZ41tIl!(+wft#W(ER2ubV=Lu3Wm}{s*Jn3pB$vAtW?$eIB3RDEnkDnjAp@tw*aZDz_A3=hrx104pfy2;IiBoQR_qhlFXiZZ+qFsnP87u}}U*RX%aqWop$xvNF`Wl2W;1y|z$|S_KwU~ff#z}( z;t+DAvNF{`M4b8i@A(2Gt+m`)A`QRlE+tw{{hAdU3CsiDbYKgEo^%6XeuEg5f+FSOP$u=Z1 zYxD=+tNjKNSyK@j_spq?z2}4u)+YUK%+GevfY!iCwc2la$W7pP_Z=L=JDzMCMe65x zuo;pB@!zl1MTD&NSR4UJ45h{Z45llBeUMT?R^t^F1-fGjjC!QBe7!^72fD2~-#zQ7|5SAKS$iz&vPrhk&1vTMCE<>#+bw%dY5_GeoG7^XR;s6{t^cqB^AI0j{_c- z9TW>1zIRAi@8p`}bKzXIpjkBIf#>$bdK{Q^fht^^?ZaP;H$G+BaOU`NyoRSPlV=y@ zLH*~|87B5U%rqMZO(ffdxi%OiiOI<7e7_5)_fN6J#wrxP`vsGnM60k3-(Lro<#c!e{Jhx!MZ)yPphmR1|(;m z4gU-WWudU=vOop{2+}eO!(^6_0?tLr6q+J19C+K}y6vfvcS;DRza)S;JB?M)YqVfb z0hL>J5PO2^WL-TpjAi_Ywo5+1i91BbEfz0p9L3>LvXu-8u9F?lZ*BVW*%c zq%1u1#$Jcr@eUE37iWG0Q8mds+{A)Ea-6kI{LRTa8BWea(Phz$D}K1_@6K9}ZS6Jw zW&|T8UE&vOnS>=aScR60Y*})o62UTRB1>;Bw zLIql@bmgs~*Y#R+?lWId;m(96cbo*){LLGbFQD9e0p;Vf1^ zAugmL>Q6D}CejDyG1SYW0k=2c_PE2N3BZU2CUxfRf1k+!F(!-rsc0YJ1mQs(KOxGP zeL%T>TG?DwL@e{mL|!hFJ@9jTzROY!(@(-d!5#1~4TCsUqnn|EWOOESuYE8J zZalMVrtp&r@JK#*&!2J~^#{m*`!=4{0B}sQChQ!oxj081C@`G|aY4(dhyX7wT}qAN z!8Zct_lYQ&^L3vvMuCye5O@uxP(1)EnVH9p!oQ&iTE2kMEl3;?4li`S5RvaUP&tif zLr5sXKswozmjgU$DjiWt#AS#6`a&`{Qf%SKcMDh9;Z1C$0KZ8cx4K(@zBXxw%eQF_ zb9A*7^Wi>s@ZW)%S`|pYxz`ekGazZJd%ennjwHBDnt3s|SeF=zMC{(PKDq zq7|lbF#+xg82}~IiR3v}r9c^eD-hg|XsYSJEwEX&x3*5a>azsXl;T|I7GP}24E^IC zAxYQ-6YxK}kI%psH>)2GjZnnYmuK7hxZFkZWJKi;85fPQeQj%@hF>~~T?DQ6Fv6Y4 ztKdHF$5J@KIW1|kAOgLknB1PU)ys%(=orLqt=X+iTh)DzgRZ5uhV=l|JOJyf{Yke^?CrzWjC(B3mH}mgi)HbSQEsD@ML)EHq;O=K&*!BRfdk3X{kpCJ(2qE+~yVazSjkfiETc;J~0B>%lT>D~}GiU{WMK%|b^G}!&`Aq|`^IN0KC{`Tg5v!OB5{OxpUNN@+VFfwQHMW%Kc<^RNBS zQuh@&Xa3ScF7sT-YWaBSUq?G&(+yd>Cqu3TmbEn_eIHs85bUytd}Fp6lP;3rZu!5< zg1#~?52}u=A)L&(0`mG+fV7YzIv)Ya{93Rp%^{W7d6vC>;Z(IDv zg>q;xV}~(7IRGVa`&#HWs0$82!b3G+U4b89h*qJ+kwfvolAWA4P+E6_Jm|#DF zOMpkWhK#B2M#v63xIe%UEQiVA_5eRs&!!*C$!xgtxojMjGZ=iIP@bMar>b=D-8CGwC`tY#WS;D+{ z_{cH76!^OJ)7&gZcPz!U2NM$YblfHYFGVs>6@zQBJEP28YWUbZ4+{zrY` zN3aN*-L{Qg1R>aH^q8n^FQhw{Ng&KO_hqCWLeY6&>BuAwHsww5KNcBQ@k0aOd01wV z)r)hT;{%*Gx>EPPK67@kYqI+$Fy7K*Z&~t&KL`r745vno7$81~mvr(D<&NP(v~@LtJW z8K|JGg=amb(PPy9gCOJNS*1NiwGd!1n2^ym@Uj!<+kSxr(KHvw0Vi1oKYQ($>N`YM zy-Jsn78Lvfz2oo)a5Doi0q`Nfnezm=zzi|_`=0Nhg#wgAsumL--t^q%Ae_3(3ry4R z2cd@PIh@SC=lLQ(_D@gty+;3M@8X$6Jrjj)I%;YiI4c3iIHXQY-P2fwz8S)}eec`H z7nk8E;>xGoiPsY2MY>N?*5A1712POIh>#1t9bk?D@={5pdO4UFQN97Xqww+L6A*M* zYjt&Xkbfp(1oaj!=Cr`T-U(Jhr(y4KURfCx8=t`jnmU>qm)gUk{<&-h?nLeQru{?h zZD0(p-$_vXx(BC8udLjpK5*j#X9G zc>=1n0D-JOU*E5?$e@D6F1JDa=l3U1OI2eh*F)%hEOLXBjW?> z5(uQTtvb6jS5N9B8~v@O|J>(bQ#-#otHw`4&3&=j#as*ZcuVUscL+S>zafPmMN*z` zDM~=WA|e2&@1YXYk|EAj{Pr^ne=59eyq0iSg05M(BtiVg>SK>pdwyCQe~k6)sC ztpF5%I*34!y5>Lx+Ro73W&Tq^k7Ag}#6D)<=)X+#e!qNf<`02m0KOjPa?sSF400Un zaBm;@_2D1HM~|q1wK`BWzfcE?^}~J}d+om6K##WhjTJ2;hl4V2Z4-q6-TeYC$g-?o zqoTu+O*V`_Sf$@f$|>%)|F$3_yXB(=G+V3c+2G}HGx`NH9<+uo1sJT|geL+&qZgQN z2af>wpr5Fw;O*Le8pNsL&W4rx9mNf~CtIgsQ~Q^8B6~%me=u4<6T#W{4Sqg2w0-t0 zIy-xfF+u*w?sAmckIT*}{uP`303o-F*w@ko&CkL~KYVrxx{=eX% zCS&EfckloJzrqh(k?zy->Bq5%maX`^(X;$Jg2F4f?+paG-VRESGjk!cfvvl*Pftke z4+-`nk&|0=B#TBpu_&L z{vOxid;|^3$(?{JlyyGMSYG0?o| z|Lf)4W12d{Fb302+Pfg5X!t`lTARDiCHyF(<-`mF&1~$`WMC_n7E-6W~b2q!d^=?#mz;b23;u~at z23=Q8z#qq4?5(3MvrCa4FlO2}Ez#!@8J9o&A~U>&J>O)vhj-q&&FTE}yfKbao%w&; z^|yTmtule6V6@A-FlXeY4gF9h?Q=GJ^+)#FPe2n~IH)*QR6p8&;xIVJH(dQg;u?*w zlVdw^$6I5(FRC5;16C_V2>RS@$tQfY{ilw0{~M2IolO-2)_`EOdznuQaBekpNoao? zFKm+}(HRUf7e#$tfW#ow9{jRP;&n2=Q3FXW-c zhov5CrL_%5q#;X94V%T$P8Gs}%HXW~0?Qi=20TTepm3qvqH*U3?x+C4i2`g8cBoxF zSKkxV*sPbx#5GL5R(-7v{ukYxsT4^GdLr3(;}jS^Ok|YMHfqmYD$NW{7JX@_AVWn6CG> zl-7alfs1Ci^YWDNN=yT1Tse31kyKohLyFr7KVJIC(j65jeo+$xCSBwk{++ycu4ha@ z8~^$WliM-De4Pi1pkku`F^cX-lf#lfPah2QQ;Pa~%)q8jHFWE;{#Q3nn1 zYZWvOj5wXt=d~J*1`8p~!J$aOO+pJNI)m~sJJiqGf{U>#x=-dGu|GbHZNrlRj2tY| zGMrZz@1@S?a=GZv5T8qTgyg#so*q;$?CPlw4k!m@^5ENwHm{w_jq_@r@-p z)LEX@x)|sc#LcDx@0mQs^3MG!i<+5ARsA^2^YykcF_vl@PRH45VA@nIg@dJ$H{XIHk16^x!Mwx4wu>ZC~%DKTtcY-SmFG zgt>6DzW5h031i-5;?{eAg(d*V%46U6fEa!&#f?8Ln<9woPfH7FG#VoMGWR3LLFbfD zp?NEVgfYs<1>Wf#g2Lwy=Q)s)4x|2snORh1(29o24oIAKB59YZP|`lu2Mixv|L_c6!R?t2%do7k$qG z(3Se+`k~wWt^H&z{e@n*73_%#vk|_Rzt_O diff --git a/docs/images/RemoveParticipantFromEvent.png b/docs/images/RemoveParticipantFromEvent.png index e94590dfea06cc2bf99d486ee2316fe2a60072e3..74e712b431ba8bcb3f7e530d8ac1c31f03e9a436 100644 GIT binary patch literal 35826 zcmcG$1yt4Bw?C@V-QBP$>6Fe*Y(hYgknRv^2`TBWO)4l7DhiTffPx^6G$@Ej2#SJ| zBF&py&-vZ^Klh$D#(U#Ehhs3tj_-GU*IIMVPt3KG49{zk5Hb>;I(3Q!rH#CB>J%34 zsZ*yPh>>1wj7J9l9%SC?ET z)I>%|ZI%5=xh0R+LYVD%ZEmUS%z>QMHfb)5G<0 z-Yw!#-wT{mJQLTT7+j=hgi6aK&x<0g$foPTV$ATt&r^97v*}^5GC@>;e*U;!XLKx> zQ|^JaM%&n;1=;KUq0gPGiPVGxYGLz{?a}ob&8=Uo71zFnm>qnHoSx`9ZQ`b5OX@OK z*k+}Lm(}GQw-N@-m1^W)O|SH7F`Q*w!@m7)mDG4X=Vz)S_i@U?`r{*o z=k@|661?IyX*a_;Yc8jMkaui7y+oPc@~Q*>@u^eSPoa>iCc!qVxA4qOwBB_a2~O5( zkkFc_U{_6suF=SQq>`jEh9(JlcurC|W@wHl;x@Ov%bS!+w)UJXt)CzYWA6MM3=kv|3Uk<%30>mk?RmrhcWfac$orz}0hyUF%2nx(g{-I6ZUa`uYwbN*pT3J6?R^nmiX}K|xcu(+NLlWe_r9acBODwY z#_)-9tNe_q=l(+#MtzR_Mx&0L#ZT9^-`O_jd=Wp5(5BQc5M5feh-q8z5gtQx3*?KO zSj)Pq4OQ8;9zUHmeK6Fh&K>5;tAF#J6(hsS+mW+I^_55^?{0#uYn{nHOAJ!^Fg`br zpS!F4X$%rJn6K*H5Wg6n$0C}>KvfD~%H}mNVpB^(S5xi1V7XuCNF{WESDP}8+5HRJ ztvwdiCrfoL9zmh2e5f)Xg?8lL43R(2!I7QoI&P&+nM8@=l!uAXrDo-my#yowghcn~ zBq6eHsiG6P3CVJpg|ddGeK}E1cj1jec2oyt9G*^kUeA~BGFgcF3-E?(Cc+`99gAB_ zcX2DQNSo4vAKsAArmRE4?aF@N4v|!qqfI%*fJibgU03NHp@f0*qLHRLh@@3wG*Zwg z_|BqRQrO4z?AwTuiAu6+tLHV^Vq#zmf!H_9NcKIg{_E2|ulCDqE9?6kE` zzGgOoysSo-<@lH@h0vW2v!J3SJ+^9lM3uTkT)ly6p{@_$SL*HwAcqc=mkXJa6z; z3XAkA-c?y$%vcMxOJ9a&7!*otS$mDt;EpEKFtxuv_pqNtnvg6^!F901?p|{si|M<) z@`+T$Nje#eoSgT^!*6mC5pn8j5hnQ!^yPMn;S_IQ8yNm{}{WL@w!g zNI0Ne(aY1`cy{iK1Y^eUB)R4-qpm9Z%;l(BQkGZ=h_Vmde#vK6t?N$S;+6x zL0(h!kD5M|+L9m)hR%%LAG(;&gP5>Ib>#_o?PO-_UOT zc`qZ6L#{8?t!1z(8diO2Eb3asz zY@Yj_Je_?zcazxG&Q!_!BW2jRh~tpcEr?5Kw_iWXB9E?SE(Lv;+Z;34QdfU%Q1q-r z?%Pc0FrBTF)~9@tStDjQc9c_4BKHVeq-U|XvuSWJcJoq7iqWo<$vBP8>GU*#Pr(9A zh_z@b@l8SDTls<(A@l7*)IVk;>sXJ=*W=x3v z^V-~ESx1#MnG6|U%O|T6+GOZC*=(Mp)R!yEBU`v%1VKqwS3)| z%5-j`ztXP3aH=dA=uJRYT<{ z2_KyPj=Oo@{ZEe`Uc5|u)`Z%N{a05o>}Cc3M_XUK84;-RU>9-ENiqiUXZ2w(B+$j% zS67~J$1(I;+VMZoElsAWbogpvb9vUb-s$2^N%zSRHAXQ9tNHfM%r-x#zMSV_dpaac zxK3{h2r5(61o>L9a?f5AxcJcOhWJu8x2|;14~LvG>?NABCKk^(l`o+am1SO!mMwiA zm^P`gneObwktdC&YB}HYuENNSbuSo`&F~RMTc4vW8eE9*-Ii7?E09T}5Z8BV&Fd(S z_DSq%$gAg+@f9xR$_Ek)Thx0(s=EBHnyfM-gKdE@FeK;M^Ci!B)n#qTwrRH&54f}s z_GnloTY zo(WG1icLnP(Tkb32!<)ppBj`Ibcw;$_nnKzvG=QdOQ2!cvF?Na7LQ^3^6<`;y(bx0 zW0Kq5>hNd7#tzn6%N8Zjya_+|8ZSRB^}Q!Mj;=7PiCX=U@-}sm_vMx8bd)}!1=Ym7* z?C`L0W8BFGpCQg(DBq1G7_;D5U_MAr_U^_Mu*V3B>g3wH;`ifR7e*yyb}e5=wz?~S z?*G#EjopePcJ7;2r8t7(iCW;@^c6=}*Dn_(m{(spg_pE+(>B;f*UAbG9#bThCHG@S2IgB_Cww zdGGl6?&RCl&JOfKf4UGQ@0n>~`G=R^u{!sg&b@v;@mzJZ#>NKc;1`>R==U~;l&NRZ z8XuhJ*&MybE2f&RT9U98tLkNTTNm*cA*~KL*;rYl<~1~LJM%C{r+CL2JbwLzAKUZo zYL!K+L!@iAn%eDNFF}`=*V4>6bjW#$iy3R%Vy`^%Tl$tLKtJ^M(ZQ0?s|VzZcg|); zoE&BJX1j7GH{^~pmV{kc<+7z!Vl^;W^P0I3_6w+wd(;_O5p8anqTlWwrjN zOVdgQlP45b9PR867nc-dtA=cw0+@%_^&9+z@Ck{({H?3{jc^CwZ@NX<{4WQ|rv+qRa_m5?tU3b|l zC`g$6RNG6+w1b8F!l_p$M)GIc)w}F7J)IG=4Mrvsuw<0%_Dt;1}PB~+qR$ISY*ys7D(M}uL#EZiNBQXz(#|{Pq}_$lh^7n!P5^_ zepO9u7vKh+AijEo+v4F~;iVRq8brGWev4E=N?7dXVy%*hK_-&^to&CWGd`o#yvwt} zuH`acQCBntzv@wT9t50nAG+;mn9qCOs!K!KB^^Cb_{)yv@_0qc`fFo1H<<&k+MiO| z?|zs&!>Vu=owaJr5w<41waLrA5XS@A)(us9sqq`fde2K?_B%8Z95E@kD=GvgxhB_q zAD>mH?Df`h>~4EEeTT(RXn#V~T$2(~d2FQBGauPdqSI}xMiP!)de2UEN+}`{%}yPs zcnog$u2h~gMmlSgYltKd01P+tq2d%UCAM9JEpbmLm(eWKJfuoJi?fqtbbZkv+DF(& zlem~GiTETuciu09^@xyqy^VhO;Kz&>$$QsYNV_un^aQ$@T2l>?y=>=d%>s$pp70;j zGAiZq8?zon)H!g=1uQ35?_HrGBdbZGioDbuSP2PyCwL_rOWN6zh%Dn(qx?0`@d}1W z3Z0|5RNhAveY~AYXAvW|kt`j0OHDdnQf@_tF^Hf!T|=f_zxk??tmS2&<0`E6q`BtS4TH+!QUclXR0b^ukBejVp_v^QiV@{nc=Y^a0fmqmjFBRj;gP z7$OeeQ`5~()h`u@+F#pP;O@+AM2wi(UQIf8=hAkieI~0tq6yIlET(mvP0WEgg?4W< zB;eb4S}s?nyuAG7*n|@{NN5zTWA_b)yn49e;vO+cokiB&NN12pvfz+nr>=c^e7JRH zC;qg++L&u?utaWTcPHVe56{g5yFaqeTwVVqGVvmWDW;2|qfggtv@*DNHd2dQH!pR? zP6##rBzTF;u(G}kI>a8NeO2nFL9Y5wf5@6 z%wMe(@Hba_?0RRo&e5M7`kM(Sjq_3$N~hmE=S?7Ra`a2NC>E{V^8K9KFtzQ_@lnEN z(5pr?25S=_vfieep!wVf67QA^C)MWk=hwJ~tR6s73hmDe-|UF%AAiu`YaJI}Jaa|; zq3I*j&g6?zmMiN*R>AgVBl})iYBF(pl=ERd^6hzTYn1bSWbZz#J|$KR-EqDB z(oU5=K&<8b#&MlE8W|X$hlt)<7n+0Q*3uF;$%KXbRh-&ZBba}B3Nh z#?JCPEW_;rc9Zqu*q-dE`P1PXXW7{pLZr>AKj@7*5A1i&waqe><8kl0lnfs3wKAB@ zM`a{<=i`SKaD~oLZk;u)Lau#`p)TYP^w{ZeeRbWwBK0*UZ}N3U%o5#-;&vbtZj?6O z3t}eZavikV#7QWX3QJtBh>_^8cB{LaBV<_ubtpb#Xzues=%l5{O0tW*I zY;=YF>+5GPdeo-j&tofcQj3j2QTCllW$@JyX04sydfEsmSi)ZDKTEW}G5+u(89`-2 zwS2%bp|i--u23}~2Oayh@1D%znyZJUCO4HXO>bUdBkC+ZNW=igo9&}wGlFmhi3>&B z<)U0(O8^u(JBK`qOzd)R&{W=lSYcJ%-*BwsH+ghv3^3m1*z68rmd7nj+K@Z~(I4yV z(AsTxb)P;*v^VPBRtWKBtX+7v?$GMrMOnr*{^7CvIW{Z<4BHbzIb|a7g>Bcb>Syzi z>;&9XF#q<>Tl?F%u;&V$$y+pXScTvCUORVITazuxs+H(Ol|{zWSC~aGOh20Qckj2Kri=yJB!UfE8+*6LE>gF|`JI1bw@b8EJJ>?u?5aR&pR z(fdQ!U&bB1(1^g@6B!(q3hh_D?J}^ROJc*G^u%*2#dr-O-uFyOlCx8*h2w*3Ki_Y5 zlNU4BGE6h-o=wCIPU(-u_AI&#UAolrHlyS0v=p*bSrW!vJUX#}sWiI8N z7)fn&W(00xLTX6)3RB?M8I}4*JWXZuTj+59$+5xH7G!lxR4t%8Lbk`4 z^R{Y?B&!?F8{I3>?X1$CsZCayNaJ^DU5^t*dcOdh~fg^;g-YED?6(i9@#U9fB7Pw zPR@4W|4)*N@r5j8nWnxW+2HL9oWhb>)c6D=hh&n>XVVzC2+62;Vk^i>kf?VU^<}Ih zDT($06(Wg8|7O=Q`%~+Cvk{h!UNdq_MFffseoK8c0&gq+=v4r0szG`(zq{1W5}wO9 zWsH%Ia-L<$siK!RK6M-4(_>PO7=7kT^<6k_b*jNk)?V#ob*9<-F!<-!z?@ib0SBy> z=Y3cA=<#g1b#`*#+2y$X%Fkya>ct~Zj-J*hvIpSoiMDaLvR7e+-2A$XqSP;x*0(^C zH${gP%w7x6+>~ijreA|czf@qE>lt{|h2ol}@ToRFl-+pcQBl7?83!&-%xjq*f3A4Qa z_MTHu<~;8eyNj$UESO> znV+W|`LAJI%0zG`8aT?Lkgf6Df6en4W}dz2s>bd3kjge%((Cgw%YQ5I>erz4%E`te89W!`>On`fJnb z6Q$^u0xbs_N!+$2Y^g7oh=jyB4&T}qgrT-*oI)sHt&x#JC~9iz4&85WAEi+8Ar?t+ z)t`FJgoTAc`NkJ(J4?(gLrzIJS^_f|5fQO`xfji?kwU8x@#DkuD$@P$A79Fo3fjDo z*?$?b#X~rv+vqV-ZQb1U4I3L<((A)+TMXXDPWyA8`7`b7IsC@gwwLF>eod;*U{fB{ zqYsNCq}lvDU|Fu6wbpuan?@Q0OeTV!beJ-i!6Jq+)qeTF)$4Xz#(Ljpp8LBl50@Mt zAAkJ#@s`|G2Qk(gml{28jJV?w=&`L_=N~GPrHZp|4%E*Rw165nOx@%trFyXQ-P+3P z!acntzY58{>nFRP$V~9b$Px&S-aasP?avch|Of`E$0E|8x1;mpg>U$9h=a<5C&65cl`)}#~Vh}>Q_D#G8ksj*Q^O}LmC zr0L_ZcP(OBNX$Mme|fUb@$da^Zc6#c@+s+0%O{?)SHGEPXD{|FER6YSDogex50kCES!ui6=K~Yh12EDWAcji|8<>PLvJ6DCxwuA%tCgToR?4c+^I*B{=T(?<7H-=EG73+7QDwa4E5SZj}!-hRQ6-q0~qs^a?Vx*o$DJ(b?b zG-laR)V^^sXcC%4ZiI0V%~~9|@d_Qxo5PKU6;lXYV)|DuZD%{=xnz>U6lrepFyk9a zeyp)oUiuXUCQB`spgCc&fS&po0+g?VTd6W8C4!d()uFnJeC)V( zsAf`9er5VekNOh3N8Z_sXV0UN=hxBO*%4_KIL{b?hd6%hTj&{rK`bQZ~q4 zp-_^LQ}xdMrL~UT>3on#YD`6#@11|~;>C~I){G3p^Skt{tm%EjR3jrJkdy36a%Ot3 zr>fj;MF>X@zvdo+qAqHzO=ya@^1^3cEm1lSA^y@BAAhl|v@~;VqLOaYJXYpAo-3rK zAv8BpzW{FP7EWC3Y4*s&UEkD(fUl#zXoTO@tIk93@8}MT4~lH=Z7#(mvGl9rxXJ8L zO2$$!rlzG?H+s;>G0OO`6N*U*O2sltN)nb_HGJkhtHg`S>TnWjg%b`@OWwdCvo0nonmM6*`8*>U|KZYbiF)F#p2(x0@AUAh%fVrB{S z)OIDc=sB)4vI|Fv6kP21KH590Q$~s0>DknpaM|7Y4IR!3O{Ytb-P$U}sL?&!=cg2D zOmEDTSUmBxDC$LPE7=LE0fOG`h8!#I*p*uKVS2idrc@2mqJ_dB4ixfQB2+5h+A72u*P+`Q zlZ6T)ex1oQ76D1=>49i3mO4U+`M}Xk?{2bN6BV*~bQc{r0}`^48}8e>Cm6^B3qdDGt|zxhZfn^k88vScvH#+3ypgoUYwBfBKls zYa*3Vs_$#eb?q$9IDVLnxfdZ@_fXlNAt(8wpS1;tg@=Dapki&zS@;S)r|RooT%uIn zFW1R^s1kL?6BYF1LsI0_ckUvKC&$ABe8}GQ`PW9`SKdp8DFm;xTj6_A-B;w&)#hAT z=J@aBqhE)U_M6Xm6c%1QDNFL;{|y@GU4-brCt;^#Hn za!bN>@D02Z7gyIU05g;-p-O4p5+(~f2Uek2#+UP6rm(eKYzXbA(`OVOI`?Eo<+}ZB zxBrH%a_MNZU&J4Kt&3z(_NO9bLT?aM`mRoj?KLCG z(=&0@333d2RB_G-bwGPrZ!zYiQMj6&Q^2{=REvX|OO>y+C)IM6~O!(i{P(|+c- zB!RB^auSp$T2+>ix_#MP4fhY|dkmYW>FSE9o!y;=hKB6zxhm)Wyw&Pc9fa*1gcR4O zh{POF*tle@tB9B6EW9)0Q8#_je6}qLq2@a%RII}B&#f&-Jhi;u$kCx=S{2BYA*dHG zeF}c(&l0t`%-#Yqu7k_T6{fXzs=QxI$Sj3-DC^Yh-`tcUB03|GlNJ_hWMl+&-SL(~ z5@x#YqmlQ59&)o!hMLe{Ul4I3L{M~4nVd0UB-H~}*&!Utz1)DHC^vw*JGuH{W(Ep< zpFSie&G}M|l;Ga&uVW>KM))UDtg!RFigr>LS9&c)nJT|>aDCU0CHBK@m&?5GZf}9= zfUSV*AbZf+T-4w?^syz}(#VZ7u^TXCQ}9OVsNEUJfziq|LR!N_#=NUIbdr20j>Es! zW)sGD7so|$tFG6ZfU;O=NY*#nv7F=o$dA@jTD@uUm~`Jq;I!iD60daVg-Xq zRJ_EvF{9*c(LWCbs~#kzK0Zew{s&Iqi<3fRS#z54n!e__B}Z-gR$cRbAwI(&fIimF zjG|^{W}aUcv~6J?E%%;n(TU-%L)}luItWdDJFcz?J3UkNFTnRE3($OxxdkRQlA{ua zvXQIa_&>i*T+UDHL35|nYsXLOkUONaDn8r}#^77~T?JHm^%duq!%bc1EaJM{-!{J* zQDYC}6^zjz`?`cy_761wZveMKgA^J7YFS|m{Y?{u#yS5m2N?QaRN}E=3iEGv;pWZx zHw;!2^83v|?z~L;54ywL%!%S{q}}UylIf@3kvpq5>f{5lJJ%Qtt(4$uR@HRq5vb{Mn06aISzLm%5Uf!0B0WzO=Ay69Yr%bgk0b%z0ShILh7hc z8U##eaPXb(fx>fT9d@FRy=Pe+cYgk4Q3&>dwFNF98os~Hbk1wM$|Ae*`iSX+3!T%` z&FTrHPrYZQb&O>~HWB@T)=iHAN&t}0=Fwjuo53Yz1|nqT?c_L(Ufhg;Q4*&NTPZ+Yyj8; zcp1fW4qtZCJEexFbt)j&12Bxa)K_>;YC+8N{8;pL(&p zKbcQpW7nAsXL*je1|c|fTd@Q;Q;QD#Syfv%*Y;R~#M#7VNSUDUd5)ID^Xm>4$r@Lh z3K6r??8Zp&J%=Sz&9?W1RuTIQ&s_+3y$Kx+O-DXx8GONBJ^rkCNz&hTEYz<@_o!n-cSc&s+AAxsO#r zW@hga6Y;lmC0x%36KS3q`TY5F7eeI2sY<*Dv1-hX4xNNgl+0q-;}5) zu)kw>eU4C*hs4?KL4Q}Og9Bs)$CsZF^|%032ec^Z=@YLuLy0EsZe2Z$kB?UqXdu*d z4|L0pl*IY(0I#v9&H&Z1O-L^vD5&OW%AjY-UQpMqDL7<%T9fs?GZ3PlTFO(;Pg%sg zf#B}T7s=3rAevGyhIlX6%|HK9DfCJ7)q|ycTT)<=3=AR1hao%oU3`jh45D_Y$~A$D zlUo^)aAKkPV6z`~GBzSShVQhMqp}Nfx$==fqg~<-eywTsYkuW0f<($O!ftve0dD1z zV{#taE6nw``yWRe@gy;x^MckX8Pn6bQ_zF4$Q~LO0wLnum!m2&Y*Srby?V}f8K*sN z!bG>`8Li z0=*`A8ug;TSUD16Chfu+NLmgFJ+r%-th%RgXybJncJ=GIc$ zg_!yIdAE}kk(O74wbMed7W3%DAv2+*$;$I=m-g2zWmbRk3nz7@GQ8F!V^w%n;Wg7l zv!=!$5zU*2r01ZfIZs~r8R`zSjHTTT-d@f!y2+o9^us(TP^UQLr`B(gn~O<@D297O zUW7MEzw7@kEnb3DdrOxSX`IMJ`xFY9f}-LS2|*nqdQL_EvnFKS>*C8$Ix8_*TSP?U zm}{%HR`lGtb31%rfKkF)I%R}DMi{-k_7lVZH$kdVYm^WA!3Sc=Zms?6RB_Z}mjTA0 zpdcPwHFfouFJGpy&2oE;l;U7BBUOOaYNj*q9Uq0hk>liS=bOoYc;PN#^V1UUBp~un zu1rgp1sIdOY#^*4mUkDl>GtG-3 z71!BD+1K}UcXae{Qhx+8?SpIH1x-xfB9A){5H1e43^z-S4S~QvIzz(|Tk%enI22yKvbxXo*6` zTK$+|4wqC$B%0&@jG1I0Cx7K7bp3S#S^pAg$LZ2wAkVN1qU}mFzty0ISAkozVk zCK|1t`^jLJC|-I0cv$liy2Ag?lxe{n@>90vpMU^{G3^e?Qf z%>oq#TqRDz@jIe5-p@y zWLPKge7;9ag*@0KxTzoeb;3X>^5pM8z1NbymMbocffdjFh1G zKT)!L4$_1ClcS?!u~PU$$uPnW<-lKRZ&u#bI664!9a8mH#P@lZv)yx#DtTzBPT*2< zETOCys1ULld&HO?qp5eoHEyWA+H(HEg}alMrdG-&#ygUkZM0NpQt~T8_BQWcYaCG` zH5p1Fpa^K2Ep#cUH!KP^(<902c`=))YQmrQ6aXxXT)^DgTp|9;FWP@8@R+P16N{+# zUJQCpIS3_kPh@9Lh&zR|^;{X)6cB}Fd<=>&4{ZT_vXf6wl|sR# z+0oI#EaPJb(Wq01V-ETP0NR|psKVjlVJLd+F&F!am0Jr73lkEwPL7Xgg3zGRCn8cV zEn@U@?9&%bDhx{;I+NQtO47hB);X63@1vDGveeOu?39GY8c;`1Hn9T6K>pxNDx;O% z&qHEo-+yTe#~eDQznf%O)iOV{=ZB*ez@T_z9IX>b|H(ZIGp-7^LhSUgYr zu$&UZDHTtT%>5>rJZ0RDzv*KMZvnz%yuv7PhJu+n^#M@0-!=@V7(PBec@O<>R=P~U zlf=%xu$m6YOYaKCjgh4SY~{j{C*~o5;#4!hJWMpZ9#YV8+!UOO+w8xYY(b)VSH&aD zUG3u$$?54fz%{bCv~uDRxF}AonB#k*_AJa(V;$m}SGZBgWdaH41|lbAkn+eG&Fm0W zrwj=V{W4Ja6uNbL0G)|~WCIz=%v8tZV{0TEEp6bhAJ&T_-k-YCa-|U1JYz|}HO$-> zi@<~m*3wzz7vqvNoSYCT%+YNk=C!A=0M|bsU6)-CAz@Q`0iJ}p!SjnBaF`IL>@^+0 zkaDH))#A8LtU2pajVw`=6xX5=Sw(QIpylEDxwaTk0l*+&*!(h7j2T0ouywMk4aUt8 zTm^>qX9&HpVY|~=mblM(eV`X}h~@qq{QbR@;2db|Y3*%mpe{RZ+}oLS1#7my$! zf83JwcLBoGpDO@jjGT?~h?oJTevu5t4M@oI=1}8_e*#AM)Sc1ohM`QSUnisENtocx zM$q{|EB=xI;NY;brsdKzAA9fuqNAflaj7-6w4S<+w9n4ALM3kwT9elKRjir8%0f(3W~ zHT<%$fQBdR&F0-Y4SjV4RI*{aq9zpLkZz%Y-52zJ3od3V`K2vFQc@Qpb5M+-L=b(B z`-uedbx@OJU1jsK39MBx<*ERUhxOWt_I#nKK`dB9!n>0KtmiGr?0`AD$XsubY|g(< zfL%ug$q_dB?+vMa2eA)MLgo-aDR6dXK72s)8noEI##Idga>g!yCmYI89=9$nv`9kj z)i_APIcP@0QW_6hFbOA3n$bA?P(Il+003o_z8Cm)6ekY9F0rNuOwZHSJ=}EIr(NDx z7?rU_9*#^*(1fvtu8P|LQu$@zPK{_$y~ty3&{cWhLrCbu3wj za+t3i8DZ1y=665L1`00AIWJ~LBufBC0i6@~L&fm@@eX01z+oI(65V`p=RQD${ePxS z();5J(1Q(?$u$9`#8>B%p%E1Ja)_kIPO0y8(22uT1UX2EHUsEDgH_8?2DVaq>FelS zoTW@;PqC~&Zph9X=yA2#?4nA6!zFio1O3|ro*^7c@%DhqK7aO1WxtjX5-;QvN7IU? z4AQ)EtUfTVt}B?3l7^ieD_)v}>JD(}#mkos&iyVqxg#4tdPT9v2O+iqNn!&Y4Eca@gqk1as`Yg!H29M36Y|b&mF?}VdvSX z1;K zBv%-Wgh1)DL-S8~U)L8pi57tie_dToea%q~2`k~5 zngfG1g_2H@)HoNBT%qM$1IIjg@OKDf@Qif$>L`3Sp(`ynO7y2*dzlVt! zSDVn*)>c&(@GwjDNY?CQcdGXUq@;Q0Zu>wme0IuX74PCr%1prRyCwe%Lh9Wk%Y?Qv z!)l4e+Gk1;hr1Bk2YY+D!qzuu$}yZRT2W1=wXoemR)shajqHU4^ZZBD`sVt2VsbL0 zQkYB?;Qfo*r3Qf%(7TCxVB4ycZJRoTMi#G{D2Z%G6Dl9BzXp>WXY0aWA6nRQKvzJ0 zt5m+O_7O+nQTV}5PZg+L+~6za|Ier6+}Y6tv5yu^eb7G^!RX}SOF*cxp7w-&%dL~+ zgSHvid$xydzjMT)`2xKRdnIvrw}4Y4`Ocj?pjM@DQ&3;e-e#r2#v{bS!rBl6uL=b2 z`0;0BU0<*w9n`yMjW( zYV!X=YLW;Jg$|s!k#Oip1Pu_sk0Z&-+IlLI89y#+xzbI6LsStvuB52E*9TSp8H5~wBcvt!|#3{DqU|xkn zvSnKC~uJFBa>1NLoC!j?1Fy?Pb+y~K=%=3LQwSkMvjJ{cJqwc^^=ZobIkn;$0aeHT?U%&D|?B>z+VQJmIgyWtGa>s~MPL?zeq zq_4XFJsn7BZ^_=~Ef4yd0Q0bZ2)Z4O#P1vJ-8E~!DN}zx>F?o4|3XQSW8fSB_JTAS zr@!!!f3YMM2K)kwik(VSkN=Z%|KELhQY`&&RKQ*z1Eo0B|3In2gK~!7sC1QH>)2iL z-`^xPiIwtoGN4KzZp=kcl<<1~$acX%?TLWNldAMc2n#kQCV_LH#M%O;$;?O4LQ;Z` zzGgAa+X`6ui3cww2>lPt z>lOfJWO_qCFO)w(VI1kq75JAIdT#TOGW@}plOK2oR8}h-Dw8CyyoXNS2VG?7p3Y7X zari%YaG=JUu3rAQ3Uvx}=;OLuyV(CaA$HavS)-DmS65{le0Z`rF)=Z)^M7t^JOKF% zz@iSVh)oe#uV-)w^@^2lp*WX0DoUZU)&)L8G=X3YTPvAX=-c=2M+4_(6+(B2T@7aXrsK0T?H9VPRrAfRYjv^b26uhZiCK0GR;F#Q%gQ8IUR%p}BjeIp_vL zE_^=#)c5`z{@0Qu`A87!f$eKG0w>ny6XYR;g0uGR8zTjU@8)7}k*t5|5d<}>tY62# zz!gxaHNTe7V>6Uf68esVkY*?Yu?%>lAMZnJ}!s{9Q7s{_A;LxJyLz4&fefWfgn1Yr%I@D%mWi@zPv44$Hl@eNx zm=v!C2QLm4w*th6k@$X(J6s+q3yFZ-2AV5?{u?i}pi-KH9!D%t*{eba)4E9s1aO-3 z9~<3(3~o1OR5zDt%pg=!KpQS1hM?qu!L$gT86gTAl(jAd1-3pkH$dvJ zFh&T(59mt(l^0X42w}L%QFX0ky(*XKnNGCBD77G~h0IOU z(bDdKoPSp}@qe2xpp>t2^#cMPLxo)=J;3LngcyTLb21^#xPj?z*+d6NRXZ58DCNU0 z5Yz91&ZKcb&=yKOJUo!MHfI;9iaRj5PkNF8dft3c{>#H0clEKLi1_vx{$`NvpOxHk z9keFug{_;$$Hx4Dt3n9YK;t827*FHXmA4?z)E~Zz!UAY?^gD4eS0u*P0?h+T35PTr zfT$7C3hplIbN$b&(wNhU*t|LB8HPba3_X(MJ*}BaPeDbs1-=CYS;NUxj3|p%#MfMH z_L7nkkW^sS0ZzuqzZAEQwz!0f4^*>0DIQa6>pN*pb5WJHbDu6r=QXVPb*ui~=w01$eqmjK=dXm&Me` zF}HS4Qf3*$J1VDtg4(l?rs3Jh`#;CLN{>c%d~w*ft)cZ6bf{G1_(zO82-tUn-XWOq zuj7Ja?Dn$%K9cQgQvd!oBsAQA8ySAIDAq<7=actT3z;QzYQpw z{f)|ty2M92vH!>!zs0v2GpaoGe}7xKo%jF!qXGfx=lE#eVH&E&EdGay*FHD68HJJ5 zsK7%V01R9w(|WwWf+2eMp#Pv>IT~W&k!`Duk+wM-;Ke2K|9urI`4z%;Yr#6Zefu^@ z&JQkD=B1?c1HmbH0MdvS9Fcm~v;h#`TwR01K79G7N4sC*Ioi63+nC*a@v+3i%a#lq z?o^fp%^iP&l*Uru{{3TjAPT`-pGgj$fuvHwxfAK^`lkVaZ6a?jmms=U_g@zFVJ8SJ zP%uNFBW1BWl>yW62JX4|7+@RFiuR$R0BX9copt6OR6mUB@tBJsx9s-&ba7j8Enx%z>&BHx^(_KK9*&rd#{M%kJ2Gwi=Ms9HobC)UQK6Y>B zMM%SjBMQ#WNSSJJB<&i&j~oa*x%TrLNR-02UjZwDpLoE(_VQ*e^S^|X6b{sM!IT%} zrjITuAMcjI)jB@1i9bY8C?}&zp;1%S$Tw{Qyd^Y}Haa5Kz?}47V$b7rZ@up)&7Jp# z+S>Sxm_AQfUl0OYKtBV^2TCC2J;>+)GY58M(HNWt@a6dUU~QxmST)B(%s~I|HahLE zA2YAzm=%JD`Hng~q2&Nf%fZ1x@cR1!0zw~JF6d zDfxA(fwx8-!TEm|ie=mR^sn37K?;8)8TJOYiv#>~bfk%_W=v3*=+*6b0mv7C-68K0 zgc<`7f$ocm9Z~ptcPf)4pQUA!X5&SdU zm!Jm^zzXo6ccmIcwzjh(+!sNCQ*gf0o_^;Ev@ ze}3i(qyF*AMC=crziIJ5=Hfr)_kV+;|KHHs|D7<$vV7_hc}e-3&HrN!J5AfueHV*0 zss8=Vzc~Ki52Lo4jXAp_{WXh2J-+yH)WwkN7;0aC*4|d~@>@MP$3v^~-5obZ^?B%f zer1Bcr`(}97VU#EJYwChlDCjnj@}MqtjgE;CO96A>NN-Z==-`(bEk!I& zX6PjqmFspyjmrPQ9CZfbDC~RITc(3(q?TZ*f?OS36t_Wxe0pH*MgnnzFx6u8kMF;Q}y8foS2M~;(QJjYb2g=<9uC4XPGCOl;!oj? zLHW{OReQ-kY$+3tp_$(*Yj&@vZ45B3#G|1Tt{Sx3aG2WEtJmNNNm+nECA7V51om-{ zK#hW*5-u_rxlE+kr{BZZbPA;5xXQA8P(9Uy)D%kI!vq6{O6@Iegcce)p-a@pV998DdI};a z#?LC%OAK<4L>_My!`Yv{$;(=o;8}tcW z>vzK7yg?6_&l9g1#;DUF6@=QQ;Jk1ZgVqYQh;Ld4!Tw|z$DzdU8Y8qBLdze;OY&)# zHw9ULEElG`m0=yaR=>Cg_xAQm%3MABm~n)Z%F2L1yq2lF~H?S3BP6UK|X$Bjr(DlhLh&im@^10@^8Dl zF|zCnt?P2jL;@KWm`0K63NON2oH6zw(D5rMD1cwPeqmYRV<&7bt#jb(V8-}kjwPYcPLre&v9rpM zjg*n!#ph@S3JEuUEtXomW(L35g@xjL^j}F4EM$3Xd$K(M-JFCD1`vF5*+@9ECRG_f zoFc@U-<}uY6F(fibMSNJeo>(`A!-p3cVUsDi#$6s1Yj0;ndGtHNKxdaURZu;(ZC~~ z*iwNxMYBjTx&Lb|V>gX5b{&KdmUsJZu|ctccUbmj*rA>S?&L5AWieLHW?)y9vTmAE za1|uzQ+q&mRod=c&QZCkLdoI3^;y3x-~caVXD(H@6s%Zrl7wob6Rph__hI$OWkAd1CuuR5Ce8jO7*clxHpn1oI8m&EpLmLLbR8>`#Pu2EKq-nJk0TuJ9 zR@odG$w*3Mm6c=0u{Y;?ox1PO=kES+|MC0zLp{zp-sk;V*LYsf=k;FF zXRdn=(eSN~oEt@{CT;21>DhHZmJqv>puRTz1rgVXn|iUNUrV8;26{EiY6p;jTmVbu z4MRiDbA#|B{di?{VrbpIpGC4<8KtY7T;i9Cib_jiJEsFf7%*WW`2;F!>LaoTT8(*6 z^>-alpsqw9Awb4%q~u$Y`L;cuAlgr$qW#wS4v@c-1-XF(ShN;u(BVgi`x=;H*ly9F z6oTUye<(a!)FDtV5t7HF0xT+!C;$rlp{vaLyO#YfOXGUL9yiL;K|*vaV57YOn4USurjyrQi|{R^O#-YWXaT!0bH- z7?Wf_Bp-zIvpqZ~0~5^po0kxkA`X*!LlPr<+N`93yc#eq$9x;M0u~@DIK8(V58SXy z2a~=I{7tZ|GLLGT7g3?;FYX4}U!wlw-T5ygay7NAavQ}VO=M&Oqw=1Gmhm=$tS2FG zp|vFuPgA^~#D$_k_$XcfaN7=pGDmlW8%`Ewt6yZbEtk%H0W2VFBF(aGJNAb|nH?bC z%czs~iK1Ur%0g4Yya31zwnib0wFyc;YwPPObR~XoAK2r3D6T&&@~L8STiRwFqmT&Z z{PeEN9``zOwmpyHGY*u5G8Wam$H^V))4;~gX%9L)rv2Q3OBNE-k8S{4Mzegfg0mqg z`>66NM7ZS1oVj%K4Me(<1acDb; zwNO28fwSoQ{_$QqAZ&PD`<$+h@?=r9{RD0t-29D~R=Z*VEus(g5#GfJA&4*zJ%xm5 zo^8~f5r3`@0En+s=s?nMhdXz$Uk1q2TxyvBjI<@-8)|QbCk*Nh90cwky9$0-BFI_iHFNlJ#U^sbqA_*%-*Q1+39Vc4DZILR`NH2%|MreFDB64NpxsACg!hX~ zK4S6ks*4gpo$Kl8@!@BeQM(n=U0r>-Gq{)qO>+cDkUD)W$D%H4r#Hdj1M2uA40hMv z*SqWzxv-UUlpC&~|0rWsQ!2xl`)sRpkH99k5Od-K=skz*DxH?55>{k3VCxyZrjZ($ zyTpGu*&&yp)3B7L1cZV&C+=}vdlD(g^p(B{!rw%PhsE)FDkiNX+p+z2c{&i%TwFsRoQdn-0`=RVJvy#{|Gyy*n9_)Dx_Uu4q>jR5v*h#_r7ZY5NA$eP%=_d z--@g+8<+@^Pm<4xb8f+C2t%s|*v$n!#u<`NP3K4+I_AkD&lPE)62Z!;F;aC8yl#Vq z1$60R{pVM4`?f;8mY;=lZ<$1mBk(++l==B((i?!hmEyz$Fc6tnQ|epAN?-!Jw^0X1A0&0I~8_OR(b^u^LRB z;(5j~i5}Sl5f9xSXaD!Z^(-n@R#xax?{%?SIEo=hMY#YY82>F83YB9ne-n$_^u2Q| zEIYqIoIN2g4>nvQ@`kYgOIyDCP2=c|G)17 zrI1!G>RA%uZ@GZq%K}NL`=Kr!Kr@H(3&}P9EiIzgHTV3*&GSLCm|BEJ{B4hN6m(Jk zSzq;)ZTZT={kJ4Y^Z>;{Mz8{&gWiV@S(EU854=Mh(jw3)#Ur9FKlg zr%IGWFdSul-)T${6uDEtQE&khx*lj=F87or0b>3uwuurAKa20ukUqv;qfx~}yPDK- z7exkryCR@G3+$>zNa^IOhd%;;2&_)t8rWWO!Hpn5A7@HM_x3|TIztlVIeC&S_B!_f z0c{a(9G69yHvK2#`ZdcsUx4iZR=5D@DIk_VfNYMFfCFX)^l*sRp{8_G!x$tu@PC=s z#kskCl$0gT^LN1+K*021Ze*LMJ0(z)$oLkJVW2fj4q2%LrBQOV7*dg&+(2*(I()W@ zeZ6q-x0>rKFHcWMmi!k5Ac_S$%D{g04_C6d2MctoQg{KtBhW&T>t*u$c3mcCC60jI zJrRad^!eLxdH|40gK?qw7t3jIRPj0oaM}!DF7t7$O>q%??6@oJj_?Z_9!r9 zAsYIm0_7MeKKV%6dK&;(_1OLlxvd@k!6LOCc=J!R5B4nr`F{49wA_Bc=Y9`?el71^ zZJ2%>r+PYk<2erKT-XRcPIB&;u+2`&TVToAAJ16X*#-FcJdCV+%9m1Fx(Z9BQu(Xe zn)(Ow@s4c$(gl#u!DSAaCw^>f^so55W7{_Oc`#VVL?MTOwakK{0Tl&GPVV{OU4qYL zvaZO-iHniJG&icf^ock~2I3dNuqs8KIR%+u@Xdb;f_A8QYR7NKSna9@x=u;HS-a$z z-Dr!aSoZ*^aoi(BFdG+al>wIhDV~BLSTf)S^GDraS1n5Vn?@g1WM%6hl3ZDs@ZXUT zm%|9~tCZmtdU5ADvNYo`-!rLDkF8G9UF}nbkSx8Mfi-$lHbp$@3+Kw@_;Z$PfRSj& zz;s*|%5k}V{p4dwH8nNxJ14|l>L}rWP^P)RhdeeREZBYMVS^K_GF%4Ka$4Wx0h=XP zwJG*phbs9GtGTz`LB77$_V$7P{*R=gO9DN)SXl@%)O`rV&d@zaHVpVMR<%eK2=E_y zctkP;V{#%T3Gvg)DJ0ciDQz5P7ssQH-#?S~`S+oCk17x3C#|HtXXqttc z_9)7o@j9{(w1hl7Jasj-wUYc7OP?GQ&I5J<`;lKo>cI)V`cS~40N0onB+FH54%U2x zglPA^!+pcUIN&Fy@^gvPgWwPh#d1(9^qGW!nyklDJUbXV0(nuU6#zRXo$O*n(64i| z=m2T(PgM+y$}d%ne=THIDG_9P<^ZGr$z#z;#d12-(=Kg4iINBYv@YpJo-6~FJ<(zh z4k892<1u0aoS-UpC&%qzNyKppw+nETek_NmIJgdbj40~iJ3BOITxdmol`0~r2C3;}G@{=;V;svqVzIdG5!c?qT5 z<4@E_1>duWq2VA}J2)6;OL%*EIX`%CR06N?xbsHCRdS1#>P*0?g8HS<=r=2C%d=oW za-Q9WsI2ZC;JlF3gkx_FEY%qVFz;dBdN61yDFzNz7MLig6=$iXAy%;wT99QzXAu*Q z)HpKWvvcPK=Q$tshh2c^QDsy=lx+w(z5Bt=gU61&pX9!zM6qjE9;FH0$_~|CRjELT z211W?KX?GpP3q*`mOHlR+oR%(U)Whb0kTH!&f7!4;PzmxuY-Mu{QivW_jf<{AK-v* z9d!!s?NxkK1rDgBq$C2RN$q{T0}O?ypr0m!tYJF5Zw6ZLTomrQy~43q5{i!hNQ3_J z<`jF#1XA?~H_8zj9 zX6BCdJ%;~Onyz z?)2Gb3-^2zmB1VC2MUUKzbRnvI)N$MDHH(8?l11p1@Iro7nBYqkJ1w1EDpRM0wD~v za?lY9AXh;}K90BP{5MDXX}`vBk8kz$_vb<>-zbeT8FK)gxK*$CErG>5))J$Hx= zH|}dt=~s@0HB6H(5mVT!ZP*=Kz8Ez>NgQ^Hi#2y$G~hG)l3iZW{G-t^&^admDnkkY zlShsmfntkl1+psTXbPG_^E{E|^lql?r+J7FT;J20G~KEAf$%b^`GnS1HQ|?leBzgf zp3NJgRi;L3IaDecK8V)WRlYNOk%=BeIu#w)=-yUwkn*9jkdm)tHBM9X_&>h?!l@{{|=68fJ_#RRrr(e|xVn7T61%I$d7 zT0Wxk=UX?BHX;UmMo4DfN}E*0 zeZ-~2TArR!gE{59z%>o#8N`LK^LA7x)S^R;eh$rKY3A-0Z*4K^#=g%1*AhKY(GH;@ zkAgP6$1UcU>k)bAlv!3ia?;e|Ta1A>+kUIzSynl0_16E($hCZTu!2{hNy$Z~7LuPqI8J!#ecurr2yfwzb^r5l`9p5j9~|F{U!^wQ!dE`AO|Qp(_zr3Y zL$^V-!+W3TaLeJ*%f-gdSI=y=WrDZsgk+)LIZS9)FhvD_WIniZb@J(nO~*rjfuu2~ zN4iw(M&w;>7sdr1yTCuSE24^q@=k+1+Q7pYkz!H#$nRR-KJjnoks_!P2F28lwZ5@{ z3Iin*m6hm3&k3b-Hd9*+F2X{J7>&tyUjIn7BaY`Wc|UGGt@Iv`GKA8_Sx929@7(Gy z3wv_RrEJq1&|R6oT(J?6dPj64qAqUJ8TBI#Ut`jl?Kbn}6dX45<=<@ODVout>6Ctqh6K^VgQW{ZBUpT~_2w~@s-gY~)WID?5bhmZF> zHXos_^c|*#byp!$V9Z;OR^xNN>U*zN7+>-NCOZjwl3u|q{+WO_*z1^Qe4 zg<+4jy^P^28j3wdVf$t@dOSD3RW&QmS@H&$j@sl1r1nt`$J`$5+sv?;YVA8J7}@9n zPjcXfB%A6&=_U594c3k6>>EL=HbPcTuIt}@y`u!ndFnI<=Vr#V9&T#jZdA(Oeiu4h zWJzkjRFLS>`HaeedC6B zxQ&xF;Q{%6ww`-_t{GQ$!pv72ks#xH|N6Q2-YuT~FRsK0id?U+t(MWKqnN#PDEpB& zK4yCIaB&}IcK^{~YQS$t`3%lxXSXacAy+NXGVYWtpWO1clCwcA+KA%{;=Mr}r& zOY0@d1QP2kEn~K&=6i9{+JMca-nE+gd|zJ%-Pc7!p0w-l$5-8)Y>5u*^8tgB-qbHw z<{#9RN$weMDl`awex^{yc;f3kL7=^ruh6?d^87(kVI*OO(Dq^TB|L))FQli473}OW zjOZbuds;FJ_rKZg7hhd7?-XCbR@z)HcIw41GD+mt4r}^uEYCeBxw%Hd18F)=0bd8S zb7P==o2q`%-1cGEZ9&8TVEgUcNnh!gXUZ)+b0 zRoeBg@$&J_SMDZi^sY6h;F%WgLEjwSm(bPmR*;>T^F8cqk!4@VTF}&(#n|k%#bDy0 zCWk_$cZk88$d*kF1wYq^0>n3`VMVhqZv0LS3NwdEO@+ipds9xJeswQZ8yoUG<-tmc zgpriC$DR-KUWhKXY@q0@?>~)_#&<|?b8B0$3sn#zUSQVEL=D}Pqw773idwFv1Vog} zu>~`pI*P;0_IMtOh&nfK#Bq6j#R0cH!Hp_eli0H;C!oFh?cMC5D^OGONT+SFk;mb$ zuRPIAN}L~?Zyy}wY|*)mM5>QT^xf#hwuS)ubFbsPCcd1Chkdy|g)aHsh3T3{s(Nb< zJPHd=okmYpjl|=G(r&(;X_>hFoE{e?kin}jc>mi?wozx=iXF7*1;~q>F6B^!*sy~-bCn;S-hDxixHVJ{n z+z=v7t}4&GL@SFg3*}d*eU?@@8b;Nw-+s~Ai)6kYS0HL*OAvOd@K+_dU=|$JPmi@V zGR}@k%(q#Tq}6}E?7ZJ`j0gb6Y_Iz82M2i(^A*(7r)ha{jl9j_8!48_5wLp6wDW4pcsDXOgr}Q^)dPy=zrX`ZBoeb(j~bp38+og;gHbT^xzJ?KY#Z$T!POAg z1_?~Z-10|bXNB2Wq6ofha>n#SwxyTmHz}TQj{E&EUX`OX#|;wFui&xly}VIGix3g@yEnTJjOroJ= z)mv3Fk4&`X6-TA43ZrqC;#*gWl^7_SBZq;8A$c^||hweg*w!D0(3(ZW7LQsgBpha&kFn@3Mx{`cJ8%>jm zcoTbjD)kS}i+EnK@+iIF0ruWleiqWR;Z>6z9-EtA8OPl3Zj0Y()(fBf)u%WZ5 zb6dJExQ}dn$t201XMsGP2aDXm;?agBf}S-ECt8V`FrF0G@#On8Z?O^C23dMv6?kdp zNG15P-ctU%YKDx`s;bB|`gCbo%kfXouK~zBh?0NaqU>ERW(t7YA)`AlYTvyB=vAql zx`g!5+lYkIkKpJ{AQ2;48wyK*bd@I=HP$kqB9xV~Lb2G~n}pqYDk5>t+bzJItp8~( zmrp26`D10PH+NNkU`H||F5FQ#dZuvqD{3a~T%+-|kK!I9gUY?;T^ESpBkv@A0cSEd z>+D=VPtZt@7)2gezz00+B^(ngxLaLY+;=T}MqlE@+MV$N!&uwT3V{|R_v|LKp;f6E z4g5RA`>ic?mAY>c)1u(AWbHn ziN@74lShbwXR|T2$@tvz)rehdEN#si>(;Bqapg!{&tb-?m06qoHH>2;Zn2QS1;BO@?cdV^oy!5T56g%tTl&N7& zy5=*#&U&b4zu7{306=bPIkLG6UJdEj(46;qH)=qX! ze}B|^Lu94u$q3AB>|KPa*UCIG_UTi`sY85sFlPV?pA1uG%j!L|*kzWjhLt5r@x}FK z2PS=C`7Gh@^ZvlHpe&+ z(o6ciq$TdHxXecICY98y?9@9Ik0?LeFFdMiYLP|ZzE@r*er2p=jP1ave2q~5|Gzn~-t7`0CF7wpt>dgti0*QXsy6Qp`}!bgCEI zOe{p(^!qOpQv=fFGPPGjNCLd&{OkDDjU+dfImmIAH4-1TBhr#lpL#d!9l*9IBnaC% ze_PpqU;X9YrAtp?Q{8Q<$ZB$QctU@&El~{_N<~gy;;d9vll4n+IS8pO9D`Iac4YWk zFKj1rB#$p+3rbr5>bANc->aD@#Cic2Y?bTGJerYAJc!az6YEUEwT85|DlAN{CM$?7 zXlb^&y->s?>lL5p5L2a}lTJI1lwZ3fMl7%-<%Nf{taDnHH{gOuebtyo&%oo*1Xwq9 zrLA<)b#%0CEt|CztDhEhh`hjaH1n(6B)eL9+v@!RAQep#1Uf1qx@>qTnloh03M!*7 z1m%gv%R}Qy19gSDa1Nd4^Ct14x-#hqIa1gTwF*wER5X+8nwOr2!unT9-7Vv77_Tf3 z7ip+mfmbnGN8s$)+<`XD_VwNmZ(+pDPOUg;#34}#^ev4#i68{J{jYN=Ks&ROXSIQt=QkqrW``E8o&ILyuV zNhG(fV3t;{i;WF7GxG@pN@7pZ5O^8=k~s>@+IND0nFfwnaJwF{qG)gztgP!={Z3)# zWtFSW`cHCs3->zN^i5B+<&K@w%(ee%=?3BT6zkJLqN79WcjOM z>%X{u$l(TN2DWz0io1^8+zj@m6E8KF*|F>|J~N$(Ve1kPs1<2F_e z@$n8H)TiF!G|je%{NoYk-S~LZ&l!VN4~Rjl!=HoTSRn=GLl1IiX%~tQ6EPKq;NFFL zU1IcPvQCax7%~;ucD{f8deEPTGh^dPdvwsoY0Y46U{hQbFaekb4m0j3^@D=!p5n}> zuMEr}fH-o51IE@>MxdHc?#?fD`cagit$hSU-{(kgjN;$=^`!_V%GL^9qI3wFc%w|UNp@X+>0?xtYHGf zW7OP}Ol&@32oL@+GHm`@YMJ&m$$_|PKVgvQAP)FVUNxY0A&jjVpuG#rsB>ch)uC*6 zflz~HNS-=8RwKXH^`3akeTw2O_m}@k6wqze)kVgVQ_k^W))i)WgHE(2z7-I!Xh)2) zeOO>xT6xvntD)IlM)0qx@ly?Q0sLh&#@M)Ur1O=3$e?{6Ok9;AaH}1(mMNyl+Y7y-MWeLqX?9 z?L4OSHo}lH&1kaf`jEi7%uw;ao4>k>T@=@V_~$g5=-)8(-gTCo3^a49BceG!y(|vYF|N+S{CTa%8Q4{4vrV^6dwGz6>&G?(%jV%N*W zOdso6bT8D3yOt~y*Ya~OLok|mza3|@yx#eppkTSy&zBLDMGo1bK{p~nZT@lMIK3PN?H3m z*mVWXW8W!r`hDEmo>dt@j@ZBT`~RM*QJ_?~xVAnu|Gzon)`k{f>*e;GZF=_EARk(Z zv)w9&g=#H+Z||nz?Y|asw=QS?OT~E0YAb`@rgbvwzBlgBo&x&S@trwIvvo1u!xowa zfpb?-RyG7;_jT!>ok|XqPgOUs8#m1XBLbePVfr!t67)mj)XZA@B*R3Z2W@dLeA}>+ z-?R*rj!Adp4v&tG#$u7(baZr`-duERXAXE$85&I3{#M@OOxwsOQ*TtST|*7sV9IMb z;(f}BPQ`s%ap@lgm(Ul<$!Uy9NEViT$3@g8>jv{mM86w}@@QTN(@V6v_9}&b6CwZu zW|dn7G*h2Hf95S7M9hEGf-%5-y)g@uT4PG}VfOxK>8I`BP^IV}f9$;_hrXmHpZ@zqKCOHr{}imX@Vr zG@Ab4ruCcq%cE^*dht!)^Yy7p{k@Qq)&l%G8r~~_z21+OV|3iXoLCoJDr0r%Ze0JR z3%7F+A)5V9)i`Krw<$R!EbJXR^$6Gpl+A-sm@!~?fxj9S34@9+{n5NvuXYI0N<9=d zwb4A{NHpbG3%>EQj>!ByLgOdRnc$W_xE`B|GCSh?c$2f5yTGk5Kx)F=AJ zFfXQaKa1uy^H29}BU2dO-duL~OXP@P+b?nZXPMP^obSkXGBv}0`f~<{$W5n~smoqJ z%ebjex$arMdbh;t!pyAMM|1qJMffo?9YP=s6abfO($C(hzX6mAj_AKWbV%5B5cVa&-*!qgN>E}FH8oKgwHBa zqi9ub_mjC9PiWNWk4N*f{rmzyu3vWtxBVz=sD?{86O9h>Boj5xieFW+wfg;fweTJP zc+JO$`EP#(t9pkIydO{tmRTSl5M4=qm?p2v&37oq(rvMV9nuYQKWV`-Fysd;$V3bX^+Uz>~F~ z#lU|IH2`HBh)h(E0?D~I_tv}2%*@xXU&9k)pkEPMutD<}P$r>meY$408}$CQ?0PMy z|MVVtF@8;}Z?QZ}IhiP!?jwto2SWz!{=w&gmtAO4;H?M0y8=%;xK<#WVEQGqGsdBZ zkM3D5)CA~2;J7T&*qk9S?2 z>?vP;W{D5k&LW}Q$sWMT!(#z$By48QvdcC6!bycP3uKN2Gqc};SA#Wr$Qd@Q3AC*m zn<4kzEVR%sKET8zVfKY9-x}Is%+Ph@n`zqH+XL~rO**a_7aDpFx+Vekq7)q&5;8q& zIaxe>!c>yn1Oh}wpc6Z#N$!6L)(3#E{;y^7pgUsA&nWD1Mxjs&`mDO-P5f&s-7H5y zBOQ7D5B2pN(DoCWG7*BI4MR%yHRu2VkQsEmQ5Fg7ar~?(1kW@>YbK_|I;TT_4Z@o3 z{{=7?(I;FDfW0!Jr>l7$BWz>e zD*@z3X@(s@Ym}}yJOO(C89FU^rpL>|9udc>>#o(nc7Jk0Oh+>jl$!ADva2c3kDshS zhN)%&>F5u5{vP{L_%{`$0vz2|0d3!#zl_IHqNX3UQWV|KNnL>r2XY-J@NeWfc%gVS zt{J3aXGi&W?Alk?G|to6*=ZwC3@SC^+?;Lk$)*>;)`i<>Xj>NHjXa-=sdkU->Sa~?#7l_zQ~G1)_dAdbfpR5;0XbxAcM`D9UL5lEe&L~hFW;Y z)FSi;0mddgBu-XVHu3^IUxCqYQ5nKc%^SlwTy4|1l!^Dr_q&J||ei2ab9|nMa4(Rmc z27bqK^rx3yK=FbtU$zYQ$af$bkhtm1-oy{Za)2TJkEzp8XEqfidwB@I!9ybG=s-!# zXho4Y!neDP3GBSfUxp_T34n`EDsW?gGpDGmjFV4_?Pj*opSpGBtml7>MqnW-1ROgw zYy=Ac96yH6I&rjT!;yFAt>|FG#%kM?>HC5+9IO}}9c93T1qYvjHqy|xs@`b6Thd_2 z$bmObg$F(v^YfF?*yoJx$VWJmH8tq@5oRpAfPg@xraD|p<^4GY^0(nH0G}8fV#duH z4R9OiNNpPcy8SkiLtZB)C9xDRbKYALk!d-1()-X`#z@tf^|`yuho%;6KaJ8hKXgefy0AS8j&B2-gSDLqoQ(W9Fi%)KcvEO1kj#E3+%E1hJ+=$>rp^@j zz(nsw#lPN0{lM;_D%+;gU%SfsYpk#P7{=u39}Z*70{N~mdb@*fJ9vRtof$9vv&i0-Zb{gs<-$n5X?!fJ2CgWsTNR`_}Q n?2>SU@bmZIaKOkf)sVKK_{$l;Rjx(;0Y7q5O6V-f>mL6HP%cB+ literal 28058 zcmbrmcRbbo|36-lJ&!FiI`$?J*(V%ZcCxpWkwl5CILJ75L`G8fD2d2k2^ooy6+*Ub zzlW~tdVk)Z>;1mIx8LvkyZ-6AIp@62^Ywf_#(g|q2cx5G!k`MpzdR{j6v~hLwaj~=aJfUKD)6T=n)6SOF+K1KA)6?yil#q~{ zi`7lf+c#VUZCr17ee7U?OT2f|H}?GN?eb-dG-u8e3k3X|OLHlj}-4AmrI!=qH3 z5^TW>BONOr*`ZBmpvbnF!whGvXT^NJ-^eK{SAV@N4aXGAMoPg+9meA+xH!%5)v;nH;J zi?qc3vm10AW0PAiqFSsqF9cl*0Q`R|Th< z4)^zUyL zWpx!dQG#z}<^d^fC0|?n4+=Jq#ENUCQ`;v~F^ccw43u-*CfJn3t84NRZqJBbpr0M) z*$YMBxp@m;N~+EF()wmsFX(>G#hU3{PTPGFvhMta3CdJr8dFN?8~TfZX+>imvyt~t zC-*erO#Mb~8Ubami-zR>o?&ZFMW@aQ{}4M?>)8msi)j=XyJCElE0U%*DjS@W4B+6m_;Peywuo=bkBz z=bjgd?H;+ayHIS_aVv!Y!GYn_NcPw&sJHaCO>%0-CUhnp6{U$~It&(D9F4f<_s&ieA3waCZnSxCzBukQM8#kWK<6d!*yS0m-6 zY$sWAOC+H#e5gI{c^-Kt3jG=5I~LV9REnm3LB)Ylj;gqYK5x~4oJk{;QNo5jWAS^s zBHvz$*r{QD9uw2vA?7TI#Go+9*e9?N97N>tOaicScXqVxGZeP%BP+TI5rVH4mDo1B zBpHh=y8eK69X{rbl9(X}a6;X@@i#6~uqAJ#~r1dwZqSS#L7V2Zz@6I{zbP>B~R8=RZBmH?5r5T8jPg z_$s=Ve{wafkWh2&#`wnXn;<>o$0IlYrOfW=N4_B8u0<7gB+~d(3UYUA3!u6U$Us<)dVZhR^G)h$O}a%t#3F}`{xFK z{u)2B9B=7+Ufh*JC3Wk&;?{up{x90EGGTpuMn8|XMi{TfO%Q+RnC&tRTyE)>6MCP7 zQb#O}-QOs#BP-i4GE?!}b@Fp`+{REP8LPazN4~pQp60l}HX|L5LkgiuR*Kx6ieA#o z{Xj$>ZCUB-E<%(M8UD6`?|rGe9h0kF(6m{JvT}O!vvn*7pU|~8Aq@w6+Ji3*>YN82 zFMM{j5ip+3FLmns`L$}@b9pQ@sV&ZD;^g?_urOw03SZ3kZi~CClQ(Wk-TAp&TvwDV zx%xbWIH??SuF&FWwmt61a)gxF^jF5w;^b7lqlmpZ>3VZpFDs*n>aUS18Vl!&lDnJs z{F|?D_;=z5MH|n)&~sRKm3SC>Tj`uJJJO3zVU_vw6?)0kP;!;>{kOMGdqoG+GVPZBWg?4BGRHhi$#t_c@jl+X0^*Xxr<{z^ zJIpe7$5@}(^((MW2o#u~9 zafU%X`n&M(t>eQ8fU zu|O?JkXc$=^_+4f-_;6SQR66nlQP3Rohsez2Om<(EfaLZPB-6q>M`@1)Ms zYM$>O%_2SGpVnA6zvMGIR8dE);yW1Mt@v8wlgcRmNH{fhZyM*nm&9vIt zy|`irnN%W)|0GHL`i01oGjFi#D=Uh^VyblU^a=Ub?fVydvsqZ8_j7m2wbQymOJqvz-c95gLfNu>Q{SXa)ge2+hxnThv{rAo z)G>(J2S3*JZGA)WW;YUeTE_I1bEtUhwUU}}F-gZB0*yqL?WIbbl103Bjvs?J z+B!!nmm@h8>m>EA54yBOmQWA%)$NxxSKTVT98Mi{?9QdZKXYWL_85OuQR&BcjvCxFOD%vUQTiACgYv5l~v0Vl2ekY zq-QQP2N2T+w-;XJqE?`6Y-BTLvF#~V7^$2YksT!ECCYAQ_g&Xqt~-jtcB`f{4bFZp z8Vzqr`L3g$W&RGYtXk-*7&c?$^$lsxP=@x_?kgTiD3z$RS@OH3%Z(Y|I4)TYkbE*w zExMMWG+*vaAg~?Im?K2)#b6lbN~d*V>-5&>x0!$dW(s zqMtl@VpKS6yS=>=I8e)oM|?@L@n%S^+i91Wo0$q@nbOnJcMfx(P}7lq+GO&Q*vezX zd0=k4>`@l&a>=*4sgfqZe|7TcrAE%(O~%_lznYb%?CvGmn~Kp=sfPAzm&u0`%PHr@dhpvNU{5kHQS6_kez;8b_OzoZ&;vZS%K4rf!cthOR7f(dt>>c-9 zH-!6Ags-N5J*o}vkz#^kw!-36lfY+`}&MAyAbR!1ssAp}8r*ravnWd8G?Zg9JJ z;UKVi*3G<&IgqThV<9v)Tt?TG!{gGK>~plB7qnBoCb`x>x%Zw5B_lSWn0SAw(&bB% z)a}Q5&x_bCEicv{`CS?e;Yf?zS@*XYenw0-k+*)y5)AVYfVIiytLISj`_kOK8ZJAIXtHmIQV36i;)eN32McYBYcC` ze&dc96g{u>yqgiXZe-&1ac_ql$@%sh%KY;hh~_=d6HeXfHabaMTGv`GU$BqDcBTHZ zWWGLF5W3Q+=jbT8ce7+uT=nx$V>_i&9F$r#MOUF2MQiO)QLHM)0d}lF>Mjj$QhHCD z(^2$*4FQ*S)^S2C3!W04KpqAtaR$z!i^rXJlX?idj4}5sOl|pg4f=py$g9@ z8J(AM@fPj12a}J_vSZCetxv>pbx*@-@MMW1!?Ng_?E!}Ky&;UH;d?0LQSHUtmxGSr zQ!ThOm}~vxb!?F)S^;u zKuqg?Ov_krC0$HlZVbHP8; z*=#?VT2>ems`71^Sq35?vX0=HpIb}Z;GYLE2gt-a*TamXlJUG&o&r{Sg(HvDx5{m> zN7ZwK^mpQfO%hDp{&D`jW9o$)RelE<;YB{sJCnFJgT&G+?EgH6FBqgEui4xEH|~0D zjY)!LH?~(+w&jk#H1oY5)y>-+eSas~U!n<1FwV3{yhucnbO^cOajWyue%i&%zz|MA z^^RzE--V|awpF+hemBA+mYFVkXeJB4gBCN{aTPn4U;MV|jE=zWfUs(`F!mb4t~2q8 z#cnjcNYv$sQ>QOU-Tu+iLD>c+P`sh>C_2b8eGp?xUo*5$6i7KYhVv9pbvaCgw*sWBf-mEo>OY8|K zb*CSsI0zY2;F(1h>(%%dL;?lN-SIVuH2MTXVnvE#UJGML(>;%xk z1V+!)9*KS88#3H;rqAKxB%s;nVq3HI@|L#oRa+_Ex^6k- z<9kFYe$v&{7yHs=A+geT&h7*%^)kw$Jp1cY?2Iagu5={i552lh-q`Bkw*Fmav5;EX`gjyZB1r&B;Lumh7w|$DP-{Bdv<7v$B(L zG|{;wo*ELzSBRwMlDYUH%+yEiCsuW}oRN#h*v`J$IafQQRwdeR-`Is{;N^gayL&z3 z1hP~ezi=7vN^`hDTFxE*WaJe$=s|)Qw;j4?cKo00~yu?b*QnTdRpJ&5napT*v z#V~8c7oaTG+HRuuAA;Y79MoL)!`l)1*du2d624p%4xkMd2`LoD|yp~(050eazl z!iBg8XNo=ax%3+iB(EkO>56Z#M|-UuQ+Nth_8?ECxo`D-iylAXcoY)Yx^`^BP`SAG z#Y>jkj`~Tp?L+Zjn_8U+$4r&E9v#MI)R=!}?4D@sT`fYsR>xIziFZsJ7nll7lXN$^ zuUdm%VK(B5q!=x=AX|$McIaV!gn#wq`jynDC84BevIXgKf^S~WMb;C{ps$;_UD(Os z!EymZVZ$d+kJVO4(-_|}Vb3_S{j?mpXo28}`@KSS_Et28gxpZwMa&>+#BR7`q8Rv( z{fFfC4c5$R+eRuiS=W5q5Qcx#McQjtD9+ZF+IPME;nDf*!2`oZ*Mp0SKl)#c%w|+~ zrN2|XQI`5oAC$*n{iyyw2_+!gBp@J0gOHT!)MvRbUOkqKVCicAq35UxVjcVQ2!GUn z(Nk*(;l$#wu{}Ntc&PMD#0E8C)euav$p)g8)UovQSW={&{dN|zHwWD}#4`Q5a{~mb z!9vsL$D)&A(X}e;X2#7bue{*p#r_w43F_x?@+*9+vWpQM_tcIBA?$@KTxtkFD8M+K zpr$ZN+{_w%79(?Sip8?yq7Sl5@ebBmXB&r2a(9^IWnpr z147Yv0R4uvl)*);ES!?lB*C{?wZ)ia&{
        xjYdBibgTyR7@Ut4N@`BQ^-KDD>*ye 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 gJ(Z6CRZh+5UhsDzZ%Yc4OW4rJF0Tsue1ONa4 diff --git a/docs/images/SortCommandSequenceDiagram.png b/docs/images/SortCommandSequenceDiagram.png index b9c8ff2449daa519d9d6104135a7048ab4abad00..73bf04811969f5bb950984d3f348c0830108a45f 100644 GIT binary patch literal 32526 zcmdSBby$>Z*Eg&pBA}#%z<>yf0)m8eNC_B(K?n>|g3{ffbcc$lbSS96fOJcvNGULM zN)Fx4w}!oMW$%06_wju1`~36%u@5&4bImp9xz4qIvDW3Uq#%2efQI1Ep+hI-<)m*P zI&>uF(4oV9$B)2oTJY|@f`3?TWYlc*%q<*E3?AAXk~J_hu+p(H&_AQ=c*e-a#==^N zlheXP$IQmo)PzIN+|;h=D+65O+oQW`Hvjtlp~G+;hv@V>6=pq`Pn0gP`Ncky@_2XQ zrGjsQ(eTNJ==4{8NW0r6LZlCF_((f94uo3WM_tToxU7A1DSS@!PMhh2nL^{o0Sm%UA+16(unuh=qF>N#<47MkvCtt{XaFekzrSmo;-EO44jMR1y=sLfJz}YC#@Lb{G&vzz%%Fz-?%)OmcxiCCiSwHZcSTZDV zqkXh}#YON7uimvwNDj*d1ccnZav^nrGY-D1Lgk z$CX8#k*dD(D?Un`)$&;RA&VV4o*WkTQ-=<@)X7Ur+;u=s$KW~Kt=Y<(jA^++b|itB zIU(>k+419N<>nGE#6NkWHX(C#GRE(WheUU%+?~lIXG@Pta(-tFQ#vXcN%U!8q$zF* z(bS~Ccl6truJN+5uUCZUqCZ7_>0OEyEtY@Cu<;;ZyqaE==D=hs-+h? zMNV$*IlA%n+v}zAZ?BDA)bSY~dLUWMss}5W=(K9cP~1i>N+S)|k8_b@FL~@F&Flr% zmktp_RkEkGRV4jh$D{peB~UCSEf}v?bWSk^q{~i~gry38UlRWBU&wIYSzidmpyzt? zW**oq+twMm5ZZmR9&c@oTDvBrWf}A)Gg{F4WKEW+50a&Nxdl@lY*B+zn)79_lZ)ch z3OIG~*|{5Ilap5*7jM>?1#lZS4LdHqd_-Iqyd~!DHt_Sy^OWlmLVC49TE(l5jKU*2Okm zAF6b-D9p=Wp8PQ~V zI<4HFD@9*pNY~s5CS@ukwXJtsoz|9;VnL~8DPuB?TBlsM6mCWF@r$?&EskPJOGPwv!-zmggvo5(%ic9g=;%Ixgm(C``sM3>1wryLFtB3o9~P9Gc!Kj-eIJ#kse z=Y)hr4cqGo@7xe+3J>aG3U;R(%RyBz`w59_gSrADoDM$y~`FHzR&Ev? zQB!JOY=`i!50|RzEZzOeHrm1=*=@Vdq2-h`>mZ;UCdHx{>(XEHc9>CwASO=Cm164F zOZF}g-13^vC9AgZoum+wRlWzG%M}kJ>xM@@KmCy!O1*G$^ILS`A=_xyDK=FzkMt}h zlE6bR@=S$w3`q3WgoMs)g=Q7gHJlQupx(N7l>G=1gIJ(Y-mT~7FToCx{kcQJFL$<* z%C^k9o#%4D#0Z<$2A!t5bU*l-e!fxL=GDEEw0wbCfhEpsoVj+5n7*PF?+*xjj<2fP zC)+i|xfd@76Uz_152@881=ibj#J8R3_o4Ak?N6Cml&*s!w>Cg6_ zOLSYGFEnWA2xi!mstI5`cjKjhmb0j7w@tSMrtQ)CkS{{XacjnD)1KkOJ?B6q3$wo@ zoUpSBC?;?3^9fSvqYwxYY~`eMnxl}5F5Y<;&10BFIn_2vm{Zp&BlfuMXu8(YX0^X~ z<)^xkowwpgt%kGoSP(*|Jf%0P~1 zb|^)b)+UmscrD-WA)Ydlu-fZ)PFI$_7E)8EVcyQ6oM;o&hv{xo&Lp2EhzOuyb6=EK zO)pi?UYoF$e0Bkw{WKSZZi={VpK{e}j@71MQz4^Zh&xi{>-%^Hg3q+KKqjafvs;P5 zBZ^jtGitfOOE2Ou7G?ep@{Q`&tM$2ZbMMN0ldd(%lHHknoo?sx3-ycb zNZ)!)hiP)IUMZ}}GwDA=k4?qo)ZB}toJUKRFWJ=@`(Q6uXGJ$gLaonKa+cEtk#J8R z!6h&oaJx`z_5&ib@y&{LkS7`kComyJ?uYXleVCZ5Q|eBA_>ycW^0V@p6|=t0+RpU2 zE5>_*WEFzD6Sm zy^2hGB)0g=ceh@1xjyZKMNV-&q;)_3o~tj9Va80aqfJkq_}c+q-Iz$gS(r#Md zll`20ot@$6L@S}(tYTc*6!mw4f7P#{BD8umWN?z_*iztuRCGu{<8ujOV_{;&i|YUU z1>O2E(vU=5f7R1mP;IN*u%(MynD4GjE^EV5#NLj1MWr`kFee*h^-b(ckm1KVvqpSQ z(t20NoZB^6uMLh0LS1C6*2k7zzjTd!nyBN9%wqdLW$D%Z{^>Z}YjzamOFx7BhnJ{kUu{7IAgUC`~hGVTkJc$NHAgRNcY8`{#jq1MzE>I3fs@t zhciX-nR3?xfFW6YA-%f!_C_SDYKDo4>&w*C)WN|)_uY;0*}h_fhL=z}KV;!Csytn5 zg!_;?>+Cw$UwWG7A#a}8jis?h_(MZw25~o+NDi&oU~*l=x*$K?k>%9N#KeUCfGhu* zGw}}_-}L00%Ql2F$@aS}HIlO^_)Tb-mwHpS@tgJf2|1PR?QT(VXp%%Rh`AK#RQW)_ zOBjte#TcFDHEQWCw3e~i*<6WpS;W6Rzc|{Ea`W{kr-1J zdLhSsd!Y{2#cg>)`R(-xv8`#Ioaupbaj1xdR2$;o>qnVLH-F9G3zbt12rq zH)eYBqj(>2>sBAnaz9>X()B5oU8{%}s;n9t5Ki-|B;T3S*>MlJNB> zXX*H;I=2`1x>4ob&DU_t_XZ^W4E8rwdUhqwZ4-ZEEhz=c>t+LIxwP=|iIHP?cv2Z_ za|5zBwpM3^Z6@MZmRDA^U`OCaT5k2wrnxVT-FlDC#mtX4$0@#KKkXKqc zPU?27MRV!ZPP8T&w|`jKvp1BTSpisdPBB)qJnr-7t2s>S4BYyDX8d_gF~aVPUsyIN zCE0QQh}J?h%dIzF$(qj8w6uXY5fKn)>swppJF7i1fs`_cOO0=?V9=xab4EPH`6M#!i^vnTaUM&>)*>~ z5;h{GBE|--?$z0qJ1Gip7317irrJ}ri|x`ahAJVla=HezQ2?}`vnXO?jR+wWe@;ZC z_s5T=>8|Wl2wh>@sWvQ+;9JI&l{a!ZL+vF z;4bdAEdb%`zPD>6&A@&nY@laal}KrC&+uV3BtrS(k0F5k8J&J2@s`G$o8c3cl$2Jd zyCBwy=Qz|qF~hcB=1ojdjB9#v@yGYKH-^^5TsQR_-{eaBlL=b=d?n)esneyx1Glrp zVPUw?dOTLp`uu%`XaVI^CC2GX+GQ?U#dZ`(S&tAY<{K|h_;2m*Y-N#aYirv)Dd9wx z_z?jjsw|S&nx$E;^B6&u?~)PYbFomDsx2bR-TJ7{c!fm<-9hzC4;=OVM*Ag)Yw$BH z`_L91G5rK>xSgK0)ChcL7z(4&a!Y)trnVMY=AurOU%EN<5kj4O1x^;fNv9ISx$0ugGFXj0UN<`pGv&K_9&C**8P`V`-*I9U*Xh>t4khNu5^hB zi@X7M+nOi?Tf!+aGdYQ$v^LYD`V;fm`eTw8$uK0+`Ww=6qOiJ`b0Q;EgK4hpu8$DA z;^h{$D@z`?gw*`g;P88@3rc5DJI{(=#?vZAX&}ydk;p=(MG~C7gSz+eC8Gp?JYT-h z_2Y~okZ4OBH22B`f4`rZOZoR($jJZgg^rP-Dqr#K`Kni3de=f9>YVnhc*3Ydcg|7* zaLB9F#`F-fz=gpIPY9OT0r#`#$Bq#ae(f)Ay;B#msDXpoM*mP( zgKzbW47)bfx-A&?@7Qa<*#E|qo=C%RN-UT1`r{qTLV-E(ZJE!tjj71`*TkdMlL7HE zUrd0N*gR5bH`9FS$M;N3(h`)VOg?hCZZ1R3 zkR4b&(i*Zd9_Ma0P`1+*KlAN1PZYm7AMX@t)QC(^&ZFmCV>EyHMC~(hTyFp->oVLJ z@?{9x879{3%rn)vySuw(PNxee+lQ#XzaKITKQ94?R?*!;D}$LK$oArU+tym!GKu0U zko{?Sjpj{y`5*_d-upmJbEV&Tt`tsLg4NorR*8)&3VCJK;;>VU%>7^M!bvi;A{$D7 z8V4T`W!d{XDItx8=8KG8#EX3y|v1l%F6V*j)ahI5$wv*&VJ^zPpJ5B)`4b zz}X6^bPGPWzsQy_0SAxhE(*CbToafY2dM*U%qBu;3CbsA*lx61Qxrc+yWA~RT2{7v zYqt3C;lpsI+BnpOW7}gzows*(ARTpmxW{IQtW$wbJ9;VpNgTq@;G^B8}I@N53dW+G3X9=o1zOTDQs($S|$qQD+BG6TqOv*5yHjD zOuV|3u+OeSY)wrnn{Arx`)g@9Mkx^Js z^^wq4wH%|?nn0=~ZkP3WprsIUcq^78wYer;x67r5R@Ac}Hg;G-MfCz5`XHo#5iv2)2euPQ~Zv8wG`7ook5}=w!yZ4Zdz~Vo;ln zS`tGmeZ`^o(l;Lx2s@m<5#eOe{^3$cUo?f0Lwy)mr@vmkdd0_u^1U68>q*xdp9{7m z*5HLiiD-A_JZkRDdM+(`>rKu`-QI(V%eGUBg4Sbpy-IA>W9+f~=CAdNRjviUdEj#7 z%QK1#N-bIAOA%GR%>YJ}+P0QA?iY>6#}5M^6UqxrbSI?))kW@hw zBV>~*Hyg?zPP8JaCBCyvUcyFn^nns{BOi+)#kj4*&HTZI@QUfyLm;KU4KC3Z7! zX1a_=%F40RZxuY;>gJGR>1eQdHB_S|6?zIUqg* zxD0Qk4SBoj#Yy#=&_ z+WJ3-@&_^^`BCGbKOvm269$Duo;^GK1Qxp0SyZ6l>*k8^@;T&FE(DYKvZqV1-Baf(F|`9{#%&1mB1+Z*Tr(FeXr zWIsaKt;|d-Sw~7lIPIzKG_pCmtBQoeU}JHmJ|frG;c(<74VEbZei83SKgNLn7!QKkCXjk*rtclr<4qN&nF_PLh1f)1WQ!SQoMMsY_#1;6QmW|feAqzX9B@@|HGfvq~ z^5k|62*{ofuEA5Gckp{b!*(cnF>xHYY=&l`ZnpCd231ZO+zi{rf^0WNXEZ{7G+cyx z>ZU8%t-xdOGp1gU99jWcQ7KXS(L~Ea@XY+YxB4gjbhRw*XAUCXI#snbBDY$yC|vH8 zyFI@i@nKj8M5(25PT3sG5lTS3k2^EfA3VrXMP6hn$psA+Hv1)q7UdQ`0c)&~Eln4BM8tOL)VmVMkUi53 zF0xy&d8P_Y*V&Jpfn|qcZnQu%yAmqB4)95y!{)YEan1|Fiz$KKClpv=2 zX!*woJHP8BNt8j-BM_$9Y#``hDNO3f(Km37WO?!^aug;M7lrb4|Mgo9>Mx3f3h&75>wB_cK3KK;c;;&P>?6H&bCWE zj0QP@vuxsAQAPFp+iwBv<X*FDSw&U zc^O?2va5D>f>7T_snjWWz%@TYU>PigC%DQR6GG`c zuBQ!rawmnOuD}9;T-ppey_Cb>4I;62dbfs}RJA}kQE0^11Su{qJ5<$zPs)5F{~eP1 z(P=K2U)Pcs&;c)p1{Kc;W#8xCTHYlmfd7`u40feddM3c zj?rsm<+wC>uF^Q9SJVeRgr7zBuWfxJ{Sv`AS3cwJf)&-Lx9}_3EY=(K|}O^`_cC8WV#Wpq(g< zzx*YVlR=YBjOfft(XQHj(a_yJU@@1pwew6)w;>^=b8>RBpQ`pH&2*5=Ul^$i)T$tG zui0aABtQioQLZ>?JH;#QL-4xdP5DmV;kx$no|Er`=r+ZhLrdS&-+!^=wp?;7i1 z7mWEM)3u64yUO(zZEm`hgsc!CI|C@B;M?VcVwmp9gM#8GD`x6Ia28kAaWulpb&E)H z6oZm|!LEM3){Ww@qP8;u4qixg*I6preMQ@BA@K9#^XJ8ob)Vi@=(tB;?jYFYzX&)z z&6CHPuub`5zWIQd^XhcN)@{CE5dR0S`m9a9{p^xqligL`c8-;G3M7mBgt7H27_{lC zaNC1B3$I0=Vw!pR_*Owys#U?u(W}Ad2Hnc2Dzf>3h9!5lVY69hW$J7aDDw^vhkmDzc`7t~CO&rT z>w}L>#Wxm5RkeLXvj!f{jgBHHDMNzj#+j@ZZocM@xVZGeZLids*e}ajtC*2aox2GS z^X%2S17dV-AioT}6vxG%w^rwhvYTMF^)#1?vN7{qdq}H2zRQ`^ta4v{iFVdhTgvw? zFQdhAU!-fSRbe)TmoV+dy+yX5emjWP?)FT#y$_7jJ`{Td`TQiUT@CO!HJ~8v%Jxa- z17*W~M|nI)6#xQNvn*aYd-m)R9Gvjp<|ux}0khAq(c{h9u_BIEu08>`-`{Sxn-S~E zn^ByQC~l>BDAOogwvgh+WVI2RwLCzTVy-mfE5-k|uCa&W?_l(6dN_A=~AOKu!hP^1#JWHee_h$GWI0vVIYL z`R_*_gV^K%%IISEd$p`YMpyf>73$*J$L${oBU!RXW@3n+ku&ONfjiR_#)uOgDPE2$ z80j0dJ+&;+0Irq{0$+4d`PB)>DeSor)|-CwwEuyM{&xF^Qg5jXWsz`}#Z8;T$QKo6 z7#HuW5o|r}&)kDE=5GhfGMOR+m91j<47guaPc4Yvpmn;4#f$)q7P)LJj%-xEAO3Mz zm*RG*)1?_Y>DB>a^Un0E#hg0*B?ez&GxVg@bBwOUGMNOoOSL9G)pZ^GhRMuzFdobw z;QNg6N%EtTEhZ9oTCV=~T6BK+0j`gBz`B0??!nl3_LJl>N);8WB;1lR2f5SZ#i@;~ z0>>Vuuqnn+Rrfm=KiSRbSxxxw4u8rn`<&a8w=-E_>OwdjQr*qv`|>3@3kSWZQ$?26 zeNaY1Pf%aXEh8na>09B-yV!@X2;vt=Y|xza)}>laBPN{Yb}~`fQ>*)O$++tkw#syue1(`9FlFZ*k)8 z6&`zAix!lW%41DCwjkHlW+j63_NR2#p$E=Fm2W5=-?zRSbs;eb+P>@ua@4Z&n!m2% zrRHB^snh#J;OYLmnpLJQFsew3cDE}h`u;!kn*z5TCkKahP$hy7OFpBSYRw2C6Wy2T zobql2*Fk+SSB^i&st@&%E(?4J#ha{vb!gzea;*8R=Wvdw~vXlN}@?kkO= z8l$=67_bun<-I_mP_Oz*N=tXPw_kx&o4kJ+ODC<5ve&MGcJjTh4sW9 zEq~QRsoGWx)&r$CQt|jNX_Haq??0|Jo;&(W6D5(P!}95ySP>JSv6}RM@WRK+tuZp} zxztU>ioSmLhQ@obKc`iJH6+Ax1-e|e8~F#=K^!U#0++#E%5SSRRhdbT+*0A@%^|EsNoH*0J9@f6v{ClpdSa*X#FI27|Q*I-_}!?zD{X< zUX#u+B#X*52gIk6mo{oeHW!;5!3L{k(es@{k*|5JH5S(M54gZSvcZ3ny##PgXa^!0 zRssKV7}lL6A8bd;aT!NfKxF`BLIMKFh*8~+c@2akf+hXH6=1E8;^Lmh$pA>#1?Yc5 zgU_V%2?BWMoq=@*5aqg$*tr3})e9mSh80wcrW#!dK?v)Le^f8O?;eytnh=Hv-#QX5uE1e+HHBa~o zAjh*eHOxCju-;SRk3t`21$;Z#nj{Nw$Q|71`@MO~P}Kh{~ak!8aiv@VER~AAbJUn+Fw7t$Q+caPFU1jNP70i5srAz#^02 zpdgp6nS7A1?58`qq*0oM-xH+pqREgmuo#J>n=6=QA=3G+F-^!~l;eUWWgrL&pum#? zaTJ6tArN1$#Gn`WpI_48Ytwm`YmBDhcO&&{MoE>zmV(QMPktVlt=+^3H=}{Qcc6+Mm@%>~P|Ct@0<7ifkrOvXfglwmX#kWa86rZ$h6pyQ)gU9Fu>>IhFeR27L4(Ax(%G}iLRkU}D^4aRCg5CwV!ByF zrQMdHMcZ?Br}W*@CRo0aJcbHwjEq0yYiG!B!fIzOfgDdA_vKC-l9-sdZfsr`g)9v_ z31%8+>*5bZ@vdprJY`Ujl3P}xxvYAuC2v`18xXlN6;)LhfAUD`nGxStU;;s=10sbc zt=v@xPmBtWg8ky48(q`D0K;NlmpkIo_hgAJ_?oTayu7D^Z804+=fVEHdLxkX(pXbW zU>aft6vyuvX-}j*oO-qBbtlAhUoq9iEik&^E(1*AWw)8~A|lS@*`XmF7aE~9Bp#d_ zpNrZ0Up%xDb|DPoKk3#GMD4JOewqR^j?mONauaZ4PvUNmd3i$FqaWu@Kp$U)y_fvn z>0eepzgg-f|3glI0G2>h?f{YHlf(WEf1{wl`p$+Bj zt5>hUtxg7S96W$}PacD>%itT(3)@YD!{CJuub?#xWK)X&3^y8Vm^`Co^Te__TF_JV z3>ZNIQaSFMlPM5EvJ;>=+&7GZ7OcG1@1P99=}MGoK*N`mF9{7LR>0wy19<}QR}1J@ zC;R!w|BQ!C;8r>|`oVZJ4|*V^w467PXl=L1HyTnj?IrXS6y7rUcDU|U@2EJDIbGyt z`ag}nMGNv&n_Cz3A;@Z^1n%`DOtfTZ6=T23jYu;H^+Z=ti;b|ZN^a~CSya;ZL>WTf zhYc^&k)=**`kLTX4%y!2Gwpr>$R|gSk=u3ChIT-kg?Sg7{;JU!pw<%Zubct+!|}WR zuvr}?im|2UeZ7OUlxr&3vDR@=)Ou`o^3h#)1ifad6UCzzpJ_`}IDcY6l+S;iB zPILhrd^n9czThg=y;q18QAf+vK&t>?I(?IS9z3lfawu{#?Fn05%VD@U=~=~x&GryR zArf0b`cXAG8{x_CPoEEQj_dCB+MPpQ5_J<9wfam@Tg30+v4dA9Y&qQS4+J-)Q*?s<2Lk7cYwNftkgwZyzh27BXP zXpj!e+w}c7<1AkkUE;vnq-qpyO^tuP+US3GDzD%hn3B5p{*1`eVlDzc>nU+=Mg98I z-MI}88H)RkXZ42`3CXb{YRz#rW*I&n zku25wbKmlm?4_GbmPL_c&is1w@R%HnD7I8ilJE=u;otJh3Qe|Rs)giy3%>l}vK9z_ zmk&jh*su>9>qH|hM`M^@JtMr0J#0f+RLI=|iPzoqx%-K~iv^NOmS ztu>4W@)QV4Z^YfjSa}|Pb6B5G;JVq1gI$Q^=k!qRJ#GA==zveQu783m28*7E?GYI9 zCLkbSh0+g!D1BE&bvsgLN_WlQS7%9KLtWyc?R6#n! z^srceTZCGw5;3qQvqV>lUV3O3TGcc(U;uZyzso0b5Y;NOfvVAQANdU1B5@b$g0lPk zpv3O>2Jo|W6RKg#zh7{My$GsXSXdYUNXQ%0J^6~f9NJ~u!TkMK^#By;>FTz4#HE4( zCvf?)1-K=lDbjo_x;RtB@)J!^T!1 za06crR=IF?Xe^1Jq4Z~Bokfxf1kEEk^N?}ULSJaAZ7mXr;qDut+SsgKTPx|Tl+k)vSOB;=(}0D zT-a|by3#~$_|`pY4{89^QCYlnZ<53V=Pmq=MwPk^0F&QAE|%Nidg~n$ zXfIkSaoPA(7EY4L_&be&MRt|Ob$dO_A(94v7WOr~^(-n~yL>lOrz%Gb+Mr~tPM|Qi zCcj}G0N$1RAtMSv!O;=Q41^%-eO^>xESMP*-Iq#2WDa#4J!{}QcLjyfnw?mIiUuH3 zk@tw@&`{g^I|3h}730xN;%J2@-hDzw>CoQ^j_FFi53ds(OXgze`^oDfpWuD;ole}1 zPT>+@RVZyO1y-Y9a~}Oj^sK;gCXa;hGC~vzJRMG9sMS~d_W+jqnbn7iiim`H7{@80 zoe>XCK5ZPbW!{8CM}?l6>n-%86TN)7Wo*z&76mrCvy)Rm{#5uoz%ZMipW@8(uiAl& z*?M~L1mUR*@uJLL)M0;#H491vuMxIQ4q_sPO_d}3T~!A-_K*)~zY!P&1TGyz=}8>Y z(UTgoJ^X!#PS6VOb_|Zx{pM@IG!@I;Ql99nQ}r+yQID<*I_>GIlB$%TmZb~6-xtt- zjxwa6v(8NXNFi=IIw=++=D4WengC+?op(1$ZRc0e+V)dz^3HO-cv$RkAajF+d#V-C z#x)t4(`7f0T{O3`$r-+uy|p$cH3ib_8-DW)szRD+rM-wN8B1WOM5pg^ZvolJ;U9Y% z7Z*3=JS+EX1X?48hK4rpC9%z0n;lH97rvPWvTbsA!W&?Tz+ZC(n_q8QJOMi8Kr+ti zLJZ_Qx}*1sSpwA0Oljk`R8rR3SL9Id4xCdgWz;@~JxML`70^W=^mH#ENj5Y9^==Z{ z%F0cexIa&T0Samg9DaaR{yeTJXf5f#6)a}_!?{%KYL`(lkYL~cuy^YFTYXWMd`9V% zOIR#?W597BI`A(g(3s~8<4fqpUtFJ@n=3c#6Vm&3cq9(blKXd2+*d;616x{@6crVN z9w$#if5&@Z_&^}k)Lzx2+mo~qwi*XY8b|~oWY4@vZp(T=-F+-y0SDqAcxm3QEKOm$sH zoU7h002v7@cobba5CLdSj6Qo+u5CVW0K|&J0{>)VJ z8A(7Zpya>Z>sKx(V55-LN?;XXbAc!)xA_}b(9JltDd)=^*xqK9%?o79VPPZ-SE8Rj z#g>2exkZVE(_9%mHRe$-7ec%u7C(Ds;L$7Ch z$?VLGsO4}qv=}FH?B2S9Nz+KmsJ%va;7GS+QzW8M+Qfu}A2kcDfMaVr&s^cE7;TPo z2ew<=@1=&z=uF1)dyN&Mk?5)L@Nn2?4$T4!PKuBe8UO^(C+W=kG1?bec!bf`gz>E7Bt-A4G zTOJtLqU&)#qSi zS_lI#6@Wr%Puf@R?hfsQSg{YVB0#<*1CVc_L7(9-YmY7w)2Te#27E6lS@6u6L1=7h z(FgM*p&2@^AU5|RRFRI$6Qnu8bfw@iLjj`Y)<167883nJN~4ESC_W27wvup3pg{#J z+NXz&-2f(}VPm2I212ikUsGz^M^)mT^7Y}s&Q3MD3@FJ)oGNK*Q*G~|Ea9L=EUr9m z`+OUx?^+0*BOC-+llC-qYe2cj6KWuAB=vt~B(S5Ssg?Dc0Z5V+uE6%TSnX~*wn0yI zsL-NG!VD1W_yqt(slrHK*^vSFyZYoUnutwu?73GD^kD3_K`)qn6LBZ5V;D zRHpPg|Af&#`+=F>LLSPK*v{`@m^P^Yl`t|KUB4&GgWeVZZPy%FL?wqfa?RagvolK% z`UAd2u%R2H_*e34Dw4iT56mX-`96}|252tow(S5@W=I(JX$3zB+gG=>zP`QGEPmhc ziNWDbPB5xK1jukeuz1>5#Y=bs?tR9gC1lBV2<9Lxf0x0r6&Nu9CoLW)O})&;F<}Zi z{ws2gAlvmp+viMIPalJ*(@|?Cp~r0(OnoPyfdZc`sjsI8Hn=a*wYR|1XtF0C)p5rH zP!8P@yuLEmVm73#!Em+zaGJ$=fO4OJAT|yjq?nq2aQv0pVA`UB89;5rRin4*#ogFv zpWFWgXfte83IyS>0QLadYVC#s4uOu#hR(-zUE{rB%i2XY@`2wm)#-!dy_&zih(Jj! z90I^ZleF6Gav1RUpMP_EUcyC5)l|Yk(hA+XaM0c$S!Qt#<_3`T!2q`ddgMAnXb6HX zHbItT&k|%fhzbcgMa2N(p>-zF1@?Uqd%z$R<1AKw`+Fk&C$f9}cjo+)vnqr1%=8;6 z|IZ1x8pYpm+Mf(N&f59_L;H_hA80ox%vY>0B&J~Hap-&82M8v#=sz#U-N zqoSe$CPKK(9zezwG?-c6+ys!O()Lj$Js>PUe+~9In6}y%lHVoG0+I-jc1l+|G-@wf zs{VDUu`q9h5Q!B^J7b*?kBW@StwsYPBhf&d_HLTvfqJc6V4>qmxacO6$iM>bF{^T- z*D9n9pFk?kjvD_h@C$y2309}*QMUmi11S`maJy1gP9=CrTv{iyL63z%G(*#m_;sR(0paQtf4?cC6m{_5_bboLH z@>HENR>w_K<4RtH#;qMtyWv(sT+JY{FT;sp`feHB0}B?~7f=hT{z;GzdU~Mu5$aAF z5QJ*~-<5adTknxa%h03(1n)k~Ux3cLx4Xl5BdTv1mKgf4pBjKc4Q+fCa7gF{t(ZZt z0GI_kHU^v#su$h@j8hPzh^a3>fK&{yA6j}s!}tT;c?Jrt4gIv~jFu-_p+T`D1T$f4 ziP(j_3et(B;@wTi?Qj)vg}`SzkwOa1GG=fXWJlmD>nww`mAC-LfZVe6=+|85H8WFl zPLHv^c^4W5whVFs3gxp0;x=tC_#s8I|G)|)rk6z>7-RScFC8R;o1&_Y${|Y zUf9G`@NLQUaW-Dmg~lv>a%bTf!W13UZU zwt;(T^lOCFV!G{dH-w@To}KqiE$Nj9=dvDD9FbyTtUidffK?^8LX8gmNqun+7%>1D zBF_$#wtHu$&iy!GLx4tbk?7(duhA9YT!p_2bTTqB!n!Ar0dtL2(>*V7paLo1qoW`I zQQG3BY?iOF40ytEu3t1AvA({3CIX#LvhPM6P~3j8;NM1A3RC4Jic-s3TiB>DuMe zRi*h}>@b}?j1*h+!f^DU8Z0U$VyYuu*x>6aWxP%b1tjp>(|_f4(4u}JvED4an`Ty6 zii{3{NO!-}`x)deMq9m)I8bmwDNf9~q9fw6PBQ+^^)V5oOLk^vX=fO5=z)bZCicHl z;INCqUQawiv|rG!K+G{s1lcZkn29bF3)e)^w;oB9KCl z_}Q|*pWi$vaWH-lwJ?|qY~F)38Cw_1PC!d$H`H$!`#O!o>H7!6eGTOd4pFdm&dMd8;XV-k&!3Ry z^}q6a3xE;x^Yf7MX>h!luly4u_XA0@7-|F*AW~A&T53jlk{YA@8j8Ou0i)Ex{{D~9 z8Cp+|;EITf5>m3uy(e!N6zE<_{rdtfD>F|36=^n3(f{)7zf#@GiFiqG0-(b5mb;gz zqyD;$k~xsW*C)rvQyj4v51@ixU5E@qyfxUiBVAclkBR6POy?JbeuP%AVxW)7+so?( z6n>DmftxoN@8LxPeBfC$$)IZaKVMq!JnwG!1C@`x^Gox3>NZ*Oi!||S@Z_A222J3#xNFkNUV_zhR9 zN${Yfv|4JL*BvqTGB3NSNEi(+7MrPIpArn8sc?fMLOuDt{bwqV71m*?Y(7X8|7Ecx z{JZkBZ_oTb69WU~Ft)_tx*T5CYMW<1U{>I52o^X9{T=ztM_&oEv!5_@7;i%8eX9WN z4;m`He0{;mRA-<_(<;t;5)7+Hrs(3i0(pPt%?}Akr|9zyqitj!Vy{ zEDI_MP`5VhwVeUVK+HM=is2d?v`rreHave*F-|N!6g#@bYu+y+eKO_N@htjZt2wkn z%5*K>3a|*M>R8WDKtQedYd%PMkjRo2z(y{$8YQ^@uqoRAXBluLAjD=}pU&B-eYpD` zTGNb#Pa)%YACaxX5RQh4cMQ}p7H)2`R&dzKZS^RX!(q^y@Q0+&8g;%9n!`vjMsSq5~=nUI%GO#)`>6S?L76HS|7`vG~Md$52KR zU?2-77KeYw@NZfy0#yrq8L$`64m5(q4M_>UNhCPLK#Xx&z4OA8Q~?+PJpg63f(QoJ z4p|!uOXKnKnfKE@27iO+C9aYc$haUI`xy=xSA} zRH|Ho@+7P^Ko}SYoSvH_=E7`MVJ6%GLbmDX9>@CinOB^;r&YVJpwOwxQoP;M!qu_f z=-g}RET8uD6;V~f^uVF2Z~a138IFi=v7)q&)CtprLMp>hn zo>H3of(60@5W!*!{LvQj(}nwescLV=$I@2fl}h!p{~ra^`UP*LQ# z^lmp#z>nwkPEXA8-sM|Yx$YM;Kr)-zS0r~SHuKBNCN1%Y zyGu(;;gDYHt_!C1eF;qrk414SF|d9WicqK*R7%@0^^*gR;|MwgF%(*;D41^;pg)z5 zM*RI~mrwYB68Y6biuJ$5C)jMvkYo2ci^C-+Hn^Q4WG+%qYm>i@vMISK#|f-n%AzHeny zP!k2~yG9{uWR6STB$|u*ce49`=uQ87HTc7c|2sTNBM=`S`vGTc>PS5-MOe zA5adQ;U!43r}e56|7KwR!IG95Brv109D68&9+Z^t3>FEC7%`O&0}& zwqr1{|F|{LTi`XY$f4>0;PTKxH{&E+1n?%}g0e1XzHBOK6CLS2&{ULjr!qrqcU{kP z4`gYusVP~Zv8;RJ(6lwo@^wr7rF&xEFrR=&R6t39$4L~yco?uJsh@nslVB@C-UNAb z1JXPNyV^Wxy1;SdV}xv>AcJrMhv^ICREh1@*49c4&ao4(up;NhJ7Sv?OcN^GQI5=Y znQ6aVbL)Dn!E)#Ab=$FTr_(4vSp1Qq$S_^E3LRX~(+cfj1Y9FGp|qx)IL+7i&y6MXoV@h#fi_bze~{=79)YzP(6ze^5M}m+;ID{crP5Fs+p1-Z(qGW1EH} zWH+5!Y8%{(I4yWI4g_yd{^7IdS`w;&5dvH*gXyB5U5P9uNRZH!^F>#jfa+oUP_BfW z<~eo)FRBj%Se7LCHfj&1gdte?iU(_obU+P)(n6(t_(dp7hB@O)ufI~{KSBo%Obtt8 zm>*OLAqWWQi%30SqsMR?5R_nrMF;G*maDPo-`-+aJ!~6p<5CA2bW)F0~ z1XluXQ_2CRR-pTlj0Sf2HC)E#vIAD%1}#u-z#Fa8Qa(N1nT6xHCp=feRHRkr(gpE~ zMpL~nH1dx`!}ogw5;gN0-&U}*+$M}N=|Rb#c_ED*B|mcH2+ftp%=Az)@uLEZ20x<8 z9`_aHmU*j@{gvClFT4^h1CLgF0U8NB!0nwtyh1utbHal4s* zYOh~N2&H+zjY9W5v1Bt7+jy{7py7o#uNE(jCoGMv40BD&{W@$+?VXM|caYlgPEenj za(JvJ)LU$?82F4?0-gc#GU^X+n720iFQ^|hPHZ>!vOy-OnV{4`zvUKm>(+KQ`~*cE z+8jP8C3p-~9{MDDK_ZQKa2?t{6d2CQd&BcyKuch6kd%~E3N_zUh(6HG@fR&ZdZVZV z^q>?t1n^ZZ=Kz9z0Bs~N@ip6-m9(lLB5(De2A(_kC$-<)+Nxu7Woh~a8qKWs`@QAw zU!8HBftHn7Phzp-L_`laW3T?D^42iR`JDr6`#n?uR=EK<--aiIA8aq3Q8@pr5pCbS zW_|=T8Y=@g{(vW)0ILQZPq|U_&vgD7iPL*$XJ??*Jr=aS|KV>4!iu25vNl@`o-Ohp z)QiK(v*Y9Aui%j+|LDy7ZCLJXjr|k*2WRx$|H|(@u^(3IA}TGQ8Z} zFdf$f2Kawh8e}}^DJdz*$c9HpM@L4ob*hd@;lX3yLXxyX|E*nsfdbzN%qQqs9~&RX zdymq{S3pOGB?n{N38jCVXkV0@Rs0^~J3(ZC=sz_x6NBC*=7FIGu0Mwwe)sXMn0Q|x zv)PvRh+Vs=v;}>Ez_0^_+!AU3gTW4r()15mB&RDK)C>?jO0+`MsQirNe+(Z1cqK40~Zfh8}s6Sro{DdAyT7N_3sx*YgD@vZ-_ zvGb0n`VIeoDI?hwd+!x0 zuYx@n7dXOg*Ef#OUm3sm=hgYC8|?bJ-1heQSKU&&FY;#D1s^%-ZVsV;?@o;5&HR40 zYWtkNui#+&m!{=%%)6vdb}x3jtaJJdz}oenXZI4LW0?Pm(b9UjZ%frQLYmSvN?cwvHRKlP*BhP z_!&z7etV;~_<{od`v?5x0`(kT3m-YN=^(sQA#o0}S{sPvX8t&`| zg0+=EXZRERUF)u=8ddI`&2lqKk{@4==gt2N4)5>0{;@tM{-JUV!harr^h66u{^bwL z8}|dxytMGZ@N4lR2k-y!t&vz+kD;}>xtk8P1`I2V-_E+Wr*~#$)zQ*Ev1oiKKBa`* ze%~Dgu1Wf}rBx;kXO|Z1NNM%T+EmtGP1cuki31M3_?4HJf(0G5Rypo5?9VMCYVi)~C)5tGnc42?M%zWigkxn8BQM68Y$;8||>-OoQaTO~D4{P)s_URkBl z^PcC|l_t)X-0HWEQ!Jxoxh>`4H<{gA^DK8)-I6xzXb#Nfrst(Rt^0~h z9QPge?`Ar<-W$zGN{euC%&Nw#D>_7r9gKLZ7~k<^XSGA8xP+|dwXb}Q&yaRzCe4}9(S`%7oZ4PIPO2DdMyK){ ze~udjdbqqoW$Tc){QVMc@_C`uFfp5zXXK1So$e-H z{_NyT0V;^11Gv|r7GFy>J(t$X@1R?fT46*6c$-;#QvE3tID#N&EK zTIFKne!Fp!SiJw5Q$&*~57ZX&JX(TLj|mDM$ zjP$&%&q(86jG%|A@wM$lgo8?xx!aH1>&UT$z!0DL?@P(N zkkfwM@$;^IO%HY&t1BNce)ZJZ-xitjgbc6Tn|_WokYyIa4&^rc1Cnu^luiS)MZaBM zY2IJ+)na~p!0T%;9@0#4TTkjEF0kw4uI|a61e;dVYi?P5)w^F%+Ik&R>L3QjB|$Awd=gpOH5F~>SmM9C zlfj}Eg|5eN`f027hxSd8g%@i1Yw;iE!BIh7MLm$JfZmm`;O{f6+&Z(cxq@y=y%1YI zEOe_-^U*_A{5uLxxeFQ<&gF9(tvcM>TRynKg9qmmS-;16ip%P~E*cftNt2@j=Svf+ z#0zE-x(o>HYx@1$`CTcmw)K`JNghTNacMGRy*((%7ZgbfIn}6>@%HJq*?4w>$*U-+ zS`1W|O!DxQPsj0BK z5|tCuv)t5GNGR&mtq|+RbBS+fuReZX2ZmV0nR+8`{IZoE4&#$a^xP&o$I!*?hBP2k zngwNueuXrQYTN<)KobAR9o5I=brcwln#-D4zs1i(eV8-jE#n5csOy%NbB}UtG*H3e z<>^sx28-yGM_pW~K5^GtA%O$;{LgSt{oAUz|A*4S5EB=+1(~pYv zuSJ&~GE?xjJ^A^Fh;i0Et3>5)YEE`3Z$ZSom3QIfP)3N5;rb>^japBY+$_f{+x*KA zVh%t)<3!Mn+k_(6zPa&){AU4QLMC5Zs{Hd^6U$;L6K)xha`19H#ntT!es83o+825DId#e+cS}tz%c; zKL|SLvtc#WcwIenu6MBu1aJYGU|Q<)=3cQTR@U6M7VHfVQ}7QwQ9V=2_z~h2_wlPC z4@kfcQ-?vJ6()QqOu?%OR2A;N3EdYgyNU-@3pAhKvk#$|LASDr}SHC~U+I)VO)ql4o&#)qS?pp$T7{h#>+N+05Thg@NPIDcn#W=*PNgvP;pV&Q3 zw|AtdqT7?Cs5(y*IX!{~Xb>~rNMwmxE|S(Rv(MKW8~)h0{plTiqQ)< zMYi-v-cj0P$g|Ubw0AAy=wfge7kS%>J%jzgvRBv?LSjK5}h|BH(DbLM%SQ(?rP0*}<&hufoHVh5KhgCs90h!mPTjghP3$=DK`nH*W$N{Vt`#2a-yviHpjRK61ywuMX|U0p!L`@ic{WGo zZuk>jkt^LfwRZ?eDvX3N){kYB`3?$o@b$k0&5 zXNNU;23dcnjfKYtU5U|J&voS)`jP|HxK);6kY;b)8ZuOAcb08S!86TQc8|QmUO@u{ ze{Ivds3$GI>w%RXaBh;vvzJQ0PSK#bm;BQZ<1Q{MV1WGhqM(gruY4abFjcuc%mCr9U zxsHxKfX?;wVA+6CrTVd-=!DaZ$NloRw}S0DD&~HDt8-Qh018QRiMo8gEGL%%`7Fx* zrJ2{_!20vPc-XjAs1{s+N6M@v=EoSif6qF`kBt=bmj~^9MML-Zi3z@W%fvfq?wDf8 z0}Eghy_r9?v@s*KNqfA$sv(S+K~UeZ5q%hf#`j#jU7LK$7o*!*q)ICd;iTkfAsxxK z!9mJEl3yw4jbGylrn2h;ilZ#zMUi}LeJe|?q46ENZ*^0M|cYkYMFqbvMOS0RsYv&LNcVE41;TjTYjGFzjh z&qWWbmN#V|o!>OqX*t1?T3ce*zd{_3K_A~6fx_>gtIEp{60ZjbV;?dwYxlIZEpKwx z$a_uW?t?Dzg)Lg0Fx(B-$hosE?7AmKQ#71sHi}iEqPSy$MjyL7^SJO3U!5AoQ$vgP zB+-z&<08!!7|YI!K96l*T=8QX!d(gE!PP9uV9c+~zJ=uPcJWqwR9E$nz4yBz9*@zO zoTC+nyuLj>Lp=>Y@>Rw=;pojT%lGan#PU$bV@w-;iJ{1lRPfg`JZ%x5UMnGx?YLeg z^g3pM_*K~!PnA~O-UytFn}R&*VlyO0mpx=JOMc8z*@U9Y&rcQ#2}U{Zjg}w15Rf2w z21(AN(|6v7bGmJBExrZ_m0zoP3_>o?)N+lllueHD(lFLr3X9;JcWeJyv%C3&2xJeD zHa#VkwY3hLE7#i7hFOm49B`TXlppNqa{KmRV2Ea0BrEI%o;h1Gciwb^MXgkdCu+Mu zTUc%DRkb_QjpKf+#4?$_Ng^kK*#BIJ=Y^z1v`2y{Uwv<05wpAj>#?MVedy)BOefx} z028_HynP*>;C?Y4<`W1-6&(E+KD}#~-DJ)Z&+c#0qH`W=sxg~aMZe@s{L}(eP!OnEv|8^~A7)tFOt6CSqSymg0qMkY*TuHH*>_gb zwgDdovx2W}dfpndUt>9E9&w6Sha@C~tQlxk9A1$0$&gJ8W1=4LH~N-@6X>b7>XIa3 zRe9rFa7xX`{==UI@9XMxp$v~K1&6v|@VmWF7X1B*)QD&gRT88T7Xd;EW>(WwG~-9! zOHoESbhxnZtc5OYnQO{p?LD$li5z`kk8OB}gwno?)#;w%L-Ba!&@J{=7zCLo zk6e5mdGW{I{2}4CCp*iBc!4usVws-#!S`Fe;XNj^5gUNm%e3# ziGxRk^u%AeOV4dUe(Pkt)E zRQeiR-3Bvzi7Q}(LHW|9&op=rsLAkZEi8D1$U2IUFl$4YyDi9fM_^ekeAE-F&%;_-Hr&r~ESB&o_j#o@#|5O>JKbGT81htGx`dp8rwrqs}qdlQo^eAj;}Fa>m8@7{&+{}zZ;r*U;Rq;9dO zL3iy_&CR9Ce=GQ)T#y=g!~W&(g67Z_bjQ>mDM<`sWKW8sfFc;S|1MA9ps{}on*Z;A z{Pz>!-{S+*V3+h)m39J-y6J~q-@mHN%gA6v8R7i0-^EMx68WE7Y+RF!d$vyCE5uwy z3vDL=Y(Zc_z&7QDHE?Ip9qxE_?E#?raF*8F>f6-NJlq81oOb|S`S19QwG}>QrXX27 z&dMg~IspuNQ>v`5?rhB%fN1B3kKIA7LrdBe);IGzSFT)PZYsK=`hNAK4#6YfLSn+x zBc$rBF`#Mt!brQWCE0O?U~4Au`>Xs4mc#^Df?wxjOUq%4jI}jSjcx#wp#@px@xgIz$y-Kkv1OT^jqUX z(B|Ysy|GdJ>noac(OVy5PQ9eO16^7|N4Kh~3Z=6vGJn(Nq&pG|Ur+Y7^O2~uPK-A%(BN^~ITJW`mp!;5{d93e%rOTjTZh{c^D#)l>Tf7babx8AlT?o{AgU}9vDOHG!# zahd*X7GjZ+ksknk0U{4Z*NtO zMK(nBNk=2)EQuI`)RM=O73J#>U>ral!sHt`8v$LGSW(z!gGri^@{+XCll>w9@)(gF zZ+4DLPA)EiqBJ=0&f>ICyzL7-Ej9%wOo zEw-J9ZaVl&C=@Z{e7j(ljX{FRZ*EX#&;A-bO{VYdKLDiG($eHD4XTsgo}Nbh6Eqg? zT3T8ZLC#D24sFlXQv-1_2{s$*@6Sp;9hsVv0!YKt0|cQUl!j-bXd1KwgRdS3xJN7? zh?8!p5f#cFoTctjqYnT`h$P#un`%ysfkOp+TkRKShmag%mNXxh6L%q*GLkBv0eO)2 zfvj=3Uv+V?NK6e@oky1ZaPwm4s5+!-Oh2s)A8&lD)o?c4Jr?ALcz6q>4S;V1w8Lq5 zMq*fU_#h5plY_{$>6h(bM<9k|1k?*u&9559YGep`iZ%1(4 z2v47nq2!ch>#Elsfjv=XTGIWb;nL=e z49RnSqmo@WOim zT$JeYqCeqeqYq7FtH%039Y@5zSdz@uyA#;sw6Cm=zUdgV@9y^MBl$Pv2b$ACHCqkt zhQ^lsOgK&Gm($cTD>$(uknH9PX0_nzw#h?7#$u-*{J_ar(~Rc9C=D!8?=6vxMwXrX z=oB(M-N1k?;+ZbP=<-`*vBk=6c@Tb`%=lSfc(1rb_TI;m6lcXk{0Ige5S=O^3;p>9 zVGtS$#}g+~51I1eB!5;|3FpmKcD|#1Q$;IuzsY~8Q$>3MB^{q7aqJyK6ye4bcRAE< zn~M#4hebs-&YH@EoacCp6ed5SCc!W#`C36>hw(rg$R=Pd&3;JO5mfki2Ew^S>l8>* zKqnz=ot_f-*x2b69R2hPWogWi8vKo?#0cb!E0WbEhi&g)qgf(T1kwxxfkt6&RIGsb zew=tzq7=+MlrKD{(4?l*YjlqaJIxr@Q5j-&;0r`!g0y;r0xm3krKqn^OK926bDts{ zXme~4PAUmaq2=_MlZWSvk%8^3Ly9dSWwaH*6m}$IA23c4!7dJk7zTwL6<1#a+1IF_$Ih7JSsvBiZ@^)Uc|3v66lRz)NC z9ZBZHNgYYQ#2CqYwWL|Dp7o*j3aF_{YM@!srvYRa56iEe_+M#AplLN#RAog)Xl$B< zca7&fQDCOL{$>F)aFtiPeYu zfn_zrM&6*l)gWl3ar_7y**DNE^0J~V+ozk|u?T+}zBUt-m)rzJ2( zWW8`e$4M*#%y&93B7H$isBPX%Dex1m$IcKNS60U%?Rl>l9KsHvTgLY(u@)i{&;cMi z1;1-04i(my4Sb2r3TD;xH-euaK>VQG0{U%KJm|h)dkG_Wez8)xAxFv&BKp?G$80HeKBops9 z2q@sN!x5YqQ(H^$4JwsFxi)0>T*GO9oRYvB`XBY`&4jfZ0I7uoTENLRgX3cP7=c|p zSd~~HfHtM=0AMu7YPD3PV};u0{qwVB1l?beUrGGi9hP&O$EzA1;nYKal3X+kWj4T} zV4IRE!4pbkov$WN{)0akIbnWC2dR6WCgwXu@9hE~qc^mB0fU~fk z0k{ref8Mhgi*|s@A##4vkGM4lQSKp6&M_JaO3Gj(MNVwzU5S4@nJ$5+PJCHZ1MhMlCg9e*c#?+EO7q>f(!zs1y z2UlzrR3kG)(6GU}7zLm5H?32eQ5RnzuCGtT{~U)0xrvUF(GJ5EB^o^2y<8)P*2Lh+F6NzU#gIVmy~lyy0z1{qCd z2c^6rSzRxxA&N+kF~8I`6)>kU#B;W$T8J(VH8po?e~5+;UHg&vKqCIhPl`r`X4FPE zZ_-iK=)9bIdRU>4j^ZJ=mH7V9ZtiHhn-Z11n@7Jiy!FAE`VxsnGp)==zTLRv-AJy= z_tGQ(R~R8H#XZG4T}>9ZW3dgB;Njw`tCqZD$=$#Z@bW}}TPoYPoQ0s=yC7nZ1=bsO zX=Y&k0W}g3bw7fW|New9ypxG_?~5k@4ch(yERZk%fa_g%8F3vtdU|M|%9*~SSR_~Y zcv?H~HN-WcYs|AUcN=iz6cwpSEuk<@e-S`niqx!33_PdUpE5qNt zCm2CB$NNOR$>!p(s%Dbl49KAm8l>s*ao&f5bIZ#F95|AHVRTKTU3w9HJcIv|!p<(& zPE_=#d5>yBsRg&^Vp zy9I!!HBE&;X?mu;zGaS`VAW334To)yxxF3#K3x}vKS?$WMD+BVcChh)mmg;@RK7_k z96~q|U`)=1Q;%7dd3|X|rGy%oBe8?^ z3+9fYRMDpfu9h(x8G03`n;~s-(owEj1uH zbewx|ZI`a!+ULFA>%8Z>&iQArEilhK@%`TSr|u`@s=6u}2{Xxo0|&@1s3~h5IB+Qb zz=4B)M2Fxf6MoVh@E?9B6u|^Et_i1+JExhGlbxfakdU3# z9UCWSYb!xxTWgo*FYu{@FU+s&I{oM82M)q<+~P80s?@7b9|@fICJAkKVKgEVZaBzQ z;LFIyDOqIqMNgDF|H6}^fC`yr0za-IP7m{#pk_`0JUQ z4&)!#^6n`3rc-6uKeo&A;EO!Vq1YiJ$7MPHUY1ERSGj98L!ELl_pKg$6F#8P?-oi! zGo$6YzSCnu(naS^67E!#Lb(zn-^2f`tG%& z)eQ^7i}`wa$KS=q^XJcNy}p=QaM9XYllI0IeU4B*4fQ3ZSry{5d#;n){d>-njh`ti zii?-MWhOs6PIxsN+;eb1Ogc_B^9F=dDiU#Na|Pr)!2O@k^d9l>-yHH4NiKg%Bep4L z_+gD?E2bvA$bM|1A=bhwS3E{Z%hiKFC&Qm8p!h0UG5*h4aYy-o_KT4cv_@R;K=vIS<(lNFDNICL+Nti( zSqAk5Ry_=K&b7i8pBz?a&(hYfGQv%0S3=QC6Jp(-oibO<_<_pLwCH* zWh*`LrOf>j!%5vNnYhy`^NWYos`?rJd>VS<|s+$nH%p5#8;iPAJSv}zUG(TZG28ep^*@# zLLlwAnsV~y2k&irq590rH{gN92;uH`oI7%B)lY6GPpiWcowc^wH-~Mr=(LDn#y&|` zT6LVOw-wup7xuH=D&uS2qU6j} z_G&9V*>}(rO`i6>V|B>oY6`j3>cuf1HLFM=&7 zluqEsJV)!R&nyko`gvxjveJ1Jd^Wy+VQ23lpry(0>()7|9 zR>aY#4BhU@iUB!Xjp2#iE|{(zvwF!?qgovj+T+1#f#jnh;t6&~U^P$UR`WGv-ki)m;OnYkkGb=|r8Vp;s55Sd0!94wObJj5j13&mw%LUz3nQq73p=+MdRJ)&=%%t?RnIGdzX?HA6vAI?tls~pCz z5>HRK`3kSTC(=C(PlDXpDpt_I!y`V*grr=(pU4#9dXkV_8M)jPRybsnC}z70i(TmE z2ZHbho3?c9gWcG3)=b6>?kx$4mUA!Bo-0!nH>7^tdMs4Im{sU)GET+l+Wto7s!)tu zTW}*wc&~vQ7gxUQ#w*vb0gPIa%2=eFpn_!9fO+KihV6~YhnuiDo(UPs*^j#3c<29E z&_J;62Xw5x%p!9_y&9ii&?}w5etuLLbT^V??~)JEc+FV7hJ=?mLCDfq zA)T&XC>8;qd^YZ$?FhZDf96w{*{zZlip6XXZ0~4-lv}xG>O=}vn*WMkAH|HBg2Nu{ zz^kg~;eNx~5`u*V7uDOWnN2fG@&pzba{Z2LX8GN(h10NsPvAE2twqVp()OcgkjC?a zhL4YHGShJ+D)OiXTFhZ*&RPwYIfvC?c0XYVDH1+MaaB*X8DiGXnKUq-VV87TeUEzc z{p&Nst>^3Wm9~DL3T+1VZk6p~(RX@1CyzHQbs~ZqSk76!$u}-nMA5`t{%h$8=-5!t zKTgfF-BW;)$2EXQn6f%2h22?O=KRzm$MKL-WL7bNWWL*8yw0ZmjQO|57t7be{LpxK zmy*)d+P7BO9t#_vPv4npBdw1xsL|xavde7NcV{Nbct&{dR4B8>TXuS6-YR}(oN#?! z)DyYBuqfd;AsHqbUYz5;j5x{pkb&aNtn~RwEI#SeI|@95Hu5qz-d%@I^O+V`8k@_q zDmi5N`G5FP$bN}AYDprM&e=n^R-P!$wACy%uN2q%DoFL5$)FL9ADYYAO1IQSX3?%S zDf;ROJ*_vFL+Jc;xr3M5H3UeZDBK^}{qn@G_Tfme+fGBYqfq(vgM8ET9F&xl9hG~x zGx)L#>?WKaKfqHp`SSRL?cjDrg~~haOoiWWRs_Ccc(Az1-UND2R`iWf_EuNsRz5}2 zCDOci^LDGV`39vCD$3g@cHT(%ul|r3=}uVx;5gZa+)|e)kP?9VqwL@_(RiaiN*gNn zWpdp1L6cDUZT3mD0OvQZ}8GKpr;+Rsc&ifD2`WqubDxnNQ=PEM% zDMjG|#YQKZVqu{(3L71vc72*A#3N?iYvpx?nCqAyg0Du|s;{7_TbYPU0}qN;2&0^L zSxyM0VgdoQL>lHNoe^V+3JLCSqpAsVv zpCIDudVt`ApJwbIav16OpHHkyh$*UZC!>jlsbCfCfA%>Md{K-V?m7;as}o(|g5X{~&V z&ag}kYC1YPR@UwL%DusI&qA+_B^?yv>?&ss|3ZZXoW}(t)O=r|kmE#ST^FBu=ete~ zxgFja8b0;y+1!?dFd8GapXX~ogPoe1Djf6>;N(oQ87Pr*nU(+Ama1xq#CAe!csON= zDi5UZfZOUX=~1!VEX5#%ppE5_aCl|j{-*XJostF4{`T6?{ri)fx%Wa6#ILT-_Uvs;ax7AAtt~779t(6+ z3$ERN6v{uarLObzCv_>01*-b&ZcIY?R#s6--hsW8uASNIM@Rwddvmd#BlY{o2Y7Hi zgEBW^4{~;C@#Dvd+Vl%;zPBVATCvm92R7LbRScx4gleXq57|*#fI6dkx97v%7b15* z>5Yt32icY_o_}=gN^_iqpY#31#Gx|x<<>h(ALZShVd1&n{H^WfmNs&k>Y}Quswhmk=UVHxx7X5|fk{z1IF1ht~Ev9Za<7uS*%@iVFDBSS(ITHvOIKF!WP?T4n| zkc~Tbg?SFS0(ab?*a82E>kzUKZunjykCYh|0|hK_N+bCn*!DCH)5hoaO)t-;8N>zWQmU>iLy1%`B8BQmCz9*N@x;KxIg1ttmTaugm)4j?* za@G_y&TIWNC+F?qj}Oe0IZhsm8tR+XA-}qZdw@4G z^=_2DkHFCZk8uPcDT81mwBf5)ufijja-KOnzq^S+!3qjUrjl`-xcv0w&8MgI3F_A{ zXd%zl+1D4Je0d@O82MW5L@52KPZLKkJ#CB?o1g8;ZF7KS0zl=qEj|hD)L?n(f+V#Q zEBt^~t)GHb{C@oU=4J}sI2#K~C^@X=x)O!0AIvNDzGJA$U1|zqVLrxk-6ce&_W&cO ze-uO5HB{g1(BYs)md|;@!}4BU(q2A$yGSI@HybM(Gije)=_O|*X~}e2Wl>Sl*JnbQ z(E?bO?mL^<6j|6^Z?447r20R9G}l*1NI(Fu3pvPi$!Hq9amj1 zJlyt=+B>B-v`90(wTZ=q3loO?dvBIa=(L0pTsXx`y%-M`g8iR-JLCX3UYSCCcqZy=^sPW zT$$@@S(tC9h77C~xLIg##YM zxT`S|o^qx)hcy%q%P=L8g;Fdv2P)ZH#);6AKe6hE?g{t^2k-~;)k=yIfF|L24(ASe|T4>c{WY)oR zu0FKDefgeoS(8V^dLK60f^b?wIh&0Iq^u9+9X8mI2PX6W{re@(7>j2aY%Lb^gXO!s zyTy)^Hhl$|qA26{J6mggvkc=(ii+7S^r!Taz7P5AWx_6;>3D13>&87YGU6uKs~u?i zuocg8F;Ke#jW3i}H~{IC z@kqjzF(@CS?jv3cUTud$(=I%EV^sSPE}*s=pq7W5n|Q@o6eqFAPHS>5w36<^d7s62 zC)4Iz;Sm)PUx1CIq+~IYFtdqW@Mn@09EDGFf<<#gaCIWg%B{jB24`bC)Q1XO98EAf-PkZqh(Wbj0XuG>_`_ z>yNLvXitSW%fr3NAqR|X&$hcd*LU-S$<0b{nLJ6mVfk*h4@l;^9aqq; zym?v5X=-6QE%6~ah!WQDAo-)jj)dDx9SIFhi=0f5@pO@Xs}w}unXZXPN?V=t3W3h5 zHXaf2SeX*g$;!~p;Wj97nw$elO(#|3NE`q4iNM-dp~@*SSNs6<+N=a3weJ1f+2Ok< zuT8w}d|xQ(;;5Z8a;LiP4qpV9DL$%>LT)?kV(z_6E%DY8Y-vQSw0=*S`~3RiHDwut zk`-8?rcWM_T0@-9FoT0*BL?=I z2mH9r3nV1oA4XM^qJ~PG1)z;5Cnqxq-U^P4taO=sIrrIetfHa<_H%6drNrs3O#S8W zUkL?xHUzIGeS~V4Bfv@}r_%C5)KvSeR_(pD5;wMwfGwk&SR!7pdVK%#1n`p2`of*q z9Rv5pW4^nRWli3}LKW+Zo>SZ;D8O84iUD6@&&??`GcdW21F8PrGVi`*l3}c2{-AA9 z%WBBGRd_sOs+^tm7P2}pesk&irNho3rj&~fx?Spcjfe~u2fFA~PnNHhmpQ%7RBqmx`j#M6afv*1a$^L4+i{^@uukn7(6&Ef1c#~F8*+O7O zO{>%yLs0ta!XpB6GeNe~!d5zYW^GcgKgOHmSw>IXDq09<5%W*LN;$c(vBycdl7Fh! zR!bf7oR`Tv!X`=U{%%*EP0A(jbMu#p4`|JsB~Ip7uTpLTi$oVNIPUEM*asyCXpy78C}`BhGPsQeoZ;&nQyZ_q)JL@g8BvOvj?SCmX>~e`~C=v;UQxg?YTonYrN*s zmBAjEeq2D?NDmoPPLpNaxHp#8U`f`WK z=1>OKw8=({Tb1h%Y5ti|22@?b;!M2w;?S4I1#a=5T|m^4G)@J(7G+7$^oXy8!)Kd| zIl3T0&WGK`&v|L0X{$+W=!{i2C50y3;XKMr_5ifPK#4O{U;LX7HSDgu5IHI?t{Ylc zTRTvJ?3) zZ0M#iAr9B$G^9AYdo~Yp(>s#XUSc}l@|-zm{*6~dqh)>Ftz$%Dme4!D$5v~3Vc~vC zo&m8xnyaDGDL8cG+!kTuLpp)LGDB%;HF@+dyB&9;)qX}1|9(&@;Xu?xz2YtTtT+t?o_%L$EQ)DAvecUQdMLA?bSe@ zdE|n}WHU#o>?UTR)ns*6LOIKQqOo(P(~|VjS*z|Np7a+^i+HY}%OZAlxu-}?0J}6@mY#TLXo_8y;pXMK68`c7cZ}2-_R!{i3c+OuA4isZOhe(-@NrNclfm#w_uBZL{_XYG+HMs0@U*4I zorU2xasBbp^fZk`g}zhXRJu(y(&6Zwj1zht9DHHAS|_P)Tl8TPlOmt>uzj%!2Tqfy18U>FmS&YF~mV_U3g?+YJ+~pylu%!>0I%*_2vl zIcqVPWsvqfZP6oarx4E9)Z6=@8;RSMb2j~KVA~lT#gV>&aNwDtt~8BDo=O3Sr%!A^ zcUK@iZ{OyO*}^BKpXwtMU*7x_AOPC&+m@@Ez^U4D#)80+Ql#h&?>a58G+{qhA?${n zAEbGSPEOHVb$z3vK)sDYSsKrBGt4*DcMFN|R9$Js9Ov-qe}AX?9yErjUhK8DLpo%P zr!Qmf$A`AtO<-LI-G@|AAgb%eS%mEfO2hgxu2+xPXu<4;EaEH;Wy^L&lO2b*|o5)O#vO)ya%#~V(_CKgztb7p%Sz4msbI~Hl}KGjF=9d*gV^{y;~ zQXa6T;sQrbB$-VBdvV6COY=p_)mp0P8=*pZ<~>W+Wg_dR#FssEb={x^xX#N4$}W^V zdseu6eDpOXLY1RzeKc>eH2wP9i$UZD#tB}3A$c6Jf6ObCv>J2t5=et*E90S@GJbP4 zMMUOUW+2J~?c7PE1_$vuC8!kX^Yx}mg4@Sp5|cYwyz$M;F|AX=SBs*&gPgR+nVpn3^H?_ zz;gK9iaBR3d6FF3fEX*$WRg4EQ{>tJ`EoZ=V2CLp*6qk z#1kUdzP}mPhLGA&P<$-huq9sC^@cnA(|sJwvY_}E&GxiR_qD4 zC0h1aP{NdupcIDm77Nv4+E{^x{%u#@t_X>|yf|qlPq2dPUCbpsRt|~We$}ygUYgbw zEjI*m4RJ<#2kPB%HB9{7z6g~v@xXaJ?J}aj1eg4tMBUg=0i-CyN?A}^icI%ez_>;O zrtVlwoI=Hq$;rvNx$q$?(5W7R+6Bfth^O|2(!XmLnlWXRT2ODOIZEfDn3D2Ob{yLl4o6IjOe2)|6A^{@=8q$GTxa zxZ~w~+U@mB?UzMt`o+g|HF5ap@lWL_2UHoA(B1j3)i-sOU&!q}1ND=!{vkE!BCnKj zYfd-vlzu@NtAs}lk*g4}UPmjZ7GJJAtVfA)=F`uk7#&^W^S8$vJ-q)Z8U44Z{<_3i zGac0sh!DVW{{QilVNfqYY{|*VsXM^+ne31AKamn09X(&ZhLD&42=YR>uwo3?!#0~s z$1kqn9@Ej8o-e`=4TFUPHcnbG;E_UQTk>#g$D(Xk0 z8MK77GZ61go}STh*-`2c8t%Xj1{@ z&L@s;E>mzUI}=mSn=33F930~qkcO{I<(%#-uogW>^=$t^QcUmB8;kpU%5 zIiKbdw_x)lQ?S~2PuQO+WLKe`-jbRxt8PKjTv9~wfz1XF_>PUfq9#kFZGpE~Zph_e6v7a1h;v6qhg5>>gh0}>r^|IQ%?8)5cof5XeO z7#%}oK6qthA`TOc8+2ShRCDh&gpJ-IvH}s8O&zF&nTf>H&PHth zXmFp!MK)Ri5ymaogwTk6k+0Z2%k_hB$=R4Dx-HNAnn%1Y(};7!lHSrC5Y@#eaoT2L z7+Xc9dOyve*d#ZYX>{f48IYVHvKN?gHnNAy4AzG|5(*7ou^+&ZZrtQ|EXa&tgNX6- zUz9GhnEWi*5^lQS0e2tnH7zZz$&sQu5Pd)ed}Z5HWY6PLWQi6;j_o}MMV{`%a=V5c zld(S~AEcW`rG-#nw&8DquR%5gwc(UbRzK(|VettxEyGxl3PvA46*9CrQgj|<*S>tq zG~1i`7Ie*bzCJy*S+^$)qO4x_?StyZT^Tp)813cUhT=kThb<#Qfyv0`oa@e() z<2*JJ6a~w<46p~`UiDY{?16g6B4)F_vo^%DIb7ujwk{}82AIgln?S8^71`YZzXy2H zi3*yrskYQpdU+px@g@uG$Ij@B>aZi@G7fShGX4rKs#|Z}%2hgXhy@DTx}hJ*FDL znqGYw)0HV|vn@@TXc*)Xu2C1!ivhRrVxsI0P>3LMHfBmnyQx;d#5;u`%C??+QyUc( z1-9IIRaH`J1_A91P!JnJ+H~JsX4?5~)0S-2^8sAHBP1kCtE+)%FiV1v+?zn)cuLIM zk7e$qYo-E#BUaLg6Bh>A3~CBHbL<&&Es!}Od;p;ly)so!Z#Fkykjjbq-J(H#0`=BU zhDQ$~Mo=AwgQtY_rkqn0P^J5q*X|)BD3}FR97OxQm39pb8Wm|By^Cmf-vQP2Gpx0l zC`yN`W2+%=V3l-lm?k3cc^!+?^pug7W{s^5MQ*MroU_U`ELZ*t){9xLVb6Kw%2bn#)DK2Qr22+&7_DNl@F&q-90*k+i0%+eB3Q3yzq-F=FYe>x z)6jQs&-vA*XXJBmzKVMQ@Xi4Fqm1n@vd23Gs~-dv*$*xq;A37u(U5rzsNnWWLKo)t zPz6%02S|e$a?{DG54f)7-h0e~;tV@GdtF+x(wy^Y*B`f@i-4ruO*iASy-3IpQfyui z>Ko5{c5%C;)&iHeLod)dr)EHPWSIexqizCj=`|42a)IRZgg$1#=iZtRWJZPK9D&|lGAM;Ad{`Qde zLysuFii8gDtB_+2c45|zMp@R~87)UkwbYmBw97AW*8TJ6&q3aPqaN?^@&3UEzg&~g zOEd3L>~h{UpG{wz!q%updo7W-Ij zT!WMsDb+h&j!Qbtb_;_)1KatzjAwz_P_8LOFL)tznQ0%}FzI>%vbnu~Ts@3?6gSlE!6U-w~Szg6x*XI>(>JET8gC+$7Mf~~2oogNZG7r{OQt0X@N zO7+LL>hY2{&?>dSlh~!*Zd={(6>W=9L(wb&YJ%FBiN2#8EFB;-1XP&rn<{7omKq*N z*hj&mBcPs{_U}&HmuafwzLHi;1L96lyuuz#UIdFSx&mbEb*RyG-K4iciJoqU041?I z|6f<)J60d5s;bJO?+j@LHd(Lk?#&hPivtri{mkE>XsPmWbG!WLH$Nh+15t(GCuAaS z#>2JuO=LbbLoNYeLom($ftoOTEU&Z*C4>tDB`*fw7(qG;!ZQrzDFaO+?d~xpuZ^(O z4r}5UV1w4YTX3}b>$f)Q@S&q70Lv)fEB;jg8lriGYveYkQpt`PgUnIqhz!H|jnEnq zu2j%vNl2UK1?Vuv>6=M)^vx^Il)I;tbp^ea^q4Th6#^q49R^ihsZsPW0b zhY5dum{Lqta=HyuBdHct^!cZaS|su9LL~H41<9H#5&Pd+(-f`lf$PTKxNID7oR&C; zzs$DzA79#LD!k2g zLMWU=88Rq2j6K36(t$EGv~*WMKrq1$>VfhOuy>&8Vd3G(52W^_Q_c*3+zS_agK`gN zH8nMPd3mTCtMfxb%sLsmnz{F`oGF0LaO@btsr3+C7z7Uw4@&3E{Cpz#2nE)C%w^=j z^?2`ngVX|~cW#_Pl(|s}1{scE;Tw7GCW5I(WR9prZn;1a$#IY7R$)GC;RKFN>`vm_ zNanNepesU($8#8}1yN+DFng!{%@v{%t0DJEHdeJWF0kA_( zyKHjz=2?RcSjofry}bz2xtN=gEFDDAOwTq6PE$+H`kljgZ2(`M6B_5wKI^V?eAFXRwU z^gXMjq?Ej{zP=8%E161N#rveBd=$vC;F@qq78{J$WW&!lqY9(DJ0leooUd`ho zASnuEXhe!~2rSDUc271slkq9rc6ZQZ%14oFo@+nCStULILO557j*buY^WK^(>@H3> zCVRlj_5>ad7lY3NBUCGpork6EwKoel;DjN_bkV6*55g_K?cKM%>tq7 z5znI<0jjd+}K>1ZmSx`p1AhrW2@Rw02;DxThHRbF6Ey0S#AH1wlq+Odam&+~eSKqtsbVsM zSIWrP814u5{dt|?$^Kiv*VgBKPp_`1WJ7s}5XEFu>>3b(y6!!HC~~s{rRaOE+bp(a zcaA(VX#l33qYQhUiNEeS^vypDsvV|b-K*Hpv1C+_b3 zHY7x>WMuq&ePP`_yA5%r(qN}=spt^rD02HpskmH?n#dswAz&WfQlQ~qO`8Xl_uKQ? zZ<@S9D;5kcu1_nLDHO9pz=>dKGcF91=-ttza+HGcmoL zPhy{&N$=y1Ujg{Q_DZRL9P|L^$5G>-AR0Fhsh7FAOpR8u^nX9z&1}F<;FZ)L9=Pw3 z_deAo^tb!4e~yijm?5#WfBg?_lmB)Sv~8d~l|fSP;K73r zg?f(hG9@$475Jz8<6K!&0d4M%Khgjvd~|yHCa}hf@wx={ZCR>p&icOZTMp|0sw=@DHn?r}%qJG0DxpXOdz6pE6fb>%TR$MOs4PxLApm|nn7#bQj zVFm{WA=U^$UV3J9=z8v7+RMS;(36Zlmj^6`>}*`R_X(hH$k`bA3INxD08UsraSn;% zDzC!d=NWgnJgbw3hXm1DHdnkf0teEiNYah8+FJZ*j8B z^;h!`9y};}5TQ!}r0VZ4U=1j?CRVZDu8=U&1Tb;Wid*EjU+zP|;8>pD))g*Lrr6K= z+co`(2!(5^fV?kK$~74V6~CU#$ZeLy5O)F3eFl*^`tv1DXC-FBZtdgNf9{xlJh&Yf z`#&}r=tRGr^VZfD1ON3Y&i2_zU$r~nIusrp+$vVm08kLdo+O}wA&r4>UQ1KYwAF;> zz#7*H;>lGGNvA1z1S^_4W!_MO58@G+NpaOIwPFN+?L1Zl$5{(nen8r|930b`vmEKqWiH-^@q%E z1l)e7ZK0OIup1`}9{IJoev=Fs$43ED1$J=VUI|KzW5Idk3OsP%TK#= z>YF~#kJSL-Sb&f}t$_CI6CDKA94@c?TsSo{vIRmy@0|&B>65_x{R%F_*h93vh^`or zm2rqT1DB^PJOtt_rRuK=V2Ox)_>f;Gi&gUDOQ6Bj@7RTn4&Mqr4;U1db6-N)zz#I& z(_$&G3fo+Q$)Sy9i}aS4mjhDc>E*lp{QgrQA(k@u0QKs)>{=nrR5a>*{g_6=$z~GM z51wl_EHK=01gA~>0*6@iNEK`y+y0{D(7qo-l|r(&1iwS%d{ow5HOsJ4P!LT@K*sE! z3Ihnr=vsRex&QYH?k@_iOZUfp z{Pm@Yj{lRux)o>d zmo@^4J&4gOgX`@h=ee2z^k2?9Zx{<@^1)mVI{HoMDil#ScbFxeE7VwV zxef9)kh0D~&Uqc)O=1VQI+$@ZrvTy!SYOK^u1M&A=nwHKIE9;Qj|4##jn{M!^{DL_H|;Jvd6a{-V!QG9x?bQ++P_YPJ^w*Vw` z7&obal?s&!Xh$E6*+7>AtZxD0Bc+d%Q{KWR=$voh4?%B+2g>1|yDqj2<=1b$_5lo+ z^p&|g&J{%<7|q{&v5Y<<>ah<9zK*3ktyu7wSd}-|l0UfM`5b~?X z4wu=DD7vu;1-r<-9FdfcF_zBIL9uHS*k!5>!C-Q@ik};bZDS4c#5D!yUZZow;*RJ= zuuAxDf}o};=Q67c5BlmfjBkKYz#(0SM!Q0>78h7KQ}#BJ4IFvxAw?oh&c6YUT2to8 zN!;Ri&ZtpvtJpzqZ(CFkf@=52^)UzTz-SgTLX{w6N5{={9%and3grgA`e9JRz<-#t zVs%Q}(o~<|h!By$i!8&&X#$CZLjw7SNvD5f!iB)|J>A@3=mjUy^>sZZLh)>^ zt*l79{$QQ?59h7gTAPOi)*|GFBVF&6LX=-oQ&Urq)LtKk(SEO@uO_YqW;v4ceD{_ooBAMB?JG3tw7^^-(X}sKd2`DA9xv(f!q&g>EC9KREY9c zwY9Zviq(<w&c*Cjo?#1kQO0dC)k$7fR(9+1P{{8qHorKZDT)#^ zGB$QC^*q`2?VTOyqqaw+Zf`GhsvrBM5C0^s?!rz}SMN+gBY}~SQdmMiM~=7+bs}Ay zJFI^fLvx?(Q*SL;I}lyj1iJs=a5>Zn@YpxWXWFtNN>2Sk3s)jM3bf!91vyWwEiNvu zu6FTF5p<*){13JlK^=4QXI?7F*cT>sdpk7?ReqCnTeLwGpV*%c`qvW*escBy#Lr0p z!hl}H&cb4Ogfgc8-;T)*>S{kYv;>C_TfyieBM&cA%D;16u&kj)oV=bM1(5mDvZkbl^Kkqw;M7g~H>JXMwW#x(XK ze~bDp+QIY!+DGKTCOw1l^z;Oa(*7SYgMX*GAZGyJM1!>{|KQNZ+}<$c`ml9_{<`>F zo-v$%KT3691bPM@GV~s$O~iZcQ{WfAi`QlRov+2RqRRzazqtwt38f>UsRWYy>)r>~ zh$;3r*nF(Mt>1%IGr9sM;g$#_75nM`ZknpU!U&XW=YM6eHo<1h&~1Iz|EO$!SPIN3GT7b?N8XaFzGAGIG^{!Zz9 z1q&5bvaM5eu4xOj90x#5n{`k|!JgC`iebEs1J@wV4+D;`d+vwMPk`!DB?^O*VY2*1 z&?$WJNh#09o#U$U_@z??p;g0~1HJ&A0=jqu%#Y#W+jIOtx=LS)*+$ew%5F{p-!OyM zH=K*vg3)DwHknZ3y6*r_)6Tl}cJAtao9Whou9QvZ@(tigLxY+!ZX~56`n%;0xV!a$ zkW4|Er304JoinzN8Q=nhDz`s?dI`tTgK^+{Iv}fu@?rF?#H-_Sr@RRe0}6!YH`ZFD!6tc@qXVt{MUuz}YT`4w17-`g@7N^}}lz z;!odEgba&wHpR!(q({q>(a}A2G|AJ zM$!~;DO+NWhVG_FX2gN03A_ThAq-jNS@lqd>s}Z>t}B*w7ie+!2uymFo3(LY2YFo# zd&zeqB?>L9tYQm!Uro&uG+2V_h$ zD1>Vk8fjJ6lzFb9Il2r1e7(&qcb?Ld9)V`gPiWY^CS5^3?`8%eUonMW+iGIpl^<_{ zNQ{zL2jLOM`(HperqaWOQXp4B(;Mhv-CQ1VSg(w25Cn@n^Y%|~!PQdMFc~-E+l048 zj2_1$B!_s1GxS<3oI}?42th$ko~4_U(mexixdxDFF!b^g&ha5!rO%YB$4LDF=q+)X z(~Drk7#kTyg(_u5NuCVeU04Co3SSSHA^|$*jBTi&__glJfeU*S?f&aPRlP@RLO_@+ zU-}}DQf~4&1}u=3#l;N($N9|#^$68HSU&jp_&3t8R^6*4$ECgDw1TkLAXf=H60Q*D z`zX_Rmz>+$-z-bUg@1waSBvjcojmOv(?9Zu-aUa$Pfv$zb~4@v>jtfKkD6dAP@2xC zqEPc7TU%=k{@4ZO*=;GHIZ%&lBvt6yzs=VzcR?%F3>5oMnSa z3V7Qv6GLs=d8s@iZWm%RHEoNhd3nb{`D!lnhKZ@Ta|yvk3N3c$9)$=QluPQpoWW?=nDw=_O!{}@WIXA&Xq~aiRiKl=_`Nrd>-cQ9G4jy=i{!AG zC;u8O@$8fB!= zyZU!8LoRFkn)}@2I4TYfLoh5rDNEh0W3dh1D^?|<`qc=21`9Mu5s9GKbc5e%USd}1 z@SP+N#ukQT+w=)pr9nuX<8nA*1q{{3;MtxVtWn?3g$D*&d)`PLH66|X9CU03ID-(( zAU(2I>}USto|?A7sRsG`A3l5-5bU7>ns5jsrQggw#@v@@P6P9a^xMivNN0ic4OE^H>McxjuMGxS8 z>EL>qPvT{_z#+^ji2o3L_E{f1vgVkhUm;*RHabc`&Po*B_scT}#h?{LYKS@vK|_Vk z4*d&H^IC$iAp9sPZB|jNH(czQ5Watr4!~=uim(^c5j~`e2pSJldBIq4y z&jT~jdyV2Sw3Szl!6jKIp)S{B_Q15X495j=L2$QrK^ePqG3T$LK~ls8IAJdMy7%UE z+B1X)G2II4YO-%IN%kFR4%kyQF@GrHHV*sr6Y#-_%VB)_umXTXGo4yURC|dZbyVcu zzI)zVdC&Df-g(<#$@w120f?92<~9OOMo7*opK!|K6XvW%2c>hL zF$xssQUE-9F!DH-4I8n%0#b}^$FZA$Uq&Y;>R87#*xKfel{g^Eso!)Piy2a3jqy?p<|XMtfq~~NI?^F^ zfooK!BIZ$~!_MWd0q7ie=(Bm}XVYMrLI5FutrsR?K{kd#9RMJ>RUs=R20||kHHD-f z06Kjg-iZPs-`|Bq9$bpd19lu}T#!7eyH}Zi3hpAGdffd5u;d)3za2f3rI*hSvBIg_ z3!9HmTmye3x`Gr{o#fNg13LNAuGo;*H7DGdPf$=03MHiF*tT>XffI6I?kcLkZ&vIF z*EGDVE1?PI2(MAkB_daELS_d1?wV@Qq>UXl8DNxw0bX&?{;y}3I~B#H1hXXw7_R{R zJopTo#Vkl;u$T|w;oF5ZofQ7K^tCSShtD@jRCa*?4PlR;r!h+q-lmq^sdKC4=f!D>P)b77 z{-bI5NI95faW%z5X#bXHe;lthQ$TFMlH_KeMl^ zZ2ninJO)3iBr!4Z|LaNvGZRw}@Vk#6KZ1(PV(ibWM4LMB^y)w517liZ7)a6ujqBO7 zXHXHK#E`KOU3eoN;Ue=tVh70Uyi*{ULm7XXn8@)8XqAV7p<;|!*4`;fvfsKlSmE!E zP66})(Lb=T(A9fOt}&@2r1r0=hCe-awbn%%VvpT=`8g2SSaAmXdWcO%u1$CeGmE|a zFTU|v6GVyxDc3CH`UqU2=3XHXO+tM9MHdO9JN~m5e1BVI#2yCkp~O^ADb9h2`vy$) zo&xLGoREg!sa@3*J6bcZ?gaoegrBjXEwc9k4$q@Rgc| zX4%;Rk7?ulB&S9HeM+$;fGKsyMp-W-_vaR1P@>ZBr^rx#CIsG4_SfV@&AV32AOBp~ znxKX^m%&WQ->=!>J^J(1aPP?ZU;Sb~kNW2k9c}*j_dmYy|Nfr~6~#3_M_Bfw1;IQm zQ`n=CH$hWXR#t{&Cw(s<3#ib}NSa}=RX__CEs!Mxm-xAykGGlG6bKMk#R8u|e6OK< z+#kv(yizPN9keM$&rN2?pVg5i5ZlYb*bYF$)BZL?72$YH%-EvcThu1dB*Y1gF}X{u z8jaC_3`fPdXM|Sdg^2!oC(t-kc>-kWM{7eNRZ;;CJwV-0v$@c$sVv}4UGVy)4Q1P- zpi;m%KzUB*U688%Xwr3ajDTF)%ciTIKhG>Bfg7m+xP7`nG8t@Rn88)P3ndGj@e_Nz zx=oB?ZXURD2_kN?Z>JVCr6X3D&1+rgf^uFG^35VN;C;u3`HmG#J}K zL}--ML5PWBvW-1Nb>tKwd!aF88B2+5N48|k7AM&nTh>9A%GO9GMD}HzCSw^<6Z!5r zecykdKj!B*#*FuU-sgU=`?{|C0&L%%JHPdl0JIzR!S+k;4PR~F$1=$Xhs<{iLZ`e7 z$(Yj~;o-aB!$oxRN}mk@pgDFIgmA?w`GhR=jm@P&eL^7pQzK}1u}tV`aPG%SK_egg z2N`0ClSmY)#2;?|Z{^}nyueQUN9|zqOSrCsFq_IVK$exHAw%#vDK%YQ7(m78=B*f^jD;Z*) z$__o*t##zV>LA6?3W6fozn_$p+z~V3_(x3X3EC>c>U>Fl*J!O{)g6v>XL=`Tv$@mu zX>t7gt#6p{4BTS2PxcI9GQiaWg2YxA(ywv8nbiP;YA78jc2NH5B!&gS{_Uj<%>Zv4 zPNi6x09k;4HdI%qF#mlCw{#8R<*zY@8116MdVpGvRM5X@G#WtoDCG;X#F$hn%lpO=d?JSoST-5lT^`gj2y zh?zv*T1rr#gb)cVKv^Ch9(dIBoi{eM$Wn_XU&&;@lGvJu*%jo$cW?NbDOc4ExvrO% zJ$JHb;Jx_;JknQ8Ot>n}%Z-eg1}9`{Za)(!iEGWi!BsKmuX7PNU50pW=kjzj~$hm2U@HA)`I?Brx_MfNvKl}u=B8v=!;IM^-1!^vV4z|F)-rg9o zFD?H9IAa}{;e5G-x;H%dkZ`a^f%9P*L%g(2Ei5gI75%zc9%qxJ4S>5!xc6`)N(lHzT9BP4O(wD3S8atZI{ zRY7fAFSfZ@4R;{0Ccz)~C@U{;mTNee*#<4{&FFEkn;0OmZ>K`HB%hL&>&C(OWyq`2 zLeK3~J*V*MII{pm8-8{drFheOV{o_pd0A{O_5hZHxASH(2 zwUX#$T}2?IMZ9P%tMnQ_Md=Pn89Hni!5_iNeQUr0cXS!1Psn8Q2}MO0HxMz;?rdBr zYsZ{bA->7pLpOZ=6;PSeEX+aR(*{+&TwGoMqNF*{R94(Pr;nlWJ&OZ*mRm6*rDbIv z$tDg@5W*QIbOCNS=81moig)|lhhX@~1A|l#_-2K&7TF`oBD{Kco`rL34vFisyf9_aS$`!m z@|LnTz#C26EL)F~W{IFkx&+Yj+tH_NMEriE z??m)QuRL*MWooK7GMlx_iqUU8`NB>HGuOt1cC%y%MtMTiqtmK1 zWQoo6GkxwV++~%T96Tp%tB-s;IQb<)Q6sA84H5&s;f@YHA(CRDu5nSs`1~i>VrLtD zU_)bY(W|nVWmJh*p|jL;tZ6Lkev3WsI7k_4zXYTAB{Ksvd-Uh2)EX5S9UvUQ(JJcg zZ?$u@XMwuxa{sopPio_%w6q{DLXHp&x0!H8czDAgYj$eJpNA8qK<4r+P_`~c4YYAv zXmwdrO!#{J3eE&LfjlZhlA1W?Nxce0qVjuIIwbMRx$9kwCOeK&b2BqDOG|!>LEvt$ z+1Lc^?rZ_sk~<_FIK7AAUhEna3Om|+Jan*U6RKtwC3s_}A1UBoovOLt5+C#3nZI~@ zf;cuo>lyC( z{-g&+kRj#}pHq<=zVlV|V=R@b2KlRM@#1VRkJW$jjn|~X;=%6nx0e$=V(#2nAMp6& z$B&EtDdfNZM%LL{PBe0UL}5O*hBl9PnkE#Sj-q&i(&Vkpr|jb>Jc4&)n~lvcT|0=< zb8(TC#QQi(2QL*Ewpf%J*&JZgjpaC4v<@}Qk3(TR{#$iRi9Hd%Dk@xxkU~4oE-pd1 z^4Cbv?*^?mVMOW-kzZV`n_GhjTvL*AUyj&L7{;~G?|lm=6m`TUR_P0z2;Jx4;uJh# z7ZnddTadz9>E)U|`JP+yu)(6mv_QcmY;8ALs41SZK)+0~w@CQ~MUJ#YUP%nn7Q+4h z8j>4QLvpT8k$ytS?y{sVbegZ1=s7ZQLzzQpo?!Nxh8wn@R`6^KThnb&K zaf!TuoG67x{9E_RfQ)o=bsamr1*a&&IsN%-#u?q0Fw24o|AyskXI4GcjBmAr%VGbH zfSHQDlJb5VMb)1CFFt#dY*PxaJP;eAowB>_(c9NIj%~S?_;Cs7A;`b;2ybx!cN!F* z_3bU1F7YrKLc^MN(GfNUm6Za5SqzA}=Rkt2m} zFXMfKYDa`_VitF_K!e|MdImTl(4gR_@}V?@j7rQ5w!s@o{kqhNwYjza{P=m=x|0n&6#s^jzCc{4vHZ<$A~_ z(nzR?jOElAh-b<+F__@XfazULr!EA~jfkX;=9(n=OpN|q7u=(oJ^ZfYl6GoRpUEpJ z@h8kkuuBioa`WD)-afJCc2P*=$n{gEoRA26hv19HHTtT1DnrpH{e7YdY1eAO;R;LAgt zE8O{ANop{G4P_T7^!URPJ8;zxdlHZRxvVX~O)v0pJ^5tsgACOq1XrCDPJ6Ft{LfLh zP)?3d_d@B%W=Eza63G-DKH%-iwdM2UKuG7-4l+hF0HR{@SaUTat(BGW0N z(ln*KMx)7cA6nj<#eSrZXG(~h6Zsg98wJAP3;hZ=D*Iglg0~TkEDG)KCx(0%OY?>b}1bV zalnU4cyQc^Uyy{qc(a&D?2|u-H!ST~eAikm*`&y0@_dV{qQDrdXdLFxd6OB%3mc>>zp9 z&ab@XLSRdr~F-O2d<|Z6#Jdrde zWMnTY6AMnZO#K+j_12`6F(K@)XQEa&_zPURX?jNlRfdF7WVQLPj}Eau)cC~z_uYnG zsVux0fx>=GB{{SPiF|Ggr From 508c7cef0822da4348d1acfc3fb8a202220b625f Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sun, 10 Nov 2024 19:25:44 +0800 Subject: [PATCH 552/619] Resolve merge conflicts --- .../java/seedu/manager/parser/Parser.java | 7 +-- .../seedu/manager/command/AddCommandTest.java | 16 ++++- text-ui-test/EXPECTED.TXT | 58 +++++++++---------- 3 files changed, 45 insertions(+), 36 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index ab4c6eb272..f7ebb97108 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -98,10 +98,12 @@ public class Parser { Please enter the event time in the following format: YYYY-MM-DD HH:mm - Ensure the following: + Ensure the following general guidelines: - The year (YYYY) is from 0001 onwards. - The date (MM-DD) is between 01-01 and 12-31. - The time (HH:mm) is between 00:00 and 23:59. + + Please also take into account leap years! """; private static final String INVALID_PRIORITY_MESSAGE = """ Invalid priority level status! @@ -243,9 +245,6 @@ public Command parseCommand(String command) throws InvalidCommandException, IOEx logWarning("Invalid command format"); String errorMessage = getErrorMessage(commandWord); throw new InvalidCommandException(errorMessage); - } catch (DateTimeParseException exception) { - logWarning("Invalid date-time format"); - throw new InvalidCommandException(INVALID_DATE_TIME_MESSAGE); } catch (ParseException exception) { logWarning("Invalid date-time format"); throw new InvalidCommandException(INVALID_DATE_TIME_MESSAGE); diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index 1c94903512..29de931f3b 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -4,12 +4,14 @@ import org.junit.jupiter.api.Test; import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; +import seedu.manager.exception.InvalidCommandException; +import seedu.manager.parser.Parser; +import java.text.ParseException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.*; public class AddCommandTest { private EventList eventList; @@ -94,6 +96,16 @@ public void add_duplicateEvent_success() { assertTrue(eventList.getEventByName("Event 1(1)").isPresent()); } + @Test + public void add_invalidDate_throwsException() { + Parser parser = new Parser(); + String command = "add -e Event 1 -t 2026-02-30 10:00 -v room -u low"; + + assertThrows(seedu.manager.exception.InvalidCommandException.class, () -> { + parser.parseCommand(command); + }); + } + @Test public void add_duplicateParticipant_throwsException() { EventList eventList = new EventList(); diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index e2e2e17fef..35989fed17 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -3,30 +3,30 @@ Error loading data from file: data.txt. New file will be created since it does n ------------------------ Enter a command: Invalid command! ------------------------ -Enter a command: Here are all the possible commands: - -menu: Displays a list of all commands. -list: Displays a list of all events. -add -e EVENT -t TIME -v VENUE -u PRIORITY: Adds an event to the event list. -add -p PARTICIPANT -email EMAIL -e EVENT: Adds a participant to an event. -add -m ITEM -e EVENT: Adds an item to an event. -remove -e EVENT: Removes an event from the event list. -remove -p PARTICIPANT -e EVENT: Removes a participant from an event. -remove -m ITEM -e EVENT: Removes an item from an event. -edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edits an event's info. -edit -p PARTICIPANT -email EMAIL -e EVENT: Edits a participant's contact info. -edit -m ITEM > NEW_ITEM -e EVENT: Edits an item's info. -view -e EVENT -y TYPE: Displays the list of participants or items of an event. -mark -e EVENT -s STATUS: Marks an event as done or not done. -mark -p PARTICIPANT -e EVENT -s STATUS: Marks a participant as present or absent. -mark -m ITEM -e EVENT -s STATUS: Marks an item as accounted or unaccounted for. -copy FROM_EVENT > TO_EVENT: Copies the participant list from one event to another. +Enter a command: Here are the possible commands: + +menu: List commands. +list: List events. +add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. +add -p PARTICIPANT -email EMAIL -e EVENT: Add a participant to an event. +add -m ITEM -e EVENT: Add an item to an event. +remove -e EVENT: Remove an event from the event list. +remove -p PARTICIPANT -e EVENT: Remove a participant from an event. +remove -m ITEM -e EVENT: Remove an item from an event. +edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. +edit -p PARTICIPANT -email EMAIL -e EVENT: Edit participant contact info. +edit -m ITEM > NEW_ITEM -e EVENT: Edit an item in an event. +view -e EVENT -y TYPE: View the list of participants or items of an event. +mark -e EVENT -s STATUS: Mark an event as done or not done. +mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. +mark -m ITEM -e EVENT -s STATUS: Mark an item as accounted or unaccounted. +copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. sort -by KEYWORD: Sorts events by name/time/priority. filter -e/-d/-t/-x/-u FILTER_DESCRIPTION: Filters events by name/date/time/date-time/priority. -find -e EVENT -p NAME: Finds all participants with a specified name in an event. -exit: Exits program. +find -e EVENT -p NAME: Finds all participants with specified name in an event. +exit: Exit program. ------------------------ -Enter a command: There are 0 events in your list! +Enter a command: There are 0 event(s) in your list! Please refer to below: ------------------------ Enter a command: Invalid command! @@ -38,14 +38,13 @@ add -m ITEM -e EVENT ------------------------ Enter a command: Event added successfully ------------------------ -Enter a command: There are 1 events in your list! Here are your scheduled events: +Enter a command: There are 1 event(s) in your list! Please refer to below: 1. Event name: dinner party / Event time: 2026-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: N - ------------------------ Enter a command: Event marked as done ------------------------ -Enter a command: There are 1 events in your list! Here are your scheduled events: +Enter a command: There are 1 event(s) in your list! Please refer to below: 1. Event name: dinner party / Event time: 2026-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y ------------------------ @@ -53,10 +52,9 @@ Enter a command: Event not found! ------------------------ Enter a command: Event information successfully updated ------------------------ -Enter a command: There are 1 events in your list! Here are your scheduled events: +Enter a command: There are 1 event(s) in your list! Please refer to below: 1. Event name: dinner party(1) / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y - ------------------------ Enter a command: Event not found! ------------------------ @@ -87,7 +85,7 @@ Enter a command: Event not found! ------------------------ Enter a command: Event not found! ------------------------ -Enter a command: There are 2 events in your list! Here are your scheduled events: +Enter a command: There are 2 event(s) in your list! Please refer to below: 1. Event name: dinner party(1) / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y 2. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N @@ -108,20 +106,20 @@ Enter a command: Events successfully filtered by priority! 1. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ -Enter a command: There are 2 events in your list! Here are your scheduled events: +Enter a command: There are 2 event(s) in your list! Please refer to below: 1. Event name: dinner party(1) / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y 2. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ Enter a command: Item added successfully ------------------------ -Enter a command: There is 1 item in anniversary celebration! Here is your item: +Enter a command: There are 1 items in anniversary celebration! Here are your items: 1. balloon [ ] ------------------------ Enter a command: Item successfully updated ------------------------ -Enter a command: There is 1 item in anniversary celebration! Here is your item: +Enter a command: There are 1 items in anniversary celebration! Here are your items: 1. cake [ ] ------------------------ From 0d58fc9bb042a6b8b26d3792b9d81b2b4f857e03 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sun, 10 Nov 2024 19:31:37 +0800 Subject: [PATCH 553/619] Fix CI test --- src/test/java/seedu/manager/command/AddCommandTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index 29de931f3b..9c597d630e 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -4,14 +4,14 @@ import org.junit.jupiter.api.Test; import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; -import seedu.manager.exception.InvalidCommandException; import seedu.manager.parser.Parser; -import java.text.ParseException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.assertThrows; public class AddCommandTest { private EventList eventList; From 5ac6a40f29e2f6391df8a5cfd0c7309c8ee570c1 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sun, 10 Nov 2024 19:34:57 +0800 Subject: [PATCH 554/619] Update EXPECTED.TXT --- text-ui-test/EXPECTED.TXT | 56 +++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 35989fed17..6a52683f4c 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -3,30 +3,30 @@ Error loading data from file: data.txt. New file will be created since it does n ------------------------ Enter a command: Invalid command! ------------------------ -Enter a command: Here are the possible commands: - -menu: List commands. -list: List events. -add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. -add -p PARTICIPANT -email EMAIL -e EVENT: Add a participant to an event. -add -m ITEM -e EVENT: Add an item to an event. -remove -e EVENT: Remove an event from the event list. -remove -p PARTICIPANT -e EVENT: Remove a participant from an event. -remove -m ITEM -e EVENT: Remove an item from an event. -edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. -edit -p PARTICIPANT -email EMAIL -e EVENT: Edit participant contact info. -edit -m ITEM > NEW_ITEM -e EVENT: Edit an item in an event. -view -e EVENT -y TYPE: View the list of participants or items of an event. -mark -e EVENT -s STATUS: Mark an event as done or not done. -mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. -mark -m ITEM -e EVENT -s STATUS: Mark an item as accounted or unaccounted. -copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. +Enter a command: Here are all the possible commands: + +menu: Displays a list of all commands. +list: Displays a list of all events. +add -e EVENT -t TIME -v VENUE -u PRIORITY: Adds an event to the event list. +add -p PARTICIPANT -email EMAIL -e EVENT: Adds a participant to an event. +add -m ITEM -e EVENT: Adds an item to an event. +remove -e EVENT: Removes an event from the event list. +remove -p PARTICIPANT -e EVENT: Removes a participant from an event. +remove -m ITEM -e EVENT: Removes an item from an event. +edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edits an event's info. +edit -p PARTICIPANT -email EMAIL -e EVENT: Edits a participant's contact info. +edit -m ITEM > NEW_ITEM -e EVENT: Edits an item's info. +view -e EVENT -y TYPE: Displays the list of participants or items of an event. +mark -e EVENT -s STATUS: Marks an event as done or not done. +mark -p PARTICIPANT -e EVENT -s STATUS: Marks a participant as present or absent. +mark -m ITEM -e EVENT -s STATUS: Marks an item as accounted or unaccounted for. +copy FROM_EVENT > TO_EVENT: Copies the participant list from one event to another. sort -by KEYWORD: Sorts events by name/time/priority. filter -e/-d/-t/-x/-u FILTER_DESCRIPTION: Filters events by name/date/time/date-time/priority. -find -e EVENT -p NAME: Finds all participants with specified name in an event. -exit: Exit program. +find -e EVENT -p NAME: Finds all participants with a specified name in an event. +exit: Exits program. ------------------------ -Enter a command: There are 0 event(s) in your list! Please refer to below: +Enter a command: There are 0 events in your list! ------------------------ Enter a command: Invalid command! @@ -38,13 +38,13 @@ add -m ITEM -e EVENT ------------------------ Enter a command: Event added successfully ------------------------ -Enter a command: There are 1 event(s) in your list! Please refer to below: +Enter a command: There is 1 event in your list! Here is your scheduled event: 1. Event name: dinner party / Event time: 2026-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: N ------------------------ Enter a command: Event marked as done ------------------------ -Enter a command: There are 1 event(s) in your list! Please refer to below: +Enter a command: There is 1 event in your list! Here is your scheduled event: 1. Event name: dinner party / Event time: 2026-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y ------------------------ @@ -52,7 +52,7 @@ Enter a command: Event not found! ------------------------ Enter a command: Event information successfully updated ------------------------ -Enter a command: There are 1 event(s) in your list! Please refer to below: +Enter a command: There is 1 event in your list! Here is your scheduled event: 1. Event name: dinner party(1) / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y ------------------------ @@ -85,7 +85,7 @@ Enter a command: Event not found! ------------------------ Enter a command: Event not found! ------------------------ -Enter a command: There are 2 event(s) in your list! Please refer to below: +Enter a command: There are 2 events in your list! Here are your scheduled events: 1. Event name: dinner party(1) / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y 2. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N @@ -106,20 +106,20 @@ Enter a command: Events successfully filtered by priority! 1. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ -Enter a command: There are 2 event(s) in your list! Please refer to below: +Enter a command: There are 2 events in your list! Here are your scheduled events: 1. Event name: dinner party(1) / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y 2. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ Enter a command: Item added successfully ------------------------ -Enter a command: There are 1 items in anniversary celebration! Here are your items: +Enter a command: There is 1 item in anniversary celebration! Here is your item: 1. balloon [ ] ------------------------ Enter a command: Item successfully updated ------------------------ -Enter a command: There are 1 items in anniversary celebration! Here are your items: +Enter a command: There is 1 item in anniversary celebration! Here is your item: 1. cake [ ] ------------------------ From 4367ef7d3b2a0f154cac5526e48b92424aa380c2 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 19:44:33 +0800 Subject: [PATCH 555/619] Update edit participant command to have name change functionality --- .../command/EditParticipantCommand.java | 12 ++++++------ src/main/java/seedu/manager/event/Event.java | 18 +++++++++++++++++- .../java/seedu/manager/event/EventList.java | 7 ++++--- src/main/java/seedu/manager/parser/Parser.java | 8 +++++--- .../command/EditParticipantCommandTest.java | 3 +++ 5 files changed, 35 insertions(+), 13 deletions(-) diff --git a/src/main/java/seedu/manager/command/EditParticipantCommand.java b/src/main/java/seedu/manager/command/EditParticipantCommand.java index d66b39b39c..4c77f5379c 100644 --- a/src/main/java/seedu/manager/command/EditParticipantCommand.java +++ b/src/main/java/seedu/manager/command/EditParticipantCommand.java @@ -10,6 +10,7 @@ public class EditParticipantCommand extends Command{ private static final String EDIT_FAILURE_MESSAGE = "Event/Participant not found!"; protected String eventName; protected String participantName; + protected String newParticipantName; protected String participantEmail; @@ -19,13 +20,15 @@ public class EditParticipantCommand extends Command{ * participant email, and event name. * * @param participantName The name of the participant. + * @param newParticipantName The new name of the participant. * @param participantEmail The new email address of the participant. * @param eventName The name of the event associated with the participant. */ - public EditParticipantCommand(String participantName, String participantEmail, + public EditParticipantCommand(String participantName, String newParticipantName, String participantEmail, String eventName) { super(false); this.participantName = participantName; + this.newParticipantName = newParticipantName; this.participantEmail = participantEmail; this.eventName = eventName; } @@ -39,11 +42,8 @@ public EditParticipantCommand(String participantName, String participantEmail, @Override public void execute() { if (participantName != null) { - boolean isEdited = this.eventList.editParticipant( - this.participantName, - this.participantEmail, - this.eventName - ); + boolean isEdited = eventList.editParticipant(participantName, newParticipantName, participantEmail, + this.eventName); this.message = (isEdited) ? EDIT_PARTICIPANT_MESSAGE : EDIT_FAILURE_MESSAGE; } } diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 17b413ebc5..547a876b55 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -276,9 +276,11 @@ public void updateEvent(String eventNewName, LocalDateTime eventTime, String eve * @return {@code true} if the participant was successfully updated; * {@code false} if the participant was not found. */ - public boolean updateParticipant(String participantName, String newEmail) { + public boolean updateParticipant(String participantName, String newName, String newEmail) { for (Participant participant : this.participantList) { if (participant.getName().equalsIgnoreCase(participantName)) { + String nameToSet = getDuplicateParticipantName(newName); + participant.setName(nameToSet); participant.setEmail(newEmail); return true; } @@ -446,6 +448,13 @@ public String toString(){ eventName, eventTimeString, eventVenue, eventPriority, markIfDone()); } + /** + * Returns a participant's name with an indexed suffix. + * The suffix value varies based on the number of participants with the same name. + * + * @param name the given participant name. + * @return name with an indexed suffix. + */ private String getDuplicateParticipantName(String name) { int index = 1; String duplicateName = name; @@ -458,6 +467,13 @@ private String getDuplicateParticipantName(String name) { return duplicateName; } + /** + * Returns an item's name with an indexed suffix. + * The suffix value varies based on the number of items with the same name. + * + * @param name the given item name. + * @return name with an indexed suffix. + */ private String getDuplicateItemName(String name) { int index = 1; String duplicateName = name; diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 7b5c87c77e..620e2c487a 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -280,16 +280,17 @@ public boolean editEvent(String eventName, String eventNewName, LocalDateTime ev * {@code false}. *

        * - * @param participantName the name of the participant to be edited. + * @param currentName the name of the participant to be edited. + * @param newName the new name of the participant. * @param email the new email address of the participant. * @param eventName the name of the event associated with the participant. * @return {@code true} if the participant was successfully edited; * {@code false} if the event does not exist or the participant was not found. */ - public boolean editParticipant(String participantName, String email, String eventName) { + public boolean editParticipant(String currentName, String newName, String email, String eventName) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { - return event.updateParticipant(participantName, email); + return event.updateParticipant(currentName, newName, email); } } return false; diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 249b6b7c8b..6e201589b3 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -56,7 +56,7 @@ public class Parser { Please enter your commands in the following format: edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. edit -m ITEM > NEW_ITEM -e EVENT: Edit an item from an event. - edit -p PARTICIPANT -email EMAIL -e EVENT: Edit participant contact info. + edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT: Edit participant info. """; private static final String INVALID_VIEW_MESSAGE = """ Invalid command! @@ -168,7 +168,7 @@ public class Parser { "-name\\s+(.*?)\\s+-t\\s+(.*?)\\s+-v\\s+(.*?)\\s+-u\\s+(.*)"; private static final String ADD_PARTICIPANT_REGEX = "add\\s+-p\\s+(.*?)\\s+" + "-email\\s+(.*?)\\s+-e\\s+(.*)"; - private static final String EDIT_PARTICIPANT_REGEX = "edit\\s+-p\\s+(.*?)\\s+" + + private static final String EDIT_PARTICIPANT_REGEX = "edit\\s+-p\\s+(.*?)\\s+-name\\s+(.*?)" + "-email\\s+(.*?)\\s+-e\\s+(.*)"; private static final String ADD_ITEM_REGEX = "add\\s+-m\\s+(.*?)\\s+-e\\s+(.*)"; private static final String REMOVE_ITEM_REGEX = "remove\\s+-m\\s+(.*?)\\s+-e\\s+(.*)"; @@ -561,6 +561,7 @@ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsE Matcher matcher = pattern.matcher(input); String participantName; + String newParticipantName; String newEmail; String eventName; @@ -571,6 +572,7 @@ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsE } participantName = matcher.group(1).trim(); + newParticipantName = matcher.group(2).trim(); newEmail = matcher.group(2).trim(); eventName = matcher.group(3).trim(); @@ -582,7 +584,7 @@ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsE throw new InvalidCommandException(INVALID_EDIT_MESSAGE); } - return new EditParticipantCommand(participantName, newEmail, eventName); + return new EditParticipantCommand(participantName, newParticipantName, newEmail, eventName); } //@@author MatchaRRR diff --git a/src/test/java/seedu/manager/command/EditParticipantCommandTest.java b/src/test/java/seedu/manager/command/EditParticipantCommandTest.java index 9273a06f7b..d60d6ef468 100644 --- a/src/test/java/seedu/manager/command/EditParticipantCommandTest.java +++ b/src/test/java/seedu/manager/command/EditParticipantCommandTest.java @@ -35,6 +35,7 @@ public void edit_participant_success() { ); EditParticipantCommand editParticipantCommand = new EditParticipantCommand( + "Tom", "Tom", "new_email@example.com", "Event 1" @@ -60,6 +61,7 @@ public void editParticipant_invalidEvent_failure() { ); String expectedMessage = "Event/Participant not found!"; EditParticipantCommand editParticipantCommand = new EditParticipantCommand( + "Tom", "Tom", "new_email@example.com", "Non-Existent Event" @@ -84,6 +86,7 @@ public void editParticipant_invalidParticipant_failure() { ); String expectedMessage = "Event/Participant not found!"; EditParticipantCommand editParticipantCommand = new EditParticipantCommand( + "Invalid Participant", "Invalid Participant", "new_email@example.com", "Event 1" From 276a08815cdeb80ee71e7634ef20b5307f478ecc Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 19:50:37 +0800 Subject: [PATCH 556/619] Update MenuCommand and UG with new edit participant command format --- docs/UserGuide.md | 46 +++++++++---------- .../seedu/manager/command/MenuCommand.java | 2 +- .../java/seedu/manager/parser/Parser.java | 6 +-- text-ui-test/EXPECTED.TXT | 9 +++- 4 files changed, 34 insertions(+), 29 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 40054370bb..336284f2e2 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -54,28 +54,28 @@ Enter a command: Shows a list of all valid user commands in the program. ``` -Here are the possible commands: - -menu: List commands -list: List events. -add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. -add -p PARTICIPANT -email EMAIL -e EVENT: Add a participant to an event. -add -m ITEM -e EVENT: Add an item to an event. -remove -e EVENT: Remove an event from the event list. -remove -p PARTICIPANT -e EVENT: Remove a participant from an event. -remove -m ITEM -e EVENT: Remove an item from an event. -edit -e OLD_EVENT_NAME -name NEW_EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. -edit -p PARTICIPANT -email EMAIL -e EVENT: Edit participant contact info. -edit -m OLD_ITEM_NAME > NEW_ITEM_NAME -e EVENT: Edit an item in an event. -view -e EVENT -y TYPE: View the list of participants or items of an event. -mark -e EVENT -s STATUS: Mark an event as done or not done. -mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. -mark -m ITEM -e EVENT -s STATUS: Mark an item as accounted or unaccounted. -copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. +Here are all the possible commands: + +menu: Displays a list of all commands. +list: Displays a list of all events. +add -e EVENT -t TIME -v VENUE -u PRIORITY: Adds an event to the event list. +add -p PARTICIPANT -email EMAIL -e EVENT: Adds a participant to an event. +add -m ITEM -e EVENT: Adds an item to an event. +remove -e EVENT: Removes an event from the event list. +remove -p PARTICIPANT -e EVENT: Removes a participant from an event. +remove -m ITEM -e EVENT: Removes an item from an event. +edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edits an event's info. +edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT: Edits a participant's info. +edit -m ITEM > NEW_ITEM -e EVENT: Edits an item's info. +view -e EVENT -y TYPE: Displays the list of participants or items of an event. +mark -e EVENT -s STATUS: Marks an event as done or not done. +mark -p PARTICIPANT -e EVENT -s STATUS: Marks a participant as present or absent. +mark -m ITEM -e EVENT -s STATUS: Marks an item as accounted or unaccounted for. +copy FROM_EVENT > TO_EVENT: Copies the participant list from one event to another. sort -by KEYWORD: Sorts events by name/time/priority. filter -e/-d/-t/-x/-u FILTER_DESCRIPTION: Filters events by name/date/time/date-time/priority. -find -e EVENT -p NAME: Finds all participants with specified name in an event. -exit: Exit program. +find -e EVENT -p NAME: Finds all participants with a specified name in an event. +exit: Exits program. ``` @@ -155,7 +155,7 @@ Edits the information of an event/participant/item. Format: * `edit -e OLD_EVENT_NAME -name NEW_EVENT_NAME -t TIME -v VENUE -u PRIORITY` for editing an event's basic information. -* `edit -p PARTICIPANT -email EMAIL -e EVENT` for editing a participant's contact information in an event. +* `edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT` for editing a participant's contact information in an event. * `edit -m OLD_ITEM_NAME > NEW_ITEM_NAME -e EVENT` for editing an item's information in an event. Remarks: @@ -167,7 +167,7 @@ Remarks: Examples: * `edit -e CS2113 -name CS2113T -t 2024-10-25 16:00 -v LT16 -u HIGH` edits the information of the event `CS2113`. -* `edit -p Mary -email mary@gmail.com -e CS2113` edits the contact information of the participant `Mary` in the event `CS2113`. +* `edit -p Mary -name Mary -email mary@gmail.com -e CS2113` edits the information of the participant `Mary` in the event `CS2113`. * `edit -m balloon > cake -e anniversary` edits the item `balloon` in the event `anniversary` to `cake`.
        @@ -342,7 +342,7 @@ If the above format or parameter constraints are not followed, the `Event`, `Par * Remove participant from an event: `remove -p PARTICIPANT -e EVENT` * Remove item from an event: `remove -m ITEM -e EVENT` * Edit event: `edit -e OLD_EVENT_NAME -name NEW_EVENT_NAME -t TIME -v VENUE -u PRIORITY` -* Edit participant of an event: `edit -p PARTICIPANT -email EMAIL -e EVENT` +* Edit participant of an event: `edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT` * Edit item of an event: `edit -m OLD_ITEM_NAME > NEW_ITEM_NAME -e EVENT` * View all participants or items for an event: `view -e EVENT -y TYPE` * Mark an event as done: `mark -e EVENT -s STATUS` diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 74e23999fa..3425c37399 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -18,7 +18,7 @@ public class MenuCommand extends Command { remove -p PARTICIPANT -e EVENT: Removes a participant from an event. remove -m ITEM -e EVENT: Removes an item from an event. edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edits an event's info. - edit -p PARTICIPANT -email EMAIL -e EVENT: Edits a participant's contact info. + edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT: Edits a participant's info. edit -m ITEM > NEW_ITEM -e EVENT: Edits an item's info. view -e EVENT -y TYPE: Displays the list of participants or items of an event. mark -e EVENT -s STATUS: Marks an event as done or not done. diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 6e201589b3..fe44d55ea7 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -54,9 +54,9 @@ public class Parser { private static final String INVALID_EDIT_MESSAGE = """ Invalid command! Please enter your commands in the following format: - edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. - edit -m ITEM > NEW_ITEM -e EVENT: Edit an item from an event. - edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT: Edit participant info. + edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY + edit -m ITEM > NEW_ITEM -e EVENT + edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT """; private static final String INVALID_VIEW_MESSAGE = """ Invalid command! diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index c44ea43c09..18c69c2c36 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -14,7 +14,7 @@ remove -e EVENT: Removes an event from the event list. remove -p PARTICIPANT -e EVENT: Removes a participant from an event. remove -m ITEM -e EVENT: Removes an item from an event. edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edits an event's info. -edit -p PARTICIPANT -email EMAIL -e EVENT: Edits a participant's contact info. +edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT: Edits a participant's info. edit -m ITEM > NEW_ITEM -e EVENT: Edits an item's info. view -e EVENT -y TYPE: Displays the list of participants or items of an event. mark -e EVENT -s STATUS: Marks an event as done or not done. @@ -63,7 +63,12 @@ Please enter your commands in the following format: view -e EVENT -y TYPE ------------------------ -Enter a command: Event/Participant not found! +Enter a command: Invalid command! +Please enter your commands in the following format: +edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. +edit -m ITEM > NEW_ITEM -e EVENT: Edit an item from an event. +edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT: Edit participant info. + ------------------------ Enter a command: Event not found! ------------------------ From a7f5af562d49541d9900582f616391f455fa4d9e Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 19:54:00 +0800 Subject: [PATCH 557/619] Update MenuCommand output in UG to match program output --- docs/UserGuide.md | 4 ++-- src/main/java/seedu/manager/command/MenuCommand.java | 4 ++-- text-ui-test/EXPECTED.TXT | 10 +++++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 336284f2e2..415b84d274 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -64,9 +64,9 @@ add -m ITEM -e EVENT: Adds an item to an event. remove -e EVENT: Removes an event from the event list. remove -p PARTICIPANT -e EVENT: Removes a participant from an event. remove -m ITEM -e EVENT: Removes an item from an event. -edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edits an event's info. +edit -e OLD_EVENT -name NEW_EVENT -t TIME -v VENUE -u PRIORITY: Edits an event's info. edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT: Edits a participant's info. -edit -m ITEM > NEW_ITEM -e EVENT: Edits an item's info. +edit -m OLD_ITEM > NEW_ITEM -e EVENT: Edits an item's info. view -e EVENT -y TYPE: Displays the list of participants or items of an event. mark -e EVENT -s STATUS: Marks an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Marks a participant as present or absent. diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 3425c37399..c13ecca697 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -17,9 +17,9 @@ public class MenuCommand extends Command { remove -e EVENT: Removes an event from the event list. remove -p PARTICIPANT -e EVENT: Removes a participant from an event. remove -m ITEM -e EVENT: Removes an item from an event. - edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edits an event's info. + edit -e OLD_EVENT -name NEW_EVENT -t TIME -v VENUE -u PRIORITY: Edits an event's info. edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT: Edits a participant's info. - edit -m ITEM > NEW_ITEM -e EVENT: Edits an item's info. + edit -m OLD_ITEM > NEW_ITEM -e EVENT: Edits an item's info. view -e EVENT -y TYPE: Displays the list of participants or items of an event. mark -e EVENT -s STATUS: Marks an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Marks a participant as present or absent. diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 18c69c2c36..b3a74a8035 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -13,9 +13,9 @@ add -m ITEM -e EVENT: Adds an item to an event. remove -e EVENT: Removes an event from the event list. remove -p PARTICIPANT -e EVENT: Removes a participant from an event. remove -m ITEM -e EVENT: Removes an item from an event. -edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edits an event's info. +edit -e OLD_EVENT -name NEW_EVENT -t TIME -v VENUE -u PRIORITY: Edits an event's info. edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT: Edits a participant's info. -edit -m ITEM > NEW_ITEM -e EVENT: Edits an item's info. +edit -m OLD_ITEM > NEW_ITEM -e EVENT: Edits an item's info. view -e EVENT -y TYPE: Displays the list of participants or items of an event. mark -e EVENT -s STATUS: Marks an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Marks a participant as present or absent. @@ -65,9 +65,9 @@ view -e EVENT -y TYPE ------------------------ Enter a command: Invalid command! Please enter your commands in the following format: -edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. -edit -m ITEM > NEW_ITEM -e EVENT: Edit an item from an event. -edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT: Edit participant info. +edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY +edit -m ITEM > NEW_ITEM -e EVENT +edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT ------------------------ Enter a command: Event not found! From 5d8bb42ff0dcc74840a18cae86ab328b1c3f7ba2 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 19:56:06 +0800 Subject: [PATCH 558/619] Update Javadocs for duplicate name methods --- src/main/java/seedu/manager/event/Event.java | 3 ++- src/main/java/seedu/manager/event/EventList.java | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 547a876b55..0ad7988a96 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -374,7 +374,7 @@ public boolean markItemByName(String itemName, boolean isPresent) { * Returns the {@code Item} with the given name in the item list. * * @param itemName the given item name - * @return the {@code Item} with name itemName, or null if the item is not founc + * @return the {@code Item} with name itemName, or null if the item is not found. */ private Optional getItemByName(String itemName) { for (Item item : itemList) { @@ -467,6 +467,7 @@ private String getDuplicateParticipantName(String name) { return duplicateName; } + //@@author jemehgoh /** * Returns an item's name with an indexed suffix. * The suffix value varies based on the number of items with the same name. diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 620e2c487a..22d09b52be 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -436,6 +436,14 @@ public EventList filterByDateTime(LocalDateTime eventDateTime) { return filteredList; } + //author jemehgoh + /** + * Returns an event's name with an indexed suffix. + * The suffix value varies based on the number of event with the same name in the event list. + * + * @param name the given event name. + * @return name with an indexed suffix. + */ private String getDuplicateEventName(String name) { int index = 1; String duplicateName = name; From 2aa62c3ed0f75b0cc25957554071796b548ca0d5 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 20:13:26 +0800 Subject: [PATCH 559/619] Fix edit same name being treated as duplicate --- src/main/java/seedu/manager/event/Event.java | 34 +++++++++++++++++-- .../java/seedu/manager/event/EventList.java | 16 ++++++++- .../java/seedu/manager/parser/Parser.java | 4 +-- 3 files changed, 48 insertions(+), 6 deletions(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 0ad7988a96..414f461a79 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -279,7 +279,7 @@ public void updateEvent(String eventNewName, LocalDateTime eventTime, String eve public boolean updateParticipant(String participantName, String newName, String newEmail) { for (Participant participant : this.participantList) { if (participant.getName().equalsIgnoreCase(participantName)) { - String nameToSet = getDuplicateParticipantName(newName); + String nameToSet = getUpdatedParticipantName(newName, participantName); participant.setName(nameToSet); participant.setEmail(newEmail); return true; @@ -298,7 +298,7 @@ public boolean updateParticipant(String participantName, String newName, String public boolean updateItem(String itemName, String itemNewName) { for (Item item : this.itemList) { if (item.getName().equalsIgnoreCase(itemName)) { - item.setName(getDuplicateItemName(itemNewName)); + item.setName(getUpdatedItemName(itemNewName, itemName)); item.setPresent(false); return true; } @@ -448,6 +448,7 @@ public String toString(){ eventName, eventTimeString, eventVenue, eventPriority, markIfDone()); } + //@@author jemehgoh /** * Returns a participant's name with an indexed suffix. * The suffix value varies based on the number of participants with the same name. @@ -467,7 +468,6 @@ private String getDuplicateParticipantName(String name) { return duplicateName; } - //@@author jemehgoh /** * Returns an item's name with an indexed suffix. * The suffix value varies based on the number of items with the same name. @@ -486,4 +486,32 @@ private String getDuplicateItemName(String name) { return duplicateName; } + + /** + * Returns an updated participant name for editing participant details. + * + * @param name the given new participant name. + * @return the updated version of name. + */ + private String getUpdatedParticipantName(String name, String participantName) { + if (name.equalsIgnoreCase(participantName)) { + return name; + } else { + return getDuplicateParticipantName(name); + } + } + + /** + * Returns an updated item name for editing item details. + * + * @param name the given new item name. + * @return the updated version of name. + */ + private String getUpdatedItemName(String name, String itemName) { + if (name.equalsIgnoreCase(itemName)) { + return name; + } else { + return getDuplicateItemName(name); + } + } } diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 22d09b52be..1745c3282f 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -260,7 +260,7 @@ public boolean editEvent(String eventName, String eventNewName, LocalDateTime ev Priority eventPriority) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { - String name = getDuplicateEventName(eventNewName); + String name = getUpdatedEventName(eventNewName, eventName); event.updateEvent(name, eventTime, eventVenue, eventPriority); return true; } @@ -455,4 +455,18 @@ private String getDuplicateEventName(String name) { return duplicateName; } + + /** + * Returns an updated event name for editing event details. + * + * @param name the given new event name. + * @return the updated version of name. + */ + private String getUpdatedEventName(String name, String eventName) { + if (name.equalsIgnoreCase(eventName)) { + return name; + } else { + return getDuplicateEventName(name); + } + } } diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index fe44d55ea7..00cda49a9d 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -573,8 +573,8 @@ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsE participantName = matcher.group(1).trim(); newParticipantName = matcher.group(2).trim(); - newEmail = matcher.group(2).trim(); - eventName = matcher.group(3).trim(); + newEmail = matcher.group(3).trim(); + eventName = matcher.group(4).trim(); if (!isValidEmail(newEmail)) { logWarning("Invalid email format"); From 5cc5fcb024199d4d21be73f9d457247c8e969747 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 20:23:02 +0800 Subject: [PATCH 560/619] Update DG to match new edit participant command functionality --- docs/DeveloperGuide.md | 10 +++++----- ...EditParticipantCommandSequenceDiagram.puml | 4 ++-- .../EditParticipantCommandSequenceDiagram.png | Bin 30077 -> 34720 bytes 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 94c3f5a9a7..2dc9ac25c2 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -450,7 +450,7 @@ Given below is an example usage scenario and the behaviour of the `edit` feature 2. If the flag is `-e`, `EditEventCommand` calls `EditEventCommand#execute()`, which calls `EventList#editEvent()` to edit the event. It looks for the event, modifies the information and returns true if the event exits. Otherwise, it returns false. 3. If the flag is `-p`, `EditParticipantCommand` calls `EditParticipantCommand#execute()`, which calls `EventList#editParticipant()` to edit the participant. - It looks for the event and the specified participant, and then modifies the contact information and returns true if the participant is found. Otherwise, it returns false. + It looks for the event and the specified participant, and then modifies the information and returns true if the participant is found. Otherwise, it returns false. 4. If the flag is `-m`, `EditItemCommand` calls `EditItemCommand#execute()`, which calls `EventList#editItem()` to edit the item. It looks for the event and the specified item, modifies the item and returns true if the item is found. Otherwise, it returns false. 5. After editing, a message `outputMessage` will be printed. @@ -815,7 +815,7 @@ The user is able to organise and manage his events more quickly and efficiently List all `Event`s with `list` after each test case. 2. Test case: `add -e Event 1 -t 2024-10-10 18:00 -v Venue 1 -u HIGH` - Expected: A `Event` with name `Event 1 (1)` is added. A success message is shown. + Expected: A `Event` with name `Event 1(1)` is added. A success message is shown. ### Adding a participant @@ -826,7 +826,7 @@ The user is able to organise and manage his events more quickly and efficiently List all `Participant`s with `view -e Event 1 -y participant` after each test case. 2. Test case: `add -p Participant 1 -email part@gmail.com -e Event 1`. - Expected: A `Participant` with name `Participant 1 (1)` is added. A success message is shown. + Expected: A `Participant` with name `Participant 1(1)` is added. A success message is shown. ### Adding an item @@ -837,7 +837,7 @@ The user is able to organise and manage his events more quickly and efficiently List all `Item`s with `view -e Event 1 -y item` after each test case. 2. Test case: `add -p Item -e Event 1`. - Expected: A `Item` with name `Item (1)` is added. A success message is shown. + Expected: A `Item` with name `Item(1)` is added. A success message is shown. ### Removing an event @@ -918,7 +918,7 @@ The user is able to organise and manage his events more quickly and efficiently A `Participant` with the name `Jonathan` and email `than@gmail.com` is present in `Event 1`'s `Participant` list. List all `Participant`s with `view -e Event 1 -y participant` after each test case. - 2. Test case: `edit -p Jonathan -n 91823213 -email jona@gmail.com -e Event 1` + 2. Test case: `edit -p Jonathan -name Jonathan -n 91823213 -email jona@gmail.com -e Event 1` Expected: The email for `Jonathan` is changed to `jona@gmail.com`. A success message is shown. ### Editing an item diff --git a/docs/diagrams/EditParticipantCommandSequenceDiagram.puml b/docs/diagrams/EditParticipantCommandSequenceDiagram.puml index f75e2d95d4..a4124c3498 100644 --- a/docs/diagrams/EditParticipantCommandSequenceDiagram.puml +++ b/docs/diagrams/EditParticipantCommandSequenceDiagram.puml @@ -8,7 +8,7 @@ [-> editCommand : execute() activate editCommand - editCommand -> eventList : editParticipant(participantName, participantEmail, eventName) + editCommand -> eventList : editParticipant(participantName, newParticipantName,\n participantEmail, eventName) activate eventList loop for each event in eventList @@ -18,7 +18,7 @@ deactivate event opt eventName matches - eventList -> event : updateParticipant(participantName, participantEmail) + eventList -> event : updateParticipant(participantName,\n newParticipantName, participantEmail) activate event event --> eventList : updated deactivate event diff --git a/docs/images/EditParticipantCommandSequenceDiagram.png b/docs/images/EditParticipantCommandSequenceDiagram.png index 296d0fcee28686d1dd0e46470ad0b226b6c8cc50..c53c39eca041ffa162f398c1a16c0c897c6e69e3 100644 GIT binary patch literal 34720 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
        b!}?5}AvOi`%Q;{h`IVP7yEb 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 Date: Sun, 10 Nov 2024 20:31:59 +0800 Subject: [PATCH 561/619] Update I/O redirection tests --- text-ui-test/EXPECTED.TXT | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 162f86c95b..eb5da13d67 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -53,10 +53,10 @@ Enter a command: Event not found! Enter a command: Event information successfully updated ------------------------ Enter a command: There is 1 event in your list! Here is your scheduled event: -1. Event name: dinner party(1) / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +1. Event name: dinner party / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y ------------------------ -Enter a command: Event not found! +Enter a command: Participant added successfully ------------------------ Enter a command: Invalid command! Please enter your commands in the following format: @@ -70,33 +70,37 @@ edit -m ITEM > NEW_ITEM -e EVENT edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT ------------------------ -Enter a command: Event not found! +Enter a command: There is 1 participant in dinner party! Here is your participant: +1. Name: Mary / Email: example@gmail.com [ ] + ------------------------ Enter a command: Event added successfully ------------------------ Enter a command: Events successfully sorted by name! 1. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N -2. Event name: dinner party(1) / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +2. Event name: dinner party / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y ------------------------ Enter a command: Events successfully sorted by time! -1. Event name: dinner party(1) / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +1. Event name: dinner party / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y 2. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ -Enter a command: Event not found! +Enter a command: Item added successfully ------------------------ -Enter a command: Event not found! +Enter a command: Item accounted for. ------------------------ -Enter a command: Event not found! +Enter a command: There is 1 item in dinner party! Here is your item: +1. curry chicken [X] + ------------------------ Enter a command: There are 2 events in your list! Here are your scheduled events: -1. Event name: dinner party(1) / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +1. Event name: dinner party / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y 2. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ Enter a command: Events successfully filtered by name! -1. Event name: dinner party(1) / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +1. Event name: dinner party / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y ------------------------ Enter a command: Filter flag matched no events! @@ -112,7 +116,7 @@ Enter a command: Events successfully filtered by priority! ------------------------ Enter a command: There are 2 events in your list! Here are your scheduled events: -1. Event name: dinner party(1) / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y +1. Event name: dinner party / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y 2. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ From c63fc3d1216b042b891d22b2930966f48bbcd936 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 20:38:16 +0800 Subject: [PATCH 562/619] Remove unused setter methods from Event --- src/main/java/seedu/manager/event/Event.java | 27 -------------------- 1 file changed, 27 deletions(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 414f461a79..78716cecf7 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -133,24 +133,6 @@ public String getEventPriorityString() { return String.format("%s", eventPriority); } - /** - * Sets a new time for the event. - * - * @param eventTime the new event time - */ - public void setEventTime(LocalDateTime eventTime) { - this.eventTime = eventTime; - } - - /** - * Sets a new venue for the event. - * - * @param eventVenue the new event venue - */ - public void setEventVenue(String eventVenue) { - this.eventVenue = eventVenue; - } - /** * Sets a participant for the event. * @@ -160,15 +142,6 @@ public void setParticipantList(ArrayList participantList) { this.participantList = participantList; } - /** - * Sets a new priority level for the event. - * - * @param eventPriority the new event priority level - */ - public void setEventPriority(Priority eventPriority) { - this.eventPriority = eventPriority; - } - //@@author jemehgoh /** * Sets if the event is done or not done From 5a5e7c6ac67f6cd1d766282598923707a74241c5 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Sun, 10 Nov 2024 23:22:15 +0800 Subject: [PATCH 563/619] Update UserGuide.md --- docs/UserGuide.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 415b84d274..4c7e907924 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -270,7 +270,7 @@ Format: `exit` ### Saving of program data -The program saves its stored data into `data.csv` files in the same directory as the application `.JAR`. +The program saves its stored data into `data.txt` file in the same directory as the application `.JAR`. This file consolidates information on `Events`, `Participants` and `Items` as follows: @@ -282,7 +282,7 @@ The data is saved after the execution of every command and upon program terminat ### Loading of program data -Upon startup, the program loads data from the `data.csv` file. +Upon startup, the program loads data from the `data.txt` file. If the file does not exist in the directory, it will be automatically created when data is saved.
        @@ -291,7 +291,7 @@ If the file does not exist in the directory, it will be automatically created wh Amendment of data is strictly restricted to the program. -Direct amendment from `data.csv` files is not recommended to prevent data from being lost due to incorrect detail inputs. +Direct amendment from the `data.txt` file is not recommended to prevent data from being lost due to incorrect detail inputs. The program data is stored in the following format: @@ -312,7 +312,7 @@ For Participants: ``` * `EMAIL` must follow a similar format such as example@gmail.com -* An entry for the `Event` corresponding to `EVENT` must be present in `data.csv`. +* An entry for the `Event` corresponding to `EVENT` must be present in `data.txt`. * `STATUS` must be either `Y` or `N` For Items: @@ -321,12 +321,12 @@ For Items: "ITEM",ITEM_NAME,EVENT,STATUS ``` -* An entry for the `Event` corresponding to `EVENT` must be present in `data.csv`. +* An entry for the `Event` corresponding to `EVENT` must be present in `data.txt`. * `STATUS` must be either `Y` or `N` The first field of each entry (`"EVENT"`, `"PARTICIPANT"`, `"ITEM"`) corresponds to the object type being stored, and can only take the values specified in the above format line. -All fields added to `data.csv` must also be enclosed within double quotation marks (`" "`) to be properly parsed. +All fields added to `data.txt` must also be enclosed within double quotation marks (`" "`) to be properly parsed. If the above format or parameter constraints are not followed, the `Event`, `Participant` or `Item` corresponding to the file line will be ignored upon program startup.
        From 590a99b19a41586b4c0b8a8b49d6beb0b162b651 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 23:28:29 +0800 Subject: [PATCH 564/619] Extract out getMatcher method --- .../java/seedu/manager/parser/Parser.java | 62 +++++++++---------- 1 file changed, 29 insertions(+), 33 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 932238893e..c9db566bee 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -311,8 +311,7 @@ private Command getAddEventCommand(String input) throws IndexOutOfBoundsExceptio IllegalArgumentException, IOException { checkForDuplicateFlags(input, EVENT_FLAG_REGEX); - Pattern pattern = Pattern.compile(ADD_EVENT_REGEX); - Matcher matcher = pattern.matcher(input); + Matcher matcher = getMatcher(input, ADD_EVENT_REGEX); String eventName; LocalDateTime eventTime; @@ -360,8 +359,7 @@ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsEx IOException { checkForDuplicateFlags(input, PARTICIPANT_FLAG_REGEX); - Pattern pattern = Pattern.compile(ADD_PARTICIPANT_REGEX); - Matcher matcher = pattern.matcher(input); + Matcher matcher = getMatcher(input, ADD_PARTICIPANT_REGEX); String participantName; String participantEmail; @@ -402,8 +400,7 @@ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsEx private Command getAddItemCommand(String input) throws IndexOutOfBoundsException, IOException { checkForDuplicateFlags(input, ITEM_FLAG_REGEX); - Pattern pattern = Pattern.compile(ADD_ITEM_REGEX); - Matcher matcher = pattern.matcher(input); + Matcher matcher = getMatcher(input, ADD_ITEM_REGEX); if (!matcher.matches()) { throw new InvalidCommandException(INVALID_ADD_MESSAGE); @@ -470,8 +467,7 @@ private Command parseRemoveCommand(String input, String[] commandParts) throws I private RemoveCommand getRemoveEventCommand(String input) throws IndexOutOfBoundsException { checkForDuplicateFlags(input, REMOVE_EVENT_FLAG_REGEX); - Pattern pattern = Pattern.compile(REMOVE_EVENT_REGEX); - Matcher matcher = pattern.matcher(input); + Matcher matcher = getMatcher(input, REMOVE_EVENT_REGEX); if (matcher.matches()) { if (matcher.group(1).isBlank()) { @@ -495,8 +491,7 @@ private RemoveCommand getRemoveEventCommand(String input) throws IndexOutOfBound private RemoveCommand getRemoveParticipantCommand(String input) throws IndexOutOfBoundsException { checkForDuplicateFlags(input, REMOVE_PARTICIPANT_FLAG_REGEX); - Pattern pattern = Pattern.compile(REMOVE_PARTICIPANT_REGEX); - Matcher matcher = pattern.matcher(input); + Matcher matcher = getMatcher(input, REMOVE_PARTICIPANT_REGEX); if (matcher.matches()) { if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { @@ -520,8 +515,7 @@ private RemoveCommand getRemoveParticipantCommand(String input) throws IndexOutO private RemoveCommand getRemoveItemCommand(String input) throws IndexOutOfBoundsException { checkForDuplicateFlags(input, ITEM_FLAG_REGEX); - Pattern pattern = Pattern.compile(REMOVE_ITEM_REGEX); - Matcher matcher = pattern.matcher(input); + Matcher matcher = getMatcher(input, REMOVE_ITEM_REGEX); if (matcher.matches()) { if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { @@ -577,8 +571,7 @@ private Command getEditEventCommand(String input) throws IndexOutOfBoundsExcepti IllegalArgumentException { checkForDuplicateFlags(input, EDIT_EVENT_ATTRIBUTE_FLAG_REGEX); - Pattern pattern = Pattern.compile(EDIT_EVENT_ATTRIBUTE_REGEX); - Matcher matcher = pattern.matcher(input); + Matcher matcher = getMatcher(input, EDIT_EVENT_ATTRIBUTE_REGEX); String eventName; String eventNewName; @@ -625,8 +618,7 @@ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsE IOException { checkForDuplicateFlags(input, PARTICIPANT_FLAG_REGEX); - Pattern pattern = Pattern.compile(EDIT_PARTICIPANT_REGEX); - Matcher matcher = pattern.matcher(input); + Matcher matcher = getMatcher(input, EDIT_PARTICIPANT_REGEX); String participantName; String newParticipantName; @@ -666,8 +658,7 @@ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsE private Command getEditItemCommand(String input) { checkForDuplicateFlags(input, ITEM_FLAG_REGEX); - Pattern pattern = Pattern.compile(EDIT_ITEM_REGEX); - Matcher matcher = pattern.matcher(input); + Matcher matcher = getMatcher(input, EDIT_ITEM_REGEX); String itemName; String itemNewName; @@ -741,8 +732,7 @@ private Command parseViewCommand(String input, String[] commandParts) throws Inv private ViewCommand getViewCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException { checkForDuplicateFlags(input, VIEW_FLAG_REGEX); - Pattern pattern = Pattern.compile(VIEW_REGEX); - Matcher matcher = pattern.matcher(input); + Matcher matcher = getMatcher(input, VIEW_REGEX); if (!matcher.matches()) { throw new InvalidCommandException(INVALID_VIEW_MESSAGE); @@ -807,8 +797,7 @@ private Command getMarkEventCommand(String input) throws InvalidCommandException IOException { checkForDuplicateFlags(input, MARK_EVENT_FLAG_REGEX); - Pattern pattern = Pattern.compile(MARK_EVENT_REGEX); - Matcher matcher = pattern.matcher(input); + Matcher matcher = getMatcher(input, MARK_EVENT_REGEX); if (!matcher.matches()) { throw new InvalidCommandException(INVALID_MARK_MESSAGE); @@ -856,8 +845,7 @@ private Command getMarkParticipantCommand(String input) throws InvalidCommandExc IOException { checkForDuplicateFlags(input, MARK_PARTICIPANT_FLAG_REGEX); - Pattern pattern = Pattern.compile(MARK_PARTICIPANT_REGEX); - Matcher matcher = pattern.matcher(input); + Matcher matcher = getMatcher(input, MARK_PARTICIPANT_REGEX); if (!matcher.matches()) { throw new InvalidCommandException(INVALID_MARK_MESSAGE); @@ -906,8 +894,7 @@ private Command getMarkItemCommand(String input) throws InvalidCommandException, IOException { checkForDuplicateFlags(input, MARK_ITEM_FLAG_REGEX); - Pattern pattern = Pattern.compile(MARK_ITEM_REGEX); - Matcher matcher = pattern.matcher(input); + Matcher matcher = getMatcher(input, MARK_ITEM_REGEX); if (!matcher.matches()) { throw new InvalidCommandException(INVALID_MARK_MESSAGE); @@ -962,8 +949,7 @@ private Command parseCopyCommand(String input, String[] commandParts) throws Inv checkForDuplicateFlags(input, COPY_FLAG_REGEX); - Pattern pattern = Pattern.compile(COPY_REGEX); - Matcher matcher = pattern.matcher(input); + Matcher matcher = getMatcher(input, COPY_REGEX); if (matcher.matches()) { @@ -999,8 +985,7 @@ private Command parseSortCommand(String input, String[] commandParts) throws Inv checkForDuplicateFlags(input, SORT_FLAG_REGEX); - Pattern pattern = Pattern.compile(SORT_REGEX); - Matcher matcher = pattern.matcher(input); + Matcher matcher = getMatcher(input, SORT_REGEX); if (matcher.matches()) { @@ -1041,8 +1026,7 @@ private Command parseFilterCommand(String input, String[] commandParts) throws I checkForDuplicateFlags(input, FILTER_FLAG_REGEX); - Pattern pattern = Pattern.compile(FILTER_REGEX); - Matcher matcher = pattern.matcher(input); + Matcher matcher = getMatcher(input, FILTER_REGEX); if (matcher.matches()) { @@ -1161,7 +1145,7 @@ private void logWarning(String message) throws IOException { * @param flagRegex The regular expression pattern used to identify flags in the input string. * @throws InvalidCommandException if a duplicate flag is found in the input string. */ - private static void checkForDuplicateFlags(String input, String flagRegex) throws InvalidCommandException { + private void checkForDuplicateFlags(String input, String flagRegex) throws InvalidCommandException { Pattern flagPattern = Pattern.compile(flagRegex); Matcher flagMatcher = flagPattern.matcher(input); @@ -1176,4 +1160,16 @@ private static void checkForDuplicateFlags(String input, String flagRegex) throw } } } + + /** + * Gets a {@link Matcher} from a given input string and regex. + * + * @param input the given input string. + * @param regex the given regex. + * @return a {@link Matcher} for input and regex. + */ + private Matcher getMatcher(String input, String regex) { + Pattern pattern = Pattern.compile(regex); + return pattern.matcher(input); + } } From 5169ba772a69e8fdf366f59503c4c7e689120e93 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Sun, 10 Nov 2024 23:33:54 +0800 Subject: [PATCH 565/619] Bug for trailing whitespace --- src/main/java/seedu/manager/parser/Parser.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 249b6b7c8b..c88d7a4e78 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -201,6 +201,7 @@ public Parser() { */ public Command parseCommand(String command) throws InvalidCommandException, IOException { String[] commandParts = command.trim().split(SPACE); + command = command.trim(); String commandWord = commandParts[0].toLowerCase(); try { switch (commandWord) { From 9f834666cdd343b100fec6b4634d744cc6b8a951 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 23:42:37 +0800 Subject: [PATCH 566/619] Make happy path more prominent for add command parsers --- .../java/seedu/manager/parser/Parser.java | 93 +++++++++---------- 1 file changed, 42 insertions(+), 51 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index c9db566bee..5a25c1b3af 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -313,35 +313,30 @@ private Command getAddEventCommand(String input) throws IndexOutOfBoundsExceptio Matcher matcher = getMatcher(input, ADD_EVENT_REGEX); - String eventName; - LocalDateTime eventTime; - String venue; - Priority eventPriority; - - if (matcher.matches()) { - if (matcher.group(1).isBlank() || matcher.group(2).isBlank() - || matcher.group(3).isBlank() || matcher.group(4).isBlank()) { - throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); - } - - logInfo("Creating AddCommand for event with details: " + - matcher.group(1).trim() + ", " + matcher.group(2).trim() + ", " + matcher.group(3).trim()); + if (!matcher.matches()) { + throw new InvalidCommandException(INVALID_ADD_MESSAGE); + } - eventName = matcher.group(1).trim(); - SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - dateTimeFormat.setLenient(false); - Date parsedDateTime = dateTimeFormat.parse(matcher.group(2).trim()); - eventTime = LocalDateTime.ofInstant(parsedDateTime.toInstant(), ZoneId.systemDefault()); - venue = matcher.group(3).trim(); - eventPriority = Priority.valueOf(matcher.group(4).trim().toUpperCase()); + if (matcher.group(1).isBlank() || matcher.group(2).isBlank() + || matcher.group(3).isBlank() || matcher.group(4).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } - if (eventTime.isBefore(LocalDateTime.now())) { - throw new InvalidCommandException(PAST_DATE_MESSAGE); - } + logInfo("Creating AddCommand for event with details: " + + matcher.group(1).trim() + ", " + matcher.group(2).trim() + ", " + matcher.group(3).trim()); - } else { - throw new InvalidCommandException(INVALID_ADD_MESSAGE); + String eventName = matcher.group(1).trim(); + SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + dateTimeFormat.setLenient(false); + Date parsedDateTime = dateTimeFormat.parse(matcher.group(2).trim()); + LocalDateTime eventTime = LocalDateTime.ofInstant(parsedDateTime.toInstant(), ZoneId.systemDefault()); + String venue = matcher.group(3).trim(); + Priority eventPriority = Priority.valueOf(matcher.group(4).trim().toUpperCase()); + + if (eventTime.isBefore(LocalDateTime.now())) { + throw new InvalidCommandException(PAST_DATE_MESSAGE); } + return new AddCommand(eventName, eventTime, venue, eventPriority); } @@ -361,28 +356,24 @@ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsEx Matcher matcher = getMatcher(input, ADD_PARTICIPANT_REGEX); - String participantName; - String participantEmail; - String eventName; + if (!matcher.matches()) { + throw new InvalidCommandException(INVALID_ADD_MESSAGE); + } - if (matcher.matches()) { - if (matcher.group(1).isBlank() || matcher.group(2).isBlank() - || matcher.group(3).isBlank()) { - throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); - } + if (matcher.group(1).isBlank() || matcher.group(2).isBlank() + || matcher.group(3).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } - logInfo("Creating AddCommand for participant with details: " + - matcher.group(1).trim() + ", " + matcher.group(2).trim()); - participantName = matcher.group(1).trim(); - participantEmail = matcher.group(2).trim(); - eventName = matcher.group(3).trim(); + logInfo("Creating AddCommand for participant with details: " + + matcher.group(1).trim() + ", " + matcher.group(2).trim()); + String participantName = matcher.group(1).trim(); + String participantEmail = matcher.group(2).trim(); + String eventName = matcher.group(3).trim(); - if (!isValidEmail(participantEmail)) { - logWarning("Invalid email format"); - throw new InvalidCommandException(INVALID_EMAIL_MESSAGE); - } - } else { - throw new InvalidCommandException(INVALID_ADD_MESSAGE); + if (!isValidEmail(participantEmail)) { + logWarning("Invalid email format"); + throw new InvalidCommandException(INVALID_EMAIL_MESSAGE); } return new AddCommand(participantName, participantEmail, eventName); @@ -469,15 +460,15 @@ private RemoveCommand getRemoveEventCommand(String input) throws IndexOutOfBound Matcher matcher = getMatcher(input, REMOVE_EVENT_REGEX); - if (matcher.matches()) { - if (matcher.group(1).isBlank()) { - throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); - } - - return new RemoveCommand(matcher.group(1).trim()); - } else { + if (!matcher.matches()) { throw new InvalidCommandException(INVALID_REMOVE_MESSAGE); } + + if (matcher.group(1).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + + return new RemoveCommand(matcher.group(1).trim()); } //@@author LTK-1606 From e0173f7239c34574458f3db587766fcb7a2e3c3b Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 23:54:07 +0800 Subject: [PATCH 567/619] Reduce nesting in parse command methods --- .../java/seedu/manager/parser/Parser.java | 187 ++++++++---------- 1 file changed, 84 insertions(+), 103 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 5a25c1b3af..c18e4f0539 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -484,15 +484,15 @@ private RemoveCommand getRemoveParticipantCommand(String input) throws IndexOutO Matcher matcher = getMatcher(input, REMOVE_PARTICIPANT_REGEX); - if (matcher.matches()) { - if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { - throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); - } - - return new RemoveCommand(matcher.group(1).trim(), matcher.group(2).trim(), true); - } else { + if (!matcher.matches()) { throw new InvalidCommandException(INVALID_REMOVE_MESSAGE); } + + if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + + return new RemoveCommand(matcher.group(1).trim(), matcher.group(2).trim(), true); } //@@author jemehgoh @@ -564,33 +564,26 @@ private Command getEditEventCommand(String input) throws IndexOutOfBoundsExcepti Matcher matcher = getMatcher(input, EDIT_EVENT_ATTRIBUTE_REGEX); - String eventName; - String eventNewName; - LocalDateTime eventTime; - Priority eventPriority; - String eventVenue; + if (!matcher.matches()) { + throw new InvalidCommandException(INVALID_EDIT_MESSAGE); + } - if (matcher.matches()) { - if (matcher.group(1).isBlank() || matcher.group(2).isBlank() - || matcher.group(3).isBlank() || matcher.group(4).isBlank() || matcher.group(5).isBlank()) { - throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); - } + if (matcher.group(1).isBlank() || matcher.group(2).isBlank() + || matcher.group(3).isBlank() || matcher.group(4).isBlank() || matcher.group(5).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } - eventName = matcher.group(1).trim(); - eventNewName = matcher.group(2).trim(); - SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - dateTimeFormat.setLenient(false); - Date parsedDateTime = dateTimeFormat.parse(matcher.group(3).trim()); - eventTime = LocalDateTime.ofInstant(parsedDateTime.toInstant(), ZoneId.systemDefault()); - eventVenue = matcher.group(4).trim(); - eventPriority = Priority.valueOf(matcher.group(5).trim().toUpperCase()); - - if (eventTime.isBefore(LocalDateTime.now())) { - throw new InvalidCommandException(PAST_DATE_MESSAGE); - } + String eventName = matcher.group(1).trim(); + String eventNewName = matcher.group(2).trim(); + SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + dateTimeFormat.setLenient(false); + Date parsedDateTime = dateTimeFormat.parse(matcher.group(3).trim()); + LocalDateTime eventTime = LocalDateTime.ofInstant(parsedDateTime.toInstant(), ZoneId.systemDefault()); + String eventVenue = matcher.group(4).trim(); + Priority eventPriority = Priority.valueOf(matcher.group(5).trim().toUpperCase()); - } else { - throw new InvalidCommandException(INVALID_EDIT_MESSAGE); + if (eventTime.isBefore(LocalDateTime.now())) { + throw new InvalidCommandException(PAST_DATE_MESSAGE); } return new EditEventCommand(eventName, eventNewName, eventTime, eventVenue, eventPriority); @@ -611,28 +604,23 @@ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsE Matcher matcher = getMatcher(input, EDIT_PARTICIPANT_REGEX); - String participantName; - String newParticipantName; - String newEmail; - String eventName; + if (!matcher.matches()) { + throw new InvalidCommandException(INVALID_EDIT_MESSAGE); + } - if (matcher.matches()) { - if (matcher.group(1).isBlank() || matcher.group(2).isBlank() - || matcher.group(3).isBlank()) { - throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); - } + if (matcher.group(1).isBlank() || matcher.group(2).isBlank() + || matcher.group(3).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } - participantName = matcher.group(1).trim(); - newParticipantName = matcher.group(2).trim(); - newEmail = matcher.group(3).trim(); - eventName = matcher.group(4).trim(); + String participantName = matcher.group(1).trim(); + String newParticipantName = matcher.group(2).trim(); + String newEmail = matcher.group(3).trim(); + String eventName = matcher.group(4).trim(); - if (!isValidEmail(newEmail)) { - logWarning("Invalid email format"); - throw new InvalidCommandException(INVALID_EMAIL_MESSAGE); - } - } else { - throw new InvalidCommandException(INVALID_EDIT_MESSAGE); + if (!isValidEmail(newEmail)) { + logWarning("Invalid email format"); + throw new InvalidCommandException(INVALID_EMAIL_MESSAGE); } return new EditParticipantCommand(participantName, newParticipantName, newEmail, eventName); @@ -651,21 +639,18 @@ private Command getEditItemCommand(String input) { Matcher matcher = getMatcher(input, EDIT_ITEM_REGEX); - String itemName; - String itemNewName; - String eventName; - - if (matcher.matches()) { - if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { - throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); - } - - itemName = matcher.group(1).split(ARROW)[0].trim(); - itemNewName = matcher.group(1).split(ARROW)[1].trim(); - eventName = matcher.group(2).trim(); - } else { + if (!matcher.matches()) { throw new InvalidCommandException(INVALID_EDIT_MESSAGE); } + + if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + + String itemName = matcher.group(1).split(ARROW)[0].trim(); + String itemNewName = matcher.group(1).split(ARROW)[1].trim(); + String eventName = matcher.group(2).trim(); + return new EditItemCommand(itemName, itemNewName, eventName); } @@ -942,16 +927,15 @@ private Command parseCopyCommand(String input, String[] commandParts) throws Inv Matcher matcher = getMatcher(input, COPY_REGEX); - if (matcher.matches()) { - - if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { - throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); - } - - return new CopyCommand(matcher.group(1).trim(), matcher.group(2).trim()); - } else { + if (!matcher.matches()) { throw new InvalidCommandException(INVALID_COPY_MESSAGE); } + + if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + + return new CopyCommand(matcher.group(1).trim(), matcher.group(2).trim()); } //@@author MatchaRRR @@ -978,21 +962,20 @@ private Command parseSortCommand(String input, String[] commandParts) throws Inv Matcher matcher = getMatcher(input, SORT_REGEX); - if (matcher.matches()) { - - if (matcher.group(1).isBlank()) { - throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); - } + if (!matcher.matches()) { + throw new InvalidCommandException(INVALID_SORT_MESSAGE); + } - if (!matcher.group(1).equals("time") && !matcher.group(1).equals("name") && - !matcher.group(1).equals("priority")) { - throw new InvalidCommandException(INVALID_SORT_KEYWORD_MESSAGE); - } + if (matcher.group(1).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } - return new SortCommand(matcher.group(1).trim()); - } else { - throw new InvalidCommandException(INVALID_SORT_MESSAGE); + if (!matcher.group(1).equals("time") && !matcher.group(1).equals("name") && + !matcher.group(1).equals("priority")) { + throw new InvalidCommandException(INVALID_SORT_KEYWORD_MESSAGE); } + + return new SortCommand(matcher.group(1).trim()); } //@@author LTK-1606 @@ -1019,20 +1002,19 @@ private Command parseFilterCommand(String input, String[] commandParts) throws I Matcher matcher = getMatcher(input, FILTER_REGEX); - if (matcher.matches()) { - - if (matcher.group(1).isBlank()) { - throw new InvalidCommandException(INVALID_FILTER_MESSAGE); - } - - if (matcher.group(2).isBlank()) { - throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); - } + if (!matcher.matches()) { + throw new InvalidCommandException(INVALID_FILTER_MESSAGE); + } - return new FilterCommand(matcher.group(1).trim(), matcher.group(2).trim()); - } else { + if (matcher.group(1).isBlank()) { throw new InvalidCommandException(INVALID_FILTER_MESSAGE); } + + if (matcher.group(2).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } + + return new FilterCommand(matcher.group(1).trim(), matcher.group(2).trim()); } /** @@ -1058,20 +1040,19 @@ private Command parseFindCommand(String input, String[] commandParts) throws Inv Pattern pattern = Pattern.compile(FIND_REGEX); Matcher matcher = pattern.matcher(input); - if (matcher.matches()) { - if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { - throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); - } + if (!matcher.matches()) { + throw new InvalidCommandException(INVALID_FIND_MESSAGE); + } - if (matcher.groupCount() < 2 || matcher.group(1).isBlank()) { - throw new InvalidCommandException(INVALID_FIND_MESSAGE); - } + if (matcher.group(1).isBlank() || matcher.group(2).isBlank()) { + throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); + } - return new FindCommand(matcher.group(1).trim(), matcher.group(2).trim()); - } else { + if (matcher.groupCount() < 2 || matcher.group(1).isBlank()) { throw new InvalidCommandException(INVALID_FIND_MESSAGE); } + return new FindCommand(matcher.group(1).trim(), matcher.group(2).trim()); } //@@author jemehgoh From 778f70530f523f41d6b03d292e6addb3adfe3751 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 00:04:16 +0800 Subject: [PATCH 568/619] Remove extraneous blank lines --- .../java/seedu/manager/parser/Parser.java | 25 +------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index c18e4f0539..815ed79e87 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -310,7 +310,6 @@ public Command parseAddCommand(String input, String[] commandParts) throws Inval private Command getAddEventCommand(String input) throws IndexOutOfBoundsException, ParseException, IllegalArgumentException, IOException { checkForDuplicateFlags(input, EVENT_FLAG_REGEX); - Matcher matcher = getMatcher(input, ADD_EVENT_REGEX); if (!matcher.matches()) { @@ -353,7 +352,6 @@ private Command getAddEventCommand(String input) throws IndexOutOfBoundsExceptio private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException, IOException { checkForDuplicateFlags(input, PARTICIPANT_FLAG_REGEX); - Matcher matcher = getMatcher(input, ADD_PARTICIPANT_REGEX); if (!matcher.matches()) { @@ -390,7 +388,6 @@ private Command getAddParticipantCommand(String input) throws IndexOutOfBoundsEx */ private Command getAddItemCommand(String input) throws IndexOutOfBoundsException, IOException { checkForDuplicateFlags(input, ITEM_FLAG_REGEX); - Matcher matcher = getMatcher(input, ADD_ITEM_REGEX); if (!matcher.matches()) { @@ -457,7 +454,6 @@ private Command parseRemoveCommand(String input, String[] commandParts) throws I */ private RemoveCommand getRemoveEventCommand(String input) throws IndexOutOfBoundsException { checkForDuplicateFlags(input, REMOVE_EVENT_FLAG_REGEX); - Matcher matcher = getMatcher(input, REMOVE_EVENT_REGEX); if (!matcher.matches()) { @@ -481,7 +477,6 @@ private RemoveCommand getRemoveEventCommand(String input) throws IndexOutOfBound */ private RemoveCommand getRemoveParticipantCommand(String input) throws IndexOutOfBoundsException { checkForDuplicateFlags(input, REMOVE_PARTICIPANT_FLAG_REGEX); - Matcher matcher = getMatcher(input, REMOVE_PARTICIPANT_REGEX); if (!matcher.matches()) { @@ -505,7 +500,6 @@ private RemoveCommand getRemoveParticipantCommand(String input) throws IndexOutO */ private RemoveCommand getRemoveItemCommand(String input) throws IndexOutOfBoundsException { checkForDuplicateFlags(input, ITEM_FLAG_REGEX); - Matcher matcher = getMatcher(input, REMOVE_ITEM_REGEX); if (matcher.matches()) { @@ -561,7 +555,6 @@ private Command parseEditCommand(String input, String[] commandParts) throws Inv private Command getEditEventCommand(String input) throws IndexOutOfBoundsException, ParseException, IllegalArgumentException { checkForDuplicateFlags(input, EDIT_EVENT_ATTRIBUTE_FLAG_REGEX); - Matcher matcher = getMatcher(input, EDIT_EVENT_ATTRIBUTE_REGEX); if (!matcher.matches()) { @@ -601,7 +594,6 @@ private Command getEditEventCommand(String input) throws IndexOutOfBoundsExcepti private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException, IOException { checkForDuplicateFlags(input, PARTICIPANT_FLAG_REGEX); - Matcher matcher = getMatcher(input, EDIT_PARTICIPANT_REGEX); if (!matcher.matches()) { @@ -636,7 +628,6 @@ private Command getEditParticipantCommand(String input) throws IndexOutOfBoundsE */ private Command getEditItemCommand(String input) { checkForDuplicateFlags(input, ITEM_FLAG_REGEX); - Matcher matcher = getMatcher(input, EDIT_ITEM_REGEX); if (!matcher.matches()) { @@ -707,7 +698,6 @@ private Command parseViewCommand(String input, String[] commandParts) throws Inv */ private ViewCommand getViewCommand(String input) throws IndexOutOfBoundsException, InvalidCommandException { checkForDuplicateFlags(input, VIEW_FLAG_REGEX); - Matcher matcher = getMatcher(input, VIEW_REGEX); if (!matcher.matches()) { @@ -772,7 +762,6 @@ private Command parseMarkCommand(String input, String[] commandParts) throws Inv private Command getMarkEventCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException, IOException { checkForDuplicateFlags(input, MARK_EVENT_FLAG_REGEX); - Matcher matcher = getMatcher(input, MARK_EVENT_REGEX); if (!matcher.matches()) { @@ -820,7 +809,6 @@ private boolean toMarkEvent(String status) throws InvalidCommandException, IOExc private Command getMarkParticipantCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException, IOException { checkForDuplicateFlags(input, MARK_PARTICIPANT_FLAG_REGEX); - Matcher matcher = getMatcher(input, MARK_PARTICIPANT_REGEX); if (!matcher.matches()) { @@ -869,7 +857,6 @@ private boolean toMarkParticipant(String status) throws InvalidCommandException, private Command getMarkItemCommand(String input) throws InvalidCommandException, IndexOutOfBoundsException, IOException { checkForDuplicateFlags(input, MARK_ITEM_FLAG_REGEX); - Matcher matcher = getMatcher(input, MARK_ITEM_REGEX); if (!matcher.matches()) { @@ -922,9 +909,7 @@ private boolean toMarkItem(String status) throws InvalidCommandException, IOExce */ private Command parseCopyCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(CopyCommand.COMMAND_WORD); - checkForDuplicateFlags(input, COPY_FLAG_REGEX); - Matcher matcher = getMatcher(input, COPY_REGEX); if (!matcher.matches()) { @@ -957,9 +942,7 @@ private Command parseCopyCommand(String input, String[] commandParts) throws Inv */ private Command parseSortCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(SortCommand.COMMAND_WORD); - checkForDuplicateFlags(input, SORT_FLAG_REGEX); - Matcher matcher = getMatcher(input, SORT_REGEX); if (!matcher.matches()) { @@ -997,9 +980,7 @@ private Command parseSortCommand(String input, String[] commandParts) throws Inv */ private Command parseFilterCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(FilterCommand.COMMAND_WORD); - checkForDuplicateFlags(input, FILTER_FLAG_REGEX); - Matcher matcher = getMatcher(input, FILTER_REGEX); if (!matcher.matches()) { @@ -1034,11 +1015,8 @@ private Command parseFilterCommand(String input, String[] commandParts) throws I */ private Command parseFindCommand(String input, String[] commandParts) throws InvalidCommandException { assert commandParts[0].equalsIgnoreCase(FindCommand.COMMAND_WORD); - checkForDuplicateFlags(input, FIND_FLAG_REGEX); - - Pattern pattern = Pattern.compile(FIND_REGEX); - Matcher matcher = pattern.matcher(input); + Matcher matcher = getMatcher(input, FIND_REGEX); if (!matcher.matches()) { throw new InvalidCommandException(INVALID_FIND_MESSAGE); @@ -1118,7 +1096,6 @@ private void logWarning(String message) throws IOException { * @throws InvalidCommandException if a duplicate flag is found in the input string. */ private void checkForDuplicateFlags(String input, String flagRegex) throws InvalidCommandException { - Pattern flagPattern = Pattern.compile(flagRegex); Matcher flagMatcher = flagPattern.matcher(input); From e1f4901b8b6795b77cefa7ef3fe2a43253d31ce1 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 00:11:09 +0800 Subject: [PATCH 569/619] Fix indentation --- src/main/java/seedu/manager/event/EventList.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 1745c3282f..970eabd992 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -122,7 +122,7 @@ public boolean addParticipantToEvent(String name, String email, String eventName * @return {@code true} if the participant can be added to the event, {@code false} otherwise. */ public boolean addParticipantToEvent(String name, String email, boolean isPresent, - String eventName) { + String eventName) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { event.addParticipant(name, email, isPresent); From d490ffd005d9105fe8dd1a181e70d5e8f27ef932 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Mon, 11 Nov 2024 00:31:35 +0800 Subject: [PATCH 570/619] rename my PPP --- docs/AboutUs.md | 2 +- docs/team/{yixuan.md => matcharrr.md} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename docs/team/{yixuan.md => matcharrr.md} (100%) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 4e2f38b48b..964f6b3320 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -6,4 +6,4 @@ Display | Name | Github Profile | Portfolio ![](https://wallpapers-clan.com/wp-content/uploads/2023/11/star-wars-bb-8-aesthetic-desktop-wallpaper-cover.jpg) | Lim Tze Kang | [Github](https://github.com/LTK-1606) | [Portfolio](team/ltk-1606.md) ![](https://via.placeholder.com/100.png?text=Photo) | Glenn Chew | [Github](https://github.com/glenn-chew) | [Portfolio](team/johndoe.md) ![](https://via.placeholder.com/100.png?text=Photo) | Jeremy Goh | [Github](https://github.com/jemehgoh) | [Portfolio](team/jemehgoh.md) -![](https://via.placeholder.com/100.png?text=Photo) | FU Yixuan | [Github](https://github.com/MatchaRRR) | [Portfolio](team/yixuan.md) +![](https://via.placeholder.com/100.png?text=Photo) | FU Yixuan | [Github](https://github.com/MatchaRRR) | [Portfolio](team/matcharrr) diff --git a/docs/team/yixuan.md b/docs/team/matcharrr.md similarity index 100% rename from docs/team/yixuan.md rename to docs/team/matcharrr.md From c1644512a539de1c79e62be64f1981f84747f687 Mon Sep 17 00:00:00 2001 From: fuyixuan Date: Mon, 11 Nov 2024 01:05:19 +0800 Subject: [PATCH 571/619] rename my PPP --- docs/team/matcharrr.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/team/matcharrr.md b/docs/team/matcharrr.md index fa04ca098c..89e7f4a7b6 100644 --- a/docs/team/matcharrr.md +++ b/docs/team/matcharrr.md @@ -1,7 +1,7 @@ # FU Yixuan - Project Portfolio Page ## Overview -EventManagerCLI is a desktop CLI application meant for managing small-scale events organised by one person. It is written in Java, and has around 7kLoC. +EventManagerCLI is a desktop CLI application designed for managing small-scale events organised by a single user. It is written in Java, and has around 7kLoC. The app is optimised for quick, command-based interactions, ideal for users who prefer or need a text-based interface for efficient event management. ### Summary of Contributions @@ -33,14 +33,14 @@ The app is optimised for quick, command-based interactions, ideal for users who * **Enhancements to existing features**: * Implement an EventList class to organize the events. [#35](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/35) - * Built the `main` function to initialize and run the application, setting up the primary command loop structure. [#45](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/45) + * Developed the `main` function to initialize and run the application, setting up the primary command loop structure. [#45](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/45) * **Documentation** * User Guide - * Added documentation for list features (Pull request [#155](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/155) - * Added documentation for edit features (Pull request [#155](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/155) + * Added documentation for list features. [#155](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/155) + * Added documentation for edit features. [#155](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/155) * Developer Guide - * Added implementation details for `list`, and `edit` features [#154](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/154) + * Added implementation details for `list`, and `edit` features. [#154](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/154) * Created sequence diagrams for `list`, `edit` features. [#154](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/154) * **Community** From f59f7754adb17cdc89f4d8d6de56ba56239d4446 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Mon, 11 Nov 2024 01:44:47 +0800 Subject: [PATCH 572/619] Remove picture, edit ppp --- docs/AboutUs.md | 2 +- docs/team/ltk-1606.md | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index ad46ddab97..51e606a1f3 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -3,7 +3,7 @@ Display | Name | Github Profile | Portfolio --------|:----------------:|:--------------:|:---------: ![](https://via.placeholder.com/100.png?text=Photo) | Liang Kuan Hsien | [Github](https://github.com/KuanHsienn) | [Portfolio](team/kuanhsienn.md) -![](https://wallpapers-clan.com/wp-content/uploads/2023/11/star-wars-bb-8-aesthetic-desktop-wallpaper-cover.jpg) | Lim Tze Kang | [Github](https://github.com/LTK-1606) | [Portfolio](team/ltk-1606.md) +![](https://via.placeholder.com/100.png?text=Photo) | Lim Tze Kang | [Github](https://github.com/LTK-1606) | [Portfolio](team/ltk-1606.md) ![](https://via.placeholder.com/100.png?text=Photo) | Glenn Chew | [Github](https://github.com/glenn-chew) | [Portfolio](team/glenn-chew.md) ![](https://via.placeholder.com/100.png?text=Photo) | Jeremy Goh | [Github](https://github.com/jemehgoh) | [Portfolio](team/jemehgoh.md) ![](https://via.placeholder.com/100.png?text=Photo) | FU Yixuan | [Github](https://github.com/MatchaRRR) | [Portfolio](team/matcharrr) diff --git a/docs/team/ltk-1606.md b/docs/team/ltk-1606.md index 653affec0f..97e4e59ac0 100644 --- a/docs/team/ltk-1606.md +++ b/docs/team/ltk-1606.md @@ -42,6 +42,7 @@ EventManagerCLI is a desktop CLI application meant for managing small-scale even * **Team-Based Tasks**: * General Code Enhancements: Update all functional code and tests cases etc after implementation of new priority attribute to event classes. (PR [#110](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/110)) + * Bug Fixing (PR [#172](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/172), [#234](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/234), [#241](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/241), [#247](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/247)) * **Code contributed**: [RepoSense link](https://nus-cs2113-ay2425s1.github.io/tp-dashboard/?search=LTK&sort=groupTitle&sortWithin=title&timeframe=commit&mergegroup=&groupSelect=groupByRepos&breakdown=true&checkedFileTypes=docs~functional-code~test-code~other&since=2024-09-20&tabOpen=true&tabType=authorship&tabAuthor=LTK-1606&tabRepo=AY2425S1-CS2113-W13-3%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=docs~functional-code~test-code&authorshipIsBinaryFileTypeChecked=false&authorshipIsIgnoredFilesChecked=false) @@ -60,7 +61,7 @@ EventManagerCLI is a desktop CLI application meant for managing small-scale even * **Community** - * PRs reviewed (with non-trivial review comments): [#156](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/156), [#158](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/158) + * PRs reviewed (with non-trivial review comments): [#156](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/156), [#158](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/158), [#249](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/249), [#250](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/250) * Helped teammate update PR to resolve merge conflicts and pass CI checks (PR [#118](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/118), [#127](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/127))
        From 56f6e5c42bf258216b8596b141db7c403f397b2e Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 08:59:45 +0800 Subject: [PATCH 573/619] Update duplicate handling to fix unnecessary suffix addition --- src/main/java/seedu/manager/event/Event.java | 14 ++++++++------ src/main/java/seedu/manager/event/EventList.java | 7 ++++--- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 78716cecf7..4ea872c82e 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -252,7 +252,7 @@ public void updateEvent(String eventNewName, LocalDateTime eventTime, String eve public boolean updateParticipant(String participantName, String newName, String newEmail) { for (Participant participant : this.participantList) { if (participant.getName().equalsIgnoreCase(participantName)) { - String nameToSet = getUpdatedParticipantName(newName, participantName); + String nameToSet = getUpdatedParticipantName(newName, participant); participant.setName(nameToSet); participant.setEmail(newEmail); return true; @@ -271,7 +271,7 @@ public boolean updateParticipant(String participantName, String newName, String public boolean updateItem(String itemName, String itemNewName) { for (Item item : this.itemList) { if (item.getName().equalsIgnoreCase(itemName)) { - item.setName(getUpdatedItemName(itemNewName, itemName)); + item.setName(getUpdatedItemName(itemNewName, item)); item.setPresent(false); return true; } @@ -464,10 +464,11 @@ private String getDuplicateItemName(String name) { * Returns an updated participant name for editing participant details. * * @param name the given new participant name. + * @param participant the participant to be edited. * @return the updated version of name. */ - private String getUpdatedParticipantName(String name, String participantName) { - if (name.equalsIgnoreCase(participantName)) { + private String getUpdatedParticipantName(String name, Participant participant) { + if (name.equalsIgnoreCase(participant.getName())) { return name; } else { return getDuplicateParticipantName(name); @@ -478,10 +479,11 @@ private String getUpdatedParticipantName(String name, String participantName) { * Returns an updated item name for editing item details. * * @param name the given new item name. + * @param item the item to be edited. * @return the updated version of name. */ - private String getUpdatedItemName(String name, String itemName) { - if (name.equalsIgnoreCase(itemName)) { + private String getUpdatedItemName(String name, Item item) { + if (name.equalsIgnoreCase(item.getName())) { return name; } else { return getDuplicateItemName(name); diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 970eabd992..b655853712 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -260,7 +260,7 @@ public boolean editEvent(String eventName, String eventNewName, LocalDateTime ev Priority eventPriority) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { - String name = getUpdatedEventName(eventNewName, eventName); + String name = getUpdatedEventName(eventNewName, event); event.updateEvent(name, eventTime, eventVenue, eventPriority); return true; } @@ -460,10 +460,11 @@ private String getDuplicateEventName(String name) { * Returns an updated event name for editing event details. * * @param name the given new event name. + * @param event the event to be edited. * @return the updated version of name. */ - private String getUpdatedEventName(String name, String eventName) { - if (name.equalsIgnoreCase(eventName)) { + private String getUpdatedEventName(String name, Event event) { + if (name.equals(event.getEventName())) { return name; } else { return getDuplicateEventName(name); From ebcd5df16c5734c68662f8ea26977e841ffb511f Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 09:14:32 +0800 Subject: [PATCH 574/619] Update edit name duplicate handling to fix bugs --- src/main/java/seedu/manager/event/Event.java | 25 +++++++++++++------ .../java/seedu/manager/event/EventList.java | 12 ++++++--- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 4ea872c82e..b365d8b06d 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -468,11 +468,16 @@ private String getDuplicateItemName(String name) { * @return the updated version of name. */ private String getUpdatedParticipantName(String name, Participant participant) { - if (name.equalsIgnoreCase(participant.getName())) { - return name; - } else { - return getDuplicateParticipantName(name); + int index = 1; + String updatedName = name; + + while (getParticipantByName(updatedName).isPresent() && + !updatedName.equalsIgnoreCase(participant.getName())) { + updatedName = String.format("%s(%d)", name, index); + index++; } + + return updatedName; } /** @@ -483,10 +488,14 @@ private String getUpdatedParticipantName(String name, Participant participant) { * @return the updated version of name. */ private String getUpdatedItemName(String name, Item item) { - if (name.equalsIgnoreCase(item.getName())) { - return name; - } else { - return getDuplicateItemName(name); + int index = 1; + String updatedName = name; + + while (getItemByName(updatedName).isPresent() && !updatedName.equalsIgnoreCase(item.getName())) { + updatedName = String.format("%s(%d)", name, index); + index++; } + + return updatedName; } } diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index b655853712..1cb8ead447 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -464,10 +464,14 @@ private String getDuplicateEventName(String name) { * @return the updated version of name. */ private String getUpdatedEventName(String name, Event event) { - if (name.equals(event.getEventName())) { - return name; - } else { - return getDuplicateEventName(name); + int index = 1; + String updatedName = name; + + while (getEventByName(updatedName).isPresent() && !updatedName.equals(event.getEventName())) { + updatedName = String.format("%s(%d)", name, index); + index++; } + + return updatedName; } } From 20f0938ffea33817393bb000066c2b58eedc7548 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 12:07:47 +0800 Subject: [PATCH 575/619] Update edit command to return string instead of boolean --- .../manager/command/EditEventCommand.java | 31 +++++++++++++++--- .../manager/command/EditItemCommand.java | 25 +++++++++++++-- .../command/EditParticipantCommand.java | 32 +++++++++++++++---- src/main/java/seedu/manager/event/Event.java | 23 ++++++------- .../java/seedu/manager/event/EventList.java | 30 ++++++++--------- text-ui-test/EXPECTED.TXT | 6 ++-- 6 files changed, 104 insertions(+), 43 deletions(-) diff --git a/src/main/java/seedu/manager/command/EditEventCommand.java b/src/main/java/seedu/manager/command/EditEventCommand.java index 5abfc12dfc..46d054e21f 100644 --- a/src/main/java/seedu/manager/command/EditEventCommand.java +++ b/src/main/java/seedu/manager/command/EditEventCommand.java @@ -10,7 +10,7 @@ */ public class EditEventCommand extends Command{ public static final String COMMAND_WORD = "edit"; - private static final String EDIT_EVENT_MESSAGE = "Event information successfully updated"; + private static final String EDIT_EVENT_MESSAGE = "The following event has been updated:\n"; private static final String EDIT_FAILURE_MESSAGE = "Event not found!"; protected String eventName; protected String eventNewName; @@ -18,7 +18,6 @@ public class EditEventCommand extends Command{ protected String eventVenue; protected Priority eventPriority; - //@@author MatchaRRR /** * Constructs an EditEventCommand object with the specified event name, event time, event venue and event priority. @@ -39,7 +38,6 @@ public EditEventCommand(String eventName, String eventNewName, LocalDateTime eve this.eventPriority = eventPriority; } - /** * Executes the edit operation, updating the event's information if the event exits. * If successful, a confirmation message @@ -47,7 +45,30 @@ public EditEventCommand(String eventName, String eventNewName, LocalDateTime eve */ @Override public void execute() { - boolean isEdited = this.eventList.editEvent(eventName, eventNewName, eventTime, eventVenue, eventPriority); - this.message = (isEdited) ? EDIT_EVENT_MESSAGE : EDIT_FAILURE_MESSAGE; + String updatedName = eventList.editEvent(eventName, eventNewName, eventTime, eventVenue, eventPriority); + if (updatedName.equalsIgnoreCase("")) { + message = EDIT_FAILURE_MESSAGE; + } else { + message = getOutputMessage(updatedName, eventTime, eventVenue, eventPriority); + } + } + + /** + * Returns a success output message with the given event details. + * + * @param name the updated event name. + * @param time the updated event time. + * @param venue the updated event venue. + * @param priority the updated event priority. + * @return an output message with name, time, venue and priority. + */ + private String getOutputMessage(String name, LocalDateTime time, String venue, Priority priority) { + String dateTimeString = time.toString(); + StringBuilder outputMessage = new StringBuilder(); + outputMessage.append(EDIT_EVENT_MESSAGE); + String formattedString = String.format("Event name: %s / Event time: %s / Event venue: %s / Event Priority: %s", + name, dateTimeString, venue, priority); + outputMessage.append(formattedString); + return outputMessage.toString(); } } diff --git a/src/main/java/seedu/manager/command/EditItemCommand.java b/src/main/java/seedu/manager/command/EditItemCommand.java index 48846d1c13..7beec28334 100644 --- a/src/main/java/seedu/manager/command/EditItemCommand.java +++ b/src/main/java/seedu/manager/command/EditItemCommand.java @@ -6,7 +6,7 @@ */ public class EditItemCommand extends Command { public static final String COMMAND_WORD = "edit"; - private static final String EDIT_ITEM_MESSAGE = "Item successfully updated"; + private static final String EDIT_ITEM_MESSAGE = "The following item has been updated:\n"; private static final String EDIT_FAILURE_MESSAGE = "Event/Item not found!"; protected String itemName; protected String itemNewName; @@ -29,7 +29,26 @@ public EditItemCommand(String itemName, String itemNewName, String eventName) { @Override public void execute() { - boolean isEdited = this.eventList.editItem(itemName, itemNewName, eventName); - this.message = (isEdited) ? EDIT_ITEM_MESSAGE : EDIT_FAILURE_MESSAGE; + String updatedName = eventList.editItem(itemName, itemNewName, eventName); + + if (updatedName.equalsIgnoreCase("")) { + message = EDIT_FAILURE_MESSAGE; + } else { + message = getOutputMessage(updatedName); + } + } + + /** + * Returns a success output message with the given item details. + * + * @param name the updated item name. + * @return an output message with name and the event name. + */ + private String getOutputMessage(String name) { + StringBuilder outputMessage = new StringBuilder(); + outputMessage.append(EDIT_ITEM_MESSAGE); + String formattedString = String.format("Item name: %s / Event name: %s", name, eventName); + outputMessage.append(formattedString); + return outputMessage.toString(); } } diff --git a/src/main/java/seedu/manager/command/EditParticipantCommand.java b/src/main/java/seedu/manager/command/EditParticipantCommand.java index 4c77f5379c..3106a0d79e 100644 --- a/src/main/java/seedu/manager/command/EditParticipantCommand.java +++ b/src/main/java/seedu/manager/command/EditParticipantCommand.java @@ -6,7 +6,7 @@ */ public class EditParticipantCommand extends Command{ public static final String COMMAND_WORD = "edit"; - private static final String EDIT_PARTICIPANT_MESSAGE = "Participant contact information successfully updated"; + private static final String EDIT_PARTICIPANT_MESSAGE = "The following participant's details has been updated:\n"; private static final String EDIT_FAILURE_MESSAGE = "Event/Participant not found!"; protected String eventName; protected String participantName; @@ -25,7 +25,7 @@ public class EditParticipantCommand extends Command{ * @param eventName The name of the event associated with the participant. */ public EditParticipantCommand(String participantName, String newParticipantName, String participantEmail, - String eventName) { + String eventName) { super(false); this.participantName = participantName; this.newParticipantName = newParticipantName; @@ -33,7 +33,6 @@ public EditParticipantCommand(String participantName, String newParticipantName, this.eventName = eventName; } - /** * Executes the edit operation, updating the participant's contact information if the * participant is associated with the specified event. If successful, a confirmation message @@ -41,10 +40,29 @@ public EditParticipantCommand(String participantName, String newParticipantName, */ @Override public void execute() { - if (participantName != null) { - boolean isEdited = eventList.editParticipant(participantName, newParticipantName, participantEmail, - this.eventName); - this.message = (isEdited) ? EDIT_PARTICIPANT_MESSAGE : EDIT_FAILURE_MESSAGE; + assert participantName != null: "Participant name cannot be null."; + String updatedName = eventList.editParticipant(participantName, newParticipantName, participantEmail, + eventName); + if (updatedName.equalsIgnoreCase("")) { + message = EDIT_FAILURE_MESSAGE; + } else { + message = getOutputMessage(updatedName, participantEmail); } } + + /** + * Returns a success output message with the given participant details. + * + * @param name the updated name of the participant. + * @param email the updated email of the participant. + * @return an output message with name, email, and the event name. + */ + private String getOutputMessage(String name, String email) { + StringBuilder outputMessage = new StringBuilder(); + outputMessage.append(EDIT_PARTICIPANT_MESSAGE); + String formattedString = String.format("Participant name: %s / Participant email: %s / Event name: %s", + name, email, eventName); + outputMessage.append(formattedString); + return outputMessage.toString(); + } } diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index b365d8b06d..341b93111a 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -246,37 +246,38 @@ public void updateEvent(String eventNewName, LocalDateTime eventTime, String eve * * @param participantName the name of the participant to be updated. * @param newEmail the new email address of the participant. - * @return {@code true} if the participant was successfully updated; - * {@code false} if the participant was not found. + * @return the updated participant name if the details were updated. Otherwise, returns an empty string. */ - public boolean updateParticipant(String participantName, String newName, String newEmail) { + public String updateParticipant(String participantName, String newName, String newEmail) { for (Participant participant : this.participantList) { if (participant.getName().equalsIgnoreCase(participantName)) { String nameToSet = getUpdatedParticipantName(newName, participant); participant.setName(nameToSet); participant.setEmail(newEmail); - return true; + return nameToSet; } } - return false; + return ""; } //@@author MatchaRRR /** - * Updates the details of an event. + * Updates the details of an item. * * @param itemName The name of original item. * @param itemNewName The name of the new item. + * @return the updated name of the item if the details were updated; an empty string otherwise. */ - public boolean updateItem(String itemName, String itemNewName) { + public String updateItem(String itemName, String itemNewName) { for (Item item : this.itemList) { if (item.getName().equalsIgnoreCase(itemName)) { - item.setName(getUpdatedItemName(itemNewName, item)); + String updatedName = getUpdatedItemName(itemNewName, item); + item.setName(updatedName); item.setPresent(false); - return true; + return updatedName; } } - return false; + return ""; } //@@author jemehgoh @@ -336,7 +337,7 @@ private boolean markParticipant(Optional participant, boolean isPre * @param itemName the name of the item. * @param isPresent true if the item is to be marked present, false if it is to be marked absent. * @return {@code true} if the item with itemName has been marked present or absent, - * @code false} otherwise. + * {@code false} otherwise. */ public boolean markItemByName(String itemName, boolean isPresent) { Optional item = getItemByName(itemName); diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index 1cb8ead447..b120eaf182 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -253,19 +253,18 @@ public boolean removeItemFromEvent(String itemName, String eventName) { * @param eventTime The new time of the event. * @param eventVenue The new venue of the event. * @param eventPriority The new priority of the event. - * @return {@code true} if the event was successfully edited; - * {@code false} if the event does not exist. + * @return the updated name of the event if the event details were updated. Otherwise, returns an empty string. */ - public boolean editEvent(String eventName, String eventNewName, LocalDateTime eventTime, String eventVenue, + public String editEvent(String eventName, String eventNewName, LocalDateTime eventTime, String eventVenue, Priority eventPriority) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { String name = getUpdatedEventName(eventNewName, event); event.updateEvent(name, eventTime, eventVenue, eventPriority); - return true; + return name; } } - return false; + return ""; } //@@author KuanHsienn @@ -284,16 +283,16 @@ public boolean editEvent(String eventName, String eventNewName, LocalDateTime ev * @param newName the new name of the participant. * @param email the new email address of the participant. * @param eventName the name of the event associated with the participant. - * @return {@code true} if the participant was successfully edited; - * {@code false} if the event does not exist or the participant was not found. + * @return the updated participant name if the participant was successfully edited; + * an empty string if the event does not exist or the participant was not found. */ - public boolean editParticipant(String currentName, String newName, String email, String eventName) { + public String editParticipant(String currentName, String newName, String email, String eventName) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { return event.updateParticipant(currentName, newName, email); } } - return false; + return ""; } //@@author MatchaRRR @@ -306,18 +305,19 @@ public boolean editParticipant(String currentName, String newName, String email, * If the event does not exist, it returns {@code false}. *

        * - * @param itemName The name of original item. - * @param itemNewName The name of the new item. - * @return {@code true} if the item was successfully edited; - * {@code false} if the item does not exist. + * @param itemName the name of original item. + * @param itemNewName the name of the new item. + * @param eventName the name of the event the item is in. + * @return the updated name of the item if the item was successfully edited; + * an empty string if the item or event specified does not exist. */ - public boolean editItem(String itemName, String itemNewName, String eventName) { + public String editItem(String itemName, String itemNewName, String eventName) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { return event.updateItem(itemName, itemNewName); } } - return false; + return ""; } //@@author LTK-1606 diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index eb5da13d67..b37f7015e2 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -50,7 +50,8 @@ Enter a command: There is 1 event in your list! Here is your scheduled event: ------------------------ Enter a command: Event not found! ------------------------ -Enter a command: Event information successfully updated +Enter a command: The following event has been updated: +Event name: dinner party / Event time: 2026-10-10T15:00 / Event venue: Bob's House / Event Priority: LOW ------------------------ Enter a command: There is 1 event in your list! Here is your scheduled event: 1. Event name: dinner party / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y @@ -126,7 +127,8 @@ Enter a command: There is 1 item in anniversary celebration! Here is your item: 1. balloon [ ] ------------------------ -Enter a command: Item successfully updated +Enter a command: The following item has been updated: +Item name: cake / Event name: anniversary celebration ------------------------ Enter a command: There is 1 item in anniversary celebration! Here is your item: 1. cake [ ] From f66603f52ced942b97d6fb1ca73d229ee8fe1562 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 12:32:00 +0800 Subject: [PATCH 576/619] Update add command to return added item names --- .../seedu/manager/command/AddCommand.java | 65 +++++++++++++++---- .../manager/command/EditEventCommand.java | 4 +- src/main/java/seedu/manager/event/Event.java | 10 ++- .../java/seedu/manager/event/EventList.java | 42 +++++++----- .../seedu/manager/storage/FileParser.java | 8 +-- .../seedu/manager/command/AddCommandTest.java | 4 +- text-ui-test/EXPECTED.TXT | 17 +++-- 7 files changed, 103 insertions(+), 47 deletions(-) diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index 3d6f37f468..bc1f5d7830 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -12,9 +12,9 @@ */ public class AddCommand extends Command { public static final String COMMAND_WORD = "add"; - private static final String ADD_EVENT_MESSAGE = "Event added successfully"; - private static final String ADD_PARTICIPANT_MESSAGE = "Participant added successfully"; - private static final String ADD_ITEM_MESSAGE = "Item added successfully"; + private static final String ADD_EVENT_MESSAGE = "Event added successfully:\n"; + private static final String ADD_PARTICIPANT_MESSAGE = "Participant added successfully:\n"; + private static final String ADD_ITEM_MESSAGE = "Item added successfully:\n"; private static final String ADD_FAILURE_MESSAGE = "Event not found!"; protected String eventName; @@ -89,18 +89,57 @@ public AddCommand(String itemName, String eventName) { @Override public void execute() { if (participantName != null) { - boolean isAdded = eventList.addParticipantToEvent( - participantName, - participantEmail, - eventName - ); - message = (isAdded) ? ADD_PARTICIPANT_MESSAGE : ADD_FAILURE_MESSAGE; + addParticipant(); } else if (itemName != null) { - boolean isAdded = eventList.addItemToEvent(itemName, eventName); - message = (isAdded) ? ADD_ITEM_MESSAGE : ADD_FAILURE_MESSAGE; + addItem(); } else { - eventList.addEvent(eventName, time, venue, priority); - message = ADD_EVENT_MESSAGE; + addEvent(); } } + + /** + * Adds a participant to an event. + */ + private void addParticipant() { + String addedName = eventList.addParticipantToEvent(participantName, participantEmail, eventName); + if (addedName.equalsIgnoreCase("")) { + message = ADD_FAILURE_MESSAGE; + } else { + StringBuilder outputMessage = new StringBuilder(); + outputMessage.append(ADD_PARTICIPANT_MESSAGE); + outputMessage.append(String.format("Participant name: %s / Participant email: %s / Event name: %s", + addedName, participantEmail, eventName)); + message = outputMessage.toString(); + } + } + + /** + * Adds an item to an event. + */ + private void addItem() { + String addedName = eventList.addItemToEvent(itemName, eventName); + if (addedName.equalsIgnoreCase("")) { + message = ADD_FAILURE_MESSAGE; + } else { + StringBuilder outputMessage = new StringBuilder(); + outputMessage.append(ADD_ITEM_MESSAGE); + outputMessage.append(String.format("Item name: %s / Event name: %s", + addedName, eventName)); + message = outputMessage.toString(); + } + } + + /** + * Adds an event to the event list. + */ + private void addEvent() { + String nameToShow = eventList.addEvent(eventName, time, venue, priority); + + StringBuilder outputMessage = new StringBuilder(); + outputMessage.append(ADD_EVENT_MESSAGE); + String dateTimeString = time.toString(); + outputMessage.append(String.format("Event name: %s / Event time: %s / Event venue: %s / Event priority: %s", + nameToShow, dateTimeString, venue, priority)); + message = outputMessage.toString(); + } } diff --git a/src/main/java/seedu/manager/command/EditEventCommand.java b/src/main/java/seedu/manager/command/EditEventCommand.java index 46d054e21f..a10fb8cdcc 100644 --- a/src/main/java/seedu/manager/command/EditEventCommand.java +++ b/src/main/java/seedu/manager/command/EditEventCommand.java @@ -66,8 +66,8 @@ private String getOutputMessage(String name, LocalDateTime time, String venue, P String dateTimeString = time.toString(); StringBuilder outputMessage = new StringBuilder(); outputMessage.append(EDIT_EVENT_MESSAGE); - String formattedString = String.format("Event name: %s / Event time: %s / Event venue: %s / Event Priority: %s", - name, dateTimeString, venue, priority); + String formattedString = String.format("Event name: %s / Event time: %s / Event venue: %s / " + + "Event priority: %s", name, dateTimeString, venue, priority); outputMessage.append(formattedString); return outputMessage.toString(); } diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 341b93111a..b37f55b03c 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -172,24 +172,28 @@ public boolean isDone() { * * @param participantName the name of the participant to be added to the list. * @param isPresent {@code true} if the participant is to be present, {@code false} otherwise. + * @return the name of the added participant. */ - public void addParticipant(String participantName, String participantEmail, + public String addParticipant(String participantName, String participantEmail, boolean isPresent) { String name = getDuplicateParticipantName(participantName); Participant participant = new Participant(name, participantEmail, isPresent); this.participantList.add(participant); + return name; } //@@author jemehgoh /** - * Adds an item with a given name to the event's item list. + * Returns the name of an item added to the event's item list, with a given name. * * @param itemName the name of the item to be added. + * @return the name of the item added. */ - public void addItem(String itemName, boolean isPresent) { + public String addItem(String itemName, boolean isPresent) { String name = getDuplicateItemName(itemName); Item item = new Item(name, isPresent); itemList.add(item); + return name; } //@@author LTK-1606 diff --git a/src/main/java/seedu/manager/event/EventList.java b/src/main/java/seedu/manager/event/EventList.java index b120eaf182..1c67106115 100644 --- a/src/main/java/seedu/manager/event/EventList.java +++ b/src/main/java/seedu/manager/event/EventList.java @@ -75,10 +75,11 @@ public void addEvent(Event event) { * @param time the time of the event. * @param venue the venue where the event will take place. * @param priority the priority level of the event + * @return the name of the updated event. */ - public void addEvent(String eventName, LocalDateTime time, + public String addEvent(String eventName, LocalDateTime time, String venue, Priority priority) { - addEvent(eventName, time, venue, priority, false); + return addEvent(eventName, time, venue, priority, false); } /** @@ -89,12 +90,14 @@ public void addEvent(String eventName, LocalDateTime time, * @param venue the venue where the event will take place. * @param priority the priority level of the event. * @param isDone {@code true} if the event is marked done, {@code false otherwise}. + * @return the name of the added event. */ - public void addEvent(String eventName, LocalDateTime time, String venue, + public String addEvent(String eventName, LocalDateTime time, String venue, Priority priority, boolean isDone) { String name = getDuplicateEventName(eventName); Event newEvent = new Event(name, time, venue, priority, isDone); eventList.add(newEvent); + return name; } //@@author LTK-1606 @@ -105,9 +108,10 @@ public void addEvent(String eventName, LocalDateTime time, String venue, * @param name the name of the participant to be added. * @param email the email address of the participant * @param eventName the name of the event to which the participant will be added. - * @return {@code true} if the participant can be added to the event, {@code false} otherwise. + * @return the updated participant name if the participant can be added to the event, + * an empty string otherwise. */ - public boolean addParticipantToEvent(String name, String email, String eventName) { + public String addParticipantToEvent(String name, String email, String eventName) { return addParticipantToEvent(name, email, false, eventName); } @@ -119,45 +123,47 @@ public boolean addParticipantToEvent(String name, String email, String eventName * @param email the email address of the participant. * @param isPresent {@code true} if the participant is to be marked present, {@code false} otherwise. * @param eventName the name of the event to which the participant will be added. - * @return {@code true} if the participant can be added to the event, {@code false} otherwise. + * @return the updated participant name if the participant can be added to the event, + * an empty string otherwise. */ - public boolean addParticipantToEvent(String name, String email, boolean isPresent, + public String addParticipantToEvent(String name, String email, boolean isPresent, String eventName) { for (Event event : eventList) { if (event.getEventName().equals(eventName)) { - event.addParticipant(name, email, isPresent); - return true; + return event.addParticipant(name, email, isPresent); } } - return false; + return ""; } //@@author jemehgoh /** - * Returns true if an item with a given name is successfully added to a given event, returns false otherwise. + * Returns the added name of an item with a given name if it is successfully added to a given event. + * Otherwise, returns false. * * @param itemName the name of the item to be added. * @param eventName the name of the event the item is to be added to. - * @return {@code true} if the item is successfully added to the event, {@code false} otherwise. + * @return the added item name if the item is successfully added to the event, an empty string otherwise. */ - public boolean addItemToEvent(String itemName, String eventName) { + public String addItemToEvent(String itemName, String eventName) { return addItemToEvent(itemName, false, eventName); } /** - * Returns true if an item with a given name is successfully added to a given event, returns false otherwise. + * Returns the added name of an item with a given name if it is successfully added to a given event. + * Otherwise, returns false. * * @param itemName the name of the item to be added. * @param eventName the name of the event the item is to be added to. - * @return {@code true} if the item is successfully added to the event, {@code false} otherwise. + * @return the added item name if the item is successfully added to the event, an empty string otherwise. */ - public boolean addItemToEvent(String itemName, boolean isPresent, String eventName) { + public String addItemToEvent(String itemName, boolean isPresent, String eventName) { assert itemName != null : "Item name should not be null"; Optional event = getEventByName(eventName); if (event.isPresent()) { - event.get().addItem(itemName, isPresent); + return event.get().addItem(itemName, isPresent); } - return event.isPresent(); + return ""; } //@@author jemehgoh diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index 79fb3ecef8..289c085e2b 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -130,7 +130,7 @@ private void parseParticipantFileLine(EventList events, String[] fields) throws String email = fields[2].trim(); String eventName = fields[3].trim(); boolean isPresent = getIsMarked(fields[4].trim()); - boolean isLoaded = events.addParticipantToEvent(participantName, email, isPresent, eventName); + String isLoaded = events.addParticipantToEvent(participantName, email, isPresent, eventName); eventUnsuccessfulLoad(isLoaded); } catch (IndexOutOfBoundsException | NullPointerException exception) { logWarning("File line cannot be parsed, participant not loaded"); @@ -150,7 +150,7 @@ private void parseItemFileLine(EventList events, String[] fields) throws IOExcep String itemName = fields[1].trim(); String eventName = fields[2].trim(); boolean isPresent = getIsMarked(fields[3].trim()); - boolean isLoaded = events.addItemToEvent(itemName, isPresent, eventName); + String isLoaded = events.addItemToEvent(itemName, isPresent, eventName); eventUnsuccessfulLoad(isLoaded); } catch (IndexOutOfBoundsException | NullPointerException exception) { logWarning("File line cannot be parsed, item not loaded"); @@ -181,8 +181,8 @@ private boolean getIsMarked(String markStatus) throws IOException { * @param isLoaded Indicates whether the loading was successful. * @throws IOException if the log file cannot be written to. */ - private void eventUnsuccessfulLoad(boolean isLoaded) throws IOException { - if (!isLoaded) { + private void eventUnsuccessfulLoad(String isLoaded) throws IOException { + if (isLoaded.equalsIgnoreCase("")) { logWarning("Associated event not found, entry not loaded"); } } diff --git a/src/test/java/seedu/manager/command/AddCommandTest.java b/src/test/java/seedu/manager/command/AddCommandTest.java index 9c597d630e..1a29aa7fc6 100644 --- a/src/test/java/seedu/manager/command/AddCommandTest.java +++ b/src/test/java/seedu/manager/command/AddCommandTest.java @@ -124,7 +124,9 @@ public void add_duplicateParticipant_throwsException() { @Test public void add_oneItem_success() { - String expectedMessage = "Item added successfully"; + String expectedMessage = """ + Item added successfully: + Item name: Foolscap paper / Event name: Event 1"""; eventList.addEvent("Event 1", LocalDateTime.parse("2024-10-25 16:00", formatter), "Venue 1", Priority.MEDIUM); diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index b37f7015e2..926db52743 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -36,7 +36,8 @@ add -p PARTICIPANT -email EMAIL -e EVENT add -m ITEM -e EVENT ------------------------ -Enter a command: Event added successfully +Enter a command: Event added successfully: +Event name: dinner party / Event time: 2026-10-10T12:34 / Event venue: Alice's House / Event priority: HIGH ------------------------ Enter a command: There is 1 event in your list! Here is your scheduled event: 1. Event name: dinner party / Event time: 2026-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: N @@ -51,13 +52,14 @@ Enter a command: There is 1 event in your list! Here is your scheduled event: Enter a command: Event not found! ------------------------ Enter a command: The following event has been updated: -Event name: dinner party / Event time: 2026-10-10T15:00 / Event venue: Bob's House / Event Priority: LOW +Event name: dinner party / Event time: 2026-10-10T15:00 / Event venue: Bob's House / Event priority: LOW ------------------------ Enter a command: There is 1 event in your list! Here is your scheduled event: 1. Event name: dinner party / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y ------------------------ -Enter a command: Participant added successfully +Enter a command: Participant added successfully: +Participant name: Mary / Participant email: example@gmail.com / Event name: dinner party ------------------------ Enter a command: Invalid command! Please enter your commands in the following format: @@ -75,7 +77,8 @@ Enter a command: There is 1 participant in dinner party! Here is your participan 1. Name: Mary / Email: example@gmail.com [ ] ------------------------ -Enter a command: Event added successfully +Enter a command: Event added successfully: +Event name: anniversary celebration / Event time: 2026-10-23T12:34 / Event venue: hotel / Event priority: MEDIUM ------------------------ Enter a command: Events successfully sorted by name! 1. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N @@ -87,7 +90,8 @@ Enter a command: Events successfully sorted by time! 2. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ -Enter a command: Item added successfully +Enter a command: Item added successfully: +Item name: curry chicken / Event name: dinner party ------------------------ Enter a command: Item accounted for. ------------------------ @@ -121,7 +125,8 @@ Enter a command: There are 2 events in your list! Here are your scheduled events 2. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N ------------------------ -Enter a command: Item added successfully +Enter a command: Item added successfully: +Item name: balloon / Event name: anniversary celebration ------------------------ Enter a command: There is 1 item in anniversary celebration! Here is your item: 1. balloon [ ] From ac33813db344d23606d7d75faea1fae50623f032 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 12:44:08 +0800 Subject: [PATCH 577/619] Update DG in line with command changes --- docs/DeveloperGuide.md | 5 +- docs/diagrams/AddEventSequenceDiagram.puml | 2 +- .../AddParticipantEventSequenceDiagram.puml | 2 +- .../AddParticipantSequenceDiagram.puml | 2 +- .../EditEventCommandSequenceDiagram.puml | 2 +- .../EditItemCommandSequenceDiagram.puml | 45 +----------------- ...EditParticipantCommandSequenceDiagram.puml | 2 +- docs/images/AddEventSequenceDiagram.png | Bin 26559 -> 28065 bytes .../AddParticipantEventSequenceDiagram.png | Bin 28429 -> 29914 bytes docs/images/AddParticipantSequenceDiagram.png | Bin 21671 -> 21517 bytes .../EditEventCommandSequenceDiagram.png | Bin 29495 -> 29323 bytes .../images/EditItemCommandSequenceDiagram.png | Bin 26831 -> 26639 bytes .../EditParticipantCommandSequenceDiagram.png | Bin 34720 -> 34553 bytes 13 files changed, 9 insertions(+), 51 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 2dc9ac25c2..68c4502fba 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -322,7 +322,7 @@ The `EventList#addParticipantToEvent()` operation works as follows: The indexed suffix added for duplicate `Participant` names takes the form `NAME (INDEX)`. For each duplicate added, the index is increased. For example, three participants with the name `John Tan` will be stored as `John Tan`, `John Tan (1)` and `John Tan (2)`. -If an `Event` with a name matching `eventName` is not found, the operation returns `false` to indicate that the operation was unsuccessful. Otherwise, the operation returns `true`. +If an `Event` with a name matching `eventName` is not found, the operation returns am empty string to indicate that the operation was unsuccessful. Otherwise, the operation returns the added `Participant` name.
        The interactions between components during the execution of the `EventList#addParticipantToEvent()` operation are show in the **Sequence Diagram** below: @@ -340,6 +340,7 @@ The interactions between components during the execution of the `EventList#addEv Upon the execution of the above operations, the output message is set based on the operation's return value, to indicate if the removal was successful. +If the removal was successful, the details of the added `Event`, `Participant`, or `Item` are shown to the user. The `Parser` assigns the values of the parameters directly to their respective members, depending on the first command flag in the user input, as follows: @@ -453,7 +454,7 @@ Given below is an example usage scenario and the behaviour of the `edit` feature It looks for the event and the specified participant, and then modifies the information and returns true if the participant is found. Otherwise, it returns false. 4. If the flag is `-m`, `EditItemCommand` calls `EditItemCommand#execute()`, which calls `EventList#editItem()` to edit the item. It looks for the event and the specified item, modifies the item and returns true if the item is found. Otherwise, it returns false. -5. After editing, a message `outputMessage` will be printed. +5. After editing, a message `outputMessage` will be shown to the user. If the edit operation was successful, this message will contain the updated details of the event/participant/item updated. If the new name of the `Event`, `Participant`, or `Item` is a duplicate of that of an existing `Event`, `Participant`, or `Item`, an indexed suffix will be added to the name. This is done in the same way as described in [Add feature](#add-feature); diff --git a/docs/diagrams/AddEventSequenceDiagram.puml b/docs/diagrams/AddEventSequenceDiagram.puml index a369bc06b0..1b6ec0af9f 100644 --- a/docs/diagrams/AddEventSequenceDiagram.puml +++ b/docs/diagrams/AddEventSequenceDiagram.puml @@ -29,7 +29,7 @@ group sd Add event return - return + return name:String end diff --git a/docs/diagrams/AddParticipantEventSequenceDiagram.puml b/docs/diagrams/AddParticipantEventSequenceDiagram.puml index e1d3f23c6f..15e1986f76 100644 --- a/docs/diagrams/AddParticipantEventSequenceDiagram.puml +++ b/docs/diagrams/AddParticipantEventSequenceDiagram.puml @@ -26,6 +26,6 @@ group sd Add participant to event activate participantList return - return + return name:String end @enduml \ No newline at end of file diff --git a/docs/diagrams/AddParticipantSequenceDiagram.puml b/docs/diagrams/AddParticipantSequenceDiagram.puml index 153557f8a3..314914284c 100644 --- a/docs/diagrams/AddParticipantSequenceDiagram.puml +++ b/docs/diagrams/AddParticipantSequenceDiagram.puml @@ -19,6 +19,6 @@ group sd Add participant ref over eventList : Add participant to event end - return :boolean + return :String end @enduml \ No newline at end of file diff --git a/docs/diagrams/EditEventCommandSequenceDiagram.puml b/docs/diagrams/EditEventCommandSequenceDiagram.puml index ed2cc1f0e6..393aefbc44 100644 --- a/docs/diagrams/EditEventCommandSequenceDiagram.puml +++ b/docs/diagrams/EditEventCommandSequenceDiagram.puml @@ -26,7 +26,7 @@ loop for each event in eventList end -return :boolean +return :String return diff --git a/docs/diagrams/EditItemCommandSequenceDiagram.puml b/docs/diagrams/EditItemCommandSequenceDiagram.puml index 509c82a979..eda45ed1e0 100644 --- a/docs/diagrams/EditItemCommandSequenceDiagram.puml +++ b/docs/diagrams/EditItemCommandSequenceDiagram.puml @@ -26,51 +26,8 @@ loop for each event in eventList end -return :boolean +return :String return -@enduml - 39 changes: 39 additions & 0 deletions39 -docs/diagrams/EditParticipantCommandSequenceDiagram.puml -Original file line number Original file line Diff line number Diff line change -@@ -0,0 +1,39 @@ -@startuml -hide footbox - -participant ":Main" as main -participant ":EditParticipantCommand" as editCommand -participant ":EventList" as eventList -participant ":Event" as event - -main -> editCommand : execute() -activate editCommand - -editCommand -> eventList : editParticipant(participantName, participantNumber, participantEmail, eventName) -activate eventList - -loop for each event in eventList - eventList -> event : getEventName() - activate event - event --> eventList : eventName - deactivate event - - alt eventName matches - eventList -> event : updateParticipant(participantName, participantNumber, participantEmail) - activate event - event --> eventList : updated - deactivate event - eventList --> editCommand : true - end - -end - -alt no match found - eventList --> editCommand : false -end - -editCommand --> main : message -deactivate eventList -deactivate editCommand - @enduml \ No newline at end of file diff --git a/docs/diagrams/EditParticipantCommandSequenceDiagram.puml b/docs/diagrams/EditParticipantCommandSequenceDiagram.puml index a4124c3498..3e916bf515 100644 --- a/docs/diagrams/EditParticipantCommandSequenceDiagram.puml +++ b/docs/diagrams/EditParticipantCommandSequenceDiagram.puml @@ -27,7 +27,7 @@ end -return :boolean +return :String return diff --git a/docs/images/AddEventSequenceDiagram.png b/docs/images/AddEventSequenceDiagram.png index 185a23ce6045bbe459bc4acc22c1c3d2818368d3..ce5c6e3848495a8396ecd29d7c86ebe2f91abd5a 100644 GIT binary patch delta 4795 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 E00Fzs^8f$< delta 3277 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 diff --git a/docs/images/AddParticipantEventSequenceDiagram.png b/docs/images/AddParticipantEventSequenceDiagram.png index ac705a2eee0af701036c7a9560de94d4cd4651b9..a1308c28a124fe197c033acceb11f2fd1b0a71f6 100644 GIT binary patch delta 6760 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 Xe79C3VUCI5cbJxj-bJjs#r^*Qye^Sm delta 5245 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 fzsjD1(=!#K| diff --git a/docs/images/AddParticipantSequenceDiagram.png b/docs/images/AddParticipantSequenceDiagram.png index c24289d81ce9320fc9ddf951527baa19fa6fe656..ccab63ec95c2ac452dd8ab98fb79170e3f74c13c 100644 GIT binary patch literal 21517 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 Mr>mdKI;Vst01=yFs{jB1 literal 21671 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 diff --git a/docs/images/EditEventCommandSequenceDiagram.png b/docs/images/EditEventCommandSequenceDiagram.png index e9a654b32830bd82f83cc3293c265e77be95706a..06e3f3e65db66edf28b4135dd2678ec0441c3641 100644 GIT binary patch delta 5280 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 delta 5453 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 LqESVE*j@iW7ZL9t diff --git a/docs/images/EditItemCommandSequenceDiagram.png b/docs/images/EditItemCommandSequenceDiagram.png index 26f21d0785a34b272b6da013afbf53ad888697ec..dc5503e69a1db285d4f916b86e4f458f6c85fc3e 100644 GIT binary patch delta 2896 zcmaJ@c|4SB8-C4T>|-Zkge>D|a*#DMr6Db&4$+~e=}5FVw!l&)d@{l-w(n;vtlA z#d8zcgpfF{DJ9nzpXZRGlFJO;sqkXU+mMgdOV+CP(c8@))v*|%)9gFyygx+tX3LU1 zx`KJqDNgR~)-JKLx@x)^i1hx3{Vv|A3a(bE^V=5e=vpm0*~uX+)G=lHd5SZg8mJ?!9fau7KT0 zd^xP>i425Y%0~v9;AP=RKXJ_fvh-=>!$o`d$G*+DOsx2R-{fPVer@LJF0Hevb3s97 z={@ptRwTnG#(d21=nZPKgU#!mf|xDKY_#MhoyDhwkna7`y|h#3F3r$W9p~&ckMGz* ze))p%VX8iY6!^k#pWU5d})ylN=KIzoPOqrgo>*p#bjgB3IV{ITO|zfJ3=OIIygmEZ_jrWtCUB* z`N{8r(ouhHDaaS?T@u1iE*Z$$U)_a!_$Jame;0F$BECMKJ8u^&0zTguo#4MA2ShRI|$j|7}NIrb=gXK1ziF zPfq#x_&7N^X~}k|GKw%*3T_H3POuy5P9Ez_r_f})TTO@x#LV7qMuci=qoIG82* zhcpceva_?jy}g&0mtBPk4*#seps>&I9a@fp(Yz482Mw5=K!mK*7bHPY{@Z5Leq+yv z_v!k^#?vDMuBZ9J0NF9=!W+Lx(o9?y#OVo`lY>NK+cA72j z0GK+WIrbpXSd6}^w=GNTT*~r3|v(0_qqvFboL;*owWe#81xm^ASKmDo^3xI)#A?3k${`_s2)uliT9J zQ#CX+T>8v%Z!aq=W3$-``0bxwT2B7jn6^d%dE=YhwLG5{-+%DH+`^)i+MbL+;p;hF zX{gHaPjBn|-_?iB{)NTk@#oKTFKgJio+>IYw>v-YyJJTa6$Zy;Sq8G1N(;>Cp=uUA zq_m(wS6#+p+qTP>FPG4~yu9LMG?+a-teU{lg~^xC3)@$^D5P)PbtiJkbkgF~>v2vi z<=(w}oA+KD7#KKG6EO0&j@TyY;NT#Gu)EXH#vltC7z}b#l!%g&QX1;m%FKxU6i+fe zJ^jp!J7Ftd!5@6CZkVb#!zp;Yt2RX6EKt{Y7eR@Q1cfRv^G(CCh-}#&?gx84>r1H)G{|W z56x#j$+Vb&^=7VV`R*BeNI3H`M!Po_LigcKOFd&g+x%f^Yiod_4OcLfTcQb7Y4mP5&qr$ zN(;`*XI_@4=Mu68K#Eum5xmiM_?OPUzJsIq)`_~{54fo%>)^3{r%p{gR_`Sztk*^w z2Af5$zr4I096M1_Q9eC6zg9&TmzECIhkeO+Ot!YMsj8|%9i^X$5XqA}4&=}Nvf93@ z-MgL7U6=%=2(qFfCLGn2M`L3)XlmMpP94T#TOaxjxnl3OQSehxU%f)gwi6y4ms6A2mKiXyXais)WVQ$h2Gk5zVwM`E;$j4mYrmMxqH z=&(H=|8<_~q?)FnP7**HtLy8r5OFrU)fs)g-;9NpYdkhLr!2ni4p6%O^BEZa8TB0) z0D!}-pJAOmzjL)h9fklv(p#W{?OEnot@oMi_caKb;sO9)&!&>LT3Wt(^-5Jr6dH-a z;c%(fsJ`{0THwzD=XErxx391Ac#G(0oRX4?ii)zbp1)Om+ZiB8qR|B3fR)^BfI_XH z`C6e(TB8VX&UE5sZqBMvz;T(FhM0xOGrKO4aYSNu?FQ9*RaNF3lh_TjyM)e>DJFL* z@UXC1K`n{!^-W~R1v!eEevA~AdeOnAnsO`!o~4ef-Ezqm^q zoQ|Em6&L^zLJLR)^6qy_&cXmtrNBUdL@{oxzKt03P!tOa;i!*_v*zahTH1@AnKRX; z^qAz#7^6@m@FGh4zvh4YgQ(9OK^XvU^H4A}_M2(;H~W8>0$BHOXiCh6eiP6YaKhqt JmG2}({R@^@~Op;%A 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 Date: Mon, 11 Nov 2024 12:52:47 +0800 Subject: [PATCH 578/619] Update PPP with more contributions --- docs/team/jemehgoh.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/team/jemehgoh.md b/docs/team/jemehgoh.md index add1b6d7d0..60e47ffd7d 100644 --- a/docs/team/jemehgoh.md +++ b/docs/team/jemehgoh.md @@ -30,7 +30,8 @@ EventManagerCLI is a desktop CLI application meant for managing small-scale even * **Enhancements to existing features**: * Added error handling for the `view` command (Pull request [#61](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/61)) - * Fixed duplicate entry bugs for the `EventList` and `Event` commands (Pull request [#120](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/120)) + * Fixed duplicate entry bugs for the `EventList` and `Event` commands (Pull requests [#120](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/120),[#245](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/245)) + * Refactored parser methods to improve SLAP and reduce duplicate code (Pull requests [#163](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/163), [#253](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/253)) * **Documentation** * User Guide From e7e8b51299b4c7274abc242618c6bd15f07a7a98 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 15:29:21 +0800 Subject: [PATCH 579/619] Update UG to account for new commands --- docs/UserGuide.md | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 4c7e907924..93313d31ce 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -31,8 +31,24 @@ the participants and logistics of such events. 1. Ensure that you have Java 17 or above installed. 2. Download the latest version of `EventManagerCLI` from [here](https://github.com/AY2425S1-CS2113-W13-3/tp/releases). -3. Open a new terminal in the folder that you put the JAR file in, and run the program with the command ```java -jar manager.jar```. +3. Open a new terminal in the folder that you put the JAR file in, and run the program with the following commands: + +For Windows: + +``` +[Console]::OutputEncoding = [System.Text.Encoding]::UTF8 +chcp 65001 +java "-Dfile.encoding=UTF-8" -jar tp.jar +``` + +For macOS: + +``` +java "-Dfile.encoding=UTF-8" -jar tp.jar +``` + The following message would be printed: + ``` Welcome to EventManagerCLI. Enter a command: @@ -161,7 +177,7 @@ Format: Remarks: * If there is already an `Event` with the name `NEW_EVENT_NAME` in the event list, or an `Item` with the name `NEW_ITEM_NAME` in the specified event, an indexed suffix is added to differentiate the events. - * e.g. given that an `Event` named `Wood workshop` is already present in the list, editing another `Event` to have the name `Wood workshop` would result in it being named `Wood workshop (1)`. + * e.g. given that an `Event` named `Wood workshop` is already present in the list, editing another `Event` to have the name `Wood workshop` would result in it being named `Wood workshop(1)`. * `TIME` cannot be edited to a date-time in the past. Examples: From bcecdb5004f611a495c2191099a875d494ece216 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 15:36:13 +0800 Subject: [PATCH 580/619] Update file name for UG --- docs/UserGuide.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 93313d31ce..b20fbd43d0 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -38,13 +38,13 @@ For Windows: ``` [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 chcp 65001 -java "-Dfile.encoding=UTF-8" -jar tp.jar +java "-Dfile.encoding=UTF-8" -jar manager.jar ``` -For macOS: +For macOS and Linux: ``` -java "-Dfile.encoding=UTF-8" -jar tp.jar +java "-Dfile.encoding=UTF-8" -jar manager.jar ``` The following message would be printed: From 16df6c73814aaac70d34b997ad8e1c4bc49e65da Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 15:42:46 +0800 Subject: [PATCH 581/619] Update DG with new start commands --- docs/DeveloperGuide.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 68c4502fba..0ee03cf1c1 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -790,7 +790,22 @@ The user is able to organise and manage his events more quickly and efficiently 1. Download the `.jar` file and copy it to an empty folder. - 2. Open a new terminal window in the folder the `.jar` file is in, and enter the command `java -jar manager.jar`. + 2. Open a new terminal window in the folder the `.jar` file is in, and enter the following commands, depending on operating system: + + For Windows: + + ``` + [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 + chcp 65001 + java "-Dfile.encoding=UTF-8" -jar manager.jar + ``` + + For macOS and Linux: + + ``` + java "-Dfile.encoding=UTF-8" -jar manager.jar + ``` + Expected: The terminal will print a welcome message and prompt for user input. ### Adding an event From 23f87da276a5124ff72ba67efabb14701983477c Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 16:01:02 +0800 Subject: [PATCH 582/619] Update UG to account for event case sensitivity and for grammar --- docs/UserGuide.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index b20fbd43d0..7b3e39c23c 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -257,7 +257,7 @@ Filters out events from the event list based on name, date-time or priority leve Format: `filter -e/-d/-t/-x/-u DESCRIPTION` * `-e/-d/-t/-x/-u` are the flags for name, date, time, date-time and priority level respectively. -* `DESCRIPTION` is case-insensitive. +* `DESCRIPTION` is only case-insensitive for priority level. Examples: * `filter -e workshop` will output all events with `workshop` in their event name. @@ -351,15 +351,15 @@ If the above format or parameter constraints are not followed, the `Event`, `Par * List possible commands: `menu` * List all events: `list` -* Add event: `add -e EVENT -t TIME -v VENUE -u PRIORITY` -* Add participant to an event: `add -p PARTICIPANT -email EMAIL -e EVENT` -* Add item to an event: `add -m ITEM -e EVENT` -* Remove event: `remove -e EVENT` -* Remove participant from an event: `remove -p PARTICIPANT -e EVENT` -* Remove item from an event: `remove -m ITEM -e EVENT` -* Edit event: `edit -e OLD_EVENT_NAME -name NEW_EVENT_NAME -t TIME -v VENUE -u PRIORITY` -* Edit participant of an event: `edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT` -* Edit item of an event: `edit -m OLD_ITEM_NAME > NEW_ITEM_NAME -e EVENT` +* Add an event: `add -e EVENT -t TIME -v VENUE -u PRIORITY` +* Add a participant to an event: `add -p PARTICIPANT -email EMAIL -e EVENT` +* Add an item to an event: `add -m ITEM -e EVENT` +* Remove an event: `remove -e EVENT` +* Remove a participant from an event: `remove -p PARTICIPANT -e EVENT` +* Remove an item from an event: `remove -m ITEM -e EVENT` +* Edit an event: `edit -e OLD_EVENT_NAME -name NEW_EVENT_NAME -t TIME -v VENUE -u PRIORITY` +* Edit a participant of an event: `edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT` +* Edit an item of an event: `edit -m OLD_ITEM_NAME > NEW_ITEM_NAME -e EVENT` * View all participants or items for an event: `view -e EVENT -y TYPE` * Mark an event as done: `mark -e EVENT -s STATUS` * Mark a participant as present: `mark -p PARTICIPANT -e EVENT -s STATUS` From afed5cc6bdf096639192b0662a94dc97f4bdb8c7 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Mon, 11 Nov 2024 16:46:55 +0800 Subject: [PATCH 583/619] Add datetime validation to FilterCommand --- docs/DeveloperGuide.md | 2 +- docs/UserGuide.md | 10 ++-- .../seedu/manager/command/FilterCommand.java | 57 +++++++++++++------ .../seedu/manager/command/MenuCommand.java | 6 +- .../java/seedu/manager/parser/Parser.java | 27 ++++++--- text-ui-test/EXPECTED.TXT | 12 ++-- 6 files changed, 72 insertions(+), 42 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 68c4502fba..830bea14ec 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -723,7 +723,7 @@ The logic for the saving of `Item`s is similar to that for `Participant`s.
        -Reading and writing from and to the `.csv` storage files is done through operations from the **OpenCSV** library, namely: +Reading and writing from and to `data.txt` is done through operations from the **OpenCSV** library, namely: * `CSVReader#readAll()`, which is invoked by `FileParser` when loading data, to convert the file into a list of arrays of `String` to be parsed. * `CSVWriter#writeNext()`, which is invoked when saving data, to save the fields for an `Event`, `Participant`, or `Item` into the file. diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 4c7e907924..ee44dfaa14 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -64,9 +64,9 @@ add -m ITEM -e EVENT: Adds an item to an event. remove -e EVENT: Removes an event from the event list. remove -p PARTICIPANT -e EVENT: Removes a participant from an event. remove -m ITEM -e EVENT: Removes an item from an event. -edit -e OLD_EVENT -name NEW_EVENT -t TIME -v VENUE -u PRIORITY: Edits an event's info. -edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT: Edits a participant's info. -edit -m OLD_ITEM > NEW_ITEM -e EVENT: Edits an item's info. +edit -e OLD_EVENT_NAME -name NEW_EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edits an event's info. +edit -p OLD_PARTICIPANT_NAME -name NEW_PARTICIPANT_NAME -email EMAIL -e EVENT: Edits a participant's info. +edit -m OLD_ITEM_NAME > NEW_ITEM_NAME -e EVENT: Edits an item's info. view -e EVENT -y TYPE: Displays the list of participants or items of an event. mark -e EVENT -s STATUS: Marks an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Marks a participant as present or absent. @@ -342,7 +342,7 @@ If the above format or parameter constraints are not followed, the `Event`, `Par * Remove participant from an event: `remove -p PARTICIPANT -e EVENT` * Remove item from an event: `remove -m ITEM -e EVENT` * Edit event: `edit -e OLD_EVENT_NAME -name NEW_EVENT_NAME -t TIME -v VENUE -u PRIORITY` -* Edit participant of an event: `edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT` +* Edit participant of an event: `edit -p OLD_PARTICIPANT_NAME -name NEW_PARTICIPANT_NAME -email EMAIL -e EVENT` * Edit item of an event: `edit -m OLD_ITEM_NAME > NEW_ITEM_NAME -e EVENT` * View all participants or items for an event: `view -e EVENT -y TYPE` * Mark an event as done: `mark -e EVENT -s STATUS` @@ -350,6 +350,6 @@ If the above format or parameter constraints are not followed, the `Event`, `Par * Mark an item as accounted for: `mark -m ITEM -e EVENT -s STATUS` * Copy participant list: `copy FROM_EVENT > TO_EVENT` * Sort events: `sort -by KEYWORD` -* Filter events: `filter -e/-t/-u FILTER_DESCRIPTION` +* Filter events: `filter -e/-d/-t/-x/-u FILTER_DESCRIPTION` * Find participants: `find -e EVENT -p NAME` * Exit program: `exit` diff --git a/src/main/java/seedu/manager/command/FilterCommand.java b/src/main/java/seedu/manager/command/FilterCommand.java index 7e746dd5ba..f13d97ea2b 100644 --- a/src/main/java/seedu/manager/command/FilterCommand.java +++ b/src/main/java/seedu/manager/command/FilterCommand.java @@ -3,11 +3,11 @@ import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; -import java.time.DateTimeException; -import java.time.LocalDate; +import java.text.SimpleDateFormat; +import java.text.ParseException; import java.time.LocalDateTime; -import java.time.LocalTime; -import java.time.format.DateTimeFormatter; +import java.util.Date; +import java.time.ZoneId; //@@author LTK-1606 /** @@ -27,7 +27,14 @@ public class FilterCommand extends Command { private static final String INVALID_DATE_FORMAT_MESSAGE = """ Invalid date format! - Please use a valid date in the following format: YYYY-MM-DD + Please enter the event time in the following format: + YYYY-MM-DD + + Ensure the following general guidelines: + - The year (YYYY) is from 0001 onwards. + - The date (MM-DD) is between 01-01 and 12-31. + + Please also take into account leap years! """; private static final String INVALID_TIME_FORMAT_MESSAGE = """ Invalid time format! @@ -35,7 +42,15 @@ public class FilterCommand extends Command { """; private static final String INVALID_DATE_TIME_FORMAT_MESSAGE = """ Invalid date-time format! - Please use a valid date-time in the following format: YYYY-MM-DD HH:mm + Please enter the event time in the following format: + YYYY-MM-DD HH:mm + + Ensure the following general guidelines: + - The year (YYYY) is from 0001 onwards. + - The date (MM-DD) is between 01-01 and 12-31. + - The time (HH:mm) is between 00:00 and 23:59. + + Please also take into account leap years! """; private static final String INVALID_PRIORITY_FORMAT_MESSAGE = """ Invalid priority format! @@ -120,14 +135,16 @@ private String filterEventsByName() { */ private String filterEventsByDate() { try { - LocalDate eventDate = LocalDate.parse(filterWord, - DateTimeFormatter.ofPattern("yyyy-MM-dd")); - filteredEvents = eventList.filterByDate(eventDate); + SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd"); + dateTimeFormat.setLenient(false); + Date parsedDateTime = dateTimeFormat.parse(filterWord); + LocalDateTime eventTime = LocalDateTime.ofInstant(parsedDateTime.toInstant(), ZoneId.systemDefault()); + filteredEvents = eventList.filterByDate(eventTime.toLocalDate()); if (filteredEvents.getListSize() == 0) { return FILTER_RESULT_EMPTY_MESSAGE; } return FILTER_BY_DATE_MESSAGE + "\n"; - } catch (DateTimeException exception) { + } catch (ParseException exception) { isValidFields = false; return INVALID_DATE_FORMAT_MESSAGE; } @@ -140,14 +157,16 @@ private String filterEventsByDate() { */ private String filterEventsByTime() { try { - LocalTime eventTime = LocalTime.parse(filterWord, - DateTimeFormatter.ofPattern("HH:mm")); - filteredEvents = eventList.filterByTime(eventTime); + SimpleDateFormat dateTimeFormat = new SimpleDateFormat("HH:mm"); + dateTimeFormat.setLenient(false); + Date parsedDateTime = dateTimeFormat.parse(filterWord); + LocalDateTime eventTime = LocalDateTime.ofInstant(parsedDateTime.toInstant(), ZoneId.systemDefault()); + filteredEvents = eventList.filterByTime(eventTime.toLocalTime()); if (filteredEvents.getListSize() == 0) { return FILTER_RESULT_EMPTY_MESSAGE; } return FILTER_BY_TIME_MESSAGE + "\n"; - } catch (DateTimeException exception) { + } catch (ParseException exception) { isValidFields = false; return INVALID_TIME_FORMAT_MESSAGE; } @@ -160,14 +179,16 @@ private String filterEventsByTime() { */ private String filterEventsByDateTime() { try { - LocalDateTime eventDateTime = LocalDateTime.parse(filterWord, - DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); - filteredEvents = eventList.filterByDateTime(eventDateTime); + SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + dateTimeFormat.setLenient(false); + Date parsedDateTime = dateTimeFormat.parse(filterWord); + LocalDateTime eventTime = LocalDateTime.ofInstant(parsedDateTime.toInstant(), ZoneId.systemDefault()); + filteredEvents = eventList.filterByDateTime(eventTime); if (filteredEvents.getListSize() == 0) { return FILTER_RESULT_EMPTY_MESSAGE; } return FILTER_BY_DATE_TIME_MESSAGE + "\n"; - } catch (DateTimeException exception) { + } catch (ParseException exception) { isValidFields = false; return INVALID_DATE_TIME_FORMAT_MESSAGE; } diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index c13ecca697..04a64b5ab0 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -17,9 +17,9 @@ public class MenuCommand extends Command { remove -e EVENT: Removes an event from the event list. remove -p PARTICIPANT -e EVENT: Removes a participant from an event. remove -m ITEM -e EVENT: Removes an item from an event. - edit -e OLD_EVENT -name NEW_EVENT -t TIME -v VENUE -u PRIORITY: Edits an event's info. - edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT: Edits a participant's info. - edit -m OLD_ITEM > NEW_ITEM -e EVENT: Edits an item's info. + edit -e OLD_EVENT_NAME -name NEW_EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edits an event's info. + edit -p OLD_PARTICIPANT_NAME -name NEW_PARTICIPANT_NAME -email EMAIL -e EVENT: Edits a participant's info. + edit -m OLD_ITEM_NAME > NEW_ITEM_NAME -e EVENT: Edits an item's info. view -e EVENT -y TYPE: Displays the list of participants or items of an event. mark -e EVENT -s STATUS: Marks an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Marks a participant as present or absent. diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 00e151e747..c6c8746c34 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -57,9 +57,9 @@ public class Parser { private static final String INVALID_EDIT_MESSAGE = """ Invalid command! Please enter your commands in the following format: - edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY - edit -m ITEM > NEW_ITEM -e EVENT - edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT + edit -e OLD_EVENT_NAME -name NEW_EVENT_NAME -t TIME -v VENUE -u PRIORITY + edit -p OLD_PARTICIPANT_NAME -name NEW_PARTICIPANT_NAME -email EMAIL -e EVENT + edit -m OLD_ITEM_NAME > NEW_ITEM_NAME -e EVENT """; private static final String INVALID_VIEW_MESSAGE = """ Invalid command! @@ -85,8 +85,14 @@ public class Parser { """; private static final String INVALID_FILTER_MESSAGE = """ Invalid command! - Please enter your commands in the following format: - filter -e/-d/-t/-x/-u FILTER_DESCRIPTION + + Please enter your command using either of the following format: + + - Use filter -e FILTER_DESCRIPTION to filter by event. + - Use filter -d FILTER_DESCRIPTION to filter by date. + - Use filter -t FILTER_DESCRIPTION to filter by time. + - Use filter -x FILTER_DESCRIPTION to filter by a date-time. + - Use filter -u FILTER_DESCRIPTION to filter by participant. """; private static final String INVALID_FIND_MESSAGE = """ Invalid command! @@ -979,7 +985,8 @@ private Command parseSortCommand(String input, String[] commandParts) throws Inv * @return a {@code FilterCommand} object initialized with the specified flag and filter criteria * @throws InvalidCommandException if the command format is invalid or an invalid flag is provided */ - private Command parseFilterCommand(String input, String[] commandParts) throws InvalidCommandException { + private Command parseFilterCommand(String input, String[] commandParts) + throws InvalidCommandException, ParseException { assert commandParts[0].equalsIgnoreCase(FilterCommand.COMMAND_WORD); checkForDuplicateFlags(input, FILTER_FLAG_REGEX); Matcher matcher = getMatcher(input, FILTER_REGEX); @@ -988,15 +995,17 @@ private Command parseFilterCommand(String input, String[] commandParts) throws I throw new InvalidCommandException(INVALID_FILTER_MESSAGE); } - if (matcher.group(1).isBlank()) { + String filterFlag = matcher.group(1).trim(); + String filterDesc = matcher.group(2).trim(); + if (filterFlag.isBlank()) { throw new InvalidCommandException(INVALID_FILTER_MESSAGE); } - if (matcher.group(2).isBlank()) { + if (filterDesc.isBlank()) { throw new InvalidCommandException(EMPTY_INPUT_MESSAGE); } - return new FilterCommand(matcher.group(1).trim(), matcher.group(2).trim()); + return new FilterCommand(filterFlag, filterDesc); } /** diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 926db52743..687cd610e9 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -13,9 +13,9 @@ add -m ITEM -e EVENT: Adds an item to an event. remove -e EVENT: Removes an event from the event list. remove -p PARTICIPANT -e EVENT: Removes a participant from an event. remove -m ITEM -e EVENT: Removes an item from an event. -edit -e OLD_EVENT -name NEW_EVENT -t TIME -v VENUE -u PRIORITY: Edits an event's info. -edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT: Edits a participant's info. -edit -m OLD_ITEM > NEW_ITEM -e EVENT: Edits an item's info. +edit -e OLD_EVENT_NAME -name NEW_EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edits an event's info. +edit -p OLD_PARTICIPANT_NAME -name NEW_PARTICIPANT_NAME -email EMAIL -e EVENT: Edits a participant's info. +edit -m OLD_ITEM_NAME > NEW_ITEM_NAME -e EVENT: Edits an item's info. view -e EVENT -y TYPE: Displays the list of participants or items of an event. mark -e EVENT -s STATUS: Marks an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Marks a participant as present or absent. @@ -68,9 +68,9 @@ view -e EVENT -y TYPE ------------------------ Enter a command: Invalid command! Please enter your commands in the following format: -edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY -edit -m ITEM > NEW_ITEM -e EVENT -edit -p OLD_PARTICIPANT -name NEW_PARTICIPANT -email EMAIL -e EVENT +edit -e OLD_EVENT_NAME -name NEW_EVENT_NAME -t TIME -v VENUE -u PRIORITY +edit -p OLD_PARTICIPANT_NAME -name NEW_PARTICIPANT_NAME -email EMAIL -e EVENT +edit -m OLD_ITEM_NAME > NEW_ITEM_NAME -e EVENT ------------------------ Enter a command: There is 1 participant in dinner party! Here is your participant: From 8a694e61a4e6dae1ddb102dac121cdbdcc45fd60 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Mon, 11 Nov 2024 16:49:08 +0800 Subject: [PATCH 584/619] Update DG --- docs/DeveloperGuide.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 830bea14ec..c1322493d1 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -56,7 +56,7 @@ This application uses the following dependencies: -* [OpenCSV 5.9](https://mvnrepository.com/artifact/com.opencsv/opencsv/5.9) to read and write to `.csv` files. +* [OpenCSV 5.9](https://mvnrepository.com/artifact/com.opencsv/opencsv/5.9) to read and write to `.txt` files. * [JUnit Jupiter API 5.10.0](https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api/5.10.0) for unit testing. * [JUnit Jupiter Engine 5.10.0](https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine/5.10.0) for unit testing.
        @@ -128,8 +128,8 @@ These are: * A `FileParser` that parses through the file contents when loading event data. The `Storage` component does the following: -* Load event data from a`.csv` file into `EventList` upon program startup. -* Save events data from `EventList` into the aforementioned `.csv` file each time a command is executed. +* Load event data from `data.txt` file into `EventList` upon program startup. +* Save events data from `EventList` into the aforementioned `data.txt` file each time a command is executed. Additional details on the implementation of the above operations can be found in the [Saving and loading of data](#saving-and-loading-of-data) section.
        From 8ed429da625e9cd5fc96b4daac28b376e37d26f4 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Mon, 11 Nov 2024 17:01:38 +0800 Subject: [PATCH 585/619] Update PPP --- docs/team/kuanhsienn.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/docs/team/kuanhsienn.md b/docs/team/kuanhsienn.md index 457b040c8f..4533b2181d 100644 --- a/docs/team/kuanhsienn.md +++ b/docs/team/kuanhsienn.md @@ -20,7 +20,9 @@ The app is optimised for quick, command-based interactions, ideal for users who * Justification: Persistent storage is a crucial feature for any event management tool, as it allows users to retrieve previously entered data and continue their work seamlessly.
        - * Highlights: The storage feature supports loading from a single CSV file, handling all event-related data in one file. It includes validation checks to ensure data integrity, and if any data entry is corrupted or unreadable, a warning is logged without crashing the application. + * Highlights: The storage feature supports loading from a single CSV file, handling all event-related data in one file. + It includes validation checks to ensure data integrity, and if any data entry is corrupted or unreadable, a warning is logged without crashing the application. + At the same time, it is able to save a wider range of characters due to adoption of UTF-8 encoding. * **New feature**: Added feature to edit participant's contact info. * What it does: Allows the user to update the contact details (phone number and email) of participants associated with any event. @@ -32,16 +34,17 @@ The app is optimised for quick, command-based interactions, ideal for users who * Managed release `v1.0` (1 release) on GitHub * **Enhancements to existing features**: - * Fixed input formats of email and phone number of participants (Pull request [#150](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/150)) - * Fixed trailing whitespace bugs in causing invalid command (Pull request [#150](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/150)) + * Fixed input formats of email and phone number of participants ) + * Fixed trailing whitespace bugs in causing invalid command ) + * Fixed bugs from PE (PR [#150](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/150), [#150](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/150), [#249](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/249), [#252](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/252)) * **Documentation** * User Guide - * Added documentation for storage features (Pull request [#156](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/156)) + * Added documentation for storage features (PR [#156](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/156)) * Developer Guide - * Added design details for `add`, `remove` and `view` components (Pull request [#128](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/128)) - * Added implementation details for the `add`, `remove`, `view`, `copy`, `sort` and `find` feature (Pull requests [#128](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/128), [#142](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/142)) - * Added documentation for storage features (Pull request [#156](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/156)) + * Added design details for `add`, `remove` and `view` components (PR [#128](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/128)) + * Added implementation details for the `add`, `remove`, `view`, `copy`, `sort` and `find` feature (PR [#128](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/128), [#142](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/142)) + * Added documentation for storage features (PR [#156](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/156)) * **Community** - * PRs reviewed (with non-trivial review comments): [#119](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/119), [#130](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/130), [#149](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/149) + * PRs reviewed (with non-trivial review comments): (PR [#119](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/119), [#130](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/130), [#149](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/149), [#234](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/234)) From c3fe99290a39084b9f4581382064c48baed6391b Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 17:40:28 +0800 Subject: [PATCH 586/619] Fix broken links in docs --- docs/DeveloperGuide.md | 4 ++-- docs/UserGuide.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 33cf5b8e58..8dbd09afd1 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -10,7 +10,7 @@ * [Command component](#command-component) * [Event component](#event-component) * [Implementation](#implementation) - * [Command parsing](#command-parsing-) + * [Command parsing](#command-parsing) * [List feature](#list-feature) * [Add feature](#add-feature) * [Remove feature](#remove-feature) @@ -206,7 +206,7 @@ The component and its dependencies are shown in the below **Component Diagram**: This section describes some noteworthy details on how certain features are implemented. -### Command parsing ### +### Command parsing The user command input for the program is in the following format: diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 8d63b02a0b..a4f951eeb5 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -7,7 +7,7 @@ * [Viewing the command list: `menu`](#viewing-the-command-list-menu) * [Listing all events: `list`](#listing-all-events-list) * [Adding an event, participant or item: `add`](#adding-an-event-participant-or-item-add) - * [Removing an event, participant or item: `remove`](#removing-an-event-participant-or-item-remove-) + * [Removing an event, participant or item: `remove`](#removing-an-event-participant-or-item-remove) * [Viewing all participants or items for an event: `view`](#viewing-all-participants-or-items-for-an-event-view) * [Editing the information of an event, participant or item: `edit`](#editing-the-information-of-an-event-participant-or-item-edit) * [Marking events, participants, or items: `mark`](#marking-events-participants-or-items-mark) @@ -131,7 +131,7 @@ Examples: * `add -p John Tan -email john@gmail.com -e Origami workshop` adds a participant `John Tan` to the event `Origami workshop`. * `add -m Origami paper -e Origami workshop` adds an item `Origami paper` to the event `Origami workshop`. -### Removing an event, participant or item: `remove` +### Removing an event, participant or item: `remove` Removes an event from the event list, a participant from an event, or an item from an event. From 922ff746998b6c6c905e205c88abef374e851197 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 17:44:11 +0800 Subject: [PATCH 587/619] Move line breaks in UG and link fix in DG --- docs/DeveloperGuide.md | 2 +- docs/UserGuide.md | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 8dbd09afd1..16a7ffd474 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -156,7 +156,7 @@ The `Parser` instance is no longer referenced. The current state is as shown in The interactions between `Parser` and the other components in the above procedure is shown in the sequence diagram in the [Command component](#command-component) section. -Further details regarding command parsing can be found in the [Command parsing](#command-parsing-) section. +Further details regarding command parsing can be found in the [Command parsing](#command-parsing) section. ### Command component diff --git a/docs/UserGuide.md b/docs/UserGuide.md index a4f951eeb5..92d81a8670 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -130,6 +130,7 @@ Examples: * `add -e Origami workshop -t 2024-10-12 18:00 -v Building A -u HIGH` adds an event with name `Origami workshop`, time `2024-10-12 18:00`, venue `Building A` and priority `HIGH` to the events list. * `add -p John Tan -email john@gmail.com -e Origami workshop` adds a participant `John Tan` to the event `Origami workshop`. * `add -m Origami paper -e Origami workshop` adds an item `Origami paper` to the event `Origami workshop`. +
        ### Removing an event, participant or item: `remove` @@ -146,7 +147,6 @@ Examples: * `remove -e Origami workshop` removes the event `Origami workshop` from the event list. * `remove -p John Tan -e Origami workshop` removes the participant `John Tan` from the event `Origami workshop`. * `remove -m Origami paper -e Origami workshop` removes the item `Origami paper` from the event `Origami workshop`. -
        ### Viewing all participants or items for an event: `view` @@ -162,7 +162,8 @@ Format: `view -e EVENT -y TYPE` Examples: * `view -e Origami workshop -y participant` shows a list of all participants for the event `Origami workshop`. -* `view -e Origami workshop -y item` shows a list of all items for the event `Origami workshop`. +* `view -e Origami workshop -y item` shows a list of all items for the event `Origami workshop`. +
        ### Editing the information of an event, participant or item: `edit` @@ -222,6 +223,7 @@ Examples: * `mark -m Origami paper -e Origami workshop -s accounted` marks the item `Origami paper` in the `Origami workshop` event as accounted. * `mark -m Origami paper -e Origami workshop -s unaccounted` marks the item `Origami paper` in the `Origami workshop` event as unaccounted. +
        ### Copying the participant list: `copy` @@ -249,6 +251,7 @@ Examples: * `sort -by name` will output a list of all the user's events alphabetically (from A to Z). * `sort -by time` will output a list of all the user's events chronologically (earliest to latest). * `sort -by priority` will output a list of all the user's events in terms of urgency (most to least important). +
        ### Filtering the event list: `filter` @@ -265,7 +268,6 @@ Examples: * `filter -t 12:00` will output all events that are occurring at `12:00`. * `filter -x 2024-03-02 12:00` will output all events that are occurring at `2024-03-02 12:00`. * `filter -u high` with output all events with priority level `HIGH`. -
        ### Finding a participant: `find` @@ -283,6 +285,7 @@ Examples: Exits the program. Format: `exit` +
        ### Saving of program data From f9325fba31aa5bb947d346337dafc92ab8a1b14e Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 17:47:31 +0800 Subject: [PATCH 588/619] Update line breaks for DG --- docs/DeveloperGuide.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 16a7ffd474..e8db6c90f8 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -808,6 +808,8 @@ The user is able to organise and manage his events more quickly and efficiently Expected: The terminal will print a welcome message and prompt for user input. +
        + ### Adding an event 1. Adding an `Event` to the `Event` list @@ -823,7 +825,6 @@ The user is able to organise and manage his events more quickly and efficiently 4. Test case: `add -e Event 1 -t 2024-10-10 18:00 -v Venue 1 -u top` Expected: No `Event` is added. An error message is shown. -
        2. Adding a duplicate `Event` to the `Event` list From d8e031fed6080c8f80eab08a2266c73a6ae8a0b2 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 17:48:02 +0800 Subject: [PATCH 589/619] Update DG line break --- docs/DeveloperGuide.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index e8db6c90f8..22452a004d 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -781,6 +781,7 @@ The user is able to organise and manage his events more quickly and efficiently * _Command_ - an action that is carried out in the program as a result of user input. * _List_ - a container class that stores multiple instances of an object. * _Parameter_ - a value in the user command input that is used for the parsing of a command. +
        ## Appendix E: Instructions for manual testing @@ -808,8 +809,6 @@ The user is able to organise and manage his events more quickly and efficiently Expected: The terminal will print a welcome message and prompt for user input. -
        - ### Adding an event 1. Adding an `Event` to the `Event` list @@ -833,6 +832,8 @@ The user is able to organise and manage his events more quickly and efficiently 2. Test case: `add -e Event 1 -t 2024-10-10 18:00 -v Venue 1 -u HIGH` Expected: A `Event` with name `Event 1(1)` is added. A success message is shown. + +
        ### Adding a participant From 2cbe7be31161b1ebcad764a634e16222990ebb0a Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 20:11:52 +0800 Subject: [PATCH 590/619] Update edit item message --- src/main/java/seedu/manager/command/EditEventCommand.java | 2 +- src/main/java/seedu/manager/command/EditItemCommand.java | 2 +- src/main/java/seedu/manager/command/EditParticipantCommand.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/manager/command/EditEventCommand.java b/src/main/java/seedu/manager/command/EditEventCommand.java index a10fb8cdcc..57214a4fc0 100644 --- a/src/main/java/seedu/manager/command/EditEventCommand.java +++ b/src/main/java/seedu/manager/command/EditEventCommand.java @@ -10,7 +10,7 @@ */ public class EditEventCommand extends Command{ public static final String COMMAND_WORD = "edit"; - private static final String EDIT_EVENT_MESSAGE = "The following event has been updated:\n"; + private static final String EDIT_EVENT_MESSAGE = "The following event has been updated to:\n"; private static final String EDIT_FAILURE_MESSAGE = "Event not found!"; protected String eventName; protected String eventNewName; diff --git a/src/main/java/seedu/manager/command/EditItemCommand.java b/src/main/java/seedu/manager/command/EditItemCommand.java index 7beec28334..a2c3f65647 100644 --- a/src/main/java/seedu/manager/command/EditItemCommand.java +++ b/src/main/java/seedu/manager/command/EditItemCommand.java @@ -6,7 +6,7 @@ */ public class EditItemCommand extends Command { public static final String COMMAND_WORD = "edit"; - private static final String EDIT_ITEM_MESSAGE = "The following item has been updated:\n"; + private static final String EDIT_ITEM_MESSAGE = "The following item has been updated to:\n"; private static final String EDIT_FAILURE_MESSAGE = "Event/Item not found!"; protected String itemName; protected String itemNewName; diff --git a/src/main/java/seedu/manager/command/EditParticipantCommand.java b/src/main/java/seedu/manager/command/EditParticipantCommand.java index 3106a0d79e..0994a3c6ee 100644 --- a/src/main/java/seedu/manager/command/EditParticipantCommand.java +++ b/src/main/java/seedu/manager/command/EditParticipantCommand.java @@ -6,7 +6,7 @@ */ public class EditParticipantCommand extends Command{ public static final String COMMAND_WORD = "edit"; - private static final String EDIT_PARTICIPANT_MESSAGE = "The following participant's details has been updated:\n"; + private static final String EDIT_PARTICIPANT_MESSAGE = "The following participant's details has been updated to:\n"; private static final String EDIT_FAILURE_MESSAGE = "Event/Participant not found!"; protected String eventName; protected String participantName; From 916d3230503336584183255ba0f7993b124ab519 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 20:14:10 +0800 Subject: [PATCH 591/619] Remove "following" from messages --- src/main/java/seedu/manager/command/EditEventCommand.java | 2 +- src/main/java/seedu/manager/command/EditItemCommand.java | 2 +- src/main/java/seedu/manager/command/EditParticipantCommand.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/manager/command/EditEventCommand.java b/src/main/java/seedu/manager/command/EditEventCommand.java index 57214a4fc0..d77652d7d6 100644 --- a/src/main/java/seedu/manager/command/EditEventCommand.java +++ b/src/main/java/seedu/manager/command/EditEventCommand.java @@ -10,7 +10,7 @@ */ public class EditEventCommand extends Command{ public static final String COMMAND_WORD = "edit"; - private static final String EDIT_EVENT_MESSAGE = "The following event has been updated to:\n"; + private static final String EDIT_EVENT_MESSAGE = "The event has been updated to:\n"; private static final String EDIT_FAILURE_MESSAGE = "Event not found!"; protected String eventName; protected String eventNewName; diff --git a/src/main/java/seedu/manager/command/EditItemCommand.java b/src/main/java/seedu/manager/command/EditItemCommand.java index a2c3f65647..7f98d732e8 100644 --- a/src/main/java/seedu/manager/command/EditItemCommand.java +++ b/src/main/java/seedu/manager/command/EditItemCommand.java @@ -6,7 +6,7 @@ */ public class EditItemCommand extends Command { public static final String COMMAND_WORD = "edit"; - private static final String EDIT_ITEM_MESSAGE = "The following item has been updated to:\n"; + private static final String EDIT_ITEM_MESSAGE = "The item has been updated to:\n"; private static final String EDIT_FAILURE_MESSAGE = "Event/Item not found!"; protected String itemName; protected String itemNewName; diff --git a/src/main/java/seedu/manager/command/EditParticipantCommand.java b/src/main/java/seedu/manager/command/EditParticipantCommand.java index 0994a3c6ee..0ceebacb63 100644 --- a/src/main/java/seedu/manager/command/EditParticipantCommand.java +++ b/src/main/java/seedu/manager/command/EditParticipantCommand.java @@ -6,7 +6,7 @@ */ public class EditParticipantCommand extends Command{ public static final String COMMAND_WORD = "edit"; - private static final String EDIT_PARTICIPANT_MESSAGE = "The following participant's details has been updated to:\n"; + private static final String EDIT_PARTICIPANT_MESSAGE = "The participant has been updated to:\n"; private static final String EDIT_FAILURE_MESSAGE = "Event/Participant not found!"; protected String eventName; protected String participantName; From 0f19ca00b8a0fc81e75c549c82e844694f9e72ca Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Mon, 11 Nov 2024 20:21:54 +0800 Subject: [PATCH 592/619] Update kuanhsienn.md --- docs/team/kuanhsienn.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/team/kuanhsienn.md b/docs/team/kuanhsienn.md index 4533b2181d..c97b690e7f 100644 --- a/docs/team/kuanhsienn.md +++ b/docs/team/kuanhsienn.md @@ -1,7 +1,7 @@ # Liang Kuan Hsien - Project Portfolio Page ## Overview -EventManagerCLI is a desktop CLI application meant for managing small-scale events organised by one person. It is written in Java, and has around 7kLoC. +EventManagerCLI is a desktop CLI application meant for managing small-scale events organised by one person. It is written in Java, and has around 8kLoC. The app is optimised for quick, command-based interactions, ideal for users who prefer or need a text-based interface for efficient event management. ### Summary of Contributions @@ -34,9 +34,9 @@ The app is optimised for quick, command-based interactions, ideal for users who * Managed release `v1.0` (1 release) on GitHub * **Enhancements to existing features**: - * Fixed input formats of email and phone number of participants ) - * Fixed trailing whitespace bugs in causing invalid command ) - * Fixed bugs from PE (PR [#150](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/150), [#150](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/150), [#249](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/249), [#252](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/252)) + * Fixed input formats of email and phone number of participants (PR [#150](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/150)) + * Implemented feature to parse other characters outside of ASCII (PR [#235](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/235)) + * Fixed bugs from PE ([#150](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/150), [#249](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/249), [#252](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/252)) * **Documentation** * User Guide From 2ff08ef93574ad84dd033e77c4e177afdcbbe323 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 20:22:52 +0800 Subject: [PATCH 593/619] Update I/O redirection tests --- text-ui-test/EXPECTED.TXT | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 687cd610e9..ae84e5f52f 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -51,7 +51,7 @@ Enter a command: There is 1 event in your list! Here is your scheduled event: ------------------------ Enter a command: Event not found! ------------------------ -Enter a command: The following event has been updated: +Enter a command: The event has been updated to: Event name: dinner party / Event time: 2026-10-10T15:00 / Event venue: Bob's House / Event priority: LOW ------------------------ Enter a command: There is 1 event in your list! Here is your scheduled event: @@ -132,7 +132,7 @@ Enter a command: There is 1 item in anniversary celebration! Here is your item: 1. balloon [ ] ------------------------ -Enter a command: The following item has been updated: +Enter a command: The item has been updated to: Item name: cake / Event name: anniversary celebration ------------------------ Enter a command: There is 1 item in anniversary celebration! Here is your item: From 5e79ab4bd303a499453f840913f5b9d45f542472 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Mon, 11 Nov 2024 20:24:45 +0800 Subject: [PATCH 594/619] Update kuanhsienn.md --- docs/team/kuanhsienn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/team/kuanhsienn.md b/docs/team/kuanhsienn.md index c97b690e7f..f975084b08 100644 --- a/docs/team/kuanhsienn.md +++ b/docs/team/kuanhsienn.md @@ -36,7 +36,7 @@ The app is optimised for quick, command-based interactions, ideal for users who * **Enhancements to existing features**: * Fixed input formats of email and phone number of participants (PR [#150](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/150)) * Implemented feature to parse other characters outside of ASCII (PR [#235](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/235)) - * Fixed bugs from PE ([#150](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/150), [#249](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/249), [#252](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/252)) + * Fixed bugs from PE (PR [#150](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/150), [#249](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/249), [#252](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/252)) * **Documentation** * User Guide From 2f23f5f2ec452c9fcbf94fdfc8c6c291ca48fd00 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 20:28:46 +0800 Subject: [PATCH 595/619] Update initial message in UG and add page break to DG --- docs/DeveloperGuide.md | 2 ++ docs/UserGuide.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 22452a004d..6e1786f626 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -809,6 +809,8 @@ The user is able to organise and manage his events more quickly and efficiently Expected: The terminal will print a welcome message and prompt for user input. +
        + ### Adding an event 1. Adding an `Event` to the `Event` list diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 92d81a8670..d894ebf60e 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -51,6 +51,8 @@ The following message would be printed: ``` Welcome to EventManagerCLI. +Error loading data from file: data.txt. New file will be created since it does not exists. +------------------------ Enter a command: ``` From 0a47638a27d23a7d8a9fb38ef9c3a806176a345c Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 20:32:12 +0800 Subject: [PATCH 596/619] Add page break and change diagram size --- docs/DeveloperGuide.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 6e1786f626..cfb9bdacb0 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -462,7 +462,6 @@ This is done in the same way as described in [Add feature](#add-feature); The interactions between components of `EditEventCommand#execute()` are shown in the **Sequence Diagram** below: -
        The interactions between components of `EditParticipantCommand#execute()` are shown in the **Sequence Diagram** below: @@ -630,7 +629,7 @@ Given below is an example usage scenario and the behaviour of the `filter` featu
        The interactions between components of `FilterCommand#execute` are shown in the **Sequence Diagram** below: - +
        ### Find feature From 4611baeb75bef94b7b0a00ef54244b2e7c736ce5 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 20:42:46 +0800 Subject: [PATCH 597/619] Change italic to bold --- docs/DeveloperGuide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index cfb9bdacb0..d3e4358853 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -179,7 +179,7 @@ The parameters of the `XYZCommand` instance are parsed from fields given in the 4. `XYZCommand` is executed with the invocation of the `execute()` method. 5. The `Ui` gets `XYZCommand`'s output message, and shows it to the user. -The interactions between `Command` and other components in the system for the above set of operations is shown in the following _Sequence Diagram_: +The interactions between `Command` and other components in the system for the above set of operations is shown in the following **Sequence Diagram**:
        From c0a98842033c180853974f7d229249792d4cb12a Mon Sep 17 00:00:00 2001 From: glenn-chew Date: Mon, 11 Nov 2024 21:05:55 +0800 Subject: [PATCH 598/619] Update PPP with fixes in content and grammar --- docs/team/glenn-chew.md | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/docs/team/glenn-chew.md b/docs/team/glenn-chew.md index 4ac91ee9b1..422c60ba7d 100644 --- a/docs/team/glenn-chew.md +++ b/docs/team/glenn-chew.md @@ -1,8 +1,8 @@ # Glenn Chew - Project Portfolio Page ## Overview -EventManagerCLI is a desktop CLI application meant for managing small-scale events organised by one person. -It is written in Java, and has around 4kLoC. +EventManagerCLI is a desktop CLI application designed for managing small-scale events organised by a single user. It is written in Java, and has around 8kLoC. +The app is optimised for quick, command-based interactions, ideal for users who prefer or need a text-based interface for efficient management of events. ### Summary of Contributions * **New Feature**: Implemented Menu (PR: [#37](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/37)) @@ -14,23 +14,23 @@ It is written in Java, and has around 4kLoC. * **New Feature**: Added feature to view the lists of participants for an event (PR: [#58](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/58)) * What it does: Displays the participant list of a particular event. * Justification: This feature allows users to view all the participants of an event and allows them to see the participants they have added or removed from that event. - * Highlights: This feature was eventually updated to be able to view either the participant list or item list of an event + * Highlights: This feature was updated when details of participants were included, and was eventually updated to be able to view either the participant list or item list of an event. * **New Feature**: Added feature to filter events by name or date/time (PR: [#144](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/144)) * What it does: Displays the events that contains the keyword entered by the user, which is by name or by date/time. * Justification: This feature makes it easier for the user to see all the events with a common name, or common date/time. - * Highlights: This feature has separate methods to filter by date, time or date-time, as the formatting for each inpuut is different. + * Highlights: This feature has separate methods to filter by date, time or date-time, as the formatting for each input is different. * **New Feature**: Added feature to sort events by date (PR: [#102](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/102)) - * What it does: Sorts the event to be displayed in chronological order (earliest to latest) + * What it does: Sorts the event to be displayed in chronological order (earliest to latest). * Justification: This makes it easier for users to view the order of their events, and see which ones are upcoming. - * Highlights: This feature requires the addition of a new class and new methods, and used the LocalDateTime class for to for comparison, + * Highlights: This feature requires the addition of a new class and new methods, and uses the LocalDateTime class for comparison. * **Enhancements to Existing Features** - * Changed every all usages of `eventTime` from `String` to `LocalDateTime` for easier formatting and comparison, ensuring that each usage is formatted correctly: [#102](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/102) + * Changed all usages of `eventTime` from `String` to `LocalDateTime` for easier formatting and comparison, ensuring that each usage is formatted correctly: [#102](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/102) * Trimmed trailing spaces in input to prevent bugs in displaying details: [#58](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/58) * Update ViewCommand to include new participant parameters: [#133](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/133) * Refactored and extracted FilterCommand for better SLAP: [#164](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/164) @@ -48,6 +48,4 @@ It is written in Java, and has around 4kLoC. * Updated documentation for `filter` command: [#164](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/164) * Developer Guide * Updated implementation details for `filter` command: [#164](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/164) - * Updated sequence diagram for `filter` to include new self-invoked methods and additional alt cases: [#164](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/164) - - + * Updated sequence diagram for `filter` to include new self-invoked methods and additional alt cases: [#164](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/164) From 0b0bf4132dd282d35541117272ccd251b0af81d3 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Mon, 11 Nov 2024 21:20:26 +0800 Subject: [PATCH 599/619] Update kuanhsienn.md --- docs/team/kuanhsienn.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/team/kuanhsienn.md b/docs/team/kuanhsienn.md index f975084b08..29607ba574 100644 --- a/docs/team/kuanhsienn.md +++ b/docs/team/kuanhsienn.md @@ -24,17 +24,17 @@ The app is optimised for quick, command-based interactions, ideal for users who It includes validation checks to ensure data integrity, and if any data entry is corrupted or unreadable, a warning is logged without crashing the application. At the same time, it is able to save a wider range of characters due to adoption of UTF-8 encoding. -* **New feature**: Added feature to edit participant's contact info. - * What it does: Allows the user to update the contact details (phone number and email) of participants associated with any event. - * Justification: Contact information can frequently change; this feature allows users to keep participant details current without needing to re-enter or delete participant records, maintaining data accuracy for effective communication. - * Highlights: Provides validation for input formats, such as phone numbers and emails, and gives feedback when inputs are incorrect, ensuring data integrity +* **New feature**: Added feature to edit participant's info + * What it does: Allows the user to update the information of participants associated with any event. + * Justification: Contact information can frequently change or there may be typos in the initial adding; this feature allows users to keep participant details current without needing to re-enter or delete participant records, maintaining data accuracy for effective communication. + * Highlights: Provides validation for input formats, such as emails and gives feedback when inputs are incorrect, ensuring data integrity * **Code contributed**: [RepoSense link](https://nus-cs2113-ay2425s1.github.io/tp-dashboard/?search=&sort=groupTitle&sortWithin=title&timeframe=commit&mergegroup=&groupSelect=groupByRepos&breakdown=true&checkedFileTypes=docs~functional-code~test-code~other&since=2024-09-20&tabOpen=true&tabType=authorship&tabAuthor=KuanHsienn&tabRepo=AY2425S1-CS2113-W13-3%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=docs~functional-code~test-code~other&authorshipIsBinaryFileTypeChecked=false&authorshipIsIgnoredFilesChecked=false) * **Project management**: * Managed release `v1.0` (1 release) on GitHub * **Enhancements to existing features**: - * Fixed input formats of email and phone number of participants (PR [#150](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/150)) + * Fixed input formats of email of participants (PR [#150](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/150)) * Implemented feature to parse other characters outside of ASCII (PR [#235](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/235)) * Fixed bugs from PE (PR [#150](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/150), [#249](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/249), [#252](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/252)) From 5331250eb086cd0c4b0e07d703695177968ba38c Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Mon, 11 Nov 2024 22:01:50 +0800 Subject: [PATCH 600/619] Resolve duplicate flags bug --- .../java/seedu/manager/parser/Parser.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index 00e151e747..8c188e334c 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -155,20 +155,20 @@ public class Parser { private static final String SPACE = " "; private static final String ARROW = ">"; - private static final String EVENT_FLAG_REGEX = "(-e|-t|-v|-u)"; - private static final String PARTICIPANT_FLAG_REGEX = "(-p|-email|-e)"; - private static final String ITEM_FLAG_REGEX = "(-m|-e)"; - private static final String REMOVE_EVENT_FLAG_REGEX = "-e"; - private static final String REMOVE_PARTICIPANT_FLAG_REGEX = "(-p|-e)"; - private static final String EDIT_EVENT_ATTRIBUTE_FLAG_REGEX = "(-e|-name|-t|-v|-u)"; - private static final String VIEW_FLAG_REGEX = "(-e|-y)"; - private static final String MARK_EVENT_FLAG_REGEX = "-e|-s"; - private static final String MARK_PARTICIPANT_FLAG_REGEX = "-p|-e|-s"; - private static final String MARK_ITEM_FLAG_REGEX = "-m|-e|-s"; - private static final String COPY_FLAG_REGEX = ">"; - private static final String SORT_FLAG_REGEX = "-by"; - private static final String FILTER_FLAG_REGEX = "(-e|-d|-t|-x|-u)"; - private static final String FIND_FLAG_REGEX = "(-e|-p)"; + private static final String EVENT_FLAG_REGEX = "( -e | -t | -v | -u )"; + private static final String PARTICIPANT_FLAG_REGEX = "( -p | -email | -e )"; + private static final String ITEM_FLAG_REGEX = "( -m | -e )"; + private static final String REMOVE_EVENT_FLAG_REGEX = " -e "; + private static final String REMOVE_PARTICIPANT_FLAG_REGEX = "( -p | -e )"; + private static final String EDIT_EVENT_ATTRIBUTE_FLAG_REGEX = "( -e | -name | -t | -v | -u )"; + private static final String VIEW_FLAG_REGEX = "( -e | -y )"; + private static final String MARK_EVENT_FLAG_REGEX = " -e | -s "; + private static final String MARK_PARTICIPANT_FLAG_REGEX = " -p | -e | -s "; + private static final String MARK_ITEM_FLAG_REGEX = " -m | -e | -s "; + private static final String COPY_FLAG_REGEX = " > "; + private static final String SORT_FLAG_REGEX = " -by "; + private static final String FILTER_FLAG_REGEX = "( -e | -d | -t | -x | -u )"; + private static final String FIND_FLAG_REGEX = "( -e | -p )"; private static final String ADD_EVENT_REGEX = "add\\s+-e\\s+(.*?)\\s+-t\\s+(.*?)\\s+-v\\s+(.*?)\\s+-u\\s+(.*)"; private static final String ADD_PARTICIPANT_REGEX = "add\\s+-p\\s+(.*?)\\s+" + From dfa8d0d6bd2fe2fd92da9b9beed648a3222fd2f1 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Mon, 11 Nov 2024 22:10:13 +0800 Subject: [PATCH 601/619] Resolve duplicate flag at the end bug --- src/main/java/seedu/manager/parser/Parser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index b7fd34fda7..b818b37233 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -1107,7 +1107,7 @@ private void logWarning(String message) throws IOException { */ private void checkForDuplicateFlags(String input, String flagRegex) throws InvalidCommandException { Pattern flagPattern = Pattern.compile(flagRegex); - Matcher flagMatcher = flagPattern.matcher(input); + Matcher flagMatcher = flagPattern.matcher(input + " "); Set seenFlags = new HashSet<>(); From 0f5696d3f5ddf9a796075818c0bf0ad628859c7e Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 22:34:55 +0800 Subject: [PATCH 602/619] Update manual testing section to reflect actual functionality --- docs/DeveloperGuide.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index d3e4358853..1499110766 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -784,6 +784,12 @@ The user is able to organise and manage his events more quickly and efficiently ## Appendix E: Instructions for manual testing +### Remarks + +* For any dates listed in the test cases, if the current date is after the listed date, change the date in the test case to a date in the future. + + * E.g. in the test case `add -e Event 1 -t 2024-10-10 18:00 -v Venue 1 -u high`, if the current date is after `2024-10-10`, the date should be changed to a date after the current date. + ### Launch and shutdown 1. Initial launch @@ -855,7 +861,7 @@ The user is able to organise and manage his events more quickly and efficiently A `Item` with the name `Item 1` is present in `Event 1`'s `Item` list. List all `Item`s with `view -e Event 1 -y item` after each test case. - 2. Test case: `add -p Item -e Event 1`. + 2. Test case: `add -m Item -e Event 1`. Expected: A `Item` with name `Item(1)` is added. A success message is shown. ### Removing an event @@ -948,7 +954,7 @@ The user is able to organise and manage his events more quickly and efficiently A `Item` with the name `Toilet roll` is present in `Event 1`'s `Item` list. List all `Item`s with `view -e Event 1 -y item` after each test case. - 2. Test case: `edit Toilet roll > Kitchen towel -e Event 1` + 2. Test case: `edit -m Toilet roll > Kitchen towel -e Event 1` Expected: `Toilet roll` is no longer present, and `Kitchen towel` is present, in the `Item`s list. A success message is shown. ### Viewing an event From f3a0a4ac4543a1c238121245695db9f3c93a2e9d Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Mon, 11 Nov 2024 22:54:06 +0800 Subject: [PATCH 603/619] Update output string method --- src/main/java/seedu/manager/command/AddCommand.java | 4 +++- src/main/java/seedu/manager/command/EditEventCommand.java | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/command/AddCommand.java b/src/main/java/seedu/manager/command/AddCommand.java index bc1f5d7830..fa7f90e777 100644 --- a/src/main/java/seedu/manager/command/AddCommand.java +++ b/src/main/java/seedu/manager/command/AddCommand.java @@ -3,6 +3,7 @@ import seedu.manager.enumeration.Priority; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; //@@author KuanHsienn /** @@ -137,7 +138,8 @@ private void addEvent() { StringBuilder outputMessage = new StringBuilder(); outputMessage.append(ADD_EVENT_MESSAGE); - String dateTimeString = time.toString(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + String dateTimeString = formatter.format(time); outputMessage.append(String.format("Event name: %s / Event time: %s / Event venue: %s / Event priority: %s", nameToShow, dateTimeString, venue, priority)); message = outputMessage.toString(); diff --git a/src/main/java/seedu/manager/command/EditEventCommand.java b/src/main/java/seedu/manager/command/EditEventCommand.java index d77652d7d6..60b32421d5 100644 --- a/src/main/java/seedu/manager/command/EditEventCommand.java +++ b/src/main/java/seedu/manager/command/EditEventCommand.java @@ -3,6 +3,7 @@ import seedu.manager.enumeration.Priority; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; /** * Represents a command to edit an event to the event list. @@ -63,7 +64,8 @@ public void execute() { * @return an output message with name, time, venue and priority. */ private String getOutputMessage(String name, LocalDateTime time, String venue, Priority priority) { - String dateTimeString = time.toString(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + String dateTimeString = formatter.format(time); StringBuilder outputMessage = new StringBuilder(); outputMessage.append(EDIT_EVENT_MESSAGE); String formattedString = String.format("Event name: %s / Event time: %s / Event venue: %s / " + From 4e392193f488996baa73739d6526872567c2f700 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Mon, 11 Nov 2024 22:57:58 +0800 Subject: [PATCH 604/619] Update EXPECTED.TXT --- text-ui-test/EXPECTED.TXT | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index ae84e5f52f..53d98de3cd 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -37,7 +37,7 @@ add -m ITEM -e EVENT ------------------------ Enter a command: Event added successfully: -Event name: dinner party / Event time: 2026-10-10T12:34 / Event venue: Alice's House / Event priority: HIGH +Event name: dinner party / Event time: 2026-10-10 12:34 / Event venue: Alice's House / Event priority: HIGH ------------------------ Enter a command: There is 1 event in your list! Here is your scheduled event: 1. Event name: dinner party / Event time: 2026-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: N @@ -52,7 +52,7 @@ Enter a command: There is 1 event in your list! Here is your scheduled event: Enter a command: Event not found! ------------------------ Enter a command: The event has been updated to: -Event name: dinner party / Event time: 2026-10-10T15:00 / Event venue: Bob's House / Event priority: LOW +Event name: dinner party / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event priority: LOW ------------------------ Enter a command: There is 1 event in your list! Here is your scheduled event: 1. Event name: dinner party / Event time: 2026-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y @@ -78,7 +78,7 @@ Enter a command: There is 1 participant in dinner party! Here is your participan ------------------------ Enter a command: Event added successfully: -Event name: anniversary celebration / Event time: 2026-10-23T12:34 / Event venue: hotel / Event priority: MEDIUM +Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event priority: MEDIUM ------------------------ Enter a command: Events successfully sorted by name! 1. Event name: anniversary celebration / Event time: 2026-10-23 12:34 / Event venue: hotel / Event Priority: MEDIUM / Done: N From 6ead99da19f0b92828cd11854e601712f309eb0f Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 22:58:21 +0800 Subject: [PATCH 605/619] Add code tags to list command section and update homepage image --- docs/DeveloperGuide.md | 8 ++++---- docs/images/Ui.png | Bin 100937 -> 106507 bytes 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 1499110766..ee892410d9 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -253,7 +253,7 @@ Internally, the `list` operation does not modify any data but simply retrieves a The `ListCommand` class performs the following key operations: -* ListCommand#execute() — Generates a formatted message displaying all events in the list. +* `ListCommand#execute()` — Generates a formatted message displaying all events in the list. These operations are accessible through the `Command` and can be invoked when the list command is entered by the user. @@ -261,13 +261,13 @@ These operations are accessible through the `Command` and can be invoked when th Given below is an example usage scenario and the behavior of the list feature at each step: -1. User Command Input: +1. User command input: The user enters the command `list` to view all scheduled events. -2. Command Recognition: +2. Command recognition: The `COMMAND_WORD` is set to "list", enabling the system to recognize the command input and invoke `ListCommand`. -3. Execution of ListCommand#execute(): +3. Execution of `ListCommand#execute()`: The `execute()` method retrieves each event from `eventList` and appends it to a formatted output message. It uses the `String.format` method with `LIST_MESSAGE` to include the total number of events in the message header. Events are appended to `outputMessage` with numbered formatting for readability. diff --git a/docs/images/Ui.png b/docs/images/Ui.png index ee8433c8b33b838bae0f1be287b3c846e2fcf5f4..05ce8c43fb04365d188e9785c2c87ab1f09cfa95 100644 GIT binary patch literal 106507 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 literal 100937 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≪h>QqTGWlB7SBW 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 S&Gu@1U@ Date: Mon, 11 Nov 2024 23:14:00 +0800 Subject: [PATCH 606/619] Add project management items to PPP --- docs/team/jemehgoh.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/team/jemehgoh.md b/docs/team/jemehgoh.md index 60e47ffd7d..9cb65d86ab 100644 --- a/docs/team/jemehgoh.md +++ b/docs/team/jemehgoh.md @@ -26,7 +26,8 @@ EventManagerCLI is a desktop CLI application meant for managing small-scale even * **Code contributed**: [RepoSense link](https://nus-cs2113-ay2425s1.github.io/tp-dashboard/?search=&sort=groupTitle&sortWithin=title&timeframe=commit&mergegroup=&groupSelect=groupByRepos&breakdown=true&checkedFileTypes=docs~functional-code~test-code~other&since=2024-09-20&tabOpen=true&tabType=authorship&tabAuthor=jemehgoh&tabRepo=AY2425S1-CS2113-W13-3%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=docs~functional-code~test-code~other&authorshipIsBinaryFileTypeChecked=false&authorshipIsIgnoredFilesChecked=false) * **Project management**: - * Managed release `v1.0` (1 release) on GitHub + * Managed releases `v1.0` and `v2.0` (2 releases) on GitHub + * Set up project issue tracker * **Enhancements to existing features**: * Added error handling for the `view` command (Pull request [#61](https://github.com/AY2425S1-CS2113-W13-3/tp/pull/61)) From 32de0a7d888a8b21601c46a4ef2bbb6a8684c448 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 11 Nov 2024 23:38:14 +0800 Subject: [PATCH 607/619] Add page break before "Features" section of UG --- docs/UserGuide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index d894ebf60e..e3122e6409 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -55,6 +55,7 @@ Error loading data from file: data.txt. New file will be created since it does n ------------------------ Enter a command: ``` +
        ## Features From 4519223f698996d652e1d28766e60b4b120dee68 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 12 Nov 2024 06:37:01 +0800 Subject: [PATCH 608/619] Convert command list in UG to screenshot --- docs/UserGuide.md | 26 +------------------------- docs/images/MenuCommand.png | Bin 0 -> 85627 bytes 2 files changed, 1 insertion(+), 25 deletions(-) create mode 100644 docs/images/MenuCommand.png diff --git a/docs/UserGuide.md b/docs/UserGuide.md index e3122e6409..487b49e96e 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -72,31 +72,7 @@ Enter a command: Shows a list of all valid user commands in the program. -``` -Here are all the possible commands: - -menu: Displays a list of all commands. -list: Displays a list of all events. -add -e EVENT -t TIME -v VENUE -u PRIORITY: Adds an event to the event list. -add -p PARTICIPANT -email EMAIL -e EVENT: Adds a participant to an event. -add -m ITEM -e EVENT: Adds an item to an event. -remove -e EVENT: Removes an event from the event list. -remove -p PARTICIPANT -e EVENT: Removes a participant from an event. -remove -m ITEM -e EVENT: Removes an item from an event. -edit -e OLD_EVENT_NAME -name NEW_EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edits an event's info. -edit -p OLD_PARTICIPANT_NAME -name NEW_PARTICIPANT_NAME -email EMAIL -e EVENT: Edits a participant's info. -edit -m OLD_ITEM_NAME > NEW_ITEM_NAME -e EVENT: Edits an item's info. -view -e EVENT -y TYPE: Displays the list of participants or items of an event. -mark -e EVENT -s STATUS: Marks an event as done or not done. -mark -p PARTICIPANT -e EVENT -s STATUS: Marks a participant as present or absent. -mark -m ITEM -e EVENT -s STATUS: Marks an item as accounted or unaccounted for. -copy FROM_EVENT > TO_EVENT: Copies the participant list from one event to another. -sort -by KEYWORD: Sorts events by name/time/priority. -filter -e/-d/-t/-x/-u FILTER_DESCRIPTION: Filters events by name/date/time/date-time/priority. -find -e EVENT -p NAME: Finds all participants with a specified name in an event. -exit: Exits program. - -``` + Format: `menu` diff --git a/docs/images/MenuCommand.png b/docs/images/MenuCommand.png new file mode 100644 index 0000000000000000000000000000000000000000..20ec0548db1ebf648307d987c91681b11ba47e97 GIT binary patch literal 85627 zcmeFZcT`hp*EfvLp!2|t=%^qHL}hHW2q;A$(U}1pK@p`R#Gy);UXv)^4q_;x(uFu6 zA_RybBp@Zhk)pIn2>}AcAwvxTAtWLFJAmHLbHDF@@4MFb{qtqPT1n2yIoB@NzJB|+ z_jOXQUa|f`;h=(?oZJt;UHtW$oZJo%Il1i#-|YatDOvs32|2kta=-n0!6D9bal(Q) zWIjmzJ4|l*r@U{j-`tUQXWOH_dmlf3{Ns;L9vhw@MdO?%?AT++T(v$df%-nV1iL*x zW>ZVod($Li$RxnuHsGS0uhs&Y3he6#xmI&!;HF<*MmPKAzrMfu&Hu@Pt2~K_4<#dI zh-u&rc6I4wtl}_{f`*bWy<<1Wb7q$FlGZ=}?O5QfO13UQH)PB_>b;-0Au#aDQ$gt| zXlcl2YhAE4FAu!k=(ePsx6J=Q`E&9w8(*%W%O8vy*{6h?@6{7S|M`8({zQMk6H$pVj1G3W~^hK{(8*b9q6KDrzrL+!~72 z>$zmz%D3}@Zz@LxW`!WW@BeyK!RoY)aQ}J8gJZ(#A6jZa z9X$Fvk4$d>9usuev!cB0CN$1R{O6@1bUc8{``>)Ba(RQ|EodEFh?bnSG40wC|5 zD#9$maSVmW79uI3D|1J=b65HT+xd7-J#GK#^!Urltt|=S;3jDbqf}=uap+2!@7oY= zkg^LeI4j)xO`J}=KGr|J?(m-O{3=+_qS$bcGPxQgbLsHm|??{aHzamC> zDi77<;JrVrZU0m}ja%VJruh1p>kiJCWdrBTCRp0Q39G1aH;@o=4JL}n4zGs~B3{YF z5J!t2fIe$>>^Ie9ne1Qq^Ed8m|(sA3Wi&Kt<{dcAJiHwzlw&-e2$y6l-{7e zC#B7V$xFlZ5iKzfSO9k#1M%>e2*rLY-s`7uiu|K27 zAJC~uxbygOOLh4oyq!YTQ&g?wL){pteo&!qb08C$j9cXP2v;*VX0h(2uX?&>0p(H zc?&B~Jk5>;1)W`AnomW*-F{LusqdQU!nR-!~=dG_Hg0VUxjSkMiyO_~C@F zruZGJ0i7pYUks{?fw#C=i7E{shl_j5UtOyKd;|*XzoKUN z_qCfAaO$&ZsT&^uFn0P{O_{-e-2Fu9{*#42nDl*X`L%N<+66wUlp<=Em)%<-E#sxPB+rF=$m^#K7~0craFA
        ### Viewing the command list: `menu` From da790747aff439f1955009505bb78a7bef787e38 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 12 Nov 2024 11:10:53 +0800 Subject: [PATCH 614/619] Update regex --- .../java/seedu/manager/parser/Parser.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main/java/seedu/manager/parser/Parser.java b/src/main/java/seedu/manager/parser/Parser.java index b818b37233..a293abb8ae 100644 --- a/src/main/java/seedu/manager/parser/Parser.java +++ b/src/main/java/seedu/manager/parser/Parser.java @@ -161,20 +161,20 @@ public class Parser { private static final String SPACE = " "; private static final String ARROW = ">"; - private static final String EVENT_FLAG_REGEX = "( -e | -t | -v | -u )"; - private static final String PARTICIPANT_FLAG_REGEX = "( -p | -email | -e )"; - private static final String ITEM_FLAG_REGEX = "( -m | -e )"; - private static final String REMOVE_EVENT_FLAG_REGEX = " -e "; - private static final String REMOVE_PARTICIPANT_FLAG_REGEX = "( -p | -e )"; - private static final String EDIT_EVENT_ATTRIBUTE_FLAG_REGEX = "( -e | -name | -t | -v | -u )"; - private static final String VIEW_FLAG_REGEX = "( -e | -y )"; - private static final String MARK_EVENT_FLAG_REGEX = " -e | -s "; - private static final String MARK_PARTICIPANT_FLAG_REGEX = " -p | -e | -s "; - private static final String MARK_ITEM_FLAG_REGEX = " -m | -e | -s "; - private static final String COPY_FLAG_REGEX = " > "; - private static final String SORT_FLAG_REGEX = " -by "; - private static final String FILTER_FLAG_REGEX = "( -e | -d | -t | -x | -u )"; - private static final String FIND_FLAG_REGEX = "( -e | -p )"; + private static final String EVENT_FLAG_REGEX = "(?)(?!\\S)"; + private static final String SORT_FLAG_REGEX = "(? Date: Tue, 12 Nov 2024 11:49:52 +0800 Subject: [PATCH 615/619] Update error handling --- src/main/java/seedu/manager/storage/FileParser.java | 12 ++++-------- src/main/java/seedu/manager/storage/Storage.java | 8 ++++++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index 5b12ce5a9f..61d0991a90 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -12,7 +12,6 @@ import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.ZoneId; -import java.time.format.DateTimeFormatter; import java.text.ParseException; import java.util.Date; import java.util.List; @@ -49,10 +48,9 @@ public FileParser(){ public void parseFile(EventList events, String filePath) throws IOException { try { logInfo("Loading data from file"); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); List lines = getFileLines(filePath); for (String[] line : lines) { - parseLine(events, line, formatter); + parseLine(events, line); } } catch (IOException | CsvException exception) { throw new IOException("Error loading data from file: " + filePath + @@ -80,14 +78,13 @@ private List getFileLines(String filePath) throws IOException, CsvExce * * @param events The EventList to populate. * @param fields The fields of the line to parse. - * @param formatter The DateTimeFormatter to use for parsing date and time. */ - private void parseLine(EventList events, String[] fields, DateTimeFormatter formatter) throws IOException { + private void parseLine(EventList events, String[] fields) throws IOException { String type = fields[0]; try { switch (type) { case "EVENT": - parseEventFileLine(events, fields, formatter); + parseEventFileLine(events, fields); break; case "PARTICIPANT": parseParticipantFileLine(events, fields); @@ -108,10 +105,9 @@ private void parseLine(EventList events, String[] fields, DateTimeFormatter form * * @param events The EventList to populate. * @param fields The fields of the event to parse. - * @param formatter The DateTimeFormatter to use for parsing date and time. * @throws IOException If there is an error adding the event to the list, or if the log file cannot be written to. */ - private void parseEventFileLine(EventList events, String[] fields, DateTimeFormatter formatter) throws IOException { + private void parseEventFileLine(EventList events, String[] fields) throws IOException { try { String eventName = fields[1].trim(); SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index 45e4918d71..1882995a00 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -63,8 +63,12 @@ public void saveInfo(EventList events) throws IOException { * @throws IOException If there is an error loading data from the file. */ public void loadInfo(EventList events) throws IOException { - FileParser parser = new FileParser(); - parser.parseFile(events, filePath); + try { + FileParser parser = new FileParser(); + parser.parseFile(events, filePath); + } catch (IOException exception) { + throw new IOException("Error loading data from file: " + filePath); + } } /** From 0cd9e9b8485ec22d7d1d3d7b66e59e56086d08dd Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 12 Nov 2024 12:23:16 +0800 Subject: [PATCH 616/619] Update output message --- src/main/java/seedu/manager/Main.java | 2 +- src/main/java/seedu/manager/storage/Storage.java | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 2b139fc373..ac1ae3005b 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -56,7 +56,7 @@ private static void runCommandLoop() { private static void loadData() { try { storage.loadInfo(events); - ui.showMessage("Events loaded successfully."); + ui.showMessage("Events loaded successfully. Any erroneous lines have been ignored."); } catch (IOException exception) { ui.showErrorMessageToUser(exception); } diff --git a/src/main/java/seedu/manager/storage/Storage.java b/src/main/java/seedu/manager/storage/Storage.java index 1882995a00..45e4918d71 100644 --- a/src/main/java/seedu/manager/storage/Storage.java +++ b/src/main/java/seedu/manager/storage/Storage.java @@ -63,12 +63,8 @@ public void saveInfo(EventList events) throws IOException { * @throws IOException If there is an error loading data from the file. */ public void loadInfo(EventList events) throws IOException { - try { - FileParser parser = new FileParser(); - parser.parseFile(events, filePath); - } catch (IOException exception) { - throw new IOException("Error loading data from file: " + filePath); - } + FileParser parser = new FileParser(); + parser.parseFile(events, filePath); } /** From 27a3eaffe3ffd316ab5d8b8fa78475b63ef6245a Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 12 Nov 2024 12:28:33 +0800 Subject: [PATCH 617/619] Update storage loading sequence diagram --- docs/diagrams/StorageLoadingSequenceDiagram.puml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/diagrams/StorageLoadingSequenceDiagram.puml b/docs/diagrams/StorageLoadingSequenceDiagram.puml index f4eb080722..b2fe1158d4 100644 --- a/docs/diagrams/StorageLoadingSequenceDiagram.puml +++ b/docs/diagrams/StorageLoadingSequenceDiagram.puml @@ -23,11 +23,11 @@ activate parser loop for line in file - parser -> parser : parseLine(events, fields, formatter) + parser -> parser : parseLine(events, fields) activate parser alt EVENT - parser -> parser : parseEventFileLine(events, fields, formatter) + parser -> parser : parseEventFileLine(events, fields) activate parser parser -> events : addEvent(...) activate events From c251b73cafe86e002432dae87d0acf34d5fb13b2 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 12 Nov 2024 12:34:14 +0800 Subject: [PATCH 618/619] Update image --- docs/images/StorageLoadingSequenceDiagram.png | Bin 53678 -> 51104 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/StorageLoadingSequenceDiagram.png b/docs/images/StorageLoadingSequenceDiagram.png index 60359bedc35a13c9c370d0cd9575987c8fcee38d..2689d9e55b9549046680b4e42f5b2457319a6216 100644 GIT binary patch literal 51104 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 literal 53678 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 From 2ab6067d877b523dab4aad3bee500874fc253788 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 12 Nov 2024 12:50:48 +0800 Subject: [PATCH 619/619] Update Storage PUML --- .../StorageSavingSequenceDiagram.puml | 2 -- docs/images/StorageSavingSequenceDiagram.png | Bin 91000 -> 87950 bytes 2 files changed, 2 deletions(-) diff --git a/docs/diagrams/StorageSavingSequenceDiagram.puml b/docs/diagrams/StorageSavingSequenceDiagram.puml index 3f8edbbe27..e0a8dbbfbb 100644 --- a/docs/diagrams/StorageSavingSequenceDiagram.puml +++ b/docs/diagrams/StorageSavingSequenceDiagram.puml @@ -50,8 +50,6 @@ activate storage storage -> participant : getName() activate participant participant --> storage -storage -> participant : getNumber() -participant --> storage storage -> participant : getEmail() participant --> storage storage -> event : getEventName() diff --git a/docs/images/StorageSavingSequenceDiagram.png b/docs/images/StorageSavingSequenceDiagram.png index 5efe0aff982be39ab6e3b46ac95c1d44a0a7883c..a061e83a8bfdd593c5bf76d2247911b4bd56ce3a 100644 GIT binary patch delta 40244 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

        512#%mhdqBasHN%Y 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 L`8jUgHqZYCc|)Ss delta 43318 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 Htw_J-zr53My0|eg3VfkCC5%RemY>(qI`|syD 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 literal 0 HcmV?d00001 From 29333c24d137b5b993fbc81ac2a4a92d550b8b14 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 12 Nov 2024 09:39:12 +0800 Subject: [PATCH 609/619] Resolve bug in loading when datetime field in text file is edited --- src/main/java/seedu/manager/storage/FileParser.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index 289c085e2b..a94d64fe6a 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -8,9 +8,12 @@ import java.io.FileReader; import java.io.IOException; +import java.text.SimpleDateFormat; import java.time.LocalDateTime; +import java.time.ZoneId; import java.time.format.DateTimeFormatter; -import java.time.format.DateTimeParseException; +import java.text.ParseException; +import java.util.Date; import java.util.List; import java.util.logging.FileHandler; import java.util.logging.Logger; @@ -107,12 +110,15 @@ private void parseLine(EventList events, String[] fields, DateTimeFormatter form private void parseEventFileLine(EventList events, String[] fields, DateTimeFormatter formatter) throws IOException { try { String eventName = fields[1].trim(); - LocalDateTime time = LocalDateTime.parse(fields[2].trim(), formatter); + SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + dateTimeFormat.setLenient(false); + Date parsedDateTime = dateTimeFormat.parse(fields[2].trim()); + LocalDateTime time = LocalDateTime.ofInstant(parsedDateTime.toInstant(), ZoneId.systemDefault()); String venue = fields[3].trim(); Priority priority = Priority.valueOf(fields[4].trim().toUpperCase()); boolean isDone = getIsMarked(fields[5].trim()); events.addEvent(eventName, time, venue, priority, isDone); - } catch (DateTimeParseException | IndexOutOfBoundsException | NullPointerException exception) { + } catch (ParseException | IndexOutOfBoundsException | NullPointerException exception) { logWarning("File line cannot be parsed, event not loaded"); } } From b3ced779f3cda1ecc8790a67741af63cabdaf6e0 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 12 Nov 2024 10:02:45 +0800 Subject: [PATCH 610/619] Resolve bug in invalid mark status in storage file --- src/main/java/seedu/manager/storage/FileParser.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index a94d64fe6a..a43ebe0f66 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -118,9 +118,11 @@ private void parseEventFileLine(EventList events, String[] fields, DateTimeForma Priority priority = Priority.valueOf(fields[4].trim().toUpperCase()); boolean isDone = getIsMarked(fields[5].trim()); events.addEvent(eventName, time, venue, priority, isDone); - } catch (ParseException | IndexOutOfBoundsException | NullPointerException exception) { + } catch (ParseException | IndexOutOfBoundsException + | NullPointerException | IllegalArgumentException exception) { logWarning("File line cannot be parsed, event not loaded"); } + } /** @@ -138,7 +140,7 @@ private void parseParticipantFileLine(EventList events, String[] fields) throws boolean isPresent = getIsMarked(fields[4].trim()); String isLoaded = events.addParticipantToEvent(participantName, email, isPresent, eventName); eventUnsuccessfulLoad(isLoaded); - } catch (IndexOutOfBoundsException | NullPointerException exception) { + } catch (IndexOutOfBoundsException | NullPointerException | IllegalArgumentException exception) { logWarning("File line cannot be parsed, participant not loaded"); } } @@ -158,7 +160,7 @@ private void parseItemFileLine(EventList events, String[] fields) throws IOExcep boolean isPresent = getIsMarked(fields[3].trim()); String isLoaded = events.addItemToEvent(itemName, isPresent, eventName); eventUnsuccessfulLoad(isLoaded); - } catch (IndexOutOfBoundsException | NullPointerException exception) { + } catch (IndexOutOfBoundsException | NullPointerException | IllegalArgumentException exception) { logWarning("File line cannot be parsed, item not loaded"); } } @@ -177,7 +179,7 @@ private boolean getIsMarked(String markStatus) throws IOException { return false; } else { logWarning("Cannot parse mark status, setting to false"); - return false; + throw new IllegalArgumentException(); } } From a1a11887459a790220cf340013822d870d327b18 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 12 Nov 2024 10:11:42 +0800 Subject: [PATCH 611/619] Resolve bugs in invalid email in storage file --- .../seedu/manager/storage/FileParser.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index a43ebe0f66..7ded2ac556 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -5,6 +5,7 @@ import com.opencsv.exceptions.CsvException; import seedu.manager.enumeration.Priority; import seedu.manager.event.EventList; +import seedu.manager.exception.InvalidCommandException; import java.io.FileReader; import java.io.IOException; @@ -17,6 +18,7 @@ import java.util.List; import java.util.logging.FileHandler; import java.util.logging.Logger; +import java.util.regex.Pattern; //@@author KuanHsienn /** @@ -27,6 +29,8 @@ public class FileParser { private final Logger logger; + private static final Pattern EMAIL_PATTERN = Pattern.compile("^[A-Za-z0-9+_.-]+@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)+$"); + /** * Constructs a new FileParser. */ @@ -137,6 +141,12 @@ private void parseParticipantFileLine(EventList events, String[] fields) throws String participantName = fields[1].trim(); String email = fields[2].trim(); String eventName = fields[3].trim(); + + if (!isValidEmail(email)) { + logWarning("Invalid email format"); + throw new InvalidCommandException("Invalid email format"); + } + boolean isPresent = getIsMarked(fields[4].trim()); String isLoaded = events.addParticipantToEvent(participantName, email, isPresent, eventName); eventUnsuccessfulLoad(isLoaded); @@ -195,6 +205,16 @@ private void eventUnsuccessfulLoad(String isLoaded) throws IOException { } } + /** + * Checks if the email address is valid. + * + * @param email the email address to validate. + * @return true if the email is valid, false otherwise. + */ + private boolean isValidEmail(String email) { + return EMAIL_PATTERN.matcher(email).matches(); + } + /** * Logs an info message to a log file. * From 2daa585a0229ebcba6c26dcc2bab4294c5f06645 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 12 Nov 2024 10:30:48 +0800 Subject: [PATCH 612/619] Resolve CI test --- src/main/java/seedu/manager/storage/FileParser.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/storage/FileParser.java b/src/main/java/seedu/manager/storage/FileParser.java index 7ded2ac556..5b12ce5a9f 100644 --- a/src/main/java/seedu/manager/storage/FileParser.java +++ b/src/main/java/seedu/manager/storage/FileParser.java @@ -27,10 +27,10 @@ * and adds them to the provided EventList. */ public class FileParser { - private final Logger logger; - private static final Pattern EMAIL_PATTERN = Pattern.compile("^[A-Za-z0-9+_.-]+@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)+$"); + private final Logger logger; + /** * Constructs a new FileParser. */ From a73088ec020baf987cb15dd29e4b7b7bb4bf0552 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 12 Nov 2024 10:51:59 +0800 Subject: [PATCH 613/619] Update UG --- docs/UserGuide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 487b49e96e..f4d2f138e7 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -66,6 +66,7 @@ Enter a command: * e.g. `add -e Origami workshop -v Building A -t 2024-10-12 18:00 -u HIGH` will be interpreted as an invalid command. * Extraneous parameters for commands that do not take in parameters (e.g. `list`) will be ignored. * e.g. `list 1234` and `list -e event` will be interpreted by the program as `list`. +* All characters like `-`, `()`, `:` and whitespaces etc. must be input using an **english keyboard** only.

        (0 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 P;m;0jW33zwhu{AXxTH$; literal 31628 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 diff --git a/docs/images/FindCommandSequenceDiagram.png b/docs/images/FindCommandSequenceDiagram.png index b12a89d5e485f92284241fab52038e273b3e1b5c..1b04314e5324bcef7d728b5c8c83b8b59a1dc379 100644 GIT binary patch literal 22739 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 literal 24136 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 diff --git a/docs/images/ListCommandSequenceDiagram.png b/docs/images/ListCommandSequenceDiagram.png index aa2eb144543f25cfcb14872512bcfd4c126b5e4c..d1f00cde0726ea7143c1c7054a7146a2990e7e96 100644 GIT binary patch literal 10456 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 F`XB3)FDL*2 diff --git a/docs/images/MarkParticipantSequenceDiagram.png b/docs/images/MarkParticipantSequenceDiagram.png index dbe2ce716cb5a6504b84b39f3a771879bc97f136..409bc31339a0e271131211263d20054ef0b269a5 100644 GIT binary patch literal 26643 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%0Dkn`CG#R(ae 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 cKcxOB6l`3Llb={9- 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�nM-49d;^~C}iJ$9pRhIl~ugh@|R9;5ZL~f&guWWCLmHCzl+O=1)ro9b-413mzPt z!U9D0cs&JI7cG z2ML^1eVJnBcGRm_vL>){CDvD*LVJU2}VPKD}Phx z{&O#$FCN`|+JnD+a%5RsP~MzqZh|gb$MTx6w&DgjK&$MSt6+S5d>1e3)kM=(WMQum z{MTciA&0@&t;ePO?KL}&v;y~k`~P%y{pD;3$U$2Y+onCfJLl;M2GB3ZcaNH2cnwgA<)& zu9C}`0x#gYoGRHd5kw(E=-hwR

        }+uxiyuxT@C7 zUorHiW&9;V`OTYaSe8J8l;>B?)do3VxmrYrXsGN6i`j*_H|!qHaT2g;2@49EKTTG~ zS@oocsWPVdQL&M$=g@3fSy>Zi&qpuT_NBXb?~a$Zbq3K@X}rVgd{goT^V&~H6GG%))#q~e$37jMXL#JO7!}_VUybHHj4*LGUPUKL4Bm+$Rr^)meA|<* zE{Sl21xdIwH8r(M)OpH2_J=wlTxF_fe z74bM#c)wM{rZeN$Qw?>t{d+|LmNbCrM1o7o58uCy>)A9i@F(_AFbqHT8ubg_mhdEf z+59nMwHqntr$aAz&fYhcDiHe+xcb{bo!x(4YAa2d>)G9?LGcX#zW@)PkP2Id|9{;b z{{jc?ZG-m0CFjLc{+#{~`Z_R){egNLT}k>|Ck&ovUKRKg!BTZ4#l&cpl{Q#&!X`J1 zq{O9N8pUXx@z=dO-@*w)TRHGO%mmmWfCt}dfJV7;?nX8JeXHGB7j_eFbAnDmZU!g0 z-@RM-RWXUAcRg>S_O$)9r6s^M^mtjk9fF1Yd`CG0X{ax##i&_CZ_~6oF9Q&y-yXzB zyA)!kS4W(+Mft`p0RYxkukpFTF3KlOxqZVn`$(mPXKgBiNY78KbVCzcU0od~ym9tn zbh<_2Iuaj`oY2gSg;VCdsn5QxC*GR?0bT0_e9-HsqZB z*MWC!Z?-w>|G0Z@9elLtw|nlFee0i#{ z(Ah5FAq7#35)n~{SOQpNKToM%`;G-FKm5$I%Z*dS=#kOU9UUE*@+gRg0U4PupwqDl zlRq@ddszj9D_-Y__Z24*~pVy4`Pb+W??C*-Z0e_Zp8L` zy^)=Q?f1=kq+gDOR7RHdTb!((6R*!Yd2#&2LA1MLy4(>Dk7Dj^m0Q)-=R8?Pl2Ry@ zBk8SB<(PK;+ClUS;`;Fv$}zXk7Hs6%1@DGxN!o5aYVW2V4_u~mJ1asWq1-FiGDz|L zbCHE-dHl#Z5f?6~<6kc9ZDX4LxBpl(v6M<*O&>*f%|l^GA{{1exJ@M!Z3v&e1avhu zYy4W(>VIG*NhJ9Yrf5gD$xpGj)~=<4H*25RnjIS(%k}d!3(Nr*VKh}xox0Pl<$;_Q zHz}O0gGEQd#BIxt?{7$QV?a^$zs7>+S~PGCsxR|qeI$+LbT|Ln4vWiGS4tJ-!j z!UwCr8@q5ZsfC*)9xBL!(`T@Afdk2eG|FH@ih2~r1hZ-873QCJ9rnSuXG-kwh8_j^ Date: Sun, 10 Nov 2024 15:07:22 +0800 Subject: [PATCH 536/619] Fix uncaught/undeclared exceptions --- src/main/java/seedu/manager/Main.java | 2 +- src/test/java/seedu/manager/parser/ParserIntegrationTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/seedu/manager/Main.java b/src/main/java/seedu/manager/Main.java index 39169db07d..2b139fc373 100644 --- a/src/main/java/seedu/manager/Main.java +++ b/src/main/java/seedu/manager/Main.java @@ -43,7 +43,7 @@ private static void runCommandLoop() { ui.showOutputToUser(command); saveData(); isGettingCommands = !command.getCanExit(); - } catch (InvalidCommandException exception) { + } catch (InvalidCommandException | IOException exception) { ui.showErrorMessageToUser(exception); } } diff --git a/src/test/java/seedu/manager/parser/ParserIntegrationTest.java b/src/test/java/seedu/manager/parser/ParserIntegrationTest.java index 1428665c27..2097bc0f0a 100644 --- a/src/test/java/seedu/manager/parser/ParserIntegrationTest.java +++ b/src/test/java/seedu/manager/parser/ParserIntegrationTest.java @@ -38,7 +38,7 @@ void parseCommand_addCommandAddEvent_success() throws IOException { } @Test - void parseCommand_addCommandDuplicateEvent_success() { + void parseCommand_addCommandDuplicateEvent_success() throws IOException { String commandString = "add -e Event 1 -t 2024-10-21 16:00 -v Venue 1 -u HIGH"; Command command = parser.parseCommand(commandString); command.setData(events); From 14e83ef67f6545d9a69db336ce653e913ea37044 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Sun, 10 Nov 2024 15:47:01 +0800 Subject: [PATCH 537/619] Add and edit output messages --- docs/UserGuide.md | 4 +- .../seedu/manager/command/FilterCommand.java | 16 ++++++++ .../seedu/manager/command/ListCommand.java | 12 +++++- .../seedu/manager/command/MenuCommand.java | 38 +++++++++---------- .../seedu/manager/command/ViewCommand.java | 28 +++++++++++--- .../manager/command/ViewCommandTest.java | 4 +- 6 files changed, 72 insertions(+), 30 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 282ec62cb4..ca986238f1 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -149,9 +149,9 @@ Edits the information of an event/participant/item. Format: -* `edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY` for editing an event's basic information. +* `edit -e OLD_EVENT_NAME -name NEW_EVENT_NAME -t TIME -v VENUE -u PRIORITY` for editing an event's basic information. * `edit -p PARTICIPANT -email EMAIL -e EVENT` for editing a participant's contact information in an event. -* `edit -m ITEM > NEW_ITEM -e EVENT` for editing an item's information in an event. +* `edit -m OLD_ITEM > NEW_ITEM -e EVENT` for editing an item's information in an event. Examples: diff --git a/src/main/java/seedu/manager/command/FilterCommand.java b/src/main/java/seedu/manager/command/FilterCommand.java index e7fb40489d..c1cc13361a 100644 --- a/src/main/java/seedu/manager/command/FilterCommand.java +++ b/src/main/java/seedu/manager/command/FilterCommand.java @@ -22,6 +22,7 @@ public class FilterCommand extends Command { private static final String FILTER_BY_TIME_MESSAGE = "Events successfully filtered by time!"; private static final String FILTER_BY_DATE_TIME_MESSAGE = "Events successfully filtered by date-time!"; private static final String FILTER_BY_PRIORITY_MESSAGE = "Events successfully filtered by priority!"; + private static final String FILTER_RESULT_EMPTY_MESSAGE = "No events found!"; private static final String INVALID_DATE_FORMAT_MESSAGE = """ Invalid date format! @@ -99,6 +100,9 @@ public void execute() { private String filterEventsByName() { String lowerCaseKeyword = filterWord.toLowerCase(); filteredEvents = eventList.filterByName(lowerCaseKeyword); + if (filteredEvents.getListSize() == 0) { + return FILTER_RESULT_EMPTY_MESSAGE; + } return FILTER_BY_NAME_MESSAGE + "\n"; } @@ -112,6 +116,9 @@ private String filterEventsByDate() { LocalDate eventDate = LocalDate.parse(filterWord, DateTimeFormatter.ofPattern("yyyy-MM-dd")); filteredEvents = eventList.filterByDate(eventDate); + if (filteredEvents.getListSize() == 0) { + return FILTER_RESULT_EMPTY_MESSAGE; + } return FILTER_BY_DATE_MESSAGE + "\n"; } catch (DateTimeException exception) { return INVALID_DATE_FORMAT_MESSAGE; @@ -128,6 +135,9 @@ private String filterEventsByTime() { LocalTime eventTime = LocalTime.parse(filterWord, DateTimeFormatter.ofPattern("HH:mm")); filteredEvents = eventList.filterByTime(eventTime); + if (filteredEvents.getListSize() == 0) { + return FILTER_RESULT_EMPTY_MESSAGE; + } return FILTER_BY_TIME_MESSAGE + "\n"; } catch (DateTimeException exception) { return INVALID_TIME_FORMAT_MESSAGE; @@ -144,6 +154,9 @@ private String filterEventsByDateTime() { LocalDateTime eventDateTime = LocalDateTime.parse(filterWord, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); filteredEvents = eventList.filterByDateTime(eventDateTime); + if (filteredEvents.getListSize() == 0) { + return FILTER_RESULT_EMPTY_MESSAGE; + } return FILTER_BY_DATE_TIME_MESSAGE + "\n"; } catch (DateTimeException exception) { return INVALID_DATE_TIME_FORMAT_MESSAGE; @@ -159,6 +172,9 @@ private String filterEventsByPriority() { try { Priority priority = Priority.valueOf(filterWord.trim().toUpperCase()); filteredEvents = eventList.filterByPriority(priority); + if (filteredEvents.getListSize() == 0) { + return FILTER_RESULT_EMPTY_MESSAGE; + } return FILTER_BY_PRIORITY_MESSAGE + "\n"; } catch(IllegalArgumentException exception) { return INVALID_PRIORITY_FORMAT_MESSAGE; diff --git a/src/main/java/seedu/manager/command/ListCommand.java b/src/main/java/seedu/manager/command/ListCommand.java index 5f4b88da1b..1ad5d09756 100644 --- a/src/main/java/seedu/manager/command/ListCommand.java +++ b/src/main/java/seedu/manager/command/ListCommand.java @@ -5,6 +5,9 @@ public class ListCommand extends Command { public static final String COMMAND_WORD = "list"; private static final String LIST_MESSAGE = "There are %1$d events in your list! " + "Here are your scheduled events:"; + private static final String ONE_EVENT_LIST_MESSAGE = "There is %1$d event in your list! " + + "Here is your scheduled event:"; + private static final String EMPTY_LIST_MESSAGE = "There are %1$d events in your list!"; /** * Constructs a new ListCommand @@ -17,7 +20,14 @@ public ListCommand() { * Executes the ListCommand by getting a list of all events */ public void execute() { - StringBuilder outputMessage = new StringBuilder(String.format(LIST_MESSAGE, eventList.getListSize()) + "\n"); + StringBuilder outputMessage; + if (eventList.getListSize() == 0) { + outputMessage = new StringBuilder(String.format(EMPTY_LIST_MESSAGE, eventList.getListSize()) + "\n"); + } else if (eventList.getListSize() == 1) { + outputMessage = new StringBuilder(String.format(ONE_EVENT_LIST_MESSAGE, eventList.getListSize()) + "\n"); + } else { + outputMessage = new StringBuilder(String.format(LIST_MESSAGE, eventList.getListSize()) + "\n"); + } for (int i = 0; i < eventList.getListSize(); i++) { assert eventList.getEvent(i) != null : "Event at index " + i + " should not be null."; outputMessage.append(String.format("%d. %s\n", i + 1, eventList.getEvent(i).toString())); diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 114a6a4d55..74e23999fa 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -7,28 +7,28 @@ public class MenuCommand extends Command { public static final String COMMAND_WORD = "menu"; private static final String MENU_MESSAGE = """ - Here are the possible commands: + Here are all the possible commands: - menu: List commands. - list: List events. - add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. - add -p PARTICIPANT -email EMAIL -e EVENT: Add a participant to an event. - add -m ITEM -e EVENT: Add an item to an event. - remove -e EVENT: Remove an event from the event list. - remove -p PARTICIPANT -e EVENT: Remove a participant from an event. - remove -m ITEM -e EVENT: Remove an item from an event. - edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. - edit -p PARTICIPANT -email EMAIL -e EVENT: Edit participant contact info. - edit -m ITEM > NEW_ITEM -e EVENT: Edit an item in an event. - view -e EVENT -y TYPE: View the list of participants or items of an event. - mark -e EVENT -s STATUS: Mark an event as done or not done. - mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. - mark -m ITEM -e EVENT -s STATUS: Mark an item as accounted or unaccounted. - copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. + menu: Displays a list of all commands. + list: Displays a list of all events. + add -e EVENT -t TIME -v VENUE -u PRIORITY: Adds an event to the event list. + add -p PARTICIPANT -email EMAIL -e EVENT: Adds a participant to an event. + add -m ITEM -e EVENT: Adds an item to an event. + remove -e EVENT: Removes an event from the event list. + remove -p PARTICIPANT -e EVENT: Removes a participant from an event. + remove -m ITEM -e EVENT: Removes an item from an event. + edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edits an event's info. + edit -p PARTICIPANT -email EMAIL -e EVENT: Edits a participant's contact info. + edit -m ITEM > NEW_ITEM -e EVENT: Edits an item's info. + view -e EVENT -y TYPE: Displays the list of participants or items of an event. + mark -e EVENT -s STATUS: Marks an event as done or not done. + mark -p PARTICIPANT -e EVENT -s STATUS: Marks a participant as present or absent. + mark -m ITEM -e EVENT -s STATUS: Marks an item as accounted or unaccounted for. + copy FROM_EVENT > TO_EVENT: Copies the participant list from one event to another. sort -by KEYWORD: Sorts events by name/time/priority. filter -e/-d/-t/-x/-u FILTER_DESCRIPTION: Filters events by name/date/time/date-time/priority. - find -e EVENT -p NAME: Finds all participants with specified name in an event. - exit: Exit program."""; + find -e EVENT -p NAME: Finds all participants with a specified name in an event. + exit: Exits program."""; /** * Constructs a new MenuCommand diff --git a/src/main/java/seedu/manager/command/ViewCommand.java b/src/main/java/seedu/manager/command/ViewCommand.java index 3fd94fbd3f..7dba42f7a0 100644 --- a/src/main/java/seedu/manager/command/ViewCommand.java +++ b/src/main/java/seedu/manager/command/ViewCommand.java @@ -13,10 +13,14 @@ */ public class ViewCommand extends Command { public static final String COMMAND_WORD = "view"; - private static final String VIEW_PARTICIPANT_MESSAGE = "There are %d participants in %s! " + + private static final String VIEW_PARTICIPANTS_MESSAGE = "There are %d participants in %s! " + "Here are your participants:"; - private static final String VIEW_ITEM_MESSAGE = "There are %d items in %s! " + + private static final String VIEW_PARTICIPANT_MESSAGE = "There is %d participant in %s! " + + "Here is your participant:"; + private static final String VIEW_ITEMS_MESSAGE = "There are %d items in %s! " + "Here are your items:"; + private static final String VIEW_ITEM_MESSAGE = "There is %d item in %s! " + + "Here is your item:"; private static final String INVALID_EVENT_MESSAGE = "Event not found!"; private final String eventName; @@ -56,8 +60,14 @@ public void execute() { */ private String getParticipants(Event eventToView) { assert eventToView != null : "eventToView cannot be null"; - StringBuilder outputMessage = new StringBuilder( - String.format(VIEW_PARTICIPANT_MESSAGE, eventToView.getParticipantCount(), eventName) + "\n"); + StringBuilder outputMessage; + if (eventToView.getParticipantCount() == 1) { + outputMessage = new StringBuilder(String.format( + VIEW_PARTICIPANT_MESSAGE, eventToView.getParticipantCount(), eventName) + "\n"); + } else { + outputMessage = new StringBuilder(String.format( + VIEW_PARTICIPANTS_MESSAGE, eventToView.getParticipantCount(), eventName) + "\n"); + } int count = 1; for (Participant participant : eventToView.getParticipantList()) { outputMessage.append(String.format("%d. %s\n", count, participant.toString())); @@ -75,8 +85,14 @@ private String getParticipants(Event eventToView) { */ private String getItems(Event eventToView) { assert eventToView != null : "eventToView cannot be null"; - StringBuilder outputMessage = new StringBuilder( - String.format(VIEW_ITEM_MESSAGE, eventToView.getItemCount(), eventName) + "\n"); + StringBuilder outputMessage; + if (eventToView.getItemCount() == 1) { + outputMessage = new StringBuilder( + String.format(VIEW_ITEM_MESSAGE, eventToView.getItemCount(), eventName) + "\n"); + } else { + outputMessage = new StringBuilder( + String.format(VIEW_ITEMS_MESSAGE, eventToView.getItemCount(), eventName) + "\n"); + } int count = 1; for (Item item : eventToView.getItemList()) { outputMessage.append(String.format("%d. %s\n", count, item.toString())); diff --git a/src/test/java/seedu/manager/command/ViewCommandTest.java b/src/test/java/seedu/manager/command/ViewCommandTest.java index 72cf94e43e..8ff1adbfcb 100644 --- a/src/test/java/seedu/manager/command/ViewCommandTest.java +++ b/src/test/java/seedu/manager/command/ViewCommandTest.java @@ -36,7 +36,7 @@ public void setUp() throws IOException { @Test public void execute_twoEvents_success() throws IOException { - String expectedMessage = "There are 1 participants in Event 1! Here are your participants:\n" + String expectedMessage = "There is 1 participant in Event 1! Here is your participant:\n" + "1. Name: Tom / Email: example@gmail.com [ ]\n"; viewCommand = new Parser().parseCommand("view -e Event 1 -y participant"); @@ -61,7 +61,7 @@ public void execute_invalidEvent_failure() throws IOException { @Test public void execute_viewItems_success() throws IOException { - String expectedMessage = "There are 1 items in Event 1! Here are your items:\n" + String expectedMessage = "There is 1 item in Event 1! Here is your item:\n" + "1. Plastic chair [ ]\n"; viewCommand = new Parser().parseCommand("view -e Event 1 -y item"); From 4a7c244b87ee828ba3329d2718f5935e542debd0 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Sun, 10 Nov 2024 16:10:50 +0800 Subject: [PATCH 538/619] Update EXPECTED.TXT --- .../seedu/manager/command/ViewCommand.java | 20 +++++-- text-ui-test/EXPECTED.TXT | 56 +++++++++---------- 2 files changed, 42 insertions(+), 34 deletions(-) diff --git a/src/main/java/seedu/manager/command/ViewCommand.java b/src/main/java/seedu/manager/command/ViewCommand.java index 7dba42f7a0..17b7449ab7 100644 --- a/src/main/java/seedu/manager/command/ViewCommand.java +++ b/src/main/java/seedu/manager/command/ViewCommand.java @@ -15,12 +15,14 @@ public class ViewCommand extends Command { public static final String COMMAND_WORD = "view"; private static final String VIEW_PARTICIPANTS_MESSAGE = "There are %d participants in %s! " + "Here are your participants:"; - private static final String VIEW_PARTICIPANT_MESSAGE = "There is %d participant in %s! " + + private static final String VIEW_ONE_PARTICIPANT_MESSAGE = "There is %d participant in %s! " + "Here is your participant:"; + private static final String VIEW_NO_PARTICIPANTS_MESSAGE = "There are %d participants in %s!"; private static final String VIEW_ITEMS_MESSAGE = "There are %d items in %s! " + "Here are your items:"; - private static final String VIEW_ITEM_MESSAGE = "There is %d item in %s! " + + private static final String VIEW_ONE_ITEM_MESSAGE = "There is %d item in %s! " + "Here is your item:"; + private static final String VIEW_NO_ITEMS_MESSAGE = "There are %d items in %s!"; private static final String INVALID_EVENT_MESSAGE = "Event not found!"; private final String eventName; @@ -61,9 +63,12 @@ public void execute() { private String getParticipants(Event eventToView) { assert eventToView != null : "eventToView cannot be null"; StringBuilder outputMessage; - if (eventToView.getParticipantCount() == 1) { + if (eventToView.getParticipantCount() == 0) { outputMessage = new StringBuilder(String.format( - VIEW_PARTICIPANT_MESSAGE, eventToView.getParticipantCount(), eventName) + "\n"); + VIEW_NO_PARTICIPANTS_MESSAGE, eventToView.getParticipantCount(), eventName) + "\n"); + } else if (eventToView.getParticipantCount() == 1) { + outputMessage = new StringBuilder(String.format( + VIEW_ONE_PARTICIPANT_MESSAGE, eventToView.getParticipantCount(), eventName) + "\n"); } else { outputMessage = new StringBuilder(String.format( VIEW_PARTICIPANTS_MESSAGE, eventToView.getParticipantCount(), eventName) + "\n"); @@ -86,9 +91,12 @@ private String getParticipants(Event eventToView) { private String getItems(Event eventToView) { assert eventToView != null : "eventToView cannot be null"; StringBuilder outputMessage; - if (eventToView.getItemCount() == 1) { + if (eventToView.getItemCount() == 0) { + outputMessage = new StringBuilder( + String.format(VIEW_NO_ITEMS_MESSAGE, eventToView.getItemCount(), eventName) + "\n"); + } else if (eventToView.getItemCount() == 1) { outputMessage = new StringBuilder( - String.format(VIEW_ITEM_MESSAGE, eventToView.getItemCount(), eventName) + "\n"); + String.format(VIEW_ONE_ITEM_MESSAGE, eventToView.getItemCount(), eventName) + "\n"); } else { outputMessage = new StringBuilder( String.format(VIEW_ITEMS_MESSAGE, eventToView.getItemCount(), eventName) + "\n"); diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index fc2197c3e1..2729567f7c 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -3,30 +3,30 @@ Error loading data from file: data.txt. New file will be created since it does n ------------------------ Enter a command: Invalid command! ------------------------ -Enter a command: Here are the possible commands: - -menu: List commands. -list: List events. -add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. -add -p PARTICIPANT -email EMAIL -e EVENT: Add a participant to an event. -add -m ITEM -e EVENT: Add an item to an event. -remove -e EVENT: Remove an event from the event list. -remove -p PARTICIPANT -e EVENT: Remove a participant from an event. -remove -m ITEM -e EVENT: Remove an item from an event. -edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. -edit -p PARTICIPANT -email EMAIL -e EVENT: Edit participant contact info. -edit -m ITEM > NEW_ITEM -e EVENT: Edit an item in an event. -view -e EVENT -y TYPE: View the list of participants or items of an event. -mark -e EVENT -s STATUS: Mark an event as done or not done. -mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. -mark -m ITEM -e EVENT -s STATUS: Mark an item as accounted or unaccounted. -copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. +Enter a command: Here are all the possible commands: + +menu: Displays a list of all commands. +list: Displays a list of all events. +add -e EVENT -t TIME -v VENUE -u PRIORITY: Adds an event to the event list. +add -p PARTICIPANT -email EMAIL -e EVENT: Adds a participant to an event. +add -m ITEM -e EVENT: Adds an item to an event. +remove -e EVENT: Removes an event from the event list. +remove -p PARTICIPANT -e EVENT: Removes a participant from an event. +remove -m ITEM -e EVENT: Removes an item from an event. +edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edits an event's info. +edit -p PARTICIPANT -email EMAIL -e EVENT: Edits a participant's contact info. +edit -m ITEM > NEW_ITEM -e EVENT: Edits an item's info. +view -e EVENT -y TYPE: Displays the list of participants or items of an event. +mark -e EVENT -s STATUS: Marks an event as done or not done. +mark -p PARTICIPANT -e EVENT -s STATUS: Marks a participant as present or absent. +mark -m ITEM -e EVENT -s STATUS: Marks an item as accounted or unaccounted for. +copy FROM_EVENT > TO_EVENT: Copies the participant list from one event to another. sort -by KEYWORD: Sorts events by name/time/priority. filter -e/-d/-t/-x/-u FILTER_DESCRIPTION: Filters events by name/date/time/date-time/priority. -find -e EVENT -p NAME: Finds all participants with specified name in an event. -exit: Exit program. +find -e EVENT -p NAME: Finds all participants with a specified name in an event. +exit: Exits program. ------------------------ -Enter a command: There are 0 events in your list! Here are your scheduled events: +Enter a command: There are 0 events in your list! ------------------------ Enter a command: Invalid command! @@ -38,13 +38,13 @@ add -m ITEM -e EVENT ------------------------ Enter a command: Event added successfully ------------------------ -Enter a command: There are 1 events in your list! Here are your scheduled events: +Enter a command: There is 1 event in your list! Here is your scheduled event: 1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: N ------------------------ Enter a command: Event marked as done ------------------------ -Enter a command: There are 1 events in your list! Here are your scheduled events: +Enter a command: There is 1 event in your list! Here is your scheduled event: 1. Event name: dinner party / Event time: 2024-10-10 12:34 / Event venue: Alice's House / Event Priority: HIGH / Done: Y ------------------------ @@ -52,7 +52,7 @@ Enter a command: Event not found! ------------------------ Enter a command: Event information successfully updated ------------------------ -Enter a command: There are 1 events in your list! Here are your scheduled events: +Enter a command: There is 1 event in your list! Here is your scheduled event: 1. Event name: dinner party / Event time: 2024-10-10 15:00 / Event venue: Bob's House / Event Priority: LOW / Done: Y ------------------------ @@ -65,7 +65,7 @@ view -e EVENT -y TYPE ------------------------ Enter a command: Participant contact information successfully updated ------------------------ -Enter a command: There are 1 participants in dinner party! Here are your participants: +Enter a command: There is 1 participant in dinner party! Here is your participant: 1. Name: Mary / Email: Mary@gmail.com [ ] ------------------------ @@ -85,7 +85,7 @@ Enter a command: Item added successfully ------------------------ Enter a command: Item accounted for. ------------------------ -Enter a command: There are 1 items in dinner party! Here are your items: +Enter a command: There is 1 item in dinner party! Here is your item: 1. curry chicken [X] ------------------------ @@ -121,13 +121,13 @@ Enter a command: There are 2 events in your list! Here are your scheduled events ------------------------ Enter a command: Item added successfully ------------------------ -Enter a command: There are 1 items in anniversary celebration! Here are your items: +Enter a command: There is 1 item in anniversary celebration! Here is your item: 1. balloon [ ] ------------------------ Enter a command: Item successfully updated ------------------------ -Enter a command: There are 1 items in anniversary celebration! Here are your items: +Enter a command: There is 1 item in anniversary celebration! Here are your item: 1. cake [ ] ------------------------ From 14c45555e2237c2b61f0aa7cd05dbc088b886d13 Mon Sep 17 00:00:00 2001 From: Tze Kang <141611843+LTK-1606@users.noreply.github.com> Date: Sun, 10 Nov 2024 16:18:18 +0800 Subject: [PATCH 539/619] Update EXPECTED.TXT --- text-ui-test/EXPECTED.TXT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/text-ui-test/EXPECTED.TXT b/text-ui-test/EXPECTED.TXT index 0643729741..c44ea43c09 100644 --- a/text-ui-test/EXPECTED.TXT +++ b/text-ui-test/EXPECTED.TXT @@ -123,7 +123,7 @@ Enter a command: There is 1 item in anniversary celebration! Here is your item: ------------------------ Enter a command: Item successfully updated ------------------------ -Enter a command: There is 1 item in anniversary celebration! Here are your item: +Enter a command: There is 1 item in anniversary celebration! Here is your item: 1. cake [ ] ------------------------ From 5e3acad4129d4cc8dd37b74eb9e423e2b3e5670e Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Sun, 10 Nov 2024 16:48:18 +0800 Subject: [PATCH 540/619] Remove main or add activation bar to sequence diagrams --- docs/diagrams/AddCommandSequenceDiagram.puml | 3 +-- .../CommandParsingSequenceDiagram.puml | 13 +++---------- docs/diagrams/CommandSequenceDiagram.puml | 2 ++ docs/diagrams/CopyCommandSequenceDiagram.puml | 7 +++---- .../EditEventCommandSequenceDiagram.puml | 10 +++++----- .../EditItemCommandSequenceDiagram.puml | 9 ++++----- ...EditParticipantCommandSequenceDiagram.puml | 13 ++++++------- .../FilterCommandSequenceDiagram.puml | 8 ++++---- docs/diagrams/FindCommandSequenceDiagram.puml | 7 +++---- docs/diagrams/ListCommandSequenceDiagram.puml | 8 ++------ docs/diagrams/MarkEventSequenceDiagram.puml | 7 +++---- .../MarkParticipantSequenceDiagram.puml | 7 +++---- .../RemoveCommandSequenceDiagram.puml | 3 +-- docs/diagrams/SortCommandSequenceDiagram.puml | 8 ++++---- docs/diagrams/ViewEventSequenceDiagram.puml | 3 +-- docs/images/AddCommandSequenceDiagram.png | Bin 15009 -> 13488 bytes docs/images/CommandParsingSequenceDiagram.png | Bin 18969 -> 16040 bytes docs/images/CommandSequenceDiagram.png | Bin 27692 -> 27236 bytes docs/images/CopyCommandSequenceDiagram.png | Bin 37376 -> 36605 bytes .../EditEventCommandSequenceDiagram.png | Bin 33089 -> 31058 bytes .../images/EditItemCommandSequenceDiagram.png | Bin 30548 -> 28899 bytes .../EditParticipantCommandSequenceDiagram.png | Bin 32777 -> 31171 bytes docs/images/FilterCommandSequenceDiagram.png | Bin 31628 -> 63006 bytes docs/images/FindCommandSequenceDiagram.png | Bin 24136 -> 22739 bytes docs/images/ListCommandSequenceDiagram.png | Bin 12960 -> 10456 bytes docs/images/MarkEventSequenceDiagram.png | Bin 14589 -> 13372 bytes .../images/MarkParticipantSequenceDiagram.png | Bin 27201 -> 26643 bytes docs/images/RemoveCommandSequenceDiagram.png | Bin 15708 -> 14512 bytes docs/images/SortCommandSequenceDiagram.png | Bin 28156 -> 26726 bytes docs/images/ViewEventSequenceDiagram.png | Bin 21991 -> 21131 bytes 30 files changed, 45 insertions(+), 63 deletions(-) diff --git a/docs/diagrams/AddCommandSequenceDiagram.puml b/docs/diagrams/AddCommandSequenceDiagram.puml index c7f8614fb4..93630d796b 100644 --- a/docs/diagrams/AddCommandSequenceDiagram.puml +++ b/docs/diagrams/AddCommandSequenceDiagram.puml @@ -2,10 +2,9 @@ !include style.puml hide footbox -participant ":Main" as main participant ":AddCommand" as command -main -> command : execute() +[-> command : execute() activate command alt participantName is not null diff --git a/docs/diagrams/CommandParsingSequenceDiagram.puml b/docs/diagrams/CommandParsingSequenceDiagram.puml index b51ed455b1..8021e35864 100644 --- a/docs/diagrams/CommandParsingSequenceDiagram.puml +++ b/docs/diagrams/CommandParsingSequenceDiagram.puml @@ -2,16 +2,10 @@ !include style.puml hide footbox -participant ":Main" as main participant ":Parser" as parser -participant ":XYZCommand" as xyzCommand +participant ":XYZCommand" as xyzCommand -create parser -main -> parser : Parser() -activate parser -return - -main -> parser : parseCommand(command) +[-> parser : parseCommand(command) activate parser parser -> parser : parseXYZCommand(input, commandParts) @@ -23,7 +17,6 @@ activate xyzCommand return :XYZCommand return -parser --> main : command:Command -deactivate parser +return command:Command @enduml \ No newline at end of file diff --git a/docs/diagrams/CommandSequenceDiagram.puml b/docs/diagrams/CommandSequenceDiagram.puml index 048bdf21d6..4322df2384 100644 --- a/docs/diagrams/CommandSequenceDiagram.puml +++ b/docs/diagrams/CommandSequenceDiagram.puml @@ -7,6 +7,8 @@ participant ":Ui" as ui participant ":Parser" as parser participant ":XYZCommand" as xyzCommand +activate main + main -> ui : getCommand() activate ui diff --git a/docs/diagrams/CopyCommandSequenceDiagram.puml b/docs/diagrams/CopyCommandSequenceDiagram.puml index 5cd272b03f..001b1fc910 100644 --- a/docs/diagrams/CopyCommandSequenceDiagram.puml +++ b/docs/diagrams/CopyCommandSequenceDiagram.puml @@ -1,12 +1,12 @@ @startuml hide footbox -participant ":Main" as Main + participant ":CopyCommand" as CC participant ":EventList" as EL participant "eventFrom:Event" as SourceEvent participant "eventTo:Event" as DestEvent -Main -> CC: execute() +[-> CC: execute() activate CC CC -> EL: getEventByName(copyTo) @@ -34,7 +34,6 @@ opt Both Events Found end opt -CC --> Main: Display copy result message -deactivate CC +return Display copy result message @enduml \ No newline at end of file diff --git a/docs/diagrams/EditEventCommandSequenceDiagram.puml b/docs/diagrams/EditEventCommandSequenceDiagram.puml index 61baac9abf..2e4700e7fa 100644 --- a/docs/diagrams/EditEventCommandSequenceDiagram.puml +++ b/docs/diagrams/EditEventCommandSequenceDiagram.puml @@ -1,12 +1,11 @@ @startuml hide footbox -participant ":Main" as main participant ":EditEventCommand" as editCommand participant ":EventList" as eventList participant ":Event" as event -main -> editCommand : execute() +[-> editCommand : execute() activate editCommand editCommand -> eventList : editEvent(eventName, eventNewName, eventTime, eventVenue, eventPriority) @@ -28,7 +27,8 @@ loop for each event in eventList end -editCommand --> main : message -deactivate eventList -deactivate editCommand +return :boolean + +return + @enduml \ No newline at end of file diff --git a/docs/diagrams/EditItemCommandSequenceDiagram.puml b/docs/diagrams/EditItemCommandSequenceDiagram.puml index 65b4923465..0a5abd47be 100644 --- a/docs/diagrams/EditItemCommandSequenceDiagram.puml +++ b/docs/diagrams/EditItemCommandSequenceDiagram.puml @@ -1,12 +1,11 @@ @startuml hide footbox -participant ":Main" as main participant ":EditItemCommand" as editCommand participant ":EventList" as eventList participant ":Event" as event -main -> editCommand : execute() +[-> editCommand : execute() activate editCommand editCommand -> eventList : editItem(itemName, itemNewName, eventName) @@ -29,10 +28,10 @@ loop for each event in eventList end +return :boolean + +return -editCommand --> main : message -deactivate eventList -deactivate editCommand @enduml 39 changes: 39 additions & 0 deletions39 docs/diagrams/EditParticipantCommandSequenceDiagram.puml diff --git a/docs/diagrams/EditParticipantCommandSequenceDiagram.puml b/docs/diagrams/EditParticipantCommandSequenceDiagram.puml index f6e123bd68..6d4116b3a7 100644 --- a/docs/diagrams/EditParticipantCommandSequenceDiagram.puml +++ b/docs/diagrams/EditParticipantCommandSequenceDiagram.puml @@ -1,12 +1,11 @@ @startuml hide footbox - participant ":Main" as main participant ":EditParticipantCommand" as editCommand participant ":EventList" as eventList participant ":Event" as event - main -> editCommand : execute() + [-> editCommand : execute() activate editCommand editCommand -> eventList : editParticipant(participantName, participantEmail, eventName) @@ -26,11 +25,11 @@ eventList --> editCommand : :boolean end - end +end - editCommand --> main : message - deactivate eventList - deactivate editCommand +return :boolean - @enduml \ No newline at end of file +return + +@enduml \ No newline at end of file diff --git a/docs/diagrams/FilterCommandSequenceDiagram.puml b/docs/diagrams/FilterCommandSequenceDiagram.puml index 24506405c5..f7f2992fb9 100644 --- a/docs/diagrams/FilterCommandSequenceDiagram.puml +++ b/docs/diagrams/FilterCommandSequenceDiagram.puml @@ -1,9 +1,9 @@ @startuml hide footbox -participant ":Main" as Main + participant ":FilterCommand" as FC -Main -> FC: execute() +[-> FC: execute() create participant "FilteredEventList :EventList" as FEL activate FC @@ -59,8 +59,8 @@ else filter by priority deactivate FC end alt -FC --> Main: Display FilteredEventList and filter result message -deactivate FC +return Display FilteredEventList and filter result message + destroy FEL @enduml \ No newline at end of file diff --git a/docs/diagrams/FindCommandSequenceDiagram.puml b/docs/diagrams/FindCommandSequenceDiagram.puml index 10d2797e9f..b7b7d5a89b 100644 --- a/docs/diagrams/FindCommandSequenceDiagram.puml +++ b/docs/diagrams/FindCommandSequenceDiagram.puml @@ -1,11 +1,11 @@ @startuml hide footbox -participant ":Main" as Main + participant ":FindCommand" as FC participant ":EventList" as EL participant "event :Event" as E -Main -> FC: execute() +[-> FC: execute() activate FC FC -> EL: getEventByName(eventName) activate EL @@ -20,7 +20,6 @@ opt Event found end opt -FC --> Main: Display participantList and search result message -deactivate FC +return Display participantList and search result message @enduml \ No newline at end of file diff --git a/docs/diagrams/ListCommandSequenceDiagram.puml b/docs/diagrams/ListCommandSequenceDiagram.puml index dd444f95e3..3874ee778b 100644 --- a/docs/diagrams/ListCommandSequenceDiagram.puml +++ b/docs/diagrams/ListCommandSequenceDiagram.puml @@ -1,11 +1,10 @@ @startuml hide footbox -participant ":Main" as Main participant ":ListCommand" as ListCommand participant ":EventList" as EventList -Main -> ListCommand: execute() +[-> ListCommand: execute() activate ListCommand @@ -21,9 +20,6 @@ loop for each event in EventList deactivate EventList end loop -ListCommand --> Main : outputMessage -deactivate ListCommand +return - -deactivate Main @enduml \ No newline at end of file diff --git a/docs/diagrams/MarkEventSequenceDiagram.puml b/docs/diagrams/MarkEventSequenceDiagram.puml index 66ea440fc8..cb78eb7727 100644 --- a/docs/diagrams/MarkEventSequenceDiagram.puml +++ b/docs/diagrams/MarkEventSequenceDiagram.puml @@ -2,12 +2,11 @@ !include style.puml hide footbox -participant ":Main" as main participant ":MarkEventCommand" as markCommand participant ":EventList" as eventList participant ":Event" as event -main -> markCommand : execute() +[-> markCommand : execute() activate markCommand markCommand -> eventList : getEventByName(eventName) @@ -22,6 +21,6 @@ activate event event --> markCommand deactivate event -markCommand --> main -deactivate markCommand +return + @enduml diff --git a/docs/diagrams/MarkParticipantSequenceDiagram.puml b/docs/diagrams/MarkParticipantSequenceDiagram.puml index 1fd15e1560..fc5a28b70d 100644 --- a/docs/diagrams/MarkParticipantSequenceDiagram.puml +++ b/docs/diagrams/MarkParticipantSequenceDiagram.puml @@ -2,13 +2,12 @@ !include style.puml hide footbox -participant ":Main" as main participant ":MarkParticipantCommand" as markCommand participant ":EventList" as eventList participant "event:Event" as event participant "participant:Participant" as participant -main -> markCommand : execute() +[-> markCommand : execute() activate markCommand markCommand -> eventList : getEventByName(eventName) @@ -32,6 +31,6 @@ return return -markCommand --> main -deactivate markCommand +return + @enduml \ No newline at end of file diff --git a/docs/diagrams/RemoveCommandSequenceDiagram.puml b/docs/diagrams/RemoveCommandSequenceDiagram.puml index 613262f196..03677bbe7e 100644 --- a/docs/diagrams/RemoveCommandSequenceDiagram.puml +++ b/docs/diagrams/RemoveCommandSequenceDiagram.puml @@ -2,10 +2,9 @@ !include style.puml hide footbox -participant ":Main" as main participant ":RemoveCommand" as command -main -> command : execute() +[-> command : execute() activate command alt participant name is not null diff --git a/docs/diagrams/SortCommandSequenceDiagram.puml b/docs/diagrams/SortCommandSequenceDiagram.puml index fceb65305c..6961b36a9d 100644 --- a/docs/diagrams/SortCommandSequenceDiagram.puml +++ b/docs/diagrams/SortCommandSequenceDiagram.puml @@ -1,9 +1,9 @@ @startuml hide footbox -participant ":Main" as Main + participant ":SortCommand" as SC -Main -> SC: execute() +[-> SC: execute() activate SC create participant "SortedEventList :EventList" as SEL @@ -30,8 +30,8 @@ else sort by priority end alt -SC --> Main: Display SortedEventList and sort result message -deactivate SC +return Display SortedEventList and sort result message + destroy SEL @enduml \ No newline at end of file diff --git a/docs/diagrams/ViewEventSequenceDiagram.puml b/docs/diagrams/ViewEventSequenceDiagram.puml index d7360f26d2..0233cab0f7 100644 --- a/docs/diagrams/ViewEventSequenceDiagram.puml +++ b/docs/diagrams/ViewEventSequenceDiagram.puml @@ -2,11 +2,10 @@ !include style.puml hide footbox -participant ":Main" as main participant ":ViewCommand" as command participant ":EventList" as eventList -main -> command : execute() +[-> command : execute() activate command command -> eventList : getEventByName(eventName) diff --git a/docs/images/AddCommandSequenceDiagram.png b/docs/images/AddCommandSequenceDiagram.png index 7c92017b8a6be3b8e538968cfe64a950e51badc0..faa43183e636bac7126078d9fe9d00488d1bd44a 100644 GIT binary patch literal 13488 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 O*Y4fbR6#141^s_Oc;5j4 literal 15009 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 DolHWi literal 27692 zcma%jbzGEfx3!YPfH<@wHFTE}5&}bqijgQx*>v>Go=BACig{O@*i=`jS4Np&34=EubS0{^` zo?gyQf>tih-XFS{;S%HadWN2V|NYo;xQ=h;l5W$@QDL&W1-{prnTl~wxzjF1p$#ie zymNSIm}xnBv2s{1MBp@KD#z|lZ^9j46(sdgLN($p)Akm3itgpEE8L{3Di4Yf=fj>k zhq~!E$U4@`8EGbZvnjPclKPY?N`Rli?M(Do=C0H4(mW>l6ND#ZXRe=5ycuN>KeoAb zFg+VDplP!fd8=Z7?7Bj<6iwXM!CFcKH37;K*e3m5tP5NZ( zm1|Gf@vw|*LD}o|W|;E#(t75~7+TA|1ap#h%N)rBX}z&>sg1eE8Z*AlMhui?R=SZ9 zPQ;ycnp~xMQq+6t;)&;Ub6HKFpbw>-FP4~TdyA6X6ef-6J$&Ng|1)c;q()xiH+3Yo`pM8Gm2R7-;q>tup z+({ihubbdcZ>>$O@jg-_RW5Br3UUeuakUS+%Y?ShQaku^=gep#zY?XRXGVTaTp*g- z%Dz`v8RpWIBzUFy8rJs0?wjC{MBCzrVjNX^@0nAcyd5p_q```9u2K6NDpJ>Tn#4~Y$_ z2X~^DZWB_Rsq@iZ9E#5w;=4Z-6I|0qEB2}|hA^Ntp-g#ECH`8OGSywjk|7=gC&RLe z!|^eXvp)B(k@LM<{?NF2;nzy0?Ckr+jLF5#M=rL#47_11h_DXS`CJ+T1r$N{nOqe7 zfi*k{g9u}ZCc_}n@ULjJ9{OVz*TwtimS(dQ+Y=sIk2rsMtsZrfIh8E2Bc(QQ+kI{3 zhuoozkq7-;g$0sP##d>_wxG%6a)v0|r|}Wgs8EB}BPlN;B7RxoFkwa=Y((Ux26qlL zdJ@a<>T{ul^H8aRD28=G#Cb#uzx$1Tq4*1v_6L}=w(muIOwL%o)wcVPDe%`@%_pCp zcf0r+7Greu7K>);ZnImq&QzRQDfL;=F;pkE1|o+riqAAYhO%fy>7hH)#q5enstRS%OEOK6(vG3cY%9g}x-B&`QtqFJ{gk^J4V-h+DG@lwe;s+W#SD%bQ z7%3ppS|@pwHsh%=9Y`I7g})m5jY}>HV*q>fNfFt5iw%n^52ME1W73IUKEo4{M3akZ z{+)#J9EYnEbwpzSa?*ZpU<7meZnbiqAo4Y@EDPQYq24g2~c|@1Ko8+JOBs#3YB-Wd zFJF7SKD;H>YeBr@fdsP|dUBFNHDS-B;!#C1rW}8VFXC*as4{weo^Wz&h@4TXI&ga@ zg+r5=xN30GKH_L2uF;hH{4B#K&M`cVv>z@nuB&^}D1_;(d#CwXpOQht8y z1Bss&Huac@g1l-QEwq~GK=EkM(nvT#C1z!LYT(L~ARe8T%v39@EQlJb`F_7&-?3R2 zZpG_k#M=|IM$4vq!U*4q)VYjlw8&)128cMcR5c&$EXZ8IbM5=~Znfz9;_#V{pO-UV zN4z}fFF0hnSc|*K*@YN~{(QE;knE(=Qk$)6k68K>@(|SX7`!jH?RF{E zsi>^awZ7^?Ld=2WV&i(Ztaa1|xCF3dXT*u9 zVp6w}oxjf*N%E63o%Ul@cz_Aovf$?QZVpb<@VRyCojG2W<6!T2Ls&+}@Z{Ux{Ga^= zCat&ik<{GUFY{ZM$5dryYI(1|7dV>8!5H0!#H5?J)o2IS?26Abp7_>VZf)SWA|O|%Og9Pa`RAHj~Wi^8@p5t zI=UYuCUK9~?@KBaC(VC$ghW6(dS9#|kzxBR=5V5kt>;|uK}mhR%`lSWOji*TQsI7B z%iM>D&-kw1=%J)yHud(|6Fk9RYqyhHxpECUB*y#c$fLyu`|=#m zjdO=mr^u>lqNj?LW6g_^!*4#bASqmY&E8wgC=RjU`&!QR^oEI3_A`feKiD)sMoxaI zF5sk^HXp$P@4(J%mYq3it&%|~AyuKZ-(Ctw;qb;gAze2?I>9fYn6;VCLVYHuqjNcp z3_Xja6D+rC&nBUI$`*TBJGk#2=9SZM>_`PV0`e&rKaflL8%f@AoG|>$)kq6ADb3d{+fGSVr`a zKYFqqtKDgab$y(+_;2ve%yjYv@3|$VR=FgelMs@+wG*i2OC8bR*kn{>QnkOa)DAIb z1TiLQzBJ-o#LsR0`FT8tW?Ea@+D!#CgyN|SduAl_4W09YE(n9`nrVA!@>aIDexT<<41ybE8p4|8$^uh*W69ga>#8Y~xyeWD5bjYnMT$s-tAnDq3b$>$f> z5^r@nwB9~pC}6RAH^~?sOIN~c@SgI#ZrDyn4pzC$Eclww`usJm-TGU^R%X!zezg@9 zd>4fNT4JX}`8~|?7eAes`GkRu^Mu&<_bWTzzkmPv^V_zzS0+_oJAMj?i(wXOiu7Ek&) zvy$`6(~A$#r_ssl!Z#SQM6u6MO4i-iW@@pKDHz0Qw0=i_!P$%Ja{dlCDJV={IgfJU zUV87m$E#4=F_#ACkvCq2zxS2i-xpK;^>N?2rnTkEL)n0Y-wcRmPc@pgwQui!e6q8& zkHlu%SE=853j3fXD#NN7W+dV9y{MsjrVew`K;5=<~zUQ)(cJB|PN8`R?Ff4$&;en6Io^3PN|g;3TK zP$o-Z`Q5I4gn-Ir{(D@MO^r#UBEip&F35{kpo};;rGfsPr_wCXZRx;cnM9B+2lw3K z|L`DE2O)cjoh*X&X&Nh$I%>y?8;b%wX2hg}092N&poWG=N<_((7#$s*7NMWx4GsS5 z^QEPw9UW@wcLF7SS0(a5j+zF1mXTDp*#tyR!y2*wER90@=q|+-C&3FE8|9gqvnbe9;^@WZCz`_Z19vx; zRwm!ROA|0DHm*$NyP5+PyMl>{i9_S=+(;$g^&I=YT=l8xOlco-$3W@}!3Q#q1CTy> zw|94^?{#)|=6|WM`*@c}H}b@p@87>iemg8Ssfr{!J+-|2waBPqck|~$-(>d#3B@RK zY`&?f>3s>8py{>~ujo?Hi`cTy#U`8Z=}y9nxuv@;F;u-R)RYtyR~mx$gWC#?8-i}Z znj+GbBGnxoI+1@OBp=z7^5x5yz}2Z%#3#55AClRK`$+q%oJU{Tyh|%9D|>e7A%^98 z)lEh%VcYkoB7SUb`OYxR`7I8K{Fv--RIIPB*Csy~lC(eOGoI}}TyBFyG+x@nj}`E1 z?F|hLwY12jelHAOPAA_Q&cE{H_3PIW5fKB$CRV=9*Y9v$t`FMZd8`ob;qknzxF1%JF z&d0VTb^g2px`(7$Fepf;!m{=D{O7_#C5iG!GJav?NfBGxcyOm{yq7F(wuodYK2a=W zvl>+2=w)S>EsB%>_((l>^tcN#$K#cQ{Q$`)rq%9FLRYU|9iWnG36Kpw2%K!j>Oa@B zNM)7_Qu^LP9ab?~7a&n+Cx4!Qf%Uh-LVwDc+o#wS<`T21bJpFa66FrI_BY2#h4At5 zvr)Np=RLmj3pS6AnsDfJK(GNeDz$1Sw@^*p`8qgO zYvea6uX%(`Ef3#{G>bG8H~e$jZ#?a{-j0u(m0yLO`bzJA=0cz^M4J%@0)a3`^62Dt ztWLLM{X?AWA-1RJS@CZ?GP$6ooh=Izf*R%0_a-Zu0r9&G>CDGZqG} z&(qY5vIS)(V5)A8MKCJ(`uY~=I*<@v9_32?n1PzKB8n-htPQMFCnq&E89+PZ< zZ8TI%xs-JwUPDsRmsY3bx@;!i0$IwPI}j@YvmY3oV%ZDHPZz%9y~BHG%RJ@{5k$}dKy2uwCnU)+tQu(L}rPb zUxvE6x`v0VorcR7V;ce$Zx}duH?FR#=ocEa-r%~FiTKsTVN8>w^Na^#uZJu%>Oc#9 z*6suK_(a&oy(k1x&^rnWinYCIrZ5)I7C4CXGNPg>sbzgtuU^s03CK%Eo{UK6U4ODT zSYj6I_((P&Eh(u{he|}qtlnDUp(sUd<#M}H%IZWDzS~7hOG~(E*X#USuY3Re%4l@= zH9iFm4Po)d&v7{^DdQ0pR0O3kM8SniwSK>BlUbEZZ4Vbp8i>eFO)M{exT$5MuM$t+ zy8OzbHQuoEz!r}_g|F;>Io?^L9$5F-3hLgl($hQHAl}SUAk}@AXqsGJb5buF{VH}wXiUn zt4`H~Bqt{y4?dLLB|m3Ixo4oO@GGl>6IaS4lY1z>Cqf=L>!J zyleLC*S{ZEzfC7-NM%8UTXJK2rj=MLCN#sw9e8gXPz@6(@#05c>A(771Z{y4*so_i7HA0 z3vIvvUnb$xG*A%=fT!G};Dvk&C?YJh`Hc1KTg3zlr>GTqlsFTq#%uj5AeBQ?coX^# zsAPS%ey(s7-=zzUzwvT>Km=JaW#dxf-MiHGsT%83t+DG1gC8N>-bS9_j(u=$cRFXX zm?M=l;%F^NoqJpeMX2x{lbZ3-4Xw9n3Jr>l)zs9mNE(#mhlkQ!OYHdmo6EAEb3I-Q z1NwT?Gc$MPf`beWzCUout*iE299sST<5Nl(?jQ(VuZ7YFOKKOnLVMuhUcB$}wKjt- zDw|V<=+9ox2p^I(BTn(^+}mUG+}~LbBP3-NBo)IaCiir6+uqx*$WP}tM^apWVOrhy z`Llli0S&c)@$dcu-IOld?)xWB3CsJ&ENE9c=o<`-FbD4ZRyVeh!tLRG`2I|P*Pr{r(bn-T>%tfw2&2iaGIJrq6@yAobSppF%lAz zhf-emg)PFWs(h@i+3{>(W!NX7xw*NJL+bs0spMVKo*yWV9V;XCR_fm0-Mj)Pv$CW_ zC~ZE9oN;G;&jRR|X&n(~DY1*VIVko!hW+DKl@v zW1!7>e&q?#PQ_cxr3NT%o8N`K9Mw3B6)_3zJCBxXRm+{QCQyNuT}UI>&-2#G@$ z=RxvgsVEv;Cz}!1FF%qwE$z)8cHzFD>1*v=wPe6H7^a53 zHB!sd%{R2Pw7%B*nY_GF=J5GB)DiS=w!QtIbF35W9v;7-qT-jWJjTFtz%_~n)`T&1=j=K$i{mPUQ zu(#!Q*OeQz#K<}rL|^mj-25V$Pa!*O z(YoKTyDUvg8oRRMYN|h}LMsjJ7?;(1$@|cMX=rr8R=O?6(h0SFJ|pXY&i{o`h03|1 z_qc;xSkTc3r;G#AiuHtBjsdpTe;s+nX=8C1VF(B$@L=!!eSdgVLxJX7jVrWz$YRNja4sh7$i}f}E?N9Ev1l(pd-U4RzfxKQa%3HPp z0>&?+{RsJu$_dm-kiHABmYkJu@6rJUP9flEnnz)I4ec_iEq?=!eS9L5zA%DG64{hA z)Hu}1nq6?cPRen9sEkcdugFluF#dC{mlf}Y3rw8(y3fd8xW-U&L_GV33Fe;J{n=ob zYKcX#g`U@rS&(!2D#MN~qP%*NE{i%x{ZGUw^04FI&_^Igt6WrTRrYwz>Sb!YbW5(+ zVIZr}g_e?H0kM!yK3GanQV86PbOXezBwN%@!GP_8=I+u%snphs8|&<=zpU?4EbGtv z@`OOb#Tty%iDv1C%q7I}N-*cB#KH4P0)W?HB>kY(U_j7>F4ShgS%FbRy(Y0wg^ zcKQbdRB%Qgzc@9^U`*4zJVx>jAQc_A_QY_7-Sd8=!iDyoXd2c`(GP^F9fWQPVNSN_<4E-B788B;Hp{A%^877uPemNaY*juU`i= zpfs8`Cuo?>G%y@2VYz}HB{1Ya6kMJ7NsPvqJlgQD+ps}U}U7Y>)4;)bkjN> z+R5hT9Dw=JKKucVQvNd?$@%=cPsyf!LixMGa|I#K8?r9SDr!4-&gR zElqg%@ESClkgD${C53!~np>!`AJ1>fU|Vu??9JrT_YV(a4HKJVsJOIaM2qlyr&u4C zL)xxDW=FL(n{3@S2Q_%+O{H8S!68<#sl8%JQ^Q1UoxbbY#j7go&kv zV1X8-M~~TrnUC+vdJ+;7>FUky()JLgkage8Z(7dSB}SQfX%$Ub;7v|me8Uo0!L=9Y zYEj8_=bBlHlNbwzEf&J1dr4<9}R1qE4CfR@A` zE<)XmN})7t>FrJC$AH%48TSlzJne4JIF9S!W`qjn#sMTBMR%L@lg`8So@d>RJQX_z!6d@#n8B{|y6k zZ$mR4QvG?~6>~$wA*k~}y9ha_5zl_iY6#peUvY=Hh8##$X-EGW?=|^r`sCzf9v&V5 zhauyGPy!$}D=&sa+ZGe>RJt<4<4Z$uFc1#&Ds0KiED#Mzgf#Auht15)e0(+m8A&(| zL7NxGclE_x@08%xp4@!n)gI5Fvk*3$7tCn<@5vi=>CR(+$eR}?RWEYrAv^4C z|EgG%7!PDy?#wcV*nvD~X`?2^&CTsqlRR-Ug{7R#=pvf=Lg32k>W|T?5>x^}mHR*t z^SkK!oRhW02JS9ZJ&!DSd+HCKAjFPAdvnrJSorb$lx$z^UjMGFLE{xo3e~& zKRo2q%THP^>5MAXNk^}gX@67eE@Vy&u?QTFny1us7?C#s1z*xkz%IG))D9qp2 zm!%Z22vO=C(63&@Idb@HTy--(-Q)Xv9<%z|hK67$VgRMvyiMPD@<^Gt_dZc=2tK@? zM;lpPy$zpqxSQtC{PwMtmDQEk?%y9Y}UZw{9e z@>y~(MKK4NzYX|3cLl&FU`$sn>U)@}>1hFee$@DtHpw#*H{T~5d*ij>y*8sxy|FZU zwZ_}oR3eT!))A*G1Y4%YYs{FOWRj7;h{50`#JztzI(p_wb83?fb;45})uH$^5;;de zxxyAm5)vyW5lba^cTwKW#o@CyU3V?sMp{HjiUtWOMv^I9h^nyK#Q(GuGR}AjN!Q-m zng^Aj12KI46y-)U$8(da<;k~E!{#|po&a}J_J_l|iU@iJd7}OFc`2##m!h1UPk}Uo zP0=eTLAQmE3w@>MBVyP9Y?W`;5LB0R_Y_s}uPl~wCLsF;+GDm}&UU31UVI=9y{WA0 zggj6=M(320u=q@Xq$ZmQ38;tgQpay?GUD;&$Q6Y&#)r7??|8NFC=Fe>wUgg}C@Ven z0n}HNH%0MdT0K_!0VuueqX%>mE)1^o{RNU8BbAP%wEVt5`Z)SWM@BFwql*n+So(U+ z_c!H>JCEGuy8H;FX3O{7=I^1a970E1+sIpPI#4gW(}kGH zTggpcn4U)*dkVrx*pfDh8?K+PQBqQ3=@Y@e&yr)FwhM1bTATeS6qixlO_A2<~YD0Y<|q4RItf~wt-)g zQpl{pl|}Q!`eD|6=pqnQfI z4j;G%qxu^2wWkrRR&n4F(SZt|(t^u@| zE%c|uTegfiKHTLYcowrRR@na>wHSty3D|HVn}##`TI0t2a0M6nyGzWH=g&8FMSnkq z4u~Whe@v#1P^Gf6x95?0+D7?k|2k^HP2Y$kMfkf~i2O$;UL4ohUQZoj#+`XQro4`T zxv|SvC=*ZTJ+J=rQjJVKz|MfPV=Bh+q=#wv3|JiX3hpq)5gW0I>WO37CCc^Y%?LQ} zy^dswe&0NVz$S&0c28u2< zmV20?^gzRm${aH0QqkB*L>I!^(8y)@oa<&RI^MB{HLlSgDpQr8f+G-f9W zqXz)NJ^1`ME<%f&n24wxuK~aO4#@b8c3U=0%m)VtDRt(iwPL>`%~b!UKPR{eQa)sy zeYRy?S665B$)#aG65rCV>AC|iL1$ViKUhLML|$Pgjuo*EzdMdk1pLEnQ#di=KE!G8 z>J%X_2w|+;N{Axh-wk)!60DL(D;=*E{k{@Y%MOg3*Vf+lS=xpkQrT!sR z9-f}S;R_n9qEfXJSGqCxl+HlQ;P8@{pox@k4(eyQekm;GF=|p<3*Fn>E2--puAEm- z@|HSGH}aAphbT>ca%yON{0TfhZwq@=Uo5UyxHmNhpDY19dp4J*_G6TS(__F$YOioK zpcUHMc+TkMjVqJ3?-mA2+^%;N{+p5wALr3jT9KxqX8jH5-g)HZ&iX=yMq@B-vmj}J zDM3NYZ23T?z$JT6B1#2TBeF9C0h$8EK4BE{lfl4)WoqFX2U&JsnQ2$ z5&QYpo9Qjc47uP7?xeI&%7|1wRkBqRnY8gp`5-|6WfmRByPodKYfuy&61@gH30?SO zl#*b-xqi@83rXru0u?JyP1cKNn5UN>-mbE;M~1OTmCk;?j|?R#m4TwhIh0X;f%gP4_An(Hq*XpqFaD9gpR^$`6ES>;XDC{q9$_t?$ zPB09d$n#YP0gDs*@f)`?J20*QEm5WX0s_P7SQN#`OZ)H;rpH9tY1lJm7?wofAesdY zKU-SV+kIrxyAZGur_Xu`eU9{J^u*^1yUP(=wS-eZWP1&7hUv`nlE~D} zyRL_@lp>n={@tKH&@WRB7@OdOZM)9wdld*oS@zbTj>h&i@VhY2H3BZ5&94*lF} zcw?xerUq|eYZX_~f!U8*jf#wX-Y>C<+PM;gm2-OOyK0%bqp4wu&F>Gs9`y^W_P)Ej z*J!KxRJj!Y*W#k0%!d!5cY9aA^-dzfHqVxrf!Re5C^LX|dpk&4{%Er(19+=FGKk`} z|016&13WNeZp@gXi!acrun6_?97L6RfPIPcecVUk! zx+uz?8lyH;<-)vsz?Up&{4C9YmvAzE{pB8$#Tqf5_}_V2q3QLJc~oA5S(*GROtVob%*$_IJ`fcgW_f$kWpC zQ6^?F{I7R6BbN!WxzXXp-5Ga-5v zLv{G;kcI^MAXX|IN33xwlt)($ol$Y|k<7(F3w1O>GRe``j624|ULlU#p9_Dk0Unm3 zZZ%}`?Agn#q%0o`T5;^XFkWub`;oX@lwZ)Vln%VVzr^2f&UTtPUwK5jtAtRe7=b}f zTYN3kI8Z(JGyRz}HP9GsI4!U10*U~2^()Yje}yYu{!TyR1c@WCKS-_*RQr+2q! z2^hk{t0m+>2*$-}sjE{k%BwKQ_^v=l(EJXneBkz)a{r5mKo$ckR(JFY|HsGKtA`~U z;P^Sp28ypdQ9z>{m{P0IH&#io;@Lx76HI4mL z<^TZ4Z`}{l_iHGi$9q{;=C`*c(gn>KDBJf$ZIBBa?aaaV9z4)oqb!950IY!TPW}zh zl%cUP&_Wqv&=U%>u&}VRD}6EJL?9K2h+fZx?yZbcb!2!zt53T z*8k<5JD&i3-=^kqhyEoy2y$YF@C&ns1ZzTvPyr?Bed3{W(B;mxU5B*mjg!{NwMhrI zifTbtWETNq35a?PH8uHeXu=-nLn~5UU2WkN4BLlRjC@^F!}hE?_^@7(5eUJvo^#sK zU4J?f(Duv&(5IWPgL3cNjw8K~E2*ji8nN62o+c-Thnadp~t`Ro(c3cJS;6-2r04&PW5dkGjuZFvYFcJ)wFdK}ga1yuy={CuE${jqE?l%tjeB&V8&@l?U;dMbf zKe+7dW@lz*K-obb5A&Lc1W^81@sHqcDfN{iAaC@zoJj5K*OHP2pu-55yrSN?FXJaV zBXOgL#l&P3)E;*IpV^&bW^mRv>l^u9Fb!vS(N$HlOcdKqtEY8nEB(d@FEilj*nO28-L8VF# z57+&WdH&Z-XY5_Kj-+IJWxH)BLQ>kjC5ffO+*5F)MVWD074JG5ir^uDa?N?5w@u5f zJAwYIs4>BV4nNdrX&|~Dj(%i?fpxM4X{jDq2DqwP}Xcq3G$a6R-LZ+`vfmSM_?Bc(YL!gW3 zD*+9@!k;np4mpzyck#uO*QhC}JjOda^VILqE`G~aIZ6eeo|Rd3`(E?T z0ZdL2S8&Ps4a6cyIs0qxgrIO%-`ahZD+ZJpbb%>d5UU`ZSgH&5H*yey(Y?$nDnET5 zWHO(hUzLv=k+arlpWFl&C5;#`%eG?Ng9W;({{fZd@sk+#CV&1E8s_8SAwhLX`oP}yjr^YA27QRJxA&@%-|UCCsJC&aNx|kdx4irr zytgD{124unXK2#}TbmXYqY?&WMj8&pcwD{)Lc6ZG{iWK3`z`Ynd3JV%>&$2sb47a3 z$6CM1cj+bVB1YZS9ugvCYJB`o!(ePJxfT#o#KCI001i6vu(s?#U?Z!q==Cd;(UdVU z3Qs7<8sx|+an}xlYw%-cHR={C+vVH~TeA5SqZwxhu^);kU2cc{pke)J_ehCW{*i91 z5XmLJoYLy*^RY3}iyZ>cva>HgE=bDLOs54M5L)vojZ}Xh>$6k$S5{VZ@-!?yj{}F& z({s3wUkFK8i4$EG_7vT>r2SMY1KwP!WDSrr3={Dv3(rp)_4o z>pS2SSgHYX#MJD5jKL zpe73Y@jF&ORwMz%1sNsDE9m!Jva9X_;8$Qwl#XMRKf+n9*nt!Wj)kw)9#M7uj0qT& zY>BBl>UvwNtSWme0yrt2A2Hv~Tb^Te2lGr4ftvB*!7irEGVNN;2FiixBvYuczz

        M3xq1V4Vy4$1WU97~puw@S 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 S+9gK(_uWc+6jK$<&;K8-=vmtU diff --git a/docs/images/AddParticipantSequenceDiagram.png b/docs/images/AddParticipantSequenceDiagram.png index 83bfee969971c637a9fc56a74ef1ee8610f3615a..c7b8e2017b942acd9969b70aaaa73d73407b756b 100644 GIT binary patch literal 24027 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 I@Z5ahZ)5`Od;kCd literal 25997 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

    WsqHCiJZlJe>Tx6$(Sf=jvo1#XYN9Q}k*mRBu< zPM8@~x_d4Q7Y@4|E$H+K{iy9FIS3D43;mHLm7Z>;2L1zV52)JXx8hJvFZbzBK>Ye# zZgs5=P2WcyxX-&M$Ej6bC8N|+zPSWc5Satx@DdGj6?u$jz7TT+e&MJn{=gAzqRB%F z_{;gjWkhGE1782@t@fTNvKPKxg_o}#vnOY+@7(8Zh%*NW$OnOVeuzM05MG}i6IcpD zWc0i|W_(v6gzLjUzu$hZKI$Jod54la`u}n*#xns!ah7UFZybk@KJjGekZ(SLsQ>|# z*e6Bsb$?Pz``Z|RG)1;JK|5Qe_f9_sT4PZx3zIF;#rOM!oqvhk5&vN5xx?$exh(EY z=5ze8_0ap^&9hS%14f3mVz#eCLf<1sVfs0^}g(prV@XU;jNIX<~xzciPC|-_baB>7ryiH@hvPYMDy94 z4zHXVtMgM;RW(r>J9wz0#72)%Z)a;Q(BJ>u8xHNfcaK(P6BOR+6q+R`C8>x-R5BBEq_{|U|WwV(J+-A!&T~jrS*72)^{X+;y;tw#ip{Kgj)mx(Z$xocf zGOQN%RG!-2Sb_^SGBP@F;DD^Gtd5RO=*DbM=J>cthEAfC|7eZ3ydx6_2R=290^y$+VE|lHv(=yt``aWzX&F zR^4d_4jpaJyWg8t=Dy|BOfQ;WRP^fQOBs22^-NTE2HbAU?51L=E$+$Fr|E+oiPF_B zOMqYMI5;?VcX!oOm6Az#s9jxMe_-(43IAAx2k0p%jiifb7!}@o>}>j;W3#rgNq@Q6 zq}oVpJ5uGoy>3Uc+LfxD`sL$OBCRa#U=8D+!$b!Qa5FN#AbsUzZf?HznX@`b z+imMdDbES}EYr_nZ`iZ~Zhw7mmsnc520Lip5+$kR@ax-0`EU-^r5yco`;0*~O-;@3 z_5O*Xt9V>=y*O{Kez}x8ytKOTy}`=SyE>BB`fHw9OH@bB-p15rW#zWpnVP|IJ?ZM+ zWHBjEZj+Id!_VWMw-i1dC?wRu_}Ma|(29=OpH*7{CtkEE%g9U*SE5{Gb#*V68`%FG z7Fs;yM3m~hFy^_vK$IzaFi8_5qp1BnDJdzpYSZ_$A0=miukV-!tFfh}%igZLrqN7i z^2d)KL#MmbyFNTVq+@pP9v!dS3N=?WyI#pn_s#C%;kRd>sS7<9zbHZcIuGu+z>1RN zPF`N#yWpVr>l+*SIb2*^7I%3(l=@n(8enAZ)6vm2_N29;F!=WBA#eV|mr!EvOD+7{ zpRNC~jdj|979$xAFpb>I9!nc%`>1#_i{Y#E$E*rleJOP4M^<86B@BtLcBU+uy%K8y^t4JCV~%00EF2RYiA$awmT&=Iwwt z)L3yv=$Omf8xFGqbaV;sTdOfJZ;RmgjT#b~56#xNKYn{{#1r}%{h81z`w2NXSxv^P zKSv%|S~lg_+^KL5u1$bbAH&*NYSHmz=*cs$ZJJc<(pcT`TeogGox?*%m^lJYBgLTK*imWsm1Ap^Q#YwiTT3i1DjQFT#2x>jVvyS zsKdmE`$eEhT|y%J9sT$p4D;OYebt@%nuH5sb|{IgqoZS-Ct25`bZcx+6}*TOHaKqBq$?-z1ed{zma&eq!c z>WcWq@gF~0IPjL8vCp0zmTQZ+4m|pUw>1v?=7Hnx_C`?9$;+4Hyu7?XjSQZ(%UFnx zj_$G$==t~>+4@!}+VdbW;hOuIv>c@mZ?wR%a1OaU1pN_4*QZPMu)Q0c{&Nk`WF>F) zYUSUP+>O6HHt{)pW@d)dpyH&4s zLc5R;kmSOA`*6UBm+(~<4cgc%e&$hpHUsqTN%h^%TdOuuT!BcG)Xc`xl_`6s+MzpB}(H8I{V)#FWi5zEiS5Cx~q=*FW3R6w`S~mo;MH9 z{EZa2be`piC!C?8VvDlc$9Ye$tmWBW#T}^ky3^3r)z#B;+gU*R@IHn(c>otoIxYxf zqVux=-M;+lb!5*>PXcbvL69wi5w?yHvV8Dm=ovT&=%Px$T2HyqSz&m0i(5W^cG zv57qIP#?Z3P%l5%ICi#Lk-9_q<|)KD6TH_y8ASkVRfO+}Ty%WWeH325(4qB@*J*MA zHyINkTO-+YK!{(IpCY-Q~#^D!ZJ=P+#owgxSBf_H!>UsN8L15sxdEj1*g+w2Ef|?PYhU%wcbL z>nDs_butDx6l^(b)EPC(i<>KR%CUkBIkb;Sy>9u?QE(b$ttn3d>uB_D6w0C^U`&7B zjf6P-S$5qb=*i~}TMt)kz^5G{sc`jzJqDHckj~NpZ@vNFi9qOZ>xIm zj20J9rdICmY-Vn4+0n7yY`vb0+r~2h{u=7*J+xcd|AJ*DHiOiHXqgzccQ8(2Q2&6V zR_^pe>eYEs0XUPFZ+TR_A9hU(h>b-?k3z+$W375J#udgM{iHoNH&n*WupYup$G~6; zt28z=54A*dnQkpF#|+7H%s!5CBcT)z@XH|Pvt6!1XSSYhP=bWhj(rKYd?o` zR#sHNRIEL6bZojK@%eE|Gs|M^(&~@FzFb2;E*A@7a_XDRt>?ad|4tZTauuo{O~o-* zeK{@FU%q@nJ2-SLR$BvtC8gpU=b3ATnJxE*)p2Q3(N2^Pwmpcvqu^WPLEgD{qCr~~ zjg*IGTcO|RygWDC8t1vI1DEvf-8=ZQk@t2_O?}Z*KvO~;02#=&Me$|=)TpYe0$5AH z2NQS7?2`c}15hL(BO8W-NKuSVNK8x@_g#aLWh^AKMrTzFJ1^)s`^)ug57T3dfg%=` z<7`6in>-sN{Y`*XkCI(FPeGvxO}WmGvQX{yE4bYfi;hntBXRW)Hx^B;4ARvYjvqfR z=yv*eF;={xGk2tXB=$<2MQ4(%hzP=e3Xo|+jIjHrwyv&}ghWzuvXAcdX%TB{>rXW` z04`-+4Y6nzrgmiU)3Y;Vr_P+I;jo436BZVJJKJ^s_3PIK1qCoy#VpOur^t|k*Kj&z z_6$hX{sL3WKsRy?m#=w7d({orU|YDLazAC3#l7TfPNI{`6U-f%vKTO^ez3mj9&&T& z9f~Fn8V(sw_2Q$sRu~|jZf(%cZ+v`yzyK3)`IhY;@K22Z|4f@hjlv&3!!AMTz#Ir z*V%#M`}9NrbxmD0^r{`ES}R@G%+4Jpz1W>^EG-w*74-fNj8(W8dVcx?F>=BHTzYf# z<-G~W9_E0`Bhk7JGxEQT& zBwv*ssq?tA?zocmWDYLqRjDXOL|7Vcgo9DGW*#-}H;ffm<(?H9aa$ryRl=M;b0*~V zYlBMA`CLDTu>*8SGw0;YRZEuZ|N8Yk7R$92|GxFfTr~d!C;X6X5A{uFkufo1)-es` z`Pa1o$9_QP8JC@Z5;RbGOz%`^lkHKoj-k+jf3kV1} zTarEiR8{s4v+mMJ+U821Vfw*y&%M11WwM+&6EvNioVHi!i&t1~UAy)WAlhJw&C<#W z!}0#&`;?LxqvCJh?kX`{0>9Q=KO5%7Gq2A+`1TLL=U|OSXJ!N*EnD!3RXR#{(WJM+ z;l(P~0n7Y3R91tL#HyFt>I)X4Bj9+>M}?)BV^}rPMC2MeBO@a<(12K~c%m&jk*_1N z-M0(XhIdv}I%A)NnRN>0PI`zrzWw5+C7p&^O9?l8GhLog*fwDo?`GN=3-v`D&3`OE zkbUYyrxw#QwVm!&gTbvMzrx*C$w-=Gbn&Is9?`B_>XScMCN!BgJMXr>dV~@38CfMK z+pK!pS5kFgJC>I#W68LgT81p4+1fb)G(4{?P*O+}XO*DT07*7$-3>Rn(Nu`KY3Q+G z3TzgEs($!P1va`ntxz=X@On)hRi1Sj60am;`F|iytP4gQz{X2K6_I6$ISJ1GG z$!+*+wnOhlQ_V&{J%`coE*vO*e;?9G%AmseW4PHFMQow#T^dJcdx;B5h4{3}$Q6uz zkg?I{iwB(8+0L?=-Oo?z+Pfr^feQAJ6x6g!sQpA{;KWD4F3du)mVSjnP_pWC5_{e= z#ZbdjM0&>!r=B!a5vL4Cg<>q0(v3%-Ool|c<_RvmiS-@SDe-@JVu@L!zw{cZ4_8Qn ze#SZlhl#0@;_lAsA^v*=vsvd5^hl|mSU|JoSgb+iqc`e8f!3y`b@svNf1x?7TN0|+swYawm5;D+g7kY2?d|21m8UeU&YeA5 zOWn#KN-IlO^NnYk%#vuOhPsLt7k{Yfq=@eawD;y!gNpSi-upLtO20OTb1H9yrtH`b zS45s}i@TNTW6D7%5rVh4n8b+dulBq(bE=#ePO0R;gEc&kMKR>expR_279FtwbuJz? z40Y$3X)V+lostT7zrKZAIo*kLC_GsFbbj5&i4Ag5Ca}_qta4hHl-`1?-Cv=>ka#Q{1`PivaQeQ3c?3{%p;1~>SOQ7xOZK1 zYRc9FmszfI&jxc#E%Q~=&rMIEwUABP)t%YUZyH$jqM*8BAEWIR>JIQwM0x?OzEE|X zg0AwEh}`Mn!(*hR4E_-)3`b_VECw)*R1b4)7>hcifI#GGm2m@E@cUPn1YQf$tG-ha za+=pxsxgqrPEm+FO-b3%X*I_!ytnNT&j99j%&apADbCIs*}8AsN%gYvH(gg>;qIXx zEi=z3Jtn7BAI-(LR|GGFvg`G>wD@;F6Osb+QKZN0ON6Mc1o6xpYDH{~<#||G+IY*} ztP7;?Ui*S{R-oF!QdnA=DgZuUHnp|g!XH}5XH8xj)sGmVth_p>`BHsGDVqj0O8b%^C>PZKIZ-?yg<(+T z7Www=+m>h=4S&}Ap46+rWhprg+!n`uuBmSs*y6B~*A3QDt^;$&n*eaN9%3^&z4mj2 zaw_9#K!B6`8eZRsvDmb2;l!mIzdk)b{wZNTs6~`3E#;Rb^--Vjl-w8Bw|90ne$Jj5 zzYSQgt(DeX9aG@KJ@>2qZnNciU7nJdL)F*$Uk`s7EA6+D3qI#UQ5ZnXHc(iP!ntf4 zU?^%`7kUUKRN3FJt*sYD`e0m6KqGFIZAfeIn6y$d>IZA3yv4xZBVeDU$a72w_yono zfF^^s%kdFqT!X&u=b-2X*bf-ISZEn^765(`5fM;7e!kDnYht)k!(1^3tYxklns;gK zhBjID#%7)oOK*zG*(>i1>E##6#$Te+oSdI72z3^i3VDvKNNe4=ZrbE8lf9mk_G$N{ z=p{Jt`heQSF`-hs9kEkwahSPY|GgZF##1n1w6;Q;O>Pbk59j3Mfc{wXf>hl#UpfSD zqCj>9RhEji33bPfYK)X-AWhb$%Q2*~nps!Ba0IxgvP6NBSxVd8^fvbpi(+;fdu0Xp zk62n_$5d(3@Qh@?yy!br)r+aNO$n={Bn8*_^>VR~&=}paYk^|1i7^7OLn|o*bX12bo!MLo+FuUo!w&m z$(O6;2_Eqd34C>*e0c?WUr+{tMn2=D{yco@<+5O>I~OT4X8cq;e+(}#&U_bl+-Bx`Q-AUxg%G!nbQEIxad|mvNB&?DkmxHj0X`4fkwI<2 zuG;)zc(00tBo5pueuT&;AaB3}>Li%J`{dy%0>-j5)y6;DgFG_=6u9x?AJ_G)EWq1a zT0-JkT$~|@T;!K-&}1S0W{qBfkN5d>ON-(ke3}LYnm#bsWi!x8fu;Y+sr!L42XApJ zE*^o`YVxWxvMOL~E(+L_&w-Or=4q_BPglV_2qK4zh20>XCcDP>orpo!Mr2_yv_rh^ zKbUWpLD{{XpeQw3m0u+u8ePTrJx?hgMr;uOwWxRQt_2jy9zrS3^fB_64zp*NK0 z?Zab0;fINce&Wit?i>}NCg>UG55pEWrsIdIJ@?9gRvjlLb#!!GSzUcGhX{e|0h0$V zF4!F>@bH_+ojWn9si`1Z<>o$6Q8{^sDB>a*x?ZB!!tjkdk&GJ&>X`M<0>Ii>)9Gkv z5IKhw&ivioSdBE8nZuBC^$Qc&CTuZ%?~CYGY*PS)2;1!L8-ZseP*-IK-~oHbbqjfJ!b(CB8ksr zM-)i?v6v*4j^2+AZy#lZ-6O>EkjV?dus=-)VbLH{w=dtQ1#cCj5hBzF0lnVRLebisAAS@-~!?)jE?{}Q<<6rfy!fIa~M&_0Ej~{5?Ml_0#?_O@# z#y)K`aybGObgnG71Wx3iRrwAjl1`{Ui2f12{GA3tvH~BInY61r77lUlP7t7y=3D6L zb{JJG3&6MlJ8BNii}TqIIfI66morMxV|H8tt^?lJ*9Zj_$C$#D#K?ws0VD24)Z)1j#(TmzR!QJ_LyAzXHd`mbctzIU;6rXURYU4u^B8GHwe|P_Hge= zkd#cGYK>)65&7;J_S*}4>2QS5njnu;`DjHq@2=>|Y>$9`Lpi{e0c3QVvhYT2Pft%* z*AlpGptqDc&S?T1)E>a$Vxv4&zSx2802)!*%?$n6-g5M&l^b~&*WRKJ4l}vnmPK)DBV|Na~K%nBY{-)7)*Pz;? zWk%3o@f@fSy9~S=^M!2}d9CQv77s`VQnTNAe@#BK2blmGarN$I<_$^&qQHCq>=R-7 zmq>)rQ@|?i?CiMBz8oVV$+%Ot2&7wk7gqfH_wO~IJ{>%G@V5xT?C>SxIEPO#+UjPiiNUr0o`o^ZGB^RJ>W(z$87%*@1ow%WFVzi!cK}OGiB9 zpSnT$6_|bo%GJOMzH!Ik;1CR0m7p$%j#2sX$JXhJ*|?OvM| z_7fx*m|D)6zK$Ol80e&tU9m8XkB=uJyL1CRebPTDCBSj<+s8wKpS#bEupbfuD~cE%D!im0>Suh7vs{Tx>OBx)DB zTj{YQ=qR~YrIruQa$}D}uABTMAq!hApXX)^GFdT&cf9sL2aLYE^q}!GanC zZQ-7!X6@UP;Vl1Zr90?`rY0Xx0U#Y9QmQ@?Gsa;Z(|y1{2nJPmF7_LM{EpX&sKa`M`F3f=$rmXp~sv%Sn7fj8yb_$zl88koJDtyj! zZwK?}k>E%VocX~bOYzrQ2@=HiNGC=4u0j-`U?yI-k9=zo# zVmw18>^*UAb0*-;n{(wVqHa*wa7*A7N=+mS5U&7e+02?fO{0IR<6M~$JxB6PoBIWrK(S_a+I|CRQ2$!BCey`tvgLM)J!pq(-1#9EB8HV z8I&T~Zl#zTAAP~~hik61?&n%9fd6ou>or{ref?T2TjmwCM&vgbQn2G+2M5iMId88+ zVy;tsQsd~pX(-DJ75bs`rY>6g2MzBGStP{6o_{SIhYsr#5MZWNEpx__+9D>#4Ck`B z%+h1DcG8sOPhb#Vis!K%x^eAVdq;;IH0+pWKIoX570wHCtjzU=H`w+9=> z4<8N%hyQse)Q$Ix7mxnp&_Z^v6>+0HJTS0Nx*)a~gf=nI6v)WPG+LUPEb&8SZVy5j z6$=UruaMv6gwh3jTAo^5Nd#FC$QXrYqNRN-aG5~7F9@QUb5U001ZN4x}!E8?5R4dW-Hs?tM|NiC2^Y^>sGbq00*(W6b+ z(Zjd9L*Be`gjPAfElevpGOzKy8_Cr|MfC-Cl!D_9^VMdu{>${K1L5dT>Df-M(_oR5 zdzsVCrHTEm zusbV9qxy8rBWLILWo2N`*nrzQ;0Vui2p=^*B0#`;%k8mWz9{UvoK-iQZjb-;llk#{ zAv83=9X<|<2(z1DV1N+}v$M6Mjv66i3*!cGHUYYck%Lu3Zd9+XCTU_~;_Q5bV-<1t z$!{e0LJ4=^L+!%KO0wt9&JK(o4vr9-U2@1qk^P3Cs%qi*msE(LRJbjE8k!GXT_H1m z(b0M;D(#KISNeNmF+aa{lSJ_Wt!U)^%kMKe?0|IQ{*1%zfLAtBd_O$z;NLiZU*!f+ z+IYks$;rv7rKL4Gap@GmPldz(z=jk-bBB)}t*@T{;fB)qPfuywYG*M2Ishs}%lLLmT^BD~RcoK-uwNrmx?q4kAw;TC?efdv`{y+E- z(fB#QuOVRlFNYGtobA$cu^33x7!s+2;hAy>u_&aKb7!eMvns%Wd50n)!X83@LVJ&Ydpo9GYKue;1Rznh z4JQzd$_jD9Lg9biYCAD3GDNJ-^*Sj3_7ef?3lffiy>G=QaBMfgNmT-v4PYdf07iu2 zvd;*iVg3k#-dpaxknsLPEv)8UdiacZR5Rg=6TIYE0zaBL1NEI zLbXe*`+<7Z*7egwlO`r6ii?Rs>zAkjJAaxmmH_)+`~~>5?zR9PctNtD#-o`|2D=N0 zN3^+lZ(V_{1G{N&lAeWF0;WCyNkvUfeg6D;N=nS)xU8nM&2A*Od4^W5uw`cwn7dmW z8}7RsQ_=yKPNA*uE_Wd}*TDZdb?Q_oWQGzZA&oIVP&@~c{{Y-ET(wFIm;@pH5YR1# zlmMWbZ?4}Q&Bq&q!32q~1=~?NLY!MAPF}9KDkPdMPWZ z1G#`ymip5nc> zfrIWBq_7kQM%P_aQ%TiZ+}t6HESqW`K#X}OxN-5@keE^-1W0ElV0k5Ws17^bnU|C0 z8+G*VRIp%fnK!EQJs0XS*UK&!@-D9v#)9u7l}r>NyhVV(ycbYT^SRZ#az3hwQaj*i z0ct)@POdfhv?xAL7Z7~fL53u(xVJ*c-cu4LCZ;GSGAIw=$`cSN5ZpMA>o2jPVt^<} z&7w|ivR5`s+>8=<+BzO`awL^t%5%9|iYz}w0@Wg9WKI+8V^d+z-JvgEpjM5tG#*7O zWaERPRK`H$?=}JB9FCcBNSAsY|A<>+36Z6^5idKotIWY1hGDP3M~>s*1$r>9p`{Jl zcvwJjX>V$nZUu*t`4sqai-7#iA4Nt)q!BJ-V{t;q!`|NhK#$GE)lQY^DZ!YdI2Wk> zU^>a!?sSLAFOjt3FM{yxPwM4B1ZAJ4MPbEvRG6+v2UIvrDFN7*7D|dk0)S}jpEjtlbMdcC5pAd6d?rd$fg*tFc_rQwJ!1;pt8DS8{ zdV97#Ufjx6WiSXH;)BrRAX4N8#4yXVU*IgOmddK(Vj?%S262J?Q-Sa)Z{2U7$HS7TD>;mv9 zD63zb@u&}Zjcf!NmvDw8$Z^5;u&U5Pv|`wr%(1`-9F!--=S9uLRUwfXXotjC;-S53>_p#yQom2?xjTs*T5%2dl1ZfePV+5X_kufKP zNj7_~vOGt<{Kjw_0#W=&4|p~ckVV@!s>b$h=LACK_#cO>-k(bPxG3lVP7ybOuAnxF zUY3Z9KWTC#s4a?ryj22wGUDpb;e6IY)$&ooyZz8_xIq(}i)3T~jZH9^<1nM&RrD07 z>i7F{+<$$0%97r1=NLZ(Xg~zW*D~+JJN=vhHxV8c7fQHG` zI`O`!s0jAM*P&QUza{P#pG$B!S+_2p7dStb9Ke+hs8;UPSH$;QC&Tz%)6m1rat*6ncTEpb`!3(wT~EBx_YiVB%MeN! zyOT{%PY)(ZP%_Yj6{FF;1}`j#B7{tfU5==azke*W4TkC3iD^nwnB$sNZZ3AV!XgGn z`q*aC{b1Jg{&pPgh=uBDi{wrPegmN{eJt7qI@;&dwl#<#F0ZWk`}*GV+}j2c4`-H& z*Gl8z!(Xt_{5At;kw_#2lPg>tNbIwEe#c*gnyp8wgtqL&6tQP0DW$U^RjK3y-TL|S z=eN^TjG$X&Ekkl;{A8%kAE}iu`(bBq00;Tuo$jQUh28e^&FGB3^UbU);+3QqxSs74 z(I8JD8@&!30^w)+8o)@UNEmm2Wt$;+ZV4x7S|)uIKsv9!auko{>&(o|(o%j!BvKx( zU#ALfEk@925j{!7sc$V23YhNJ)U$#|Ageh#I?AJkeg&-|TRZ83*J zLO)F>Q$+PZ9L7>c=9uD7z!~5nZ-Kg@nW5pccgP&g3Tq=#^G+#Zto>Q}`}gg?m^D-t zLG`-GUcST}D?5sZP|}SzA36fo4@{i_+>@Mn=?_dssJwe8aq$nelVnc$76Tly%z2_N z^lEHoMpkqUpowuqfTO*ALgOR2KQ=Zt`(tXpK%Ldt3J&`|fyS3eqnQ17N=C(NZ*}m& z=TMfV*&a5q4sFcwzNi~v=?Mx`-FKX-S4SuIv&SC&GHl^>rwop(waX-fi zo(N`7jA$X~HNjWMfy0d3oc)}BdDcG)^1N^4D6eXZG;jfl8_)-CWqD0w3D|x26#Sp% z7qm)C6mMcHAxjDm$gl4i6EebadWPZGi;+VgyW(m|LFk*qb0oc_}22&?zn{f!xV8crbGU!Ia^9laGtZ)vBfsBHX$QJ7!b=^wFd={WYH`R)WxhGJ6P*=NSh7nfgYVT2e zVuER$)!S;<#@!xQe8T>ZE)>&#pWvLV3ORJ;ny5&f_W=g-T8iMXpV?tI?VDY8&C zF`<9sG~4Y{ZIk3=s2nHE5JDq5s-Zj@WToq+OZ9>Gs|U6)5o0&xUkD0dpod-DTbZ_!^w3G6p)sb|RmNH2~El z;g}cEI{S-tw8aMC%yWSaNW(bJu$mKMF`%>mZXYi?k-HS9jVvu?6PCuCLg1NzH!SKe z4zi{nRXkQF3BJCA!)^&#on(fHB%H5XJIiM#x-)M3i6w@3ff8#jjam10hSstMDykZS zkDL3<>X}QI6q5f?k$8LXev2^vqhewdQ0!_+jlet8%mwNGRFBkT;NHyiJK{Uee{H#F zfcaaXYNl=J9J{OrRGtrF?qA2o#?~hxS8|WPFli~BI0c0cNaOku+Ljs%%2V7nM7l0s zmA+BA{YyK_k^Fb_e9;*jd_}ro8CQ;( z`O3}3RkgkNne}$YHehLb{$+u;eMn)cDvzBgeeU-l#6fzcQHl8p(2CbbJdT#D1S4^y z+>!VgK}TOYw!K%aFu`C}iTi;1LC~5MinqozJnL|OgwZb%!syTSkB@59R5|^)C~4an z3#wkB0_6H4i$(}AU$5XXG>gJ!wIpn!lQo3oV{YWb>2YImb&~$!w&*DFOAB)9+mc84 z+V*zVE^iR+9SfGROTsPzc}Ag7kRl2ZdI_==s}iSN>BD+7$~iU9Ub;kx z;X#ZvKO9C=x?U+qNNQ;4Su4rKcv%c{!UIAArKo`rh#-MEn4ptz_{SLJZOtNY{<--w z5NG__hvT;$(iT~n4;a{>KN3$jqfD`Y72oYEvQ(dRLE{e|Iwa6j!vp`g0YvyT(o`Pn z@4~Y*&mp<$z-lb7q?B?voyk8=i7wTMF&PWbQ;f979CPqWr`4bMZQr8l^p7b}h|iE6 z*#!q8csa-hTGv~yQk%ia@o|aAc?ywSXIInM)Xv1?PeNZqKYYk+Sap--6UgxbJv(G1 z*w70XFUqyBoV5R$D|pNYo)RgVB};uY5H7d?z4F(uG~Hs>Em~o{A68c80@{I$?N@fb)nkQdSRC;)pJRw4u6EvT1yeWIJc^)s z{M9OaA1+^y^)!e8$;}VOK6~KwX+i@e|5o=zR9{uxisMT+x!TE93wC9I+Wq167y3uE zG&L!Z?^1q-9H-qH%?y5c%=2SpH#=l}iUR#p0^CLQLs_EQ9v>nyc>hpTMUoVrr`nE) zi)0i?j64-9q2!on{fmc+hsmvKH8M$@F?iyE#N_4u;Tr?ejlqbvI>X=v#zYH4&WJNTj^SPFPhwf5mS7luV`kZdM`_-u(oUivEK`cep`ya-!FlI ze>TNxK5m-#Dm*HusH{vmb?^)gJgcEsY8%C|%}n*b-hx0}4&0wWPxl@C-?(qz?%v0Q z|FwwV3n!fnq(&S8je$dd0v@iT$z>+S9l!S{`0c;tx=kP*D;u~BIHS#`%Cl(LEOiq|8ZRpvi7;-f4oHY+vaEL zeEz`%G@-k6Kz-!@bs2SeSO~B0K!&ZbTFCaHz2JGo`1Ai-gcHdqP&F(dAPKDjo-M31 zJxaIr^nggf@6UsHeZ^Z#wZFE{Es0>w-(p~3xO(*qn4F(Ke|FBP5yg0Q{sr}alN$os zf(-d3umd?bTH)aa91hpg(lRnKl1BJ_#5IP0ce~f>xKYk2n5AztM6n^q|L5<}bt28K zG5R?#BfM^k?T-j4Spf0R2_SyB(pWOwfxgfASu#i&z(;mL#JPC#S#S{<&AzL-E&MZDuwj{#T)D5)AY! zf0o=|DjH!eLHqk45%edW`g@J{{r|`4H~&%C2%(@H``E+!YXyc~CANZ3WfD*E&O$*{!;jGQHfqPIBLxKr)#?m$b3sGLRYI0J1rWJh3aCSW>P<@2q-$YPXv6X=jIZyRJf0?X|Y=zrx{h?f(pkoF+69jT0 zr54x8N7Jn!rdDXc`i%K;R^7FH3;N~O`Z|Ha=7Qfk2j(R;%1J?^5GH~~R78X}jD3*& z@|!grK-DZd;mfMd1h6m^k`QCAM@1+ibhZ1c0%Yak>7A5S1@&Ecu9|Rao}CxRfHyB@ z*?j8vw?fn*J1YyK`>xP)2$l-FF1i5GoTXa~O41U<9n$R0%u80XPvbKDfVSN&J_e~jd;(!T@8s6=^0=+KZYy8QLHz)`6M4fb4Y%L(_QZlFte;tF9kYNCP8!PBYa^eKA>1=q)5VGTVVzfCVL?9;-N(TR|f~@Q*e!jz- zGfLo1>O`R%z|g3%2SLfDdkTaV7H}rr$=+E2IuXsr+&4BZ_M zQD&a?qoO*vS`Pm-hSJ#6j#n}mczA-fA{F*8)CDq`0OACh<@z$U+S=LzPb*+#G}oI! zW0};zo}s2z;uI1RDl912uZjQuZim%*o&Q7Lmxoi`w(V+EDosk1DHSRzG_VpOLz#*w zNl$~&Kv*nOR1yuQR3ghfW~ykgOr#Lgp1wX7>4`GCtq?eS06rKK60!{&pHLVJTG%UU^bEA;iyegl9TDLU*6e|oH;Vju58^+2zZq!O-)VH(+mM9 zt_@rffqoORwR=fPVN>t{^9%#eX6X=Ig&5^{xp4IArc9qrbPrA?joHE2V^~|DD+Wi8 zYR2x{U_OK8SBLp7igj6Tec+4|hzSVH$nx_Ov!mTUH{9*e{xd!9#n1>Lx~K}pVrXlG zhWtJ2nbP0erd|rTvn_3|r6Ew=8;tk&tFVP%H2>UDEy)v2nzrp2SR=85Xlm+5goWMn zQK4L1{~Dn6K0y7G(3Dy>!8w;G;X2av{yy-}Xj~-Yl3INmX8n4wFJQoZHbD=+Be``|&Mep0UpX9yxCu3#Q zAP!l*X6%Mhp{OiG7bCg`fjq~>h&a3>J|Tf=hNGw`KRkJhq$Hz`=P3bcR-~O@c?+;T zFVEmsk^PIM%_z|Kd+pjg9ZA+dMu(yYW~BM;^ocuuRuuF-gg{uC=daP_g6nS->uT=7S97< zA|Rh#6$Kb~!`D~n)f-kYi^`$<1W?$bNIfgKsfg5tJz74u!9%+L3FUi$p!e|~KemUMTOa#Neya8g)GkJsc6CfWEDsQCI#j=E)w= zuN%;h-USWdEy3NgPp%>w5^z%d$)ltD;D;C{6GAUKP)DE<`julwzf- z_YW_aCNBr(dz>EH8zMoubID@rOH7~CHw(R$sj=Z>nD#(YN|x_<40CJt>o~t zVNqlPBNdFDp0e52f`uJTA2j_>ZmClOJiIoq+v>Uqiy9uU0q5!;7&-C6krx~h56BtPhUMuzm+WsZZ` zs`|UX*lIVB4?*IJ_=~QtuYWzH1O%zWZ?maG)B6pj4ez7}Vs#R@4IY_R^kZMH)r@1H z!t76cw=MMjbNzVqF$gF~NnPEvC}Pe}jSPoAkYf@HpFDXI=+GUFe}-%h?b9-B7msBU z3y^*`HGKk?2h9_`42Lw>1blL#g+6iwnm{thUP&j#c>4Jfohz6Ppuf}NEAD3ZtLdl!&qq_AHl>u)!Ykr`d!)D{^2L)|KxoYB>%czi5*e_`Ufe5o%Ph8jH|NEJzO8 z0DpjPun_DY%Wg9Ltnz#nUr=sYBzZ~U9cg+IDlZaPq7CsE_K4}3l_+l z?keR=+xxYu3UrjRYJD`3Gi~aMB0X@^gX06shDb)3Mr~387(JIp!M)}@0q*I>$XZs35k48KWm4u$~Fy3Fo4nk zYGd%C*6n{#-Si=`_yoGm=wq-+2;MfkduJ7D_l({jv!*qf!tyX=ZORkbyBn-qz8Da` z37X;t?@H$ZtO{A8z~{fs2Jh>-ZO}R0*nRg=$D7~n*@?<2GKvt>ONy`(1i<&Q)mxKy1@1~~-`6aB*b`Eqi!M{_ z9%uNVu&vf|6)nkIIwv4x%QR!ZUqEkk_w7T*_6>0;j8ojVc#5hWnt4&V=nKmUT(#f5 z#X10_DOLY1UaX#yD^?z14!0uSMhyjqG{&EneE&7;2oMze$GJe zK>Qv^dY+~EJ+DyJfGNmt*VEmYaMm8amzkRvSjx&RPnNK4uR}xigoz30n3lFx1td?_ zzz;K3XC%+!5>;grVxd~V#i-uw$$z_r+V`nOMHFMzk!}k`L1uvjEwkxqj>wK&}TTpE=6Ym-77;4CS_D>Y=na)$Mh8Bad64+75 z>B%fxENP+jVV;cjan(>cg(Vx5y=Qa!b#tdK%U{HZSKiK8^`> zi<1)2XIQjG`xFSmz!}#nHm9~a87f)2&sqkrCpN#&FECm-p$`x%=u3s!8kprMFQ`2S~Q2X|dfIYw2f|v8_^WY$3 zv|jvv*vlInJUj^m#4O-UcA;oYx7*eB&P`}a^O~EZik4r6dRa=es@ht`kmu1153Lw& zw*_-J#p}uvcw*LrZS8j+xZ2E6wwdxksn;E($s4mMm6n#aZ?Hvk9h#`7{?{NpqV#*u zwSh$k3h~@|PaW4C2a^b~En?C=A2t`3MXO(!oZr1K+}^52IquB8+iyh{9MhzT|5QJ0 z4f15>d~+H(a)=+fk^(K&>4+%;id~LP)S0QOHT?tpH~2Uf7@E63H=8b|BO12-vWY>u zPvA}tQE~cp4dXqWdL1P(3+k6!-n}#Z;GWf5=4OJ|*X)U4VK!T#8PPXT{;q=N@sr-u z<8QI=-G0O7cRir>{%YHA*Zi>T!?t%lv1z{)3au)g+3#))m0FD3;UC-5yvRC!?#D(j ze-$^cR?@92jl0t}|K3N_461{Bk_-h%d9=m4X=PNSo(QswJm1QdJJP=8E-~_S7oH>e zU7Sn8oG^`QNOCLpYum@7NKw+vF{pnj_nPNy`}{t(x{aE=^!*QxDM#-KFHVku0fJ|K ze!(o`Y(BO}{zxCUu+_L^S{kB7k(-;_t;FPc=Srl0y?aHx@f9vuYs^?TnM>l~HAR|5 zeYj6)?0)ZWTm3Xk9yjC8_gE!y{akG9T0bo#P4St@$DSrMju z+vpy89%PE&@nS#mT&m^jyxK6Zt+a4}`|LE7&VeWu|5642V8C*I2>F(q*a__l*EM2rzQbuePD-pwPuGU9)xZb_LnFmG)&vUQ{hs zrQ{skd28(luwlBD0q`flnF|SbxYogwTcO>lz2-BejH+?ttR_uv7J8xld`PMybzVL! z(~og)2Kbv}-GD6!qoD`k@sYunoy=8SbUu!irV&SF6)#uIrPc4}r3VX>(JbYDykm)E zXS?|vVhQ^{k+@<|$!_{O*SRt8`CRE(|9W!E$0U)>i`3H!xiZck5w=1dz@IvUTwN^6 zUC;VZx^F>~-l7<2Eu@h#tv!@y13wx+1AvGLa| zy=uoE1%UU8cM21Z@QGR11-tm)>2i$i<=I^BmspObb-TLKZuz^FpKf?{xJ|7C5@~)g zNG^f7T-j1YV*~CV^yW{-$n#1ktn>w1(2Hw1etX}R>Y5sflvj>|B4EO6$L_1-7Up%h zQ(6=8RfsHL1jfjG{i%}XCpf;7v!z&AcA1!%08!aBDQ*LjPUI>nifPAioEq->ea*xI z7S~QvUznlVXs+4HMq5a@vi#mU?1P$y?rC%>7Bwe8PBH4`Q+Pz7%PAVzS>rhnVVN9l z%|f3E5zjvt+0VQC>t+!i;cSzKepc}sdh5rHs`pW|FR9!S#2& z;~Qlu7obJ@{bLDqa`|$+wqVkB!gHo&dA^tCYXS%EQJBnjT_=f zsya9gS*!AxG*X8*tA^I!ckU||PHG^l>FVkt!3Cex=l1O_Ajfp;;jl}m)XlQ@=}JGGzZgDU%8=wQy|{Vv%xoG@paLf z26u;|pDu+&eFI3YAtGQZ>F?umd@#L6t2$MS(|ocZ z#91@|hJ4SgnFIxgwsW)&t?IFQ?1)8C_;shZ(LGb*1K2D&G1|gQ<}!6Qe_4sEiQ}u+qylJy@DVK9(#ogI5Pk%4zsEw54fF+v3lp{Ujkxu#@ zVg9=-`FrMIN1g0Et?M(m-B<-z51*kXkP4ZOEFODO6n-rQ6u#l=_{YZ2I(K`=xW(@S zj3M)e*yTiU8oP$rwELb9t-{Zpl-^&LAHE0t`uim0IN;no<(w!$e1PNr-|rlC)JA`( zd}F*PAEQ4qx&H1-e?nON6xs88!H8UGn(!T@5|G~!|^G*oB=lF!j`&!dx?)to7 zITvVW%-ZXAmvy54!5?FS>?EdEgN%+Gr?&+Jo%jlWQG-|Twr}@xweM{uD7oeylg}u$ z{@X3^pu#$g1mG}~zXgnflq@u>2%E!Mwf+`Fx_QU=lWk*M{LNX<5c1b0S1+jjcEB{v zvX)9YVWXAa_3aM+Iz@5PmeAi@Wz4Dy$m-@Tcw6 zlB6(t;V?z~0E>V50sah_<(UF_K3s&7D}38_DJ8dfQMwr^AIdoz#8aKccCBUeNPih---{Ol@R zdds)-2?akxajO-*#{dj-g2B`D;Pnj#$ZKg>46uEAYkUr2P>cyDnQZvNb$)`epds%4 zih~q-IJZG(OC?JD;A!TZwywx)MGic=R{hOw^XH&vXjJOl)iTby#sSyb5EsI-Ptaaj z18g#f&PwL%E6jtCf%OeY9c$wk1g zbr}Vr*=IZGk=o#@ITsQr(;;%fjuS25SFr1yIUh;_gkl^SoQ1-2A1dhUH<6OBT(yco zZ(w;CtXfc^mP6 zd+G&;@~fLf;lR)#$TVq!h!t^$Rur_|329{X!mXfVYSW5v*0OmV_2TY9E*DOM2W*nV zBscqJ_piAEfvNborpYz8vbpW9nZ)a-(Xbb))mNh}kzku~nOqB>T5YHKmI6XT^`Rcy z_Pp-8$oPS8d!jgLhTyo=1urR|3Z)X!CBv~#O2v(YZ0l~3aJ7_WLowWaunj)A6;k1< z8(_ys#tB(8=eoT=48X*&lTLFs^jOOt-b=W|f@=k`zshF9AJxl?uyWPt)cpp)1o8-B zwjGolx1ByBaUx#nU$3mm^599(-eO)oLy7^IrbKert+l(WW-VUZiH9%#fl93|9gvpB z=1DWQPWZ@!jR4etsZdlXiz;|2i);lzrJzq}l6z5f1=4AS>d z$QBENY)u>EQyAu(K1c25FL!*{`@t|!$aD&?!oLf)w6DefI#-kmj(s~Zd{~N>j(dmHr%shW=i0z z0<+0PR(5jVQ7mFpVffWE|MK<3eO)BaF*jMwZGFzj){xL)vfxdC|5?x_0Bn zpN~G8yw1%n(7_iCfDbV8Lf0_Lv4rOsD9b;KBt($FWQq7 zSUxobyoUAb~v{FHM@?K`0u`(0!pbL_V?1cm|U(5VHA4^+tU2~Z9QHn97jP5m|cmuG)K^El6wPYw-OLeBl<$rfbG(_T)TE%#e0R{A$#bE@y$d7+ib z^Unbtv!&RyD9eg-x$VER{%hVHY^iwObnkTDf&bzPjfBz5x!#dw;Fx{uy1#mCH9NS? zUaXxUaQ>$ho5+c+R5eFbdE;|ffzp3X>Br=0BeLJo_3~h@AN%`O9ut;E=fqHWL+_;zSkOQo5;H-8EM`i^W3aip;z%IU}mj zjfenK2N9$1KVcC9e-q>nHK9|NB~5`=i;1bNh%+e(t$*6K6q&8o#S@ zWd8K?n>(9z4l_-@G`8HbP#_a09hq-#PR_n0BQH|hH6zj#rY-!$T8!HIk)b5`pdZb; z2K@Ni)vLRdmG9R}^7*5(Iy!cz`exSW!72-xWH%slPUW3DVd?g`Ns@^vVZw?{tVx6(%Z?Wm**sufa?%!BPZU*BGkMAULzBB1AZ^XARH&|`2OzCIK|K8r8~otvnZV7W_b(3g;qfQNQ8 z5>iOts=j_j1?|6Wf+`Xp*M0fAb?VgN=y68!?3|``UD*{A=peUYtcUC=Wf!lDE=*_39qmx{Y3( zwf=fppg0rV<)%+uOkd=dZ@M{!sQ5=*xbuskzNFzwK=&`C24y112JOCv0m(g#6yT$~ z3PVc?&m**o>(bEANXj>Mmo36E|Ml@R>U`xuv(>y2#3uE_-m6yP|6f{@CsW@8v#OoeLIxgR)k!xeu zuiSYf3N*FrD|Z>SU|2`coeq2wY!UmCy*gfB34uPFwwpzsMD35)>moDI?d&X2CCx)nqc=%|eCZZ+_^w#AGQiBM4R>%5*Je1TW)x)sI-Xo>I7YZ|i>pxZzu zoR7lIe-Rv`gL|JJ{`%rFU-R48ciVcJ;2vaxlEWdvl?DM6w=VuCAlTdV_(AQCR0&E% zGN!S$t#--UEVZfCQMB56Nd>c|(7Wcx75aCzgchs=0!Cybwl5;gzl@3Q0!KKT%eh`c z%mJkcI=+dWD_{c(2xAV_wmA>Af${64v$gK?EnOCO|7zZq)%IecI_kynv)V5gtjyE3 zK1AC^@jpo^4&-0xhY<>*<=Zey6~EX>+L#~N0?U<(h@Y;iHBW)M{>7)%UTBq4i3E-8 zqoZ&0k|P;%9OGkHBN_wMG!G7cWD4XB``zS=s8g6(JzHALj9&d!n!L&;TT&^Oy$D@5mS0Ks)M&7mlE+>X`D%Qplt69fysL9Nzz8`BSTz zM@lJAaM-!=g;l4p7ds&q;qUIB9GQ-Fd*u{!KWX-p_WIWqqZMXT2N*1<@-vh z=<~!hI-qA$oyWxFu>6RoM9X+c{(dZCrO}9BJvw>E8`}14f_#wx6a^-_IFRd4h@Pu# zD4}u)*q|qg&SnbeL>-(3pb_N(G@^$dPVa7r0RiWU;;gIPfqBpiS2e{w$Jv6db30(4 zLKf`fgO5$9J$VATZ{PNPahj{=)NXIgAOFlA^&MNE-Q#y_8-&|29OcXh){v$rv|7 zJUu;IP#GsHJ_qZx2gSUV$KosO`qq`nwE>~ie)2rHJ0M$9iGtxQY;D%1weQglM)?T1 zEUb~iia0HaxjYA*qEq{}&o+V3)Mp8(=WUgiLYgR&=I@0g|=0~50=&i=jp&Ne$HOXGd~uH~*IFzO5^ z1C-LlX@IiDC`P^p+RFkp*=4h;xP{q3eBCoJGp3Mh+sdMCQAG;?lW24fEHazxi&+RT zpA{9lK-wagFD85_J=L!Gh4AA~qUij4TFETmGlS0e7lYj1PXGkNHz}Gosrg)fsr5R) zu;bucUSQe`bL=~uj%b*QfLc>rTnx0r5kQFe4|p2<#4_H`=6?O=O)ntN+Bd!+#D2VX zZMG;=cZnXo5rpKRiUQ-7OG{1O(=1~+$@O_yTvdJ`kDsA31%nQ_)pieax@B4P=F2%t z>i9rUDF{Xzf{R4wpr_aFZ0La=Y zxVOH2CB6lK5K5$iv)OJ-*;OfZjE+wh>UCOl8}vI$ii2R**C9?X6j%39I=Px|gNFR)ZMo=xD;=l;UwD@nkEiu%$Yb@~ zBAPYW=w_eagt+BTS|)aUwp1N5k{#;JNR^>oiQ1nSVS6Hsv%MHd_&gTrdG$W!vM;g$ zBL}txQlWHC1=T%CMorGeOFQ(YvdL%bDmRVJPOZQAF%6isQk>BlAd0})LeGXim%ZLv ztf^j5(1Vy%_hkSV@QFkbZ~_S@weIMGcdsRQ=R4N9GxFymA6wlnxj(}}N-C+4itG!v z9(PzLU;YPn9TC%m~ZBt|G5S6ilFPac8tUGxdM6<}A|D+b(9bcg{}-mbkXUUF(ElQJ#B!CGbhh z_^wXeHg-Q7b}U?hxxsyhd6c=mho(3}*nPa{Vg6wQ(k9Tr&rNX!=xEZkEv#57T?cU)>)fV4GQyGqo zl~)AgNrO8TewX0hU2aGZGirEW7{9H*v#MQA;3#Yq(;n=Z*8CCdGwL0Otbc1ZqCtj2 zCQ26vfL-bXT&n11*}8~UH~Mw})YedvIRD*^%KIU^m7Rr_+j92c{kK+GcJI}H z>&#;LRp3QD-OMOI=owlE#WMrIe<0C9AsszbE^91eZdtNEwaL#ED)&v>?dEe zY$K~M$Vkn&RrU&T&9Pl9es!s3c9*z!CT`N5hoh6}1 z8Qf#_AQJkzT>w}hq zw$D}fB^zW9t|`YJsFf{7VdCTd6zxGv`u>L}7OCE9aNHSb9E)g)m;X91&mHH~bkSMN zrfE+}>3%5{!pJ|Rg9StiRrmv&0GlI5ZHIg@SNSTbPaqD;Rcg*p0`7f$@XUtPv%=I_ z(S7zJc}jQ3cSn>BLXWK($+dNti^SDwn)i>qJk6OTw4b8%vTjS1M8HL-09Q#(%a@CE zJZDDVtY(M#7uv#B7e*cH{!_?4iam~_Ti5V@53+hqOS2B-L2}YZ9-0;M z(oz7!`~eL|r50NYx%?iVD2-KKD6Bfr@ahwyXTgecP*-AY{S!YiF>P;Emfx-wyY>fD zIh(2jjWLg?rE!vttim`tE(-+AaGrDNl+$!#sv1SWZ1+ip;=xAC3TF00_8U~6qSYy) z6Ti$xU7kMEd7Tt`Pqu&`j7=PBZtBQJru*J}7dcOr0`|1-gJZeKSZfbaj99)GM=zA3 zJV=7}`Df|$`n>&-vgW*vYJ$CelI_LCJtok^Xqf&gh%HDoR3}2+9)JoPyDJH=PA+?0 zD5vhDnn_Mh4i==z{RsPfH7rskMOE>p`)Paoty0@pE{6$I!!;k)GODXIS&@=Mn?9FY z<=vX029Tk%hw$k`Qe2Y#?XC@S7Qy%a5vmbhJW)PQtlTVuSgH5)4{^y}zBhA8x23-W zd)c~;bDX8^c2L4n8l4J)a@UpDp4%c$DOCF*9GIthCP=FCz@`Vt)onE@kNDWj7Rr1q z*mx4Ok}zIaZ(1t+7}$4gH++`Pc!(Nl9y@r#*L?xknp&~S7vNWex8DR#lVe@V^C#2m zgP|UZa8|LSADB!D9x~*uN$yKlA2~&72~FXjN-IsZVD*^KE34Y;^DDLY;e0{|=V~tLf*8 ze)pNi6Elbo$jk`AuiASe701@$!Ph>T-(JrJMm&nk?tX{ydB0mICY6eSgNx13jb( zR9icDUZKPO_yP$1WO4BKa{cMBbb=U&5u69UifUm4tDhSGslpbMgiD^ zt)_|FE+cS>!JmHTLW8@L_S4U()MHTYqTf#TSiIQw1+eHXDRFXD zjEB!*Me{MO;Ti{!AhQG=!Q%NEzy>?w9)B*(%z^pd0A^%RJSJZq-uEN>uB}RgLsb;N zz;B)62BRGeNV~dNFudkCailQ0s0EYeXxi>sv(}}ypmZq6gvGVYN3(1JWhJFf0D+%E zoxcwBe;**g96Y#w^BJe~uvn>i);AZ41 zRvwcNOnjjbj0Y+JyE$BvNr020qod1EQbG|}+==*v*iZ!hr`qlH&k8W)%pd4LczC!Q zw-gO+g!z_4;S=En28&B(qzF(D^K#fP#Q_GAm=u1WaugBnW9|Zdda>TtJFD+e)ul%YdxR@y1(b90hJOvFhov7JRDw))N zL%xPVXKJ$!*|+Y%^$y=0lP8szVDeNrLuz|@myl*el$bK`=B;zk&MuLdOil!whR`o2 zZsb4a5925cj|;cQ(Q>`|KmZaumg5OP2vapL%ZCBQBXrl!2{(aFu?S^C>bNeYNi>`U z(ptj4`=~k=!tb2jugci7F%Mb+V<#Xp!3KVvXu&IKBFk7p7?K0R$U0~IHr!|Vu_><>1ciGfZH^Z!@_Sm8_u06LvM+Fkri?S+=-UCpVQ!<)# zOgF)}7nWXNREfZVxLG=mfW1)%n}93_T%cVLkO=qXJbsU@vd0wyH#_g&X5Ii0M5S+viq!;FNJ#e20HPm#+BgrL1rourywii zEhVfG_NXfLW>sAtiY!zF35D3Bpsn`=YoZgmjZcXa&4~q9ey}MKgBasVwZ3OZFI3Cg zoS4(Lt@F#2hbo)oglqx|scYh&gixn{SQICh{v&hNy8KME8I|T36UIXT$hVqbzj5OR zKu~$9?X~A~N{Tm1=FJZ}D!T@;=un&|Po2agQG_;uj2WR={na|`{BJ8=SAnoo6xWDej zhhs_mzFv^qwzfQ- zlE*>}W47Bh~FLa*jd`t1#60d*&Zb_SFR*sTQbAB@R3HH{TN$R24)7%X1Dtg?-oAACG(L({? z^|*kHJL;HayS#RSew=oYGr~$#4TzCZ3)OHzw*WKZ8z#fcWEe5bsy_u-`Ad(#VeyX0|87@yrw zL8#XO@dvtWkk$&WsgYz}eJ!M-or{(hp*5$?$$v#wEO&qj>w`51De=kQ{Lst>MH4Xj z!Lz4Uf7Nu2AQ32suyjvT;_9!oM37E_?-qV0=7OU^GSK(kQBJ@z`(=sFp*Y3^D1H-@ zoMfge1Q5M6*e&KS^j&{g*7fXt&rlN1ZVei}r8aY03C7^Iy9#TH+E|=33U*7|woh$q zqh5UaN6IjE0n{k6m5)yqleUXkxtPtlemF{9yVeD&zoWQ2=2uKH4^oUQ(Q^`)Wy#Dq zsc7>KoZS+a;AJ6F&aR$)TiECBsKQ}-Jusc$9J97<8NJbF{`^7P&VP3gm021Yx;tod zhK#(qg$3SV{oYDe`G0u}x|A#P4O<#-_9=r2OqlRDN##@HuS@36=iz}+ zzu7*ZNyvOG>0wYuF@;HRnX$1kB;^zj(N66$EYIx|h_QG8aO{{a$iY~O z#%d>6w)bc3<)9s%PSYGqIUHmaitH5``z>4HtJMo1qu-pFp|m`5EIZFX;&+)_`|TU* zV3{R#tSuOB^;fBIN463CIW>%~fqDe@3(-auKrKCr0ysn{RK2}E7=#QA#z7bJVk4|) z=o_4N-Ml*TlY&$Tk`LcYVDGESaD-X)n3>Ru7VG4-9knk8Nrl;6(t%(cR`ZPKM{a0f z^>ur&3_e6JfL?jAT)DMZ^)ScleeRD=t&LBo>s{Swuy$vaTXoLCrak8^Vve1yM zZb_LUvwb3%GRFaARYMXeKnNeZkZo!1*#rL12yNH1@K+-UIpEz6&_d6s{rcj)pNS3Q zx(PKID*KV79o%q$PJ-|?c4&8}Pn7JSfbG;aV7jtyEEI!-H%J-$I<7G?C{!6z%=}*~ z*ibqCA?u9-cSk90#7!>+_d$DE{t-?Q_V}8fCwR@60Sf6qXv#G~^9pg!VXG4t}>r{{f*BOt^^+wSK z#|IkpvpY|lFntjp27X4W-M+?TM! zt@nmwu++nq5048l(sQUb3Q5#SLASsDm1A_ijTk|79%2rnK}$^e2KxpW1f}}@QJ8|NK+xi`Kl65lk*7yFpers%7{zn3-&80-=N+^by zwjlrLr}hm{7vCyTWt!|X^y~isaB`#Me1o(>FrfZM3>|(ILegH{G|ciGbE*Ad4UP&K zQ^#fZC<{Y10^giK@$6+UI*aLx(CE|t-ysPi+Kwj)E+Gr#{3WgX7D=R3W&U`)dJ5B4 zLYy)_IDjGwL8Q~ap*bUA)8T|>c?8kqf&V^iFolaU3G&}SmbZEhC~1wzQW`mXKUVZB zPzYaCVGr1RpN>NrzZ$kN0lLlLAC>atL6~<=eImA1I{+4w!mwQQHH>@<(O1HB1kZK@ zh#AO<08W#7@jFg}jzmsGHF;E>&;!w4OVs*nhR9!rPNm=nN_3UR{I^J-z~G}Yc5KF# zeplKb0^C8ps}w;28fGk0UF%B@7e6TEdYB4sIZXlv3YOs1K^_-tBI(H}hSNE+K#({- zu1QGUlWyOIreYz;A}mJ`{`zs;C+2PG^3rj|nOI#%{jr6ul={&mB~JeG0-{7WO>NCW zj|*rl7!QkA7_;~z9uDNMP>N%pPe05j<0g@F1c;-eW#UB|1eF-Nu?gMlJ2?%2J-iu>f44NvI zkwE9jON=YAf15z)Ac@QX)^ry#vbIC<3xM(jx573GoW)Zh1wgOq-m{G}DZP9l6{iJ& z-1GSD{P0I3bT$M8MLBcH8pI_OrxG1eIpC$dLrJ>SG}TK_k!xNDr$Dss!v?fj4>|$n zK#wWvWPUJOVi0Cmb`y{6xPrOE3vc9#ue@^w6i9iOgx7S{#HP z8|dMTzcEnMK>iJ@E`qeNu^+&Uo)lghE02w~&A$7~wmp~%(Fm3>G z3LzEswB~m~=gjX19-3AJOg9|@0`G1QC&4!|;lN|YG^iPiR5#-*JO~jXib!<#$?4i& zR^Nax!?W4~w}i1FW_7*~-^ETV!)yfOe%2jjR9He6ZmXjuqIru3Ye9e>M5%;64w^m} z?i=!aY@c(`3%1Bz>2u7$fbP)Kj5+js)}*2yN%BsL0V|jdkbFe2_WEYj-6McTvW&kA zq>?%V^-E`Tnf}&$yN^*kts}d9O9pq)Glj5gpl9auzI_Y!jrbwLEfC%4pbuWBj*bQ} zp}{RkgCHyeMLoKm1*bS!GJMSecK`#i6Zew-k;5nU3>bs0;B zge*f=HW7p4{K_h@HvEcW;eOd@A1KAL|3gtsai~%fMJWY)NkfZaJNGnRWFFAt9ka`ya}Jg?ILo*OjyN#g#%T zz7xPfabCVcab9oDI!7}rLP6WW$%Phs&Vj%eHYeYNlK}Tga@t}<~;*pU+?$Os~Hg`P4~;X+RQ7;(}n2!L1B^NDvzLDwfJ^z zSse&c5jSpuD9K0_`UOtfW8)$P;VBa@Rp@7#-2{G!ILjbR*-@Rn(bET1RK*hkX-~=@0Iat2GA!tUA5)N%w zc@0_x>kdb;*Wn}&sbBj5*|j&rD@FRoT%vQF&Y6n+Xp+*r$*;ct96@xdC`MNWM-^w2 z^ze96_HtzyzZwYIKafw`zqqwikZyJ(1ZM-ZH!Gzgt}EOax&)-l`w-Z6`o>1`PZ;ta zAKyJpj9qxtzno*6{S(PY?M|zt`4>Wd6Y`wV`@%T8PJj{1Q#Da8y|s{_A!-SKM}`~F z1THGEzx?iI0ATfNC`~x@y^dA&{E4^tNG52{EGCG_pksQbWpT z62R(JZdN&0mCvNgE;VALJtawtv zFV%YB6|7t$mb=-^8si?{J-UmeAl(6I-}`<+(EveV(hf3=Q_DR6+q-4FM)fy4iTx?q zNnfw;5(#!j^9Id6sT0m4C`x?yVV2*ES7nR=Tycm3`yZPego7S*j<$!sq34A;JV}y^ zD(l?+&Kj={7lM!0QTWXSxAYiPPipWBhDAx35he)iH4QIFQdQTWK3h(=X}X{N$oQfP ztqA&>n0VSw-w*h;it3)r42b!l`qsg^V&zBY!!|EoGt#~7Lyv2=fFC1&1L4*soL`D6 z<*taA1E_FD0&<7>yXrzc{OyE@J+V2Q)UF9F^zMYyg3d{a9}as6YV z#H9`Jd608dVa0biYL4@(uG7c9&`+_7YuWb#NOe6Q zrd;f@6#LqGIf7Iz0+1S;Ozg6I`J^i_TP%sJCcGF5RcrNG;z_}Rgb~$Z+?1Fd>K_oG zCf!G9cep+x#q?@L${)z>E?(TVo-<9&=;R5G&N*YNXV5-^bNk_GkXQ2H%5MZ$F_S0m zN*3xBuxh{1tZ!`^A{4QTQ~D7$^4`LK^sdJ`n@RQ4q=fn^S>6I=HPY-ZYxCsT;=|$0 z@?+nR)`H+T38Fm%7H`3Pp%8!%c@M6onkK!4nN04_w{q@u~OcQlRD$H{Je^xYt05AorJTmiC)(KYgjWHqK z7LbrgR#-wJ$Vlg&4hu=g(moi1POZWWfhjU(!@O6S-TxJ92zmhZUAuOvsAw&|?&o)+ z5}?U=%xMs`uQ~;X7ejPRk#bZ^t>t9{gn!A&{z2XIIt(6#-f_>^n8qfnk(9`@c{!591>LiQ_T?GX2j6Mt|V|$Vvt~ z2=fxhZPh_W&Ht84eEhXH9=9FiIYpQ?{b$5?wE5b9*IQ}4W#1?rIdH4d?k>2aQ5pGd zIGTl_cn7OcF<@FoxHEY1UqMsQa)K09+93SGJtU_bUO{FZcMn6SQmb#7bq#@-R7h*fwhxJiM|PeN?TJB{T<4*{pl=Ka2-pT230?Hcrg5#* z{i9sc6&|pMKI3gBG3A~6K2B@HDz_A!Ic-oIXh&&mkEM#;2S}Tu$nSba% zy+9*ATYWqo`E560Cd0Yeq=|dlQ@e2i?Sm;xBneCxOpX;4+I8YY189uUMN4k%2Ly-Q zE(srk5Y&)yG$T;o!<-h}YnM4o6)2`39@G>^YnE(M z*3id-f+UPIHU)@9*hWJA(>$Ad>psWCYmIsMTcnom;FTbuZ$QSU?NmUng+5T#hfZWY;RXxg>$nE7H3DuItvdt#T=wZ&FE=V2_lU=-J zkmJh4&Hpb}Vff@wbrW57xHma;*9%Vv^f3XxfZ8;&`o z{diN=3&rasQ^YV}6uKW`rfRhaQp-qHuP19^w{)$NAj&TSrAhTbPzhmng{fIY$~2{b z1=0JJ5}O_+$K1#%$-6ilq5RlCgvrtBw1`&Vb@`oWbYnms(Vf=lv<(`j(jcEBM7xS1 zZ8`iNfCb=~dC}@2U`Z+4c8m^qi^?vi1atrF_QU|BG>0!#k~4@LRBVuGG~UbZvweN- z*#5--F(@1~9|)|KWJBc94VgEaAc#3c&xaBAvSOYhVb zup413wHCSa+I{ze0L<>)cq7P@v9u7QyRAZ#v)DBQGP^F@%ra8OfHI#Y;Lor=;h zxX$$Wd|*lC7+355^Xqv{}Og=B`iR__tM%R5G1gdJg$RfjEmw# zt!oK(LXLN_A22rruS0SwW#BIOP-92aTfyIk#Fh zEs0h@sF59fWR$RqK+E=C<=%4U3yxUE&(Z^Ohv~_6Ay*$!uUubx1g1^xY@o?SnjAMY zgm+Q&X$O4Zq`(S?p3~y=U@kyH#{}*D8i4VUwSxqn9LrsxJ7_;eRDF$3SD1P1??Ka+ zr#eq-#BD#yWfF#pvURK*fGEQmN*`ev@*w_NK|&8PSAwNp7QW};e?nv(Ll$5w<>g$l z@&ui>G46XI6}1@VL>9b4dAcvz+yIykCIrAj=wp&`Xu9XUGc-BRqh8Wp>0sl;;g)K+ z%B)PuJCYwndred=-!LsD+T{9swSY_f#6WTlo7HUe}q-%!dt=UQKPJF4UoD_4V_>9LEO0z5sxq+Vsd zGOeBVDlf0}(BqfmqyWU)HL}hNN?tD}MoiFRz~4%tVd3E*YcS#oLJ2(XK*)KLc;v$P zoNf*|n?FK5F#hu+?+<`#z{CSH=Nqex**_?FF<}aNcVGh`;_bOl`aneUQJC^z%JPNG zTNS-OaTSL;rt)fPYF;hN~qQ?Di39o;PBO`sri4$AjzgpZeZUEL6$WE?}7_?k0O z-|6)j1=L8mRgGqK5Sg4a?*QCB>67}w6ZvZ}MM&B;C$PN&$z-%U6euf9>gO4^#}XjE zi4!u1br{^Zd2<;T6BF7qZ@xIyjUq`zaVwfy|%|WQs#h9Kd!^tX$H2TYe2(zor zki;TXWo2gztXwIq_ay(}WF{Hr@k|(Wc+m&OUg3l{J3G72pc~cG8RH$dmRM#>P`zOS zbL*Bi|7<hjz z`;T$dxP%`C{Qp*+Gu*)((x+hO4;s#nZ~XmVcf-nxB3*1)KEk2u!Z}-;9_A6TD|jqt zO@OTMB2D5dTXX1?Gg-r-OG9f+FtW`4nXR)9DDi6e`HsVhKqp}u;scDzo`lkAPKmIo zyD~ORgGQ3ALz*JfGE(aG*WH(JuYv>AAJZ!=Y>Rr@2DjQG@W^6(h;o8?v1l-Yby6eg(6e{R zxpU*ZmZ}d?zRitE=v5FH3L*^yOQ?0%h=pJ`(aT7=v zt6kQwUivEc#ko>%3&%s3mbf143cIeD%Vp|U%_>{XyDzEN=%q;B``0yU4(%9Zw0_C4 zn?*2qm+a~3*{dHsJBahOz|E~Y8P;+PUM1EGJGu&-oSZsX#5vs@v-`T@S`Js<;(E(t zNhXUgWA$EPoVUrkQ2gz-w#Id{pFTRJFs*jqqU2E6J4!PrJMl`)SX`sX^&Wr9%gaB1 z&Qt4wOCf6VuR2WYO}duFET?qZHPSpuGp;-RQ_$7b#k`TzEz8Hu(P54Kz9$BXS3Lqb zJhDRz1XYWg)LNIEdo8hb>sp7M=TGS`Qha~S-@Mv=b2aOQYF>?)GxyahN)7wPlhlm2)A`{gUH17+eivcxh@ewf20GxNY}n!ovd z^X$@$eQg&%ZTDO@^@JDc+=9{1x;S}?;Ng?|eKg%awO;ygh#OtPO~V z$8)t%53vtDmVqFJsp6DyHD% zoyQwz5B}H@A9wiYVy%mvhZgJLN=iggJ%&u9TcW>po=aR=`Z?1Pzd6o4SBlhuW{G^<-Of^B<@US14OiDA4E9ti?B3QJAEvN9-Y= zH&lC4Yh=>cL2Rj`jee`thjyR#ddiPx|7ZW?H~#b!vwX;!LTY(S zd_uk0PnDz$k)bVoQkl`))^W(DV(p2?AK~itrXo=+Q1&MMo%Gby2bPy!6AxFkf--M8 zb}qYN>_;UZ?{IRtvOf$ z-0}~+IPd1&#-eNAFEL)}0Gso9J@BHgTHq1wa<<>!-CbP4zz_#a;&JU)pMKgoIr`3< zmu0&}_!%5F?OSvF)Z9Po?*;A+Elz*;l6bzrMKi5inL5G&-hQ-+aB{XPMtMbKvOTX|Y>nyM13DaRatEuATe! zEo;r4%CE1c);xa;oc{lO?zZTi_;>0I4BDr{C3h!1_51ce)oLzqm}1-Y*JtlnR+~ui zvN4yHYbF1E!@>ZJImgZ!)}Ma^??wcU?)ptq(Vhp~02*L3bz@x_Q#aJJ0jo~Tz4IuI z|NWj=-k&-QWrcRkrknopN@$l)+rtO!mOP%jef7pCkql=xLVT|Q^8Nf(JPE2G-)5bb zWr*MehJr~Edjl^tmVj5`o&!fo=7G%&z$E*c+Y6YT^KY6yh-6?`)B2UQ_0GqhbVh~^ zV%Nk)ijEu4W35Q4)t5Cm`>V<6UB$7@4E`4L8>J%uv-M21-otmfA)Rqv#Qbdynb*Xp zMC@c{cnvJdHG1zbCNN{M7nt4{4gfPL1A~P-FbEl*p8$5M9>@T-G0geRA5iL7RHf9i Q9w@=!>FVdQ&MBb@02aF&d;kCd diff --git a/docs/images/StorageSavingSequenceDiagram.png b/docs/images/StorageSavingSequenceDiagram.png index fa3947a96d6fc438dbf7b11b703f54be189a06ec..8f173dbd3bf39a7ba7009fdb03d6f825d5b3ace6 100644 GIT binary patch literal 90801 zcmcG$Wn7e77dMQepoo-!0#ZW`DUBfM07JvjAfa>%(kUQP5<{mT3^8pD(YU#u?_i_OmO_F2~$&%yN*YRhlPc8T^8xB_9zPM`=6-DV(80yk-j2)E z(cZ16ixvy(;*7PXuFD_qV_g8(@kn3So^hPGL*#d0>|{$TOIx6zMb`0dh!#agO$vKD z+8KPUDsimCsqbi}R}ggzek-fgu!f%aL+kNIkGrvtdjcz)7Ny+WjoBPlY6ixYyKe{4 z677n%ta_hM+UE~b z>}p>SzF&H8<{szA(l@k6(Wj42$rZ_O?bN=P@v6BjYRGj@&SWdfj_f_@Mv=HM-&J9jH#pS9BNk>(~n5l#;DLE0G`=+g`aUDd}f z9S!7wYog~OrYL#nkwhAX#tma;MTquUUbpq$g_Ed<{3;5#mo{#BqIeu&t(1E{Ma?fB zrnQJy?eD+EN9KD6HO5};9D0()I2&i!&yygL`tbe_AAi#a%9r#w^{n`e;#EUR8+T*_-ZHR1D1&6ipH+XGGoMm#J>0dE`xN2f5f4|OHo_zV-=v<-2 zuVi=g%fe2Gz8tNrP4j#`_wBsQ;d6>;gxtkS=%^>eoB?mmrrhFHGp1kzPOO?2mTu#xZv%-+9>RH26Mj(0%g@`|3;Rk5Oa)$XlXd z0X!qU{phW1h7Wd@HV;0j;y3pg6Vl4=Q3#^^+JB_lEAd^wzT9Yic(7gH-183C+SH4H z8c~MbCK@YZ{djsm)9tGNV-_uO!LlmLUhX*NPKl35Jim#CC(%9}#vysA@v23YRQ|Xb zo%b*s9?$I;#(v{062156ZlWpp#3g)1n3(1tO2KFRn)Z)3XMWr@_?dji{>{@e8iF%@ z2A7o|TMJ7GTiZ{tMU-fGm}_Osq*u4{(wT$z4Nkk+Jgr=kh0RE_&30k;B?q`^si;Xv z1bq&s_0RZjqrc`mwuVJV7%CUO`oaJ`k(hsK)zY{L_O8&QQ?~Zoakh@P7 zwllxLvr$luyianPAt3BweV)RQe;F#cQPrQB`TVvnqKtK8>JbKa%j&D{BQX$n3I%%!EFi1^l@ z(iIeV5UsCI;VD;$pow${X~s}ZdKDt{y^Bb;$C4 z76>Q%ehJydK!m=C3+sYCg;!icl0c+Tcus-vdE!vb0BndkL=vSN2)~M?Lj(&;p|(Tm zA+Cqpr;14%Tl1P8^Ih1j58T^}bOwKJ-zI^vh45SHSwvIZoJn(g_%-(CiFOVcU=QhS zr2dT831LaLnYCe&lTY^v{IVX3m3RDO0N&`6U`M4@gUH$0X7Q%|otKsCuUZE?m3bTC z=Az4U&P9kYW?>N`MMu%3E$E{7Vzbt`Su$Lm-}&X%PAqs9&-{d^%BVjXkPFZ* z&!}rZR4Q@U*Jk=joy*_gP=?<7viRx73r2*K6II)}AD{Wz@k|kEk(jsN;%c)~(S_yD zDYokBafjQ2_99DBhAF%Rn{DTB3{DTAm)BqD@+zUkf0|ew?;Cy@tAE%zGUD*1*+1XP z)qbM7K`ttNadnP|!Wg9x&q_?pgQzRF9wbjp)V>>`>Eg0BX+%MUw$sS32>BeI8mH)6 z{&V>?6Suza&z#@{Wwq$w>M+vqF9BkfMhgds-{%B!H_O&kZ}wZIGYQo8T9FL>eb>Q( zzK1^7p69Ax$e=D!+?wYg<3|oe#)=~$46lg5f0sp#Nud6?gnH?oWdg!AE=AKrA2R2w z$k1g}gy)P|H`;RIA1DapAK3OLvD}hJvFYqTs#^XK;lB7;uRvAL`HPLDezQk#LUCB1N7o9Bt1#RatbO_xfvR zO87^Ro&B6Go$;4YOcC=Y*qn6V?Rzz7>{Bt9=J-7q&nFNrk3J6!v6uLA_~vbUykp;b z1Y*9$wQj_Quhr%UZoIX)2dAN1w|J%ZXFvJOGQR*- z9$+i3yZcO`QCYaZ-dJh2mAz3}gh`94nxm?_V;yC?sVp{Qs?WR5WDkkU*>=lhL>xCx z_bC&h(>tY5t=Fi;M6&q0J&n&9#Lfv$f9yQRM&VU-OJqE#6Y^Gir*rm7YiO>qWoh%7 zh?wlp8sjmmE9~dh7B?FO#rHSiadox9MoygKihbenkup4bv?SFB7E7!%&m&_M7A^;K zUpcRCSC=;Ih!>$GB2*YyT$;-$x1obB6kJi4f# zH!>%GV57a`;m=W7$eW0=Y#VoDGQre@V!M4Fd&B8_v6QbEuSPn=?}m|P9B(tzR@}?j zlk=m_wrNwm&ir^$(Kp$sjIc-^qE(hIG&AA;Fo(6LvG-@*h<9di#-ro1*9QfQq@LF7 z)ETus*N;qeBi;B`4$Px}EL~a^_8R6`y<7EW=3Mk)Eo4u*N;Plv-1r{akzdxu^Ru<^ z(;CU^iJT6jXax3hV88P7u%Qam&NM-$m%>igAW?iu^!5Js*4|p9_Q|EIU1z85RyR}A zZjjW9iZAN6lc%O`P7M?_4rYUPL+`!&QN>()D*&HX0 zOGrEd2c=P>PjPV02R~_#6tO=lEDcx><}qlQKx8a+8(mUlBU57v;|jdIv>RNY0y2yJ zMs0pU7qM5H>g#K*wxWW9a-yTT4FgZ4YB=ws&XPo68~LkYVFVOf#C%m=h872h-=m6C z6>AnWyT|kOn)YLN3$-U2yb>D4O6)&*3N3x2IoG;IjrdaaDmd4bCv9L;Mf^UF zg{e+JZR4;<`{!b-I6roD4@g7l&C>SN_pFSmycc=7{Hkw?KGO*jAJR|oYU!#!O4_mO z^Y^2inS4Wp7J8+MvU20Lwl>Up;jI>I!^9a8-S>q)YrHzSfoX?E;k59%=Y&?DPRfE} zBhCpm+hM%h9_PA+HmYMO)vzF4pQiW2R{z&arw|#m0(8;6=vn#6M55`k zt{Hy3h1qgkUOD!PST`J?M6&q3`8SfP-FhZ<88p7sKHK$MnC zhLXbbFwI&P6_T$8dD)sFQDbj%#Lb^;JKpcN)%_9zQOiqSzo`!mD;^JK?96?Jt(DU@ zLax2WoQ{c&_+6`L(vZgfu?AWD_AZww6tr?@eR+6nWFU1t*BB)mcL47lg5z?Arw+Di zs^B_v>Lq?xns!*$PSbkKzPz;gRmwLnNT0mM%8(}pPo5RJP4Hn|zkXPuj{z}|(^5~4 z9D>&jI4B#QSl?V>BXirrXLE3nm%FW7l55v~>Ap<(=chvfXT!=*q)bd&!pX$O+H&{0 ziCer0vur*@+~n5kYPIb3A<-B^FcJ!t5LwxeTa zssMJ8&Vm1C%fWKyL8h-@z}_>X$|gDGv|3jEYSuIq+IwRo0VI2ykz%q_PQA*x0PJ>a zuKZ~r1MKM$DI&j|{ytYB{PB!9)kC zAtPycR#xB7pPZi7>8i3s&~4FWdL~1>UB@fobSVPtui{=rMJ2#&UO%O8@!B&@Tl&2G ze(buWA+oZHU1me+aK=y6+`*yMZC&+5N`np|0`=Ldq8W_Mb)A>m+O5dyW4Xr5we2{jxn-Q*&6Sx*z=&3HSGa{HcBC4qP zjD=`a>{SN8yy!nDh+ujLW1GBTOv*d-`7=jjXXvH%>nu;IvdzLjrTM_f1u9fjwNpMn zziWls@43OAFC0_Wti!}l?;gF+h%B^QaoL7z(tPGUPcA7(@(0D*RpgEg1l^J6h>h*h)zvM2 za40rer&Uyojf0x$=xi`4QcR>PK5Sq9}KeSjW{ibX*9sCpWr zQu(d91eU(4?XQ;UY~d;dz~__UB@-{EX!=&FKq@uUl-l$a`00wQpAc!y??Q z&|(x+1DRhNRH}oL#7 zG5g?t9TW=4GP40v|I01|W$T%Ew{@yz=f`Yavy#%Q6I3`g)a)!Lr#|*{-5E2%kpns@ zVMA*;r+R7pgK-{AbM>-aT~mRKl0p@ef`GZ?DnF?v>{vvmC46Sc|zCo|(rY)Fh?Oj?AUlw(mn6uv;$X}Vc)*|u4TD>7&BXD2)x^<%FPLK_! z)r{jiS@kcK1;IlW02R#cTy=yZTsG!p*Tq&;OD7}7l>*Opn2?V|SC|)a=AO)D0U8r4 zs6O=(w^c4!MbJF8;SyZzpu*i=qe3N68-@C?W-LG{-EykpUBrC=sbS;~oEreZQF?v( zjg|CSsOI4|87c`d#P{Rl!Shua3~*5^+4z;6i3*c9ytue>=!@R*^n+33Rc*0s_4V~V z8BNLaz3C0Do;w?tueIjg|9L#B(C=2JTk#z+Uu!Rl{Fb{kN{~8RP?W2f^a@rbJU+10 zKg;N;(BJc1;-owwuK}dy=lB#z#Mj9^CqJ!= zdwzV&N!eGQD1V5X0X>Ja86XjbPKkKW;K;kkRr`r}Vb_(#>81mPej_s_)JVy33Reyy zcTN6F$aN~MW)G*l$wo-7cTjvO91qVwi!?O;<&gDf$IAJ+fOTd)-EsT}+tMUxsZYG! z;i+|}9{HLf@t;1h*p+Le3Wqkk@o+i2=_q*XSS>a+Bl$luWSQz6NV1iEB||h#!>o;G zm}z;D&IgW;i@GU=@?o76nIMzJmB5j$eLpUXXw%ywNty_y;xZfb)MHTuG<((~y{~w0 zK&=J%yGI=K`vC{u6`RN*{jS+k;%&%FSXozA9er^%aR<`UC&oG~-xsb~9#>Y)&^?Zv zkPAP0AIO9aQscK!RADCwH@E>O9%`Z3G|Fu(PzoFjut@-h4Jf7xkA*{gpIow*TkP3X*z;V^ zTF!GecN|wYo2c;dOs@`O&XA9@=+~Sm(ve^`N7!J5AE?aaAVOOrAu9k=AVLEgD)IFBU4Nz_lECi?fXl&?ha{H$@`F7+Z#ZX&P-* zGIqE9&+|0qk>$=jc?I!YL)^pK?9NT&05Ru+VjWbfF9$Txp-T_NJi2afT+ApRrUSLq zmVWz2d$=6-ynVxO`3Ab*>yL$Iv2uJx##hH^T7GhzH$4+wR6q#uOOgG%PH?1!d-QI2 zyh^+?IeM?8T@^?i>for!fs(}gPED6i7t?~^>MPoJh3lnjWK~)-*agg(_-z1>lqX~D zu!FXUBW)6Fk>L)!(v1)0DZ&X2v9BI7Ak4dj;cbHaekc43T1N|4R79K2Cx~zCh;`=; z48b*e--q#;PXNwz&U~hrgjiowKn7dUZk@E~hbH*%s+;vpRG7&t)lMLT;CpN1br#){ zwaghL$`M|$LX!+)MNd-b^hZ}mf?TV%hqaEtLO9bdWe6JrV8Hk*pkL4-ToTHRS_0;o zkVgw?9&+v5@na=?@~GRlyJTh0*kz8@PTmoopLH12t~HT{YHswgAU1njWVDAI&#=4d zZdLXG>TS{_-(q3N6_~&p+jjM+9=jxHiPk*H>R#TZJR`WyA}@Gn)+sZ#j;Hx(qiHA z5=F`O=DrXa4emp1|yw>J^ci5_#?9 zc;ge0kW==bD)z*VUydi;O5|H@g5rdn(Sqg6RH;g1^xC7sgOaHu7 z0v~3b<+@hMuLNXx-^AN+9O6*bis5vxf;rv<3oy|Ibu8`ZX(Uy4Y&S{n)LXvS5>f|&b@RUg*Ubp<~YW!3~RH+3VB7@Aw zvmH5szs*Scr8HxGZKK0T$9aOIBQ?UK;QfaN1_p6n7&(3G4$7$IIfI;E;zeW^HCUGe z1Mm3MT?4(!Y6D_UGkC&kvz-1rLBNz1g0DCF61VY+67dKnr!Ba@7Ltbp_T1b< z#)s84)lc>So!M*rTw7jEQ~slWCS>V6vLqXxCwAXmxT>Ga{!lO7CpWpleA?Ma$qG0c(97P>_=Q;0Gz67U zm10hb7~3LB;8o9z(7JBwa8{e*RoqxA-sj;=)Z^F+zL12h8%!inJ*DP#LlPI5jmo>RTBtWu*Q|=lNgBe1Qg9&n<@(+)eEq6h zth*)d`*yrI&oL^-8uu>l9t%ftO{uQkSb57M8A1e4s@!DFs?tu8l4wC|i?4Oz*A@M( zc3O9kdJsBIZib>wi0a|?_N0Z`?;j%K-Yg9gIA2UHM|WrXO{DGA?W1;gdXL#OA3Hlc zGcUi|$>qz9Q-H=;GOl_myp&O>+lsikNpS1VP*>rtNRI1U67Upq}}c|2zVi?)2)>)0x^cW;Mg8lyvl< z83w(3_F9dnhB=o7w@@373dr=~RsNlGc8*Ug0y}t3VtL#cS2q)00kf$r-g>+o0IpZU z=6_RAWK#6LW7>#qTWb4;bqkOBjEk6(5HJ%tT86{g`Hz!#BhI5WDwP|eNwkht5y((uWlf@QS#JYuJZ zkO;2DE4(=Sk$3fuP7kUoar7QNVS`>4;4&~*YPv1D&(fw?8)ji#Nzr;Q1lDwNw0c#9 zzfE3<>@^=ScwOR(okXNo>3g}BnUTqul)`^d$(jgtEbGom5 z&rBWEl}3x4<1k#R3ZA0U6#=J5CvLMM3Yn(UZUi%+AIo~)gc9F?72eU1gxUP4EEb{8 zOJv(LY<_m%v-i23)35<%u75ZC@o%6v+h(SK?b>?p9FeawodZl)XQwzk%iqfda#F}fluj~MdEGp@5XnRAgd(s;)WtQi@+Hjc7kjDqEL1}rj==0O3HDUSI zrYs%zbKVt{`k&8q!ev!yTXtG~>|B!XK4Cszj$~9w6|jx+fw|Ike|IMqGi*E45f2|) z8#gXD&fvZR6?B_^ex1rpjAQrn%O;btfwuE^n8 z%Gb+y&Qh!z6CxXuGRs`%AohHQSiYNd65_nVGCOCQbKl43WMz2uXYXTFU}o#FgT1u0 z%H|vHwsil6&jNmOuQYso0t4OXZ=&1Ij#hVi+mgk7_p7a|UZmxzX4W{)i0d6FU7!r4 zs9GeX6xcldW_%?T$8Y;^-|%>z1;;1^$7|%hb><$WNTF@Lbso=Y$oh1R0Zr2AE7tDY z67y9r^Qf3|@_W7TQ_jXOQC>M5Ywl_FJzl<_cFrirHfFuR-PZi@W$vp?q0LVed<&0{ z!&5CjC%5>w#bQcX@!vtAFyUsvMQmAItH%@tm%np}+>&x766!f*Lg0z}UJ4KDzd-o_ z$0k5Hf>9~*8C-?}g6|(GAm-sFE>Cfi0`%#6vV({x(`rU3fvz_mx-e+Iu~hJAo^74(U6JsQ0HdIsdul|LZs(jKNmc#;d5R z?WXFTj`!C`OAX^jJEDqcN))EyL$&sk9qJ=x#+jw_opCIhnCV*`Ez?*y+*#za>?zi( zVxA|wEv(k+<2jJ}`LmLa&S;DGL992Drhi69|IwpIfq{Yi<6%SHX+r3Q<-z>Hfr0(? z$#%TXfdcASw#c3wvC6tQ7FERaDCv-_78-FMcyRnfUsFaFmb8?VeyQAF^OejDLa#wj zATc39!1u_7mr+siQzEAUZ`k2ZuY~vh+VZz=QuAi&V4;hh0ZFWLoOzj?ytKS5FB(gN z>=s^9E72EFc7yD-)B49;74thu-d0THKTVPTGl;$hZ7kEM{-6|3UrN* zCb7jN_8ZL^$wl4f5fU1;zat=!AUNIPty8DQ;mjwJ)dymj`tLE^)qQX)Q`}cUL|WSg z%n-;njg5_nSDBeJeXs71E2GKSwc!u}+mYh4(__M0cT84>(3I;JA78r`VcGk#qGWk_ z8LZZz84CieTakJWjyafd<666MFqh)~XX!?b4Gow7(`PFgi~(}s!HVIxo=F-Kg=fYnAE*n zVLQs@?(V*v8#-s<0#e%Fqufpj2?<^qt6*4Gmy~>3RmFFlI5pMqWPNRolHW=VIMAR{ zGd?y3UyYlnw$AacTYevQ!_Uu;hK8oJv=l7YBMEs)h}InK+WNYDA&Pqj8IDZULL+iP zIR7`4W>hZjS zo}M1ak%NYJd$JfR8 zrisiHz{P|p_8;H?0)!0j*7n&iXqZbmAwgff48wG?VI4|=uLkG~;2>kwvt)5^UHkWC z1CD4IU<$GUl+-310PnE>#5*FW21*hPg!~^f5gHFg{O39tXo0HbV86J`h3)z$2;Oaj z6-t&+2EjX7|JP?L_VS8~5s{JI`Lx$Vet{aD#GO_+6B85I<;D6nHn@Z|@s1i-erxyH z#?A@T)YsQ{0sVK6%d4uMdCNW<4HoAJK_SEKS|LcOV57Uby6)}ne%6T?_^m}K zMq(}rzE$)QWuWG#Kjt5hA1Gr@hq!&RgmvT6-}hp1GMtBpt-Pbjb|UncQzMJ+A5YFC zqhN%>wm$_)2LR3L!UA)ra(fiD?NGt1x71L&`%|lAtXKa2{CZ-@*zNxQeh@03bEWU! z|Ats$*x17({l`7+E+HSmg$mNs(}(n+ml@x;7zG6WGl-cHB;X>{A}$@HGsug)?+piW z|8)r;QggVMWq#|6diLk;_=`HEK)#nQW8($>J%2rigLnNtk^Xb=7zPvS z-E#5rKX&YWloGL1na;mv2J8vQe;y1&cm6w8d?cpL66+4p|Fww=Y&+PLfUl&~zc(Xn z$}#2tWjKp(nGqoQj8~dRH1E3lo$ieSumYN&cKf=>`}gn7EG)Vd$sp|P5txRPa~cts zrM*bXl`#PR=E05S(*QpF=DWxaYp3Y{^Gq0Ow3zA7rBxUY*vAbP6;f`aX4Opb$y)n3 z$K#NnKYvDxAHj_ZiBMkj^zb6Oj#AYoD{_o;;>pk=gKr7Ycl z{&<+UIfNek7)fP3^OF6)6K-dQOqKBWE77mHc<~|*A&t-ZnJ=5?$xohT89*n*#6TIy z(f`}q%a!4PM8x@*8}_^uQ`|-(ky~?}aUC6SfB$nJ3Q8X|#M%#&p=rdtiVf zj)HrC>&=vyY4sJIM@#GKjv4!(x&pQX2nI;LHCjd5#|N91-XA`G6msOK}#A|QsrWA1EkXJZ>SI0w7sYw!sPluEe=85=9z_4Xday?Z`$9Z0(} z9@CGztE17pjI7mrAg_lI(lTp=MMMlXb0N66xByt+b6FyiCvklm&nhP7+mn75gz+4! zkmHx?y1Gm;Z$WC`y_I1>LBV{LjO>;UkA?2Ec75Gu4<1ka8dW*^B8JJqW@SsSgAL`7 zvGRx5HB%`0xR+wyh;MnyX-m387Y54gWE8xrbsB?X3>h-1FRih8ImErqC#v0$5~k`rSCC&~03T z+pNZ|_fq66Eb@wqR=>1(clw2sLZ$tUt;52?uHxYhJciWR46`ND@|s;S*slip^6OWV zE}y+&9oLnihX!F6uyJ58nA*p8?`HEe{T>A?g^kg388uruIGh1ZFy;O{KD0POpvIz` z(%;`-nTuv!9x|LI6$E$<;6M5~hI$`Hl2^qi2CaIL(;1jhe|mIF1J!{Kbe#&~ku_)o zG5>@ieBUzt&p^bfR#LFBMBrVyVvEXdJpLBQJeu)p zpG76TV*;@F`(UjE92pRRZrKl@u8yarrA<~_501Tsroh$HY)4BIj4*?hRDJ*VA#6bCrItuQkC%f?v6eXkV7{}I|sNPVzF)+cH}=a$ML zm&+eVv`lU|^{a+(GdZvRYYP zZ5ELZN9hC6q8I|?M|n$u@(M}Q4Q&eSJU0L-`!0gtg(Ooes*x2b(jNVvLzN*vm)G z4kDOxTVg+P1S!-RC_fT3q^#=6qKb7H&?#|>!v*R=f%h#wzIgKb=><*uH-VSq^Q+=u zJ0(O1UYGxgoq~CAo`Hb@F5}j8B$7Vip4V=u*u?B zaRZ`{=$vhjE;DROeCH@CKUc{&M4D04%r9!x;^n%xqP72yh@_f(RSA?dFoOA0o(u7R z@7W3`lg!S}Ug*u_=H@h+YV~abWN9r=Gl|Rai%n-k{V2N{(cf7fAB>IarG&q@%TnLe zR3I;ehld9wgZR51KeF=k^W)+)aupIF5XhLuhje0hW!is#x$ur8mlh!600y-CNN(Rg z(H1Jev&b{z1R^=JQuC;TLiwMQXec96X^RKCdx<8gp&v2Go;S zEgmRwK!@*&ifR;yfkf=%vocynOHJL~Iw%($)HbrDc#9hR`RhBN+4e$bwvVrGXZCXf z>eTpnl)(kaWsmoU6HxL$>GOTmvk;E1>FMdtPWc1!c>GY(ufzwRK0f-JGoxVFkqyj$ za$;iorpru#5P7^m9V7Y6E1^eRd;<37*w~nzqg3Zp_yrm#iQ4xU|K$Cl@$y*6i}$|! z*@gXO1Q9{wu>QwjlrH|_G%>WGL;3&ZwMim?GC_~uF@f%%1v=oMf~?({~9&( z1sL9s(BlfGzt4u!MOPRb;5BC!W@f#^>ZVDaH^bCA<=Arg^_TaZ_g{byB`3r zqarCo#C4+HY4%(P)5VWR0%rHM2~t5p0q@$ioxMG3J_{vH%^{Gc3Vr|w0uYn4vojzN z9yB;JCEOPC8k(GJ0-etQIfhvfVqUw#ekb*^$1k|~`G?xu^Fe0Uj7>?=YxDDc^5lt# znvIQ(ot+&}u(>TG#dP=3mj}V43)xR#65SCjTx`Po+UdObl-1SrMbf`9EA19GCyF*7A4C5QkxB!hGMDAp>cSy^La<3bGpyZ}0^ zjc!5>3?@&H4_4Rm(IEXy)Y!TzK85^uRl${;J$C@|(6=x?gdjzHkE(-%KY-H^x(~g) zM7%c=6_H&X9bo!!TADEySEj#;N@99?F+0M+!9n8uq-rBdv(mJkV45WB%6GqU-GA;G zaP=D7QLsqB{*d0U@;P*_l?~ti4YRWFz!PBT(nJmWd=iHqNJdIbN+`GW3D;HHjhVKx zLpc->`7%8&huh|C4W2uB2?@i%)kXJ8NyC)dwYA|y?Zx2T%(>N3!*4bnwL>jRMgwsn;Fp< zV`A+>v#y-N8(avwwFmqAoj$&x(A-`d=i4ve9IG(hHCpM<2^qRD5iBNhDV$-WJ@KER z4=N5|9M#LZV#RsuQbqQjk=mj@V}j+gvBU;<5Rc`*QLlKV09o+l&$sF=LmTjt5l?Mx6ejq_n4Yz-(TD$#hCkl^K)~gL_})9Mk16rQLB{& zr%{q$i^}|F_A~wt6ECh+v07SMP8+E40=T-`tT6;E9UzcF?guzz`YE)02KoILs*o}N zP*MM_0`OakkLEN*9vcgW!2k0}ZpLNWP|b(`7}e8MFb8+2!4Vgb^|1s%0l-A$cZ{*Q zh`jjP1rzT;;}3y@P*0b!{=kv{btwRUl}>MP|JUQ-i4&pUUit#Xlo05D-3kLRT0g+) zn*R*HB#;o)(E{AVG2Yl87zrl&CpdI-!y~@{R5mdA|52ExwsvB%+3H9MAAb8~aogAK#NA3wg`x3#rpyXW-%SxE^fm|YxB zzvo$5R<>EBQwC%(sG&5vZ~E=8jXSoTCf;5G$O<^ES0H2yVmYf!qOzj#7fdJL+cq6jLm^Q<2}7MlcW$ z`rh7XNJ_p2ahTPa0av#G7jJEC9g+qP1Ay!N0CGq{|Ldr6CyN|V&WxSTt#jT z4GnNuK`8}DzXUErugxzl0ON~M-Ul0ih$q=pPQsN?sJC?_Xn@f+&y0*3oaceVC&b5> zGeU=OjHstI_*X>INx)XX^o)#*h`Oz1oq*iPrc?Tv{KXAoVq&dA&8vijmfWVMrWxt! zV;ap2a#6ba`ap{zGT}&985tS*dHfVOpgiH}%fNNeblzD|W@j(Dc9Sbz+&5Lp9Jwgl=YmD|8+0^dG9I!c6USoCE{4X|y__@8GmTA!btu9<6V zkAOX~zP^5Xasm%aU&TmlF zczn?pz<$+NY$Th~*Np7n>Y124EiW$*1o+O@7DhYxq>;y>0KuAH5byhx#Ep?G-#=VC z#38WZ6dHah?u&s>7S)$ylzU zzwk#obR>m3IyxR1NJ^JRzZ%QKwNp!$fc z57NIFI_74R>$w66@D!Fg`Ab6yn%L3=x@?P2{QmqJ}4AZNCLzL zWUR;Nw~=7G{9S)^F?O`Tc~DfEDk`9jx%4qwI_y7x;bDM`H4!RkZf@Q^jUpww`Cmp- z4(HiDt-MP_3BWk~AKHK}`d0|Y{GjWqy{ z255ODpuUZP;}4M(58!#|H5O9j@z>WNb#WOsGR~;QJcX0-zCRr%|6^LR-%~(xad1M1 z0D-Yi0tv4}h?EhZ2n~upjkaM?QQ}V)UPMPngTe(cIOg^=zkwM5)NPpauID!69w!fv zdflD2yDm#HYqUnBw^wjnRlAlP5==x9j(TwapWkpjBkN%C(VYEKzcmZ|b~_?y7zX&< zQur)YoSnBpkqcDryuQA^V54B9N``}fOY-cMfip;cKy_q_x~tUPF$Re$JSAnkD}mkh z8mNyessp!~_;Se64v50(5`61+OkMl@^gz>iB=kb)b_J8j@7wp+G=QB0&as+%0c_L& z=l@j259fe|S*%h!58On@sroIz+i8f2)xli=h5(_Zng5UpoOWBn6p#zN84>oAwJkvG ztWVZ~I?V%6xN@KIJpi7u=1vEaq1yUOv*&e6ez<}{tiG_*cNiETm4FRw>vKoP&(nh$ z^aKEGt3hA_${zyhrj99)zoLeU14PSLmH=gN@6DE*w6rt8GzDmuk3z-d01XPPtu}zt zh*^~T(8U^gPZ2zHCoZiI5%457{m%^w-{}He1*aRp)Bzw?<(2@48G(geYYpnHE)TAc zYAL(f?{CgzUL+wRDtBGgMmx!)NJvNuBtRLk$!m{okMGW%n5dtieA(%yq^KAKzk2ES zY8VqBhyooEa8LxU1DY`2F*lf(pC|7261#-oiST>`8M`buKoolihmDO5zts`W!wd0G zPw7}FqEDXfF@%xI%L3I5R1#2xz}H;@wiR#{9n*l`1090f&%r#T*l42>!7ljXZ{B=+M<{_R0hq-N8k~X98h@UjZ>gm8qOHvz@GI*<;7J0r z3CO%QpaMXJ95}fcNFh*&jH!W7i~9V$L+t{DZ+!l(0c|fwHQVY<(Aj{p0S!3pS`414 z!cGu#0%{Rhq*_6z`T5Z*Hx(5X+hS9yeVWVBkTj@sE%zagK~HK5h#ED=&J=h)s{`l& z8JbpyB1z1x^Ot@%GSt80BN0K(p+g`zSb;H0tNo=&huf>c@6^k8UJ2D90oGG)9)Mn0GOxbvHiL5&0b7_*c| zb2m`2n!+|i1-#~6_k53ry1VVaz78Bt+UNofJQ#zo&XPI z_D;4%nt-h=@}WY0Qw{=?Z@=1u>>_0Z3%7XG1v*-i6S#HDp9KI|d=7+n_FIt4Y|fkJ9-beKwiWyU zbXQZ@c@BP*79a1jJ|WQc?D_LbkxP06H_(8;sDp~lYDjRfwKF|p=zdrE%e9#{<3e&8 z8bF_&(5Dz)h=F4}o1H|0*yj2sDE%^>yl_sOf>^GU1>@ z*xcbDgzSOfN#o7*-KSs&4YsOFOx;sQT`BPX7d>4$+1a{xz0p^24B};@;TZ42tTPsv zq+m;)U*?w6Fl}3&`#mBQ+mj zN2oH5hikU^oq{t)p!#;EVB@Lnx@~XN z>XX6?ss^C1qIO7}8xe$a9kQPD8BkF4vmp(4IZVpGbuBcWa!v+ycCw=i6!|tj;)2a9 zU^Rhw1j=+&rw0~JS95fDE6u`~MSUM~ z=vRlTBnoPQrqO7LGn3#oDV9m(81PVvir5p>e1Mb2KOumS5eBf7B@H|t&>dB4$|bV` zn8TbUC_`w{kdQz)zin@AIXOFnnje{Wr+b299Gec%l%e}+FV6WhBjKRNm!K~=_;yI` zpU=Rm>JR+u2rIN<)BdabA-WlMpHkq%pws{^6b}U)^TC63hfkjL(d4<{+>=?%ZQuc? zoplL4Rs&^)jphmqU~|<<+|IfN?Vws+ng!)gU^m4jwW>HYrh>xWM>qcS_aO~*_b2{W z>|$fX!WV(tH-6UFPz-i7(DviZv0>+BsY2Th>Z$&)uCA`|(tC%3CPcu#!oH4thEt=;)o6!b`0zy1fgo`wwpjv#pT%JHzWZakFkKNn#}e7_jMOAOPSfc^vW zOcp+;kj?{FbQ5|f9{iTY^pe;SiG6~Nf&>p>4_H_fAjf~rv2$TP`(;Hl3y6R>pT7B_ zaSx{8`ID83Iwv%KwzxTKRw50T$wRH@GMs_X#N>5MdAHX=!QQR-kpk_eRCue@@{;Pks1c-n)A4pUFi)KyVTrOhCbF2GnY$v>|Zt z0hX~=J^uC<)Ji&qKsNwu^Iv1%1HaMI2Zor)f&@QSvbZ`)_7!LZ(9dq-NrJXpXJKHt z-)Q^6^eH?;+;^h4H+tT<*+aeJk<9eDfGWp7r*h}d3CV@AfnpH{$7fIt2K{O3>gr8y z>)CGs>xaq89vvSG*^R}VPVIw2T1!g{=&=DM8skVBWY_1UwnP+VyH6sEb{VwO~ zhHjgi{zbu3GQZO!y57l+FM*8#Y^zl@L;$qcX^A|je;m*SOhV8))=A02hjGPfOVsHPBU@Tdf%662 z$zdR=ov9<;mJ=c)uP+lU-&`L6d5!igK(NAMJO>=o14VI6E(O96kqt~r<3<nsWPcMkm3vNx5}0%}UZ%jKRs z7Hkraze*l%&&vma;(?)|A;={~WdbBn>kq>K<4;ac1*USuob$f=#}IVGY(SwEn6<^q zfiEIqYCF-G?UXtP6%#YG2?r-5w17UfE|P7ciBLHN#C50zY?bm<%5_6_U=`YEun}KT z7q5l=l}Y@ zl;?rQhe^!Za0m(2fe1pbQ-hf_QV<9OdyjIp`Ml0uR_Y(T{U4hKP%GR1?BLy4(h%4R zs15)O0Ibq9`1jsE;J5=KTeti?9ry=ApMd#`Dm0lscwYFY)hi8DbZ-tTU@-5UXGIk1u-UKKnSxHPl- z!!dT4<1(G^;5rZjbF7T~b^-~lBjBW5B^RKRfLK|7VML%rfA>8|NOHgea_d*a!6Nrd zfok5Ehhdvv1|Ay9#-USs+cgc(xW!8g^V1?HixP}VLj>Mq?PE2zNli^nm^N6+Z_oc8 zbCm0w2C?ts0eb)*_m?kUKJ%&kD(}j1eg9S6Wnh*E5e>q!s;+L-N~W-5RV{4D;`dT; z(s*rR2^{1EkcX1=fh(ii1CdGj%_Gq`1soALSfSJYkHDMnLI~pswMz68ZWn>Jzhd+s z1>bk$<0(EH04X)$21%R-%r&Yl;h~{1n63cUslT$Q3=C7j9=Op6@E(}e)3mIrpt#0K z2H7#Gi@<;C2)a`F_&}5ET&`D^xN(!4vT+i;1cCTJ7Nu$dIUL zAVQ&yGHe915A+cp>By>_}QY4u+p`-yJQe;lv_2{G$=ldJ3>%HFV zdjC5o?BRLt=f2lxeb!nZO7${XfA9pxXrn?ZL783?p7Aag#CwR>eH6mV7yW*}7KMd{ z5Kb@Mc4aN<)Kha77YI!;<`3I6MkR>9<2LCNUqnh&@CXY$Ln5iQy}Shi&kKcF;OW!c zz4LOq3b4~xJ2*mIxU*UCRCZXr~??{f@In6paPze*a?}rVR^6 zcM0YZby?@E(d7@eXpvro3w4}#-egGA{8xWCys*)J9rH}}FtlFB`%Q789SIUNI5P4D zT5gRmxkY`J)zlrt@XCc;j1u8cS0CqvU&}4n8oBlBONTC zq2=hUPPjro_TbnAD{thskAIM0i75PkZY_>H1^wx1zrgUX8%JmYCOCHf0+^#Y00w{HyJV4v>VL+t=h&1K;W8T4}Q<*ax`hq@Zl8si|3JoE;`<35$=@8G?v#?BsWh!@CHq_c*I6Dkb#^ zmkqRm=;7OhYHTS5U(Pu3A)4v3J74g^kg_lO*%cf%HCgH>gcXG~aD@=5U=X@wi(5}y zN|{tndRm%>w)T=C(ncr+=J@NO?!}dO%x6u?bZOrSh=mug&v8GDE;%Y0g9|3YG4Nb^2+))A4X6;cmgv>OXV09Rogp>2 zo?Atx(|NYTyYZ#B_r-yr9x`350)QROr+rSUt-wHlune1yV`W0gLlBXMD5Wv$^@GM0 z(>bTsk0vEPs~*v!0mHewPO#bXa9g#?7QJEu`1)`%&O}A=ZXLmIzca$W&Juijv@lxh z^YXric$`wTg)GvN^QS73d)OvO4_hfXSkWa*@Cb%Px9kg4wSD)<-!2jzH3J}ygiUlL z;~Aou88M-#z22zU+uglP|I*C8yzE2Ug z>c&-0NZCSsr~6H?(E?uLy1j^31K}k;Yvfr&pAwwbW44Nl3REXag_&f$WDO z+Lbnuj@B>v{25?&ckBjC)4h&%e`UIr))ES|2sV%{;o1R20oEojrCjmKB2|Jd0PB5o zL!ir+O03YDPn6zi+d9E=r>F`}a5w@EIfFg}F$0;krKP2$Y3|)qE`i*Qo-nr@-?x&d zGYG4Z;swEu@S4BCFV+^;P9F$eCH>gpYU zgjugz!GAl&Vebf84zo?gK|?EZsFlG({pV9DZjQZ7cm-llK2;hP;UC$2)2_uQG-}(=^+$mt{t4bF^1-ES37L%u6z~G=|&38li z8=j?%gioP&fU>ogewr>VEnOp>%0IQd7=pW3zJLbGCclsf^%Uy%^s86fsXR-up)EIm zG|h3E$_ti8T3lQlnlH8)luB%={d*Q4L?t93Z~-6$W|6{MK*GAyew{U^px+rzL@hD| zy)-{B@80yhX3tNrlp5A@Z&&K^2<##dj&7`Hm(a_#ll(U%$+T*q+XzV`~>E94W1+(C1u?=KIm3N72>3v5sO8 zQtEa$*Y{!xhicTKqw5LZ=Wobx7NSgpC7)JSRu&guMT;hV6=k+~_Z%xXrh$8Ko&HV( zz-)0;lG=cZrk}RgRr*ohf4B~`v%#_mQUU_3kYW1 z_1I`318_28K>1(zr^NN~k{74`_2HgU3BwPhV8;d=nv|u$xd(}vwzB;7dz$_R6iPX) zn$VNZTBIOW&!Wmi!fS5kP!=GpyCTm=D+bXZQg}qfTr^lXIp2W?e)oz8~+)GQlr@uvgQ}o=Vib;OV!QP7aWmqD*IO3KPlr>x1A| zpF+8Kyl4216U*jqz6XC#i)fhdExx|I}$a~ z5s75m`Rdgx=s^}c@J$bi(;3iGc%eot^+pWl`1i9DfzFK?dBq_~}=sug74Z)_eB{CZ0s22v@ysf| zz$s~JYW{*RzvcDHy?9j^y;<1xOjLA3msj0(lMiw-hxRlbdgW0c^FcueHs&1`AfZCT|Us8(|az!zr-ydNnpP&6^PJ+^CTiRHWx?*2iVZ+8psENBpWBqKgKJ| zYUtRc1@c?L<7tEi0pZyftPRdYqsS1u?@2!7aD}+`-aUY>G+u;a0qW0g2L}g-{Jedj zP|vN#ssbgUbJ*XOSQ#kMxBt zd*VThpDlm*)3aLPHE7G|H?>b*>-NR%y=%3USry`Bk}O?RN~afE($mS_rO8$Ukq0; zlF&R&WnsZd8fI|P?aTtXcj$>j6MyTqo7RfiDPO;S1y2?_GcD5kd2|beUalNUd@JzZ zI1qbUD~s?L6E5DgG^ZoD5=1NbMMAFYlK=xaVqj>Pi#9gOC7>?`IygA9AV}+PI`0tc z{z;Bc#WQpTuy*$g)84Kwh>R^@Z235oo!!1ZH%Gn}^lG)ta#uVgOh*+zi!36EELv|> zG>1e1p17=g@c|CnLailR&Z+hi)k!M|YS!!{U*3TdCp&GsZUO}oTtW@_UcoV9t7+$! z?|z`k4qTn|{TMSVIH7aw+Js;&PjXX&cDW#=cQ4v}#UHvMuxY zedmeyR4r=PheHI-99^Gp*TI83UBjC3?0f4cd?JJ2_{N<((8^Xo1(XfW9y?|Jqer?* z8ZRLgW|Vz;bz2|pK-{Dh#d2tLn3&w({9IUzRq4%Vz-{eVw|Fs#bDywNbn5;HuS>N% zvg{18m2!W&nuG21R>ci4n5|e|cnkTxx==#H-~=))P<=6tvVGT8Skad+*Db6ua!)0v z?N0fC55qvr+>%Vtutw>Y8n&>MK1E|ACQPuHq)+$Ch8_Hy-WoyoS)$^^ZhM0@_t8fB zqlZa$avM}_fsG)A-fkMgK_f3*dmxTXBc0&`*Uh6%@4MAA9}+Zl+FsqX4oXTAEsQF& z5vBm#TKNHrp-;D|Fo&F$Pq|W@MY*#h&75&|g#`<5c+Xw*E#nb&Tl8_g89B-1*8Z5R zO;W_3Y{uc????9c)2VUvJw=GC;Yp0k70wr;$)lzMo$m9N~W*m@Q!J7|hx z238i8rE{mCBL`yv8!*kx%Pd& z*mF?t+M7*9A=o^kt2fTNcs|>sKfUK1gf)6lE&}|eM>4a{`t~kBnsK!sO!KsmyU1Tq zS5s@bwReIY7!L|KMQnn3PA%o1KYxY@9sNRhOv!or$1G6u$zG(kr*K4R0!4cTd2HOV zby4Rug z#14hH2JA^WI(E_zFz#nlm5KU3)YSNy|Az_$lCn;d`M-mp=2*SDoLQE zdyD!wIcS_57Z7b}NUvTjhJ*db!~7IRKRA5KXU-HJxii16qv$Olz2mkJc)?Q$a>BOy zs9GUvj&Zk@!mH%|zP{2DY$`YNY9G%>OM@_ku=faU%}CsLGxDyI3O!ar(pyk^%)_ygU+9$;kqaldgtvLbyYJz#*ly}snV&yZYU}a|ZbPUw%{-YS z*(MZAWtXOjAf;)smMfFG8B4KBM0Eep%TX;(k!YI~9vL}rmnMbyog&Vif9*|TfWGI8 z8%KciuM4yZh zXSX#q_@i+!)W6vJw^j4A%KP>0pI`<}L4jEyYJNYfCbTc3dW#pg zapw*77+G4<_g6sBrWTWb3dd!d(rd!R1m<<9$z%GMh22k5y}OKx6UH$ z&*?p25MI^Q0W`(BMt++%!J?ldLV*+lzT6qprp<>y5Nb}s78V0_qrjT|yUfhYkP?K` zR$CDi=9e#DaI!r$a>z-Xe+mXKNEqrgPF5EoUWZVCLGvvTcozSIzN340Yh!zR9S9si zb@{u1tR^%^OZC3GXN^~fpF*Ya9_~&t5?7~3dKya zbl0-k;$5`Hjdg#mHOxi9H)i9JfFf?~`t@Fje{u?1y8Rm6i(r-!O@yR{Q(w(-gn(@T z%-mmbiCyC~4(sV$ORg|5x5Tv-T5IA~)V#6W1EpJ$qiieD()97cQC5vV0eswIPOpwI z0j;$}UjE$IfSLZaxLOtoWyioj$FUgu-?_7nmvj2;C<4Aiqm^8rpPz{D;lx1OuEh&l z$9=8BYKtu_76nBfmbe1igI(2H=YB^jcR`EF+Jav*on={j3I6}K${FRYA!loROcH<0X2tcO?mv4C- z+*-&<0=(o8R3{}~`-hZ2edbI9S%>x&MDOjq;yEpeUeB>wBb)%-q9qM_h9>|xb$lGv8jmoW2d{=v^z{DRqaN)Wv z@8R#QTAf0UG~ke6<+Zk-dwaK|7g%3w(Kj#vz>MjZ!iUo9*sCX=5WcEB0Gfbzu+*9#k5noNKy>nRlr8QJZcA5GSq)Ld6_ZtkgxJ?-l|<=j`u!ED!c2@$I)QGsdfcISJFy9QM2LPjKgtuXTUVkGb^LNvMq zq0NV34Nq*?K_~AbKPQCIj}xkMbp?yc$aF|?9?J)+QiU%8A>sLQIdEX@;ZF-b?t)7m zrEsMu`7neP+~>(4%!8a$NtM81C^6EW2M5nyLSaC^ZCR!92)0o=UD7x^1J9SOC?Y4k zOX&p4dKtw5m3@%pIA`<*RqBGo%~30f6{@8*h=-?|Pu!M>CUdR=f}$@RfzA9gf5GNf z)>p_|!Unb#wxXl4L$KJIEtcOyPJywaZQY#t4QnhBKG_}*ZObkEQx3Gf z`O5UykVnHzRqh%Z8jANUR+WI=wXo3tlX05oZl0Jg*l>X8lDA#0eINSG50~u46+``( zp-O*Ol8tJUQ@Ix`XnX&DqZ^(tix*doUZ501Um1oGu+Fgxh8H(XWo2c>5-hPi z>Bd;G&bgKDd0uiXu*PRnmqz&fm-;ljD=5{`zRIwM?*!O;^R-LZ-kh8=P%yQtCoPiM zGm{IJo6~suO9M-{(muljc2*u{9dTdmZ>iQ7i}=@j{4?_CjV%}PU^5OklcnJa$uM0Q z8yp;GB=i;gS^N9=UH5|`L~zA{90p8gW!C~NfB0-pq?f>e`f;;{29fZQd#D$Uv&%(U z+%G>&*?K`npu8ARKU($g!gMU&rpY%9i>T;uIL?Dj5#3OIcRbk8bd-1OmV)~SRUvLP z(VzSJQg#fynl?wA@LOVE`}pd17qqkVK2k^0Q^H!@yY?MB8e?nDX^; z$H%94LXBvXr^33#G0@W9PU!miW{X#h_hi~OQ0QNuFuPVGiv*fk{p5KFf5*OtKFiGM z)9-VMUk)DUdB#VWvPTaV)nz*~&|B?6iv-f*jCB*k@ZCp880?xF!@+5qtbc+7;O~2I zTOs}7iPG`0d;&~M)c|FanC>kY#kPN=lphq`xEJ^5kH$OX(n#TF&(7!LJ16ixdqKg- zSvbzORrNQ3yYRe2F0SRmIdd-7vsf~btk$Q8vHpc1V~7{*!-}c8yuAbmV}5=kAkzt!xeo;UFBJt>$7|05ty1MjoQo-a2Fjbm9-JqITLP<%< zBPfiHZ|rwfkGb>spCsjCP5S)4J%<3k$K@~=Z=)Z*J94r9-vq=z*3%yZ(@44Z2dVcH z#E-+w{QObB?wYatz|W;R&Ki`QLl_#Xs=)>A*n_UfS=V}n_}JqtmWvVpw-|p_(>Fe+XnAJ|66qc2HfROP9g0>= zaBe@FC!QV*b}_x@X36@Gu-)oD3>MnBvLkjLA!MXwA27GyL4+RqfY$<8xMG$C?(#7XS?>5;sgh@3b=_mwa|Tzd2Q z?L%7*MEor)N>WwG;BUWTnLB5Z{M5Rb0j4$}Z=7K-(=7bVJ^sJt8r9SR{ZwXkUU4EQ>4 z>9*6?M1_P@L@BB$VIUYK@2LRojJb+^gM$^Tz=rxs`euDcA}C7sR8(K6tRo~1AIyq^ zUnE{Fp!u%TZg6t^>s+q%s3UtJ-ZOYL7*5dE-%u1-Jq?3{C%ZNe(so$x_HoE&v)Dra zk&Ch^?8DD`V)K?Qh-(kIaKRK@JP7FG$->P@l6qKqlYo>65b=yUG^XSQ--)XuVUT*tC&xN_oYP-rj_T&Nf(6bQXgmNMjGyOSkG#1Lz)ih{L zls+1~An$c(2;XiJ1(EwI!Wz%Q&UZsQyAR8ieg5)$b#*b%)#e@nAKZS-(1dy4axM|% z^bCBu(?LmqbOcs7s~D$2*uC!Yt+IV2&+FuhgTJ(=VI=nN7YVpPh>*?isFa!3Db#rs zg$SJGkMx*BLl#`4b#`~xLB0wtiGre{#`Dvl`Oje&S|=d+)Va5v;MwK2G7@x z$Jc92g*llhRA4*VNC>}=;$ala(&@97gZ>3hz#U06a!VC?1=$>mhfBGZoEx+C5m}lQ z5nY{bHRFyIr?_*lq?&|?2#Q$=lqw+SXAZLYz<+>T)^K|(BCv~^Dc}1MpsD+ zBN+^M_B%(cuFZ7Vz6s*BsxWR*&lRa#6JP|~0m25#c?yb_kmDX*#cS*Wxig`cgF8IF z`gKDq_8@FCDLKfjfzs#ZljXt`FzlfMLcfAd);Ui2SaL}GRB<`CgaltfKr zF~g8R-^4)Z;TOPdw<%x|UzhE^?FgH$33gTKQRf0=hVOk;Z3cym=2lz50Y&LLXPx(7INPe#@bhwE)0K#u}my$K{;W6^OW}M zQP;k(eoKFFjpge`C4s$k58MuV`?HOc={BwJvmrRVOzkIXpv#Y7WFbFbtWoB983?ao zlQ7!^^y&sx33+)mF*>p0*pW%S$~NrQty|Ce*;c~=1jDT@4&{iTT-6m==QtmUwkm=& zpoF|Muw^G*6QNCDzqZ>^G7r4n(5?s1r!SH%u(_iQa5|qc@t3FCr)guOLrYizVQ%fW zbmwxKxVL9=tnYi1()u3KFfs$$whbRhk>&e|jubl4KnQSsT)Kv-JrD|Q-@Y9s6{?gK z;K2Xqk_rq`aomLq7eMC>A7%TigK$LGn3{|)b^ZGFo=H4^mL=Nz)!4WdAa4aHHDNmg z3^mcqaCJO*P{`Zu?TLAxi5Kzxy-PvXT?Scq03X_g5BS83#w!5-?PXl3tyoVKKxn0p zOAPZIsqQ6z`PuFm5A^cbeJ*b5=N+dL{~y@$CmB5vPyI)s0nkm<4I4Mkcw1k)lxa*^ ze2Oy#YTG%B)#28_qG-M~i5EF9zqh*q{D0IPxNJ=$lAUyzlImtD&m99L(A8_369%ys zuA75}L(DW*$biC!BA}w!`|1!v9aq`ii$`M6_>?A5!~_L#3^}>D>|x74yV8nn zXk!w~;D<9=PWC+^y`rZW`X?GW8m9iKU?3V-R7Dz|2Y>WruodsCK5+104O05NYy^2G zz|D?JDXquA8Dn#}4tRk5gwswLE3>9Ra#^O z4tEQPxXQ?>^Z)boLWuz@a@=FkqaX(B(Z%_xU{TI^2xtH~9bVf7R56-VxG5oDqU8=< z0w;?k`Tm}l4%c_xexPa#_=86@@YE??SsnVP*ExfQq8EbW%lc5T$;CIJYa!t*l9gTTB*O_RS{QEpz! zb`#e|ACC2LH%phur_`FF=s~UrXG&b0VAaMCiJmY%!?vLk@*#OQl=d0SQPKN9V-X{& zTKlEG;6$wbWHpJR)m$miQLI9aBPwM27L32}lc3lw^-*m_^M?p-E}U!hF=iue0Bf@- zeCaL3SlEK#)*H%09p7tH0VWfvr>$DF-q z7gL}`JLu$uu+ZJe*urD6cY))Q#Wd1JLhy>BBz=xJi?}xQ`-pa_!&4hzpN;&p`tLn! z_=wRepfB=rFky7eZaa!Oos|r^?~Y zm;)XNSMDt=;z$8QH+O(tXHsV>*qvtgo2a1)uPfk`zB~A%zm+p9Ip@q#kwRcbL2|O# z&}#NEI<8CpVXB*>*M1qctJidfw}>*k$I5_0IAH+_t*t*mSB}vZk`wD#PH~suM8-@| zLLrHs9@zcnHARKkW8VNbqZOO&ybto&??8fRz>iDNZ9QTpr54)U*7gde5{hV>f8XtI zFb1i_vE#lF91ML$o*~*??5Dz7##5LO(ujfg#}t5#e8*J6hJNr-WwMkfjyrYtackHSWa%QfJ)1ldxbE-BLze*?;WR>c=suZ zW27N~r8n-c!61U8a-(v^5&Ci*<-@p&ik~Nb(KzSRPa(`#Y?TA-g7wT3^khdUx4;E* z<%sVikv8P97cdcbXB>IN@6s4JqADxHYyU^){q^hD(3L?t78@E`fegM?%*@CQ9=|O} zNK)n)pharx*lb&UX^Jc$xmDH7J2I^7l;%Ldbacg74!&i8(7t{8 zbS(mE+n~1LZ_@}*=Z&{N6_o_Sx-e{VhNp6Pw)V3jr$6?4A^k?jhn# zcBPsL7L{w)s60>i`IAn!NFt})U^PI=+qWoXGLzA|sj;gI3|+=ZQ&j!And|LLmIpV! zh-eeEuDL%(Sh$oDhc~#sY@9a$U{px|RvWUgL2}&~{SPSe#p8dfktPCDo8M0j)DP3* z4S`Wz9+Z{!fjas8Rp}^b4di*FQqwB8@rnD{a z?o$$^^avJ>du`7^#TF3Y4yF{ule|mYd|qA+MPTFkGJ8&EKg6+whV-UDJQ)3nktXqq z^`NO>Frw(d?*WZ9fcV_`^Kpbd1bw9Y0S5+p6s_&;ikQgd91J9i&UoR&hZaBvP6p_u z?@&^@w2h7cbsHT%TX1t=hmaxMRy~KCTh;GtTTK^8r=Sw1?>^(-QwUNuwY8Brh_{y4 zc=ijo*=|j@ECiM+p9S7r9CBA@ggFobC-5M2MWun}1SroL3hUmgDvGE^3134^}Y%h%D--eA7T zFPNB?gBY*i2tpiT7j7i2DFAvdWsNeEjDd8tccWd4W`&7|U%+1zQmo;S5z& z3YtVk;G%UCAnHQBRrv{#D~^{`TUo!x;{JE!4Vx6E{dj-us~=&Nb0bvuP<^B2fH@Lz zbC4(xzR1m)HLl=hhW$Ev3fYlJO?DCAl@gEkZ8i=oLkZQ0Oh!oe?OcBU#58op* z4qpQi^M-Bo^ac7nDG11;!#do$ElZuq;dDuegyR2#*T7yHNzF#qSpW}~;H}X^513|T zl3IBps9H5#2nSSQ=a9id$5EUt{`AhRUlT(JIke2ZM{a`lRtkl&XqmQy+!2$%Ie{634=g1dxwFK3fTj>$frY4Z< zgT78VA9h7mqG(0tg<9m{h#QB4(m;9i5jv&Uwde5wETlk=4`hSzltFJ%dSpQ^az-k?_?9UV#=a0a_Oc`9W zMQO|aUd){TvehSPM!-S^`@i>l#v4@$_peXRpUSkBHYh-<#yE?Nain~)*wCaZp(5`v zd?hj8(K|yULwCz`)MLizW%5^L(;@z?;n(*j3sd@A&GBzc%SI1vVNP)c+DdlA2$!eh zJllAYvnuAMPF%^2qbrE9d~S+RmM8@&18Am!y=bqy(|f2yu~#58RquVM&iXPA zyfhQH`RHFL=+Ue9gNuXz85vV8Raf~ncybVIy1IwgQ`LEzJ7R$2Kjzz{D@QdUX%BkOBLknly_| zkc8x}(MgUR8tlm1q^^#$-nU3s){hIV6gV6H@gDw;4MO$~URzA?*K4cL3sxijxuDi* z5V|RL`y=k|kxRFugP2=%_l^(|h>VdXtI(n@Pu;q7sObqYg92`{`tw97I3gwRLbxf; z^K-6)TvG1?*SubfjLUt{?#b>gZy>^@K2=_R0WHGHcHBJWUvTg&X2!n&x3|YW+p}Fi z8stUw{rf_zR&8xBWT8ZrtRLK*rr3hfbQKO>GwsXQvptphDH*U9r_`9LLvzcqQ2tRZ zo|Hz&TMP$*7qAfz)_e7Hj{k5*D+E9gL|_ldU>+l-`{27r=&R{}0MdfrVjj>7+JO*A z>X(2r0;)mz-C1SiARbMIuG4{m5heEdJ@-<6uAijijGimoP&{GQtwPW=I zoDz`gG;^Z?)^=G1=B$nB5BPvLY#7ONj2j^Ej50PxT3HW$DSacFw@+UiMUTpi)!u`I zlEHKAH^I%1!HeFS;4L*kajviEV4N`7A_076sNRW5fSpL?f5C=n9I=BG-IUWPkn==3X&Q{?eHcgeS1lxEcDU#u=Q3g3M8mb_;~>dVB1}B zof;UZc<|knRpk{GXs_wqLC4%rmCBdlzwmNyW)j~sfMReCkFs9pdb$H$Y3`wslq`%0 z0xQqUlg|Sn6k}v92P=+ta#E1fDA zI#9L9&i8weORcm-oP*0UPrWa`(Xi zgJRxhY~h5XpHD_mFb>)Qx@m?Hkyv1WDAq!+>h*WY1RD)OvfX9sHaeC^X@zqs`1o6UjHGuhYDg(6Gv#kBqH}02|5GjV(YY1^s z$E({LWAK!wlJS5Cwnwqjs6jzVMDGCh(#v?R2a4C!i}BIoD^~4)wZmPo`-Zi1|J(_- zn!ElCtUS!Vx{0SFBSW_HHB?F zfzthu4wd?IvlF4sY8K1EN(TdH4}GxAYGC za;gDNDY%FYA=!b76|+%7pLI8v`D9#53nUC52Y)yROY=*oVk%!4p%VB8(@3io*uWEy zJwDz30D48EuA1)(@|H{Yn|geiTEmm*gjmbf>s2;g#VABi0FpSS(f%$rJ|2+#OYYYq zE2#C{LG=wA9-v6CjHI@EuIaH6W1NB&%6(F%cMdA(kgY* zB)xaRg=zlV&CTO;*DP&LZ+QpThK{}H!lKxRG{2O6H*D5qFYjhAO=7=oXJcbCs{=K^ za_lJi5xRy(J#z-H`3)-%57MSUK6pxs2Ll^V4Nwma3Y`a$2&qD@d1xx^;;p?$&VgnG z&y3t`B?$@5Ja!-i!BMQ#u!YY3vit%Zzs{dtxkAy_w(Rb=$4cM71VJVC(S4aYE;;5y zX&^prwcXhPIn@fmNT5V#M@QSzxcjJKF7zGMj7W?b?}R8JO>H>73zKMe%3g$W7_E{T zrMQssj}s7&L}&g041!<3%DO3wjL$c9sRBYRa&YKCh1cpX_jTCmXx+FBYpgJ3fcalqr{cAOsciLkmqM&}m#$%L1w4+O+kjp+~cYtnyWNf)%} z5l(xlI0)(L8rXBc=D3<;QazUO3!(-;1mPv4`Q@z+05vBg-de3?m@_kO&_J|@2<0bW zM8(ak*m=>bHnpReYm^sDB`3ZtwYRd7&NRcYo^hocu6!gOInlB?YJ4ay|3M=Tj)SjB|VH>)5oer$5)mC@@~fmz=8!_ zTnRklAu?J1pTB-3)MVxs7Ko_0SpE9!%RFzTh1%!xrHFwsb~>2Z*15V-18%V~gc~ZK z()^`I_HmpVZ%=a7BsDfSC+9}5+P4jtJz0f>=ww#D(9=ny;HkT8lR%oHD~-_1YK2R5 zAE6J&<1;PF%mWg^gMee8i4a~cFb;VGIO<~0fntxb!b1PKEkcf7KNBeWH!h%v| zE}w?V00(*wlqaO%aU3ik#QhDx6%w+)A~awTR@OEiAS%XK+xEf$1fDMtQQ!Yao^Vj| z@Feo2;9YKPQN`&p+H8Y@9y^gP1k;4i`_tR;ucKU6mT1J) zYFF;W9(vJz&mr)Fz{Pvroq`?8&JLKUUDQX5eEW+OzDlC9rBE2(u`R-Zp3<>w4~MZ( z`}K}SvbOdae}BDtOM}zWTj8?)LwbZJ)xRuES69HPQ>FIhir-z`rhTIx8rd~}7oW}B zHtpsxPxMgLWR?qXvj0$=ZP-AhB>qs0As(e}mMSs?#g%70*=9aza6}g%(8@Aa zK-92{aKaI(_{!o-b zB%04sv-g43nt|NGflc32KU6}6rdp` zj8gQH)YYAU9(9c;r??|f0&?x6+=wJ+CSqEdY<>a3LnAhL7lApsXk zxZe>&H>^nfNO`xwa%#PP94_IwtE(0_A$bl?BgR z#1=WO8FSAosf4GGbk3?Cs8XN3ce!tlr^v~a@WRwDFSuUNx!Zzho9dsnUOwo!WG?cU zWR4L*F@`f#*&4Wh@(65QGxwN2e?&rFz><;FlzqqG4?HgUqbI4oJNABCQPd8Es+3F_ zi4cNrI#}mtD;-H`rNg~3o4 z%eDPHItxY1%F5t=fgQmHQ*PN4>vhD?r;L-=41@v|`!YtmZ_D!wgjC-Su{rhU`N7_( z96tQzotpgzkcx!kz`mqHJ;yYn2Lq3i>L0GhNsT$u={P`aE57Q{iAulYD?Q`TDL3hz z#FP^pj7w{@qud1h<&9aCq?wLN7XJRx%#+A^lj0&FMg@t;4>k{~r<(PKJ(%)z4O%N4 zT`edf0FmlILSWaoVVOI9a8U}TMQ!nZ`1nS-wi1yo5V?s|i6$a8U<4m}!kCS;`~eJD z@p|`YdTr>*#4T7?`_S<-FbI>M>?{RF2_!$bCUjZNVu(a9*n!~coBH$^)eWg}?dmZZ zCEzcxHE2dk4Z+YHlA||#J@31wpROCI3a7_lCm!eL>*=8V1E;~chx)o4?aC{^fK|gC zj5cV&@1g*r-`V#v>uS&2CpcK@-8&R*iGfttb9!pgo5E)W3F=Tck5zvfyxxiD6Xk}W zvT7lytmTegA;k`OImte!I z@Jv~(YYkp@ZwbIP`K~h|{Jhu4Lkio+ZQuqtfhd#6O(a zT=e9L-vDYOoqpX(+hiN%M3ds`#4KwAm&CMT-ZKgOsVfMpy&oY`l;FXsolAVa|ShLziC|tMmc0Rp)(FX3ej0lii-ow6D(SW z^U&pIcU@*r(9a-ZTU0GKK%JW?o}kU<*GX4Q*|L3uoW2E!UAhlL&{)6X`CDd=6&y$cD591D30e2BY6E)lMf9T9RLTSL*Sb5H$yKdb&U*C|NqJ#*SDzo)4n~6Nt1e(-QI03Hp z=`lV`I%9S&H^ypf;Js$HPpy^r{0iOk!e^gp)cF~NtnP+s?^3vb0oYQtrxaXMC}UT0 z$V<1wTc=nqS?l*bv24B5Ysn`D9otXL5?yTfGHaRf0qBukxNa`!c@sE&ld9^JOz+{L z!`a2qaO!cmPTw+jmDrU0o@D>pwyTO;>CLM(!jnZ66=QlZ$Dq=m!KFic=&rYxM)mg> z`T|wi#h0%zanJbZC*>|RO(IqA)B^>dnn;;6B!9zq5Nkj)`vqQEkeCzI0$VM^2pGrI6W0QbTT>=N13;s|Ig!=914AL%2AEZ!)N zpqwW8 zq@mGgfAFge6uLx?{UpAK zeQkzNiG>AZ4olBv96CZ>@H*guf0(&ZYB$<8G_A5}o8_w^u#Qr*8^B2+L&kdcv zdhOfNM*E7~YXZ(J;x^J&l~7cyD=uz#@E+thTv$wKA!;nb!6(dHw(~3M zJL@|+Umo)}utB9sh(VWLzsreq<;JtEL#gi}a6kL#xRWS!?LDH0w&D^BbzR!MmtYtx z?2#~dL0wBjV|T>ESTfBwZDRpBxeLis+3=G}P-G9HfQO1+v_-sFP>s%&A{tBb>y1A^ zQY&1ux7>HnG4+Hi1@oL)H_(;$|BX~|C9@B_g*ljctEYsF?BuPp20Gf%L?SLHDY=L6 zUK(h@TsnKLP#&S* zxXajhFYCDqh*#3Idsw7q_{R0yWAJ!)uyNX9o|_Bwb4+`f{E7I4&`|w3{Hcj6&Nc>b zN%z}o*WLp$R*OiT8CDvK#-&L-DHuJ2{odN{Lau>YD~?ps9Qv0QLd}Jk_T=9#mfyFb z4sYwjn|LW9*~~%|!CTx-yw7r@{ne0Y^)Cc655f-S1-Z3?MFMhK4Cn;Nkf9M4Bs_9m zr|rv#QTCaOKkyDNBQ`1d{&9o1TQ8 z3i0%BE@JACGaK!=hNn<>kIw{7^)E7+siu?l-0_yoUp173=)~w z%7462$WT?%lt!h7efiDaCv07gQvX%z0sgDV%!v36-Va{YnLeTy_|ch7T3!+tHC5}^ zN+Dj!SA>-4wa>iT0z^v&cEVR)<^h3R{QO1ULP<|ylF0DpuU^C`%Ei;?);Kf!NUM@Z z-)ADZePO~|boUg&Xk6<8UPegD3uoKgcm*K7lr(H;b@h4fZa#M3kQ6JjuVOP1d~Up&K#bIOj$2k;#gq)7szXjO$noE8 zYP0_lE+XNP{}o89!}_nXA_gbip1G30N-eD(qYIo(0o-+ah#-N%sAt}Fjqih$5H3XC zvSq7#`bA)KAm}J_cipgvh)ea~=GW4PZVI_J0YG6Bu(HoSA=xfkcQUtkh3jl!cx|MZ zZ}+Uhe%v!J?854w?MKvw#gaP^h5Ii;iD{2?F|=NTfZXcm}f8jXhgS_gB8aS22O#jmI7 z*ViVn@K)omkvgZtc@rs3t->ksGcKv1U8%jj&pRuRyz!TcK*KQx&q$0sDy3bQHuIJ* z%;u~OoY~>d-X{Gd#i9Mnnrk+yRH?xe^Gpz5wF?-|n1@SzrEvKjTr^Aw$;1rK?bmh* zRW3FZzHP7w9;O%sIPB?v@e#7;&646f`WLL{8i`ZRw9M-k7ec`9IUfYJrqSQaz>TC7YY$3G;*##h6 zpIiKTY6X?MpZ6sOcvC?KR=fd8y2qQ-w5QSaq9ZETge_A7<}IU4(}2`yQ2av_;y z<@7$4jMW#25Q~i~2*acXK!;9@d}4K#h2CkWB-t~cI=ah^ZzREGW+oKDeZ^zePs~Yd z6SGOgP!f^px~5tCUYt>FMK2lAX9pQ?Iy$Z&Aa#Sp9tL#8%_4l(k@7Uf(z9p@gK%Fm z<6<2wrI->kcUh{`hIeX290snUmC@D=l5=N+MiuX(McRw?edu)5rB3JJcZ0)+Pth&I zyz3$!;B-akt8r!~93X`^8eyp1>HQ$S>-g$s)k&_i#6q?c%f3S(r={DTA#M{AW2f_o zKjhD0oY5)GPnL&Vf7@=2`%gc7^X~aHB{#Komw-2q?xPvUPlZf37xojLdHmEfF%n~` zV1e1kt;*7K%fhymaZkE>wX}Bnb#Lx8nu;_nYwdvm1HCD$N*TMtRM>W?2%dCZ9_C7R z^y*Ohn0;rhw6)bv_l~YlT^>qaeQj;Mn_XvFUw?AQWpc?BwWsT2)1NCi`-hWOc@8+G zE`A=#;7=yozxpQ)tr$EZ2J38m>WwE2`>PtkcCF^*gF4U%#2TYZw z^wu3V1$lce7F`&KvgJJoGEC^}zxP?J@35I7-inxj|W zH5N6A+BMgx2ClBISVhT&DJ=+_VQhg>HXyggA-Dfz58PmO0PC&%hxc!~c&;1#$wzl4 zrn?`Cj`O@fvP6v1^Cir=DMjlFcgnkW<`S$Jo+rL+St85l80sOq&H1NKA?oA3*5|t) zm3r&pDM)#_3F5gmFwsV>73kdgxqx?D+LLB;+^7ICijxmCE^H{hARvQ8;KaaHJuC(G z6C2(hf=QoMIfyD>wPj76Dn}b$_TuA&=l1nTNvVv)-09^D63Kdsu!6jXd+A{~Pl`?b zKV4;uR%M~>b9vK-py>V7tm}6>HM_SFp_j;rP_F0Byr(5~Th+5V3Gw5{7x@g#FWXAd zZV#I!r!}vnBrbABL|C-zA7Al6en$@dK^X=U+D>Pf8Hnxxw*Vm-8YkG$Amm8#I=%nl zNp{dZwrIbvbsORI2_f}vODiiqqj*0RE3tS&^wRNQhV+7!mZ!eE)0-bSsksRgZL|x+ z6#)$UTXj`XU0=SIO?8_Y&S@)0urVwZi5py8va(~k=B8ldEcdy{dKZIx4$;^)^*@dw zscpRu+Ue_&fz$rv}1G?I~UetZa}p zR#5UWk=j9VY>J8_*F4d$ib|47qtMZe1Rb+7)7Zr1Q?$%AU59E!m~>hF^X|}^?y58Q zA+8CaQlI7NQ}_Ey%}opK!4}?Czc7)n5(*8{qM4qC`4@Z=-fcxM^!6J0?|~mt>+*a_ zTj+W7>oNg(r-GUUuk$`#jY#1pGS@$7^^)c6H2k6y13p-n7ERUCe6GO7Ek1bUseBhh zWE+(M-5kUUYr%sMo0EXjdX&e#{Pl7UTMEn3#KC4(`WT%-j5|StZjS5pdH?xx+=V42 zP>y^BV*-IJL)0*>$zL?~%`n5bjcCR)IvS$ERiGMK{Nz)xV|B;`E5VLOd>W^Cl8fd9 zpIZzpy{>Vtk>CUFVF9iX>L3&B4Qmoof_t; zU=`!q%4wvQdgI0cKytWs5!^|W(MtV}D{yb?*h?3omP)5vLKp;41mz_ifkNn3N^E#$3kAWt8Vex_J7E^BPqG z*q+pw@-Q9U(KKdvBT>UD0?qXs5?BwDC%))=pHsQLO*Jn>goQOUH6cd(4vw-lbxvrv zakk@QpIzf%(y+y6$A3J3Df?-T*Pxg?8xvCp$_%M>a@=eeF@7!VVT4nGVfGO(mYiKT z=ncZEc*BtJ!I!xaX&X7c$6OI z)GwYIOZ(4do?i(KG=9f6X@Yk*zlDGZWrfdUF6+2Yz!WuTe^ZObEdDs+1)TfS&GOg& zwluiK-_WCL#TPn8NX1@Ik)9_hF4y(zfx+L1Hu?olw62Ihp6~*2{@?!eKR?#EUxkS& zS;}OHmW`BL!8ps*w|VE$`*5I zJ`z<9j&H4ciz0yj8Ek9-z29MZS9|_u*MBU$FS+EaAWI>O%{U0X+<+I3HO%{I-F*Fa z(>X#RY8si<0E?8D?J9C`R6hv3SHF}LBz-eNGbs8JsW77AmJra_&o&s(6)*Fbmo&2)VkJTBigX8QLxX4|Q)I5OdqM0gsz-XUS4RRC1#UWlP$$8KtyMlWb*I zqR@g$MIpxzO)T>y|#AAgEK!*th@RFQTJb=DwJ&KJ_T0HOwp5at-Gq8Torqt z7gmhZch)x>zm<7d3qU`fjR|YKlVy@OKOXO_{|vy~qvhe6c#$`3J<~~MyBl!2Zr-$s zQxk0E%E4nUXYM}7PUN_?p?wbE-4Rb0t^zRtd%Qs55+kT18gWpXIQKXRa7AQrO6J$n z4||D1OpXpmX7SZKw9E`QZ{FOzm&QyXd?<1s%yuZC((yJkKO|mfpRjZ;H0MSoqSm#8 z*3V(Qgk9O5H^=hkmr$M4U^OuxO5UtzsBAhwwldE=m{BDkI%=SR{dr!LYAXlVSjQWz z+l#QkMi!n09E%Twb2u67vp_#UX2ZRs)$lV{oMz4f$pTtqL1QczY)7a}OmN&`8JYx^ z0z{Z+ieMn1ZxOePW>E`=fg(=6WMdP~GVZ<}XBiL~+A$^O*<9NAU=&XtNo|KwwlX~_ zEFjPWyj4R1#OHM1+-Rbbe;(e)ON%3|90(dpurdgs|kq< zHV`*iUdefVUoIrq#wU%EQ&BE}7Za{WlHNq<=ddU6bfPP0UlWW>S*lTknzF^$u!oFJuL$pGnD!qR zD<;f^)bC%3Tm~{;@D5?sAb=s2t=+o>9(B$QRi^GwTnaXEb=?Z#!+sg20avcfv3>&j zyY*Rk2g6QWObi{I%Hhg?bssL54|HH?sKP~zZgE&EDmW#8edRo;@t{aVTo|w6vDekL z6&QK4!rSR8`dE}`J5^h48c$4Ga}4$^&Ru7q@^*q5N+Iya3WL|`^5tWdePslkam%Un ze>5~afsRlT&w22`RH{7tEaZTs9Do1#MD($Sc5D{g!H+(b%j<))+NPlQbN1}Zp!d*- zaq@*cb7N={Jd9U3kcvp51#u|3uDe&!okC=125cKTGOu$8d5!^rs9Mk{p9+1BFbG{sq{C6834g zTy%5yj-6+G;I06Supo2{t(~f-vzX>~cv6IP{wv7{>$-zcT@Rwyb-$3KdwYAsNC94g^0KmrL;Fz%c$d!_ zo49TKKRu!lZh<>)r1 zlo5O0D?SwP(Gr<=8A4>#7g4!h+&4yuvh#Mv<}-0x6+OUD{3@1qwyKJ{xLfPPzz5VK|kND5<_Jj8)+p^~v_dmo3!%s8L z()2SY7h+Nb?99>N@LnwN#0h8*+H*n%UgmoBv)9QRb>{hu`gwX8z|k4>UnmUxe(3Zu zW5yhpP&%H@*t~gaI^$+nHaTU^#T8g=y`C{QO^=!~?Cmh`(zQ-D|xOAT}u z`0*=x%3KLXq{-kcT{%h@n`=V8TQ4`?OJUD@VUA5!l7q-zXpOqew6uz3R~sD^fYQF2le_l%X}V?`7Y zTeIXX4a>fjem&>P6jDeCx2@`11@=iL;Ad_Gp+-`M5I@;ZE%4mAh3L0$+%FBatmK}xps!KWdXSg55L()F zZxql^%ZCR9>_kuS$I{G@roE^dL)!KAnXyLLnKReW=mT~9D*J0R%hUOmUor5nWlm{# zN*>T1-Fk&y&`5Y5;N-w%&aj;e#1>n-9%_gr&*snNP%5Aw?;C0ooKG{BUwVzcf0UVV zf*YHf2FMYM+B7Im?bFH!HueiQW3h*tTGLaFlVg$ECw&2>{Tzz|9^Q;dfKJ`rDu92; zMa%}#4SkthaIs_rAV`Z>yNc~lKb%&x8jK;ZeVOZrneiqX-(Egp*A!SjORkEw2Pq8* zyb1LKr``DV&L# zyK!4LgC|-ui+vh#u2+PO(K8HRn2EZ2UNGY{aPk4ps?<-YFc;=Q*~d1{&0EFF!QMqL zM(EkI@l5XFk&}UXV;2Kmfp~xT%*B@r{92d?L4HAvCzy68Gb|lb)dx82fCqJG@qnFq zc>pf&OQ-#->a52`sLOYdx})Zkptmo#TddNh}VH##G~3mZDbKApp(K~2&Q zi@9><*9S;&bR>X~ac1$vm$?&18FWiS);5_bS`u8pY)qtTj4v4A$1g`)bQ3VLMe9sv z1C#Z{JV?f5AS|*2zm2%D`1piz!rok;^(a#ke+^q(TTrY>7>6_cI?Z7P@ezj^`yiMNrgAT}tV%h8}C?!XJJBb%;2?-;z zJkvGD$IX2Yw|v#FGL#V;L0UFs83SYiY6Z+SOu7@X9>A@41_wf&j6_y;d=C|ZEv%10 zcowwk&j>+@R9&c?*{KxsX3H?)36#T4$iQF{hY9lF4^@?vzGiGUp{Wj)6M%K6)0l57 zE0OQHVwyV|ka?5Uc4EOH*-E=|7Q`vu_jAkLC8#be?ljIRijMt9CpG3rRfL@uFKL7=2({kf;>Om-p!(5~I7Z|5=Ie80+%~ z5xExMP3Hy z1&2YlcFE5B6Ft8bmo*Ie6LKej?6@K~3K;=gyL!78ZPp*qHz(}rq{`FUGqGR7vV_EL z^@;T+3IB5?OP2$i7A00jhbOiM4<u2Um0fYSB;#NF^WN_P=TVoP_k&l|0};r#Ds2H0?6Z|#OS z*CDyH!B(~U8cFajs;0zj?`*!Wv9Q)-TXD(ayiutkKNj1LD=t$!FF$&=ue`givN=GG zN_D{nB5w`Btctc(;3w!EQT-|0LoSc!^v*OHsd~y5Z6H?AqIVAM82`n#_$;nU~*RHcu_^k1g4{PI&D*(y-_|MG75 zKTb@#aDVb;05)1Bf$i6VFB}4NV<$kUW7wH`f-sBd-Lyvv0H$nB@S&>jD_-!c+Ovkm z{s2C9u^k%Gvm;H|CpLq+sIvh{{C*u*vgHE0dLnYe26Nh!H z`Rk1T`2AJI6K1X5R}?D)Lx3xem5LT{3WAVtVX9tdWIrv=d<@jl6H5RLDY|McA{K+3@06w>!@2-~;K)76qgOQz2pFI-i7P&o|Vx^S@Fk49h+N z381*<$?TTE))8Wywzjq*@@WyAsVJg9Vsc$HilX)3&YK%2$+1h{S@Z&V8-N4tSWSFF zV$>LC*jVy{otWGRtpl+}VeyFx8?CJqz9vy9w$j}=u?Ket9uw(I?emM_^;5*ABBR0} z0%W(29#0_{z$~P(i4FkMqZR1LjR~pgYGw=YT)-sLs_?$pi3$1V0Llp&9WUSKPoR|% z=h1RVueWTeMy{P@w)42Co%P0zYAtV1IPC`@g1~GjTBA~sA#*&Ww9=yVKwIzd+l-!+ zb<57l5DiSrl;G7@u>W^tw|vBzxUAOsi%cU7CZ4s&e~<&E&4|l9u)mvj>jq`LI3e8b z#_Fdrz%pB&vL4_bbRtI-PAoF5#KxjZYj(hN%9fux5nPIUhe;v z+Gm#N0YO(Aq2Q#icznE=0-f~Cg3+x1rUBExCBu&L&bE$<3aGnt54E==Lw#=T*d%~a z>=JXl->a>A!8_fzV@R&Zgawy8J3T559Ee~_*N^9ByU$+BJ;{0(vh0iK8@GdE&J+Dg zm3ifA-2m+u3jF4xE+8uCo>9^uCgp(5=+i`LsTtkBce;L=`P)-gu;*&n{Y7ZrY-Y8ERhCPp$CIJazjJ2X$Xi(B8yHi!XX z|Ia@#2iS~sr_%jEZg*bLiw0Un6ZTq^%ZGhq7g-W3!Q;-1IONAIePUfw*;a`&pfchb zl-OPTQx9&Yn+dPZkL=%$l!&;(ze*ECc%HSm3fYGgMS3~BE(wc zFnTsDB!qzB9&{}!qu-2N$w2AU{(4Oc9yHo&Z{OB#|Emk0_x|{Tt`NH6F&YIhdolF% zY4#uC?EsjUzvJ@vY#+Df?y$ zd<LeW|$7>WV0{e+DP9s7-`+i(6w;SSXp$|KZ9kGQTVPv^~) zl{4m*(V;=6`Tn)<=3G8s+@m-V$QwhgoXLjP^?jMPukcv45I)ZPo+$MqqX`-Af{m#< zli5}UR~ii%y1Z_XmWBJ~3Og-yT7iumyN0UAkg zq+<8gro9XvTlyu(wv=<1vm|W;N0ViCYIR6Q< zLwXac#75eJjLSx~;xFldZq(s1mP<(gUO)3t=AFrQlTDj9SA5kI+SeUj{{t&d8L>_9 zOSXqrYViENiasbP3;Z*(qat_$H}lULn8C&_y1eHNK* zDbQkV)yAGt$G`|flRXvWLY?4zx7JtGJO=$#>>BhaE)W%VetLAGYSSy<=Xb%i!gMMo z148BY)b@iQ(`2n+GG?p`)k|VfCk)c3uup2&hmZqIq z0E`7*UUM7*lNGn>nBaIjIU+X6s!1shFe`?8i+w?qP{)_e`(Do$SQANM zGS;nIS9Zf4fNLrm&~bia7{I<=q=F0I0gym&xPb4AWDW6slNC*`U`|JITkJTUg&O=P z?5)cBG?2e&z)DL>3Mv~9{@WUQHaJVA75mL)tJ00Ej$7eZ-@V%k$X6)9B@^u&Y7 zdXkfqhRGn%`CiynifR`=YgYVrKNxm2S%)bg1LZ5YWbUk+wfd!i+80Pi;G222TpMsj zT?DUUU9-`J#cq~B% z6RB<^LPA}G5iFhJSft`XqsE(0?rilA^L9#JmAefq0!m$1ckba|C&O#ix&k^z&OHY6r}2Sp1Uv$F4EBR z`MlJ1LrVBD!R1>`>XuG$V~OcJxp>7*n>K;Jl5%e_OSTXCG3M3(U z7>hoN3#p~!|7CKKC@h3W*p6(swNBzr-;krkcCbDjZbA{^ND60jK@*%CcNWmZ3+{<{ zd_I5|sHr|wyX+(3-IZv;Y94KA>1Nugj<fPy2O7HZFpS3ylqrkX?6j{>DYpMmoO-eToy+!`3>xq4 zgA-T=PFoS7j>*!wh4PS3@!hJ8Xcv&3I+bI^6zu*A_oQVjSs0;)VLLlr+ZxtZ@!)Pi z7azM|$7>|DtdzgiqCawn& z7!0P&*Exvu@^W(Vx2WYv^dhJ8!e3=VFq1d#E5`DvS184Q^Wtp=OJW{{ME!7IiFz;D z`8kz?`Hlx{IndUiY3*-|pm?a>bdS5!O-%9;nL68^bk3MD<7j9Q*Vll#_cYTd=* z+_ORN`Z>LS?j@)I`8Z((OXi}81F90KFeFWmg8l+33}`MPhmPOPvVkLp(UB&pbFNBy zDg#+35k85 ze=a1<6xB38y=I7jvJFhsO;{Pz-ifZvKg0h(uXGw5FL-$r>1H=Rd88#4spn#xE8={h zk2~s4Y?SO*%ZkeJiT?qz^wJYo)b{o92S4RL$jrO6E2zp^-4)Ul{_}J0QvIYuVh)64 zKkQBg!Xc4+)P%qJ^mh;Ssh$&+WW#7%& zeWqi~E{zl-`PCs3ga<_lIpx+=(1;}hrCl1pN{%habH$GZn*abbZZ9LrE$kGVg zl5|B6KL+JLNfT0-L0)CsB!}|;aoQo_aHHIm@S{N;K+EcGsEV^Kw39F;U=4wk z@$qNlZzMHFr}{`$7{jEnTRX4RK{ikP5Z<(SKkIMba%MygI%ghe@;*b{0n+xsexLXEa^k#ID=wOH}Z{8f0eujW4_wuVt{6pZcm(eSh{wIw zKpovW^f(3*4uLoxPVgTJqVMB5=(rJ||MY)<2!rOt>CMEjU$B=rq>n9QRq=x1gK}Xg`Ud#&Ea(FKsJO-GkSYy6MANo&!3+$;ay_& zm|oeR{L)+h0waG4D_R9RJ^TgeT#kGet{7+wb48ZBubA82>+uKKirvdAF{q%D&cI_p zSxAUT6BQ|ndeof=N2_6h5IW6I2L@ijr;r_XR)}ZWAS!|yN8kB}!i3#`npt(Z(@{!b z&}^~%flJM-7jk42;S%#aE7|$OvZ5!b1DqNI{t^ua7@lW47fW`SE|s3A>&BaH_9oIt zOU&Q(Z}qiB#wWd1Mx)(!ymK(}!-L5(H1$K0(=5-8U%Ds&K(fEsSyZr#Ztze)fd0O- zqqZ}4``Zk^8cb?rrLh}`Sw`H(4qW`=>s#aPovtEmM-^vP$A)}@pkN2>`8F8sxepPY z?5(NvL2anEdMymNxnIHabqk?-L|~kUQMxx!aVjc>TaKOCx~Li`oGPMx<%KO8{IJPF z=VMnaY^|D{eiI;$b1Q$~G43%Ft;ieNQ;ymmEQ)3_;DzP7*PyY#6^l``U{yJmWz;g# z0HW_JYKL~mgm#GHJkX6%waTRIa5@K43nbp^dq3&AA+24VvTa3LMRX?gV5#SKzxL-RC=(*K6G_h z?DtRw6I@smGys(E>d;Mj-u-&V~ zIM|xl#DoN4gxqN5O~*7ejy8=4ZY;)5BdGPiKX; z$CH-o09QZ98wDsjG1TE*FOwJGU=rY9G+ecIL-h7=`!-0q<`Lc<_0n@TyA2_7)2mV2 z9xz_n;U9Ii;}Pnf;_E)+wzlc&=w z-M2Yig~o{Y7m53vnY8O4>c>!REfMC;9;mf9Jaby-+%E=wMtRqGij%wbxqXQQahWgx zRYG|RZvgol^1!I#$UM;tdZuqk!3t}AWupwd{3pq&ASgV1^k^x3H7=^iAq#vSL^XRv zW6p<(P#FdZqzAwO%l03{u3^s;_3-}ThHz4@094gPAh<*rxs5sQ@ErLz?Qq1^;Nm@2+oj8BEc`>d8ZQUmLQ4k2scBoXr;k}7*q8HZX)lzk zv0g(0_WQh%8(TR)|c2wVKAp9Dh&C#Kk`fT3J&R z6rQ*kj_X4=v}YOXraCEFZ9jc7I2a?NoUu6qg4t8~0)NM)R9V>^{3kC@o@9Jm`qUtM ztwTc>>e|TIUxEjbP)=Cb^$q7+?nrg`^Xo7#U{VH*QGY{g(;wJnJ`9>o3fK%5WF*ed z43!GP+lI;YEpDcS@#s!zX4?%>x^?~`-0Bf2S?S=trAw1AFtuZ-w>FtZ(ygoSQQ_!L z>?k8BBL(c|Z`85#|`oebtDf|BgLjI3n`FkgHDI~d* z;aa+Xtw6c`HZjia+qY4{L#B)gF*)NXnkHkrdjfhSowh4j;5Zx{9kJ!YPM&3T$$XnZ8HU$YxqRJF{As?!skD-eIpxi--+9FZ`nmto z6+>1Q?g>n7A+#01nw2*TAiRepf%I#1?N~vrsBB`2^J6@1Q{9#FiqeK(f(w#@V(tcQ2**r6`P=cz57+h z+{!9(KAIU_AqRH!>9p=j4UfKBWtOMT>u7zRMel&{f>XZEAKLv&z>Fg=t^rYJb+*@z zRHdEhyK}y6CLM+*0NTMt5LULLE8@vG&kulBH(=X0`Rl(qLliP*p;h2;7}V03eBJ?_ z2!}RKa^Mz>ufas;)Wcy=+}}iJ;`qyE^ST<#1l~iLOfvWm@Td&C;8Um0ea(zQVL@-+ zu~(}mgD)qYmJ*liaU$2ex^}f_zS_|puSBVTFs?wS1hnfnaDN(z+VB8IhGUtr=Wo)=x8c^SIUU zJd6t?uDK{rp}`We>_V{zs9OYsCVaUmxZqAR`dzElj$)AL^-t-(H==71iNg2R9ZA1r z#)6XCz|3_lGE5~qwoEc+r?$pcg=D@vwW@T_n_-pm6v|)sdW)7A((*_;BXxW*$Ko@Z zWjj+nzbO^c*bz(5sky)#32!d0Rl7{Ormghrjprz3;vDDKpezXf<;BFr<{@D z3hdxpv>V1bC_0j{MVv&^1-AemTIQid8ZTe1){K&DzM<*Ms03&SIX+rS#fYBaRwwj3 zD3moCOBQJ{&=>$0s960)A{(HAT?d@EX2RUfOW_=8WhGgXCP&Atov8bZClT9IIW@}3EApO+p2A>Qhv(oX>lgQQ>ho=PFP*N{|7VTm>tE1qY z?JS&BF(D3eIk?=V!xk&h8F}2psBX5SW2h7XpOi7yJXQB-DA09sj$gr>WLjVvybau0 zW6F*oza}KB&!crkk}pW!!{~`qXbWmuh0h72|+0Dsy^f$h{1G1O#;Y*?HH7qR+C2R)koi zU;+{`%US~i2M@Rj;VmMK^{sq##t~M_Mam9u^4@2RmC0eiDg<(2_nu3p0h<;pCuV9Uff z*!Be*nvuVanX#N0z!Ar!RB7L?;)0;_7}v{`Y{4W)-C`*5xRbCj4v-$xVX}01Fa@({Jz!DvU~A&F#bJqwOi^<- zTA&)2BJiEqMGuGyLvPhPIC^fG=A4TK`g(dM z8WAY5I>gUGA9~bQ(KvSpXtlMJN%M((A zC%`~X1Kngdrv24;0UDj0OtGvrHVqtH^pYLpTE4+wXb{G zcM2xb_UaCgUj`o#=etKt8pc)yOi*#sE2DPTbOrg+z!~P+ReL`v%!p#&ljBE~b7vUnCQxjkV`9j1TX z=ouLvuLzjqn{mUZEps=8vZKd7419kwQ%KB3sFS@r?q>f#xUdWmqkbN$lAt8mNn?>o zKw#ZUValSKVS;_PMlx9IdAA0H^lkGa!`55kGE;~W)ihABC(d9w`s;CjINOt{-Bl&T z#R~Zq~ULeY3=LFLQHYuoQ*l2E>+;vq?)UI3Ob@W=`VoMNSiG7 zC!%dK&iRJ(05q>(t@3)E2A39@-TQ}ht%;}fP0RB>Y6rx#E+t zCjRsz^0CgBfPb8U8sE~ZEb^xZjh?5y!e}FCRi5nuA;m;~G|fy7BE(+&Ndd^>J@BI^Jlo zw{U8376RQyqn8yW11B?xcvZe$*=Z>FjzpNE?$2TWVN#4r7Al))D0a~comSV0wUm2ALr(tU9hu)wd4ej z=Ke)4XiEeq1?HLXtfd()N$9y$j5MiYPEQ;QR=2rWhGywAAJl+O>WqSc3@+1tB%r3$st>3jkH!%^$6X*>k&(jy(f2Crz>bz5p#B^BcO^E{~w5LFtGz zbZ@u)rJ+0a=~Wz=(A@phtD$xj`DxU@r2#83PKsDvelnR}@m$zqub%F1Ephk+S*~Bd z9+d}VgZkodm|LE-MTpmLtkV$NYWk!`-#hI=%L`CgDsej`DFnxkig(IVj?viK1vg5VUuaa$X9_mH>Op@RsQ0L z6x&McPtqRGZmCtYWr7@yR~;8#8og6~NhtS{5u- zx)QtLXrcd{M zx*YfHa?$*xOkQl}Z2aQSbU$F%Du13QtSz%qB+CuVA{CH6b+k{mr9zv*GDd`1RoQQcp1mB zzVN)B_jHdU`(KQX?j4!CDK`kYJekRhO4G4Wp&`!1B>LdNgNRQW&`-kNXi7JF?;YQy z@o8|0uG%L81KEr-Wf6g0R85axj^wMMsCaZoo1mQH6T&@L@>3b1e(-Z#xCYzA4kDB`o76YNG-Vy0%c2o>YHfRotR)BA%mP zNkjQ_cwo;njX64=2GI`&w<^z^Ia5_tm9KijarXM>ahBb`FbY=5jUc{>X(D&v_m?vq zq9(L7U>08UDwB}}2isyoSXbEb`Ke{1B;Wew5EY{3y3vgyy={7(qFwqVpY%!Ne~%$J zK}EY1Lel?>|Dx@1eEl+0jT!p|JakV^oZY|O5QOU;uVDo z1cx|cIQl3$A*f)&h0l}BFZEZP{k{zB;}IzFeP^qRS=}f4bcfZGi4h3W?>j}u!k@!i z?EcYlqpyj_Q^+@XuqA%n!9w0jbIbQSmt4lrQrlE^&6Jgc+`0M*a4PBX3Aj3bCle>B zgoc9t9>@R#+#-dE7;KZvzMiiE*8nOG_-@s*W&d_d#+#sIvFWVEd4L_3yuHk$%akxm z{Xg_y>M2E)#hS6W#}dMV2+2uiK9O!rSg!qg#0Pm;vb!Z$u^v@3l zxkao6lS7Fm4%jUebQ$hde-Q^g&`GHBE*6W2ZUWA4XVC;eyzZ~PJ4Md2EW?h1Quyl< zS4q#dH&ToX9qnbE?w~h*wq`L>-Te@BvuW2o)XncZjmh0owNF{r2# zVpImpCM*3W+6_*hJQ0#W{F-^SA!{5l4&~y&R(8b$gR6h7jGFgYe8n z2Y!dJE@nilO862mda-A5M}bTRIkb~)zTK19?vxVtq*jzr6mfNai+c>d1twim z#9nc^koXnwkakuhUBoywF)EA)w1^DxUB4guwmTh>8%4qPx`Qb z&vgPxHs7o)H1xb&5SixQ8e%BHt5r(re+i|ob(aitsYxS-{f+>iXI$Z{6p1}#JksUl zSo%c=kLy#BY<>Qo50ML)GGxdQJi?H(XL%XA-egi_#E*Z6O$sar;&Bk-MLUs%=X1-c z?mR64=D{!;fOqK^H=F^KAE6PDUq2@6<%E9%1;e#dG~vINv};PG4O2Ggbw>7^*3~8^ zC=DZKhBJELTp!X8CFm^0@zLFg7}F~W#MRpR{XDX8%O-B$5l)Z1t^}LyT+KCT-*#QE z&x&f-eU>ww%T@4fdDsb7sPlPg*gjqJ%`W}L`)%4XW<^l$U;P3#y|zVt^fekl)7)5J zuv1HDMBeqP7_FTc-u#mk&@!rO;WuNq$4utKsTgDJg9vi8bwEn&6Ws@qo;40CT% zJs+W(@yy!gaJ`&YkW0oxl>yYxgR|Ns*JTO#!^E*#C>@)l?*k21)*EjbFh{b`X0=LT z1`LIufZU3>9ixA;6vhZSZ-h^sJ=+RBz*FMKUimmge1$v{txZqouD~pkjkjXKV64pC zov)+u`H}T8@lZ#t-y_O5KP`^8wWQJ;Bb| zgXx5Mz1~LLVP@=EGTV!bsrDl24?WxNdqT%q1B{s2R`-xP=P5_VZ~6-&rNsYLuo!9^ zRHMe?N`Qu880>+-9w4+8YAs8Qk|N5^Cg`(Tpg^KY?wnMaO*m@Ntuha3pj>TvZQzT^ zbva{D1{hbjzokSeH^tvh%1h{a(<4|DWn{@^3! zp{L~8@=iRx7Unx8q<5_(-5tH4kTfD>-$BkET0cVA(dh;0JTQrmIMz~M2{$y~JW}kd z_CZ(OCs?OqXr?=k46dVF#gS=?{Uk5M2RYkZ*8ZqG!qq8vY0#;vNYY{MCb{QzKi3ve z9&6yliSY`o8*33m@D)ohwqpvl`p$}j=@+A{W^8)=;>8OXdm{hLoYbW0z4x+_zk`*t zkx?Fsd4-s3qq5wRGoqjn#hwXT!W8}fKUP`#sDb>N!efyCXbq@<^iPcx9;TMH!<*4P z7`y=Vf5Xw9AD9b^q7+DEYwk|vluf1`nN}wx{^)Pw!&Zg$0$UEW=IsHj!=roJ7Q53Z zfXp>SLtM+pt52$OAR8B!LdN5qXM&Gnnj^`coW@QG#OXG zq?D8fr~xn$r>JI|QEEe$zs$UnVU%L>ga_B`m^YZZ2xsNm2|BVg(~OAhnB`^(%Vy@P zkWmsZuWaI!i>{Z$xO2aU;X1NyXUyOtU3Fa4wMv2;x!O^A+EKuMy zBPbSRMXE(ESbYR8;%GR@xvuWeq`6 z6{h@6=JuH(72ERd)U2Ya7ndgs`Fb^>hI}q%i{{hEZlA9CyjOpG8~3qzq2>`&ljuQF zXC}7T(v1A0YRG`Q`k~$zl~`dx|JZy(bvD@hfVVImlD=aL4&;tW8Yv->aN}s#bq;nqN6qTR9oq$;n~m z8s~v38tRTrMOa*s9K?!_tS81X#Vt7O>HA-)fAIG7bNG2u&(?9taU5 zDl2pOO8t{tn){1YXVY)*vT|O$c%WUrfg9dn*ps%<#6u%k`ZraB^R>UM6)GtYTli2X z)M6y-(HqNuPyVA%dvg~dj&z#V9-LY26v80J~XH_xEwN|@gE?U0%tu{P577UoHHOa>jX?4{Qj?|7%7 z6PHLJenf}CU1YbB*hm()P_N;s6|3mBYS^%K7RH7}-uwMeiW1z7_-hJiYxivgY zS1wCj{osJ;3ak&}yKEe&FB;b{N`&6FpV_dUI3`w_Kg)wX7|4bbSHx=~YesklO)71P zw3n6a5wO$CrwpbezNy(QJu`<^(+SPxc_Z_D4>1-T1a~ESA|-IDM^H0WIwre|f1l_$ zY`R|7{t4y04iqFYtV&ml*>Sewpx@!S3toC{R`WiMdS6Uj+%rqCU+E~3B6m*T5O5`% zc0kmdp>hZ2iDae-b0R4uhplmM6f1cL4%}ke+b5HP*7!$R8%V&e@fGM3?t?AFX{mZ2 zo*Hb()hgoNhKd_pj6x{^BXVbYM#y9?SJ%q~Qwg>Vt4Iot6q*Wzd7N}1VbTE3sLy$O z_Ep^Kakfog;(u1fSFy#K!#tSMj z;A-}3zJ7JhG3hZjb(S=35Zu_T#&lexIS0bhq72SDn{K0824jcvPz_e*3v!NRA_@dy zhG3w0!XOU9Z+z|WXF91{o-N*_8u!OLE4tzC1|_E_gj0rR=N-w@JaKZf#IYu?rUYr4 z>`F4`5o;!XWik)@Mn)=Px&G-WZSjGe!PqkM9!{1Y6=-^B0p`0E#U9*=>~_e9sqJ_* zBQ@yv#ojBU?W%4A5(XFeTpkV^>2*swTQS-4^q^dE&*CUqs4r%_`#m!sz*+yseW0g+ zrygb3N|J)?XgKnb62!9mZ?9ud5d(TuUz1EPtW1VNgJ&(D5*WwM->$_2RcsO-vG1X< z=N4-`(L!UnMPnjH2$xxZp4xL6uOC3QM-*%6h^jx_E~ke_U~uxv)vKK@Hh+&@V)_>3 zc;{eMv=(d}ma!2iA!#Y;Gn_%8ESmV^R8g6%74P35y@|;Y1z>!w^)pJ!>8S&04f*JX z16Y=(-qHLfz`KH;ybXTpO)_l&W1 zzF8h7HUGGM)zz|fUGZwe+3tAtz}#R2YhQg2xc00Yt{Ek+bXejQRR3W%re_o7$lSVu;$IyCsU}W;)FsJ+Q44S__?h~?GUbs9lYX$8v`C&(8 zSn7qULkqu6T$VqvwEC)A?DrdAoqV@lIvG>NF@2I#10_$JMYDyy7HG5Dh@oeMNtw9&RROfuNQ`TXk`qu5cZvt! zZ^{rBo4`U(f_$U;jlISn22h1{P&?ecetiXkpN<5NfyfuF%hJ6DA1Dn}RGh_K8^o>l zXxaJP=4=J`o@WSDyX?0IGFglF`qlv`gTn9zKv$61d~rSOkCNc^)Dg5@w&A>0CaCu< zs6oLl_yb<=_VnslBohadj9Cz8m|#Y#uzV1+IkSqAtJE;UX>3dsl%c>g@>UtAhYud` z7erG-ybmzY#8KKgY$E4eNd1LOa`haRUgi~YxrZWCB5>=?y#ifY>kxt$88fR&HjvG-WMyPf>YeS+N(SveZK*bpW~L{)Q)sifisk}+=E|t z*UB^Rv`5ai>z?5tKrBXiE2krM z7~vd`e8p@}D`anIVpxT5g0gHYIDw?ac`k>G@KncH8;gF`1@5U~ev-ajbI8qffA(oet2C~sly+nn=z|29478T)k za+aQ$(@HTG`z-uYRk9%aD_Rl<5zQL+MZl~%T3*{8n+Ve?xW`= z4ZSRkjE2{+c#sQ*)jyj%ZvM8@j&oJ^RN77dC3^d9`5C=uk7Dh@R>P!?WOvjPHKi}1 zni6+5ENtS=zei39M1-qy(=Hcbdfkd}JW=*=aCs8KmPSW&bSwMOPW&M*VS>6V_oYsC z?zJoD{+TkxwAs;q@u1oaJDO6%%i2p`pFSIfznlHIJAr%~KV`8O7aI}7q31vjN=BTG zo$Ymn7GybBl-NgL=MD4LF$Y!nA7VNGxfa=@?1SlMW7S=q8roxP2cxWMo^`?zhTWzu z>oXmzx}0CPmHc>?+LXGN{V9|*n&dBkPp@3B zC092*_;}p8p%hBc{NG~S0P5?EzJJ3ai_3;P5D zUJ;%*Xn2KX3dX8VSRr@z51Wp<%by-9!bbfapt=+_^uzsc`eoFoi1l%mc%;hQK@1e6 zn>_qP)9$GT?^@i)?uzvaTHmM?f(5%;`?p1T75oH6dgX72#t6ch3hVs(lCeg>M2`LK zPyc_qp8xB+1EqZ1|JPL^O@f2yp*EdKFDn0ledU+Uj=reV8FkDR~d{fBjsCdEQltqk!+5hn9a$Sg%5egFQw zN+GD>8=W2BI@OB&k%vC*4?5p31|&#Rw~jKw&)!b zT_G}RO&$Cxfc>(v*N$FXDC1nwB>Sl}^BWk!kI&*n!hCiSlTiWun6~4Z{Zs5^%R{BFrbs?Qaoi?o! z$sWDzXtXqK|5EjQ5RCXwVH5BI9_$!l&$>lB4b>|^pyZyK=?1AoR@*xT(7Fdy=#lkK zA77Z3A+kvS7ViOt0q^#{-ajZb1o|gY7FYsPaLs)1Y2u;9OwsuE@v5+x+_ut;mw(gY ztVQM?P)}IG_%SHzEZoI}2T4!6T(AqAXsDg5N$w6H#{{d)^o|G(q_k+y)Hio#X^WH} zoYiZi;~vvG^yi8SuW7Xe%K|W| zJAhgT&<*aT7!0rQ#D7!lR;iHYek$8E3Ks^&7s;4NCV9(O(xSaqS7ed#Hn4)cwc5M) zf+P(k+pF&r7Ox05>2xD<*KhE$9T|tR(h@M~M@CO;P;ZIaz)fvp5{o6o$HxyJIyN00 zugC*$ZC(tj`^d3l&NnIthyI8_x1yr5jNo-U;J~dMuN;(xehuIFNhGET^q5=}91v)T zb{-urx5+UD7_r}`Mv8g@@uJ)kq728z(PxAt59$FD!StG z`fRvE!q0Cu9!}#-wTowP=A(21YXfDcDwFm*a<6|z@i9-3V*uXt->-?M_Uzd+h1Py2 z!J+*2^2Auu01V$#{!1@p4GJ%;3f`;_zXZ_nZ$;Rog7rHN1SEa(fPQd3ro1q6MA-6^ ze*O0)rUw9K_o-tIfO7JE^>ESfxfZ`6Tb}4_JzA+0Dy>zrGqdmCPhc=mI6=OMGesp_ z@4=hJiABF5FaT2uC0Lmn4JUmkJC6ma*}sif?;9*ER||^b8rM`yY0>=eA6uQQ z+XHI+0)%HA!dMhoLVWRykjWABn#Jm?-(ocNt09q zZTtjY*euCc`}xd}q|2)ubGP4O>R|fK@=+^yM-YxHNw?RxA9*P)Hgq5cl4P`OujxnG zx2E?s&K6@~$>1nH1ySjlGvihuRLTmkdv#EL+3z<_zfHaiE1@`ftN7>?4DCIPk5ZUS zKZ&p&&xrm}ItH*8$`bH7HlEwI&7kAGj-6!P|C;S@890lrmD@5H{l`-<56@^Uoe^|v zO49d-5jw2LTMCRC$U!T6>)a88*@I)2o}N_>A>?Q~w$#9TDP^hPF+(tFAf#k*c>4{* z>8J7EgZExPe!ADUsL+Ped80YtJCwFOUF03FQVxnne)U)v+s`u_7Y|I~6NX8;c>{aA zDy+^R$NT5cpVyUgPXZlB^k_$pXq{qC{rLiWU-SAw)a;gh!hqIm)zbR&3%lxjUsd(I zwNV49KCSzN(aoyz`sWKBs}$*LUh`Y-aay>mp_LL8+IzL|;c~>=w>u|W{Qg%28}57F z`|b0$$Hf3at9*idr1Ky?KjDwt3!8gTE(0YE~+rR-F)QS?0L5BP&D<7&c1+|pZp+3tIF~QI^ zj4F9`Y25*!-Z%ICvWVhzHpogK*2Sm#Q6hHqemDTUvT`U*>DjFTRfJ%6VIGlQfBsyt zU~lsdqB!4$+B0OXH^A4#>HA@N)Q-wntzH~$e~M;#?`OADL$BZ=#tHcp#Y!h{d=NO~ z!$9KG4vy9~gb#*cHa$PimP+WkYrqb+-vA7WL8DVuzPC^Fz(2iKEG~FW01v@b6FkQ_ zSZKoLQcD$HIf~Fwqx~BKIeYYWCRqbv;?8gyrvt+42o2z1-WM!U7nJ!GqtgRtucM=5 z%gY>8z+n;6j?MWO`Xq2*o9(~=GbV6Iin+0YT zrlHkPrDXs@>XaK?L=7qlLl&89g8Z%AY7~VRgF!=^%SDxI!gPQiUq3&D&URz4mPkkN zv`-w5b3+S5A|!lCT7RDhTi8&AIypfjhO+}cC9k_Pu&4zJ0Mmo6a7D4H#8u{nYplUl zqrkwfT)MEMc|&D?xw2b(c69Gp;qgk$9zlCOinEU3#;z8{>IL}wYX%(F7R#K_TEF@Q z)(`Nn)cUfbtsvpgZbk=ek|!?t`D({u*)R>tNJ~qDZD)MMRa1Y5#57mrMInk?$Kdn8 z>k`n#r8oY&3TVCvwF)6F^l|rXi#k< zrHeSNs%+969c@++fPF(3(XUb?Typt0*DueFmL;dsJ(v0Qd^{D zo6Qsp`p4E5&79gZ^uBDbp+fW63R7Fa_o4``{=(KmVaL3VN-GzZ>F7@2!ecrYD{ zDGh!|Si$83sJZG5kC1k3<+8OdA3ZBIbfCFEU85l`rO?IZI>ve=eNpJFQ*d%p`9KkM5LNpLDv!3P!kB5RGUlzT1m>7$6 zplDqH73}mGwXEtwBK^W8!^p-He$rJf&rU>MHx8L^I58hb1&HwkJMAa77^9f?*uXn| z(F29CLl=*sP}G(R4o3X!Lq}J6@`%AzSrKYPXikp|4V}=q({%RdtM8^`+VQOFa_mgx z8Pt1I$`OlVRC#6BR;BHTbj(&?qOZ?vKE?|slZ}DKsj5&j(f-BHaUym`_XLrGxa~Oy zjV}(9iv&oz28x_3;b2joCRjr^>! zMF~AfC?y`1R4>ZPD!6_y#l9roV_GE$lZ<}{#YeWbLd@u~Ii zb%&z{P)$HF-c%KI<-(!^sFcscThw)X1S!BoA+22ZGzO`SH1+<`pLs^p#c0iS(t6iK zG}LMZKcKt(LhyJDc)-Gh7-#a<*Mt7_gnr~5*b);UBo-G}LR}5qv%(10E1$kz1M7vB zzWacaK|x$V1Nhr&N^2g`SDoEF)GO%QtV8@{tLDk^W8p-?jf`KZ$ zz9{&E9h@tDte5W@30zZ;zlXPVRMr{T>Uj6k+3+1C6m2h(GuE=tkK?>I~QY3CC~^Zq1((l0T(86=BlJ=-9w)1@|Xt_jo@SIyXqTtYA7g@seYuQF)o( zLV$OW$D=OSgKKgMJRBxYTKFv?4l7b&)X+uL znA}UOSd_Jybm%^b(`;=M(Ykfpsf=7x$)%lc6 z=f7f_Z|42p?|Gl+`CXp&2-FLW2~p#bf3Ov1U8LWmi7S@X4rQ#xRuW)o{Uw&^11U(8}q$%H?-y|KU4T?L&z zqe(}jQ4k*90(AT7aYIZNKH&U)KilXBV`u7AvExlGCyWBu zeiOzY`nkOYiUN+l5?E&77~c!#33~20`r9#P%-*9m8Rw8~iN7x9$=-w$CU_b!a6Jks zQ+@;p=b`VKkYdIQg)nW&8pa+zZYGhMLrKg5_2PEOWW%}Kt%5_KEyxq3>vAN3B%X~N zyY}c{Smf-1H7R%ep(k8Dw+uNfVQp09Oq|(`&e2$_Q^9^jA3|8F%hRla09M>pEY5%6 ztE7yh8F|hkSOwa6=hnhBS$h$ep0=-O2`p-nvD+xAS?|OxTMoz?$_ylL5Vr1J^ph4k z{2LB&Ex$urA#zA-N8a+h9$7G^B35H-7JwSFM6dr05jz1jXcI;T8$9??dlQt*x!y_Xl2|+mIxqN`xaiJKeJl1nMrL4giyiBWTBDN4U*iy6nkj zk}+d-(jDmUBt`n{31M$^b!|Wk7#Ig@*ACdoMh^lB>yk;+Sw?-{vnW;bn};Lj)W&Bo zI~DlEbmz}CbD`%Ej1$ry=6w*BGBV8u69B|E>QQ!fR4rUc;_w_1QdXM4GqRXi#@K5f zO7CjkRQ<~qX?r1W%ITO%=SUNnD?$BMkF0uB!1W#Ya+T9%qtQ5EOC+7Ievj3>zu=P+rGgWm=ua90CeztB~lR$Hl4&_&xrP2b}(Ss zg!`(=0Bit4xwQu83^g_v{r0`SGhP+OM^5UMkLn72XSrn@w1}DTcoe_X&_OM z5e^#d*Q1Wc(dGlObGv|+{0$H%qlb%=TQZc@kjHIw`HCA}B9*jYh#tkKzj`5)7VG`v zO7ZD4DU1b&@0KK?6x)tD!zj7vI(bT&jsl)$fZ7RT(2bEk&*IY%Gkz>u17^=uo~FrO zR6ppAIIQ`ADp2!FVsZKcF26)pg&2nFFFzMMcC_9?^WPy#m#Pw?PkFS|BWRx>=FSA_ zmM16b_IJPwhREDeDd*1d<7(c?Rd4pRK3UYM*rs3JcHYy|x#yY=ym?J6y zL#`SmrOw!XlH?)&ob+NnbMQW5z*B<>viAKrM6`uWOS`dDHXinRA_my{FYv@ruQ7_w z+uu&1E||7pfjh|kVUE->us4-crd&hzr{#k+WoN8MH)n0uEsvs=Z=QUzZvW5Wt7qgs zdKAq@#~l#GD{MZjhoI=xcY<4(EmK(~a@m;+xm%+NE5Pd8-{no=h<;M<)G@-n#Ea+P z!h?VxD}4cpexSwb8`MEB1(&NSdX@ya*#}{n9Tj$|t~B+99?dgVM8F@X6y%A@Xe?&D z92rs#5Dzz$bC3co#|ay}_Hv70#+#r_%u_9`R7|+(0I=4zHI&=!jPQ{hT(n+03V>Vw z&9!NNf7$j=Q+Z!|HM4Yi-;ChpFgA{qOW0ZnsBo#ouC}U({)I%wEK;)l3NYzCvlzQdC zbX=Sa(~3z#`bpavRc&j20Ju4cy7Ng3UBtPzjnx$DaBXW(Z?^vuomwg{wG7=aXN&KN z-h-@r6DM>4sYCpC6QijuWS(^dx?5l?*5{V; zReAsczQh~6l{a_Xhkbe$r;Zb5L_h+Yp!N$oIVC_h5H?p#u{HbHYF575BcDaLcw2xV+;KV$%iGwSt;utpNI5(6?(cvWkM7x0|~-5sCc0jo6p zIb~fW3w{^8;1y_*U#~^W26wU$O91RRK0dy5jL0*4_WH}qCql5bIawh$yC28q;Nd|$ zZ!Rko2|RNnSH$NSlSln}M*Qp1$?Cu^6=X zw?~Q}G-&9@7UU;T4FQ6BZchI_@qTmDEN20>8X6^NDf7X*rf8o2qz)d9wh;PtI1VgV zt^{Bebdf;B0dw{)8=s&Emoc`IcOz#r1ehnla0-n9)>hVc)rrV7jWQA>(ezr2?kOAvq<|}+`y0!cU}SFY1PO8 zgMwmeN>}>tsHr_+Ra#@vUen^TF%v)EE-QA^|B}m4D3l3I2s#(k$JjIY8wsRPF3&HV zXg^J4J1vA9C0a1|YA>B#FO;$e=fVC#0BNZ!iFCE2sV_ar*ZK^Jjjs*Cr}70X2(}X1 z?ySia@54P&x-Y3)c$k?Jy*LV^yff`8C=~S*3aB3FP?$C`ibBb^>hs7y6-Y zAj2SyNT@}bwPpRxbOH#($D`fn0)`7Z^+7YGM=l^jYZzhLZzZGrk3W{z9KG9D_}Pn^ ziS9cR=->!L7mU6n-2Tw=w}gL9EC3$ju!ShT2CSg%Z41c1%)0Rsr63-S#xRVH(72{U zy*DuX5+9d^$6$reWjRa~n*0{ftOPFKT2!B$>7FTvX-;R|2WD8xE1>w;SkUk>Xe^HO zy3d_EXWc<$?8r@lF*rkDilQ}X=jTaJ+|gZU;a9pExhQH&3&X&7^TBsXj*MKR#wIZv zB+V7iaRoyrU(2du*Q+~iFgk&#zP(tN1UA1uoEF#gr6}O3kUQYQIX~b*d{VI zrPQE|VvNrBcFRy?F2$v2lgvdthgf#?-~G3EQx+iK^_*xD?mG<9Unb^D-j}~#x8yPwm^yYIrjTMX{3z-rb&X; z9l&od@nyk;de)34hq7M=q%l?#gbgOR4iK17OvBZmp)+qs5S7hIgTAA{sfr9#b9TPi ztSVSi*Ln5(foRhP=C)ZD*4DALq^%KE1607rdl6V$B@9l4QMy3gebMu4=e`4BV0xQb+A9P;t%kMF+|SFDB0A~a&blORt=*n z1}colqjGSnju{jfJ0Y!CquORUkROtVVI!c=2G3oZ!KDX|Wem7d0Hh?dG$V0>TLys z3jbs%eWI-rPGjm#7_npfc2YYeIv#bGu<=003VH_`;ok{MbPudkEG#T!1oA!9Lv!(* z=qs>qH5uI*2YOkHK_GwdKp$35SBj3T23`5}=wrR9UYc_Wf1DJbnBP}4QAelFm5=MD zCMnznfJw-(AdHnIS>bxDH)9x|`!Z&#Z1*6CxMRo1M2Dez>k91p;jX@O!kO2D23+H6 z&B?+eoy~z9fH~;V<%8`Y4YqZw#zhHM9Xf+Ye>)Hh_rfa}$Vtm%z~pM2+~mZR+S+Lw zK;e;;l!Uj5i;H`3|33QAc#taZ&SN%K;=wM{ze?$`Hqgo&ul-h)eE?Proac`*m9PQr zxxx!}R$gD*fq0QkLVnC?<17tf&0G5yU9F`d(p)!4NGj)7C-5Xc?=I863z9D4+ev|7 z4z8Q6)mj40>BO7EXUeM1%28LEP91S8>l{@ow|6MFy8Pt+iC(Be7kLoo-h%-aO^rJF@xvT8;@waLkW-kthP&R&Rb;JeLKkod1-ojm0Y_1;}dW;ei*==J(7UN3wM z2k|%}-#tWVxFlQsBUM}MwOpVF^|SAXy5f^!8NrKt)TbkeW~Ya4c}t5}YT`P6y{}v{ zD5;%C-h+HdN9BHg@?Xc(lsIipkVOdR)JEoRRP698G>0)LDF^(%Kwj6@@^qCCQ*KKk zZEicJLQo1An_Z%1-w&*Z&^uVg`?6~(p!uxpP50E)O4xbIehX(+&+Ld@nFkG9T zI1(fsX}U|>aJj^=^+xVH6-I?F9b@uP`-R55^n;?rrzE9QMZP0Ci+8s0I52{+^L7Ph z12b_^fl<*~?W~m8+C}5X@Sd*l3iWmA7HO6&zCB*Z%X|$2@D(&k5wd@o1!^by_MJZ;%6*i}{%IakI1 zy;C>!>D~M9A~l4Tx>D~n9lA!zr*6PpQvWaOaQK$Eg-ksYmzxaCaGOY8Tn{Mw=GDk;k!Wfs zilJgAjd`X>E3M4U{}CL_I*I@CJ-^k&obhBR$8V|cvayL|UCop>F>}Q0f=>)tudRyv zKC9=+!i`ByFMfP=kvcZXrtY{V-z5L*zom>7c6vNtzsvV|pS8S1A{IrxNfwtV{9#1x hLy7w7zxq|OWM9Zn+ccjnO~Bt$ELf||E-!QB{TtNXnZ5u3 literal 89496 zcmdSBby!qu+Xsqb2L=KPB1(tSHKbCKgLH@VAR!K&A|j%Kz|ah!2n;FRrJ_g-BHf?} zBaPC{xo5lgeqZ1CzUzF~`RD9^w%1}<^Q`B&;}`cL_!jc!$z#;VNJvOdD#**IlaP>- zlaL%3Ke8XL#2#s8h5xZT%j!CtJKpuMv$S$1xoPQOdGEHfrNw14kIOdB&UeuwTwHhU zZaX-;*xPZMJKDQ`YNjJ0+5Z8hsq6gLb&`E>A9w7WcDus>_c@<69rwBVFZ(nHjwxPZ zF5OQ-drszlZ_}HTMbUkYPM_De`XAjVJxcoiNqR^S>*`8{MD5!9Abr;0FtsnQPDQG0 z+Z+>)RHA!=7GF!uD)?A&aVh!8N|&O@OY}R&S|^c*g*3`i7c*iKV>v1=^KpN@yAnEl zqik;@?dM#@;5^xu0?F0;3b>cahs+zwd2Fjs7WS5*${Qxju6@#ZMcTLF`bBqNK$)4s z>8R7f*H*Y&mXBQVaWGsjM!X1+F1$~<lCx`rR~S{~a%szkx_#55RgUfQ;}dTTDK5(G?=w%bsEKE{LtJbY zdci!Z5PK$n(&CotEzS(XO7&ZUqLj3!f4-XNMktLs9&3_%VbLO{@iWI$pI5nCI*alu z?E?EdvJaK(=hH72YMPx9QQ}xdGJk!oJNx{zF}D5Tj<*{3p_jZ#qz)N*1CnH3XWAD~ z3>Yk>9%l1%`U!nw)$1A2bf&hJr5y3h;ky2B()D<|+(v(Hc2bSM{(;A)3ExqP?pjW_ zM&ZYi6fqT*D(m`2M(7sX@0Wx)dYj#5saZs{|x?Z}%J1ZFX?)BX0&w@7I`E{9viT*eXzw95eQ+~;{VX6zoyVI13%prdGgd&06 zwZX;Ep^*>aos26VbJwexjo$`()!I(ycQzb9eP!ZA%#$^@wdWrcKQW!H;{NDHVVEV7 z#)8v)JKsVwbNAAONbWu|4@TzuxGd2Jp$wTnJeCzH53DgTcbCk3nZMX~XXlQXKaJgu zgVz2M8#5V2Mz?&gdcX9%`7-v4+TrfE4B>gZ-T6n8v$ne4*54@l@o?Z_E4_>7VN&Tf z!wCu{3UoUc>GvnhZXSCtNl5OKD9GHr-V+=DldD^iq{tWs)a_U`Iy7<5rnlyC)a?Nuy^EVwWW(IeKd z_?po+KGmcOGyxyCl;Ab*jpbWoPbGz9At9-F6;}PnKS<8+BOD<9E6l(Y`Nx%tgMVEZ zCpd4pHk3PIZiY}xn!Ojc?`#bJ<~qNv*CSpuzEHO}FXZg`inDXXUQ+9GS4NA@@!DYq zNuD3$sAZ!V&yQ-(P$OUWkyRc)YvPO8jWKa;Y2%}7 zY(;Ia=OMB3N=j84r#m8;vTJu%4fIa6K0jk_?VRkvBB93O?CJOB(ZQ!W&21;o|By|- z!N=jInse5%31yn5-Sjl3QQG|ayPL`Mit#Me5B$9QG$aHM<>(cy?(I5K?7a-p{Lv{i znqye&9q27{GM0B@=E19difNWD+IfbVeJ7ZNSPJ=e!>H4pzA-m?+W0P0^G8vgIioS^ zryQ9~!~Mc!>C^T(OMkYnm>Y|q&ws|LU9CGFv6*>uE_$(m$8>R=ZTq7@1S@KJ(rNLG zfay@V!Zv3Lt|ewc8Jj`8IqnR@v1o)!{Bl%I5aDK`9vJMq>$5JY*k+#qWckAwzIP!}DZDIyF*!2bNVOF{|&yL3GEZ zSWF-Z+UzKSQRV?6&glVSf;<+p`UZRTKrFcuH_Mf?_@-y%c(&v>*y6(kiz{!ix(^UX z!%dM^SX1Q20Ya)cH_P#Tg!gCh3Xcz~f&=KY^l!0v;kVeuqj&``QzYend@xfi=JZj5MZ-}-r0Sv>l8STNWq12p zE%q3fadm49&Aj`R`XQ4f=?91l=}AjPW*?Kc?#}jKLMQ()5K!gDVcCQU{B?@k)y?AN zU6?%76V0$z1-dx9vFm|L74Le}H?%zO-I%`-=-s-Fv-7fbx&d$9(;{l>BkVB};n?k(h4y%}ovQ z7JE<52c4o&>C>;T@lLdX9Zv zvJu%~k?7pkm?Dc=@9c``n41;1Ug|RitjBvOnR7I_u6V^v*yq|wcxJ!OkxIUIGI93F zqNpP3`t?qK|JLQx5}S)Z=;RrN%w1`x+NFmDuGi|<4r9`kD4q_sKi%0 z3cJ33?T{$qvn;pAr*K1*AsRM;&Zn!&W2q<4Ud*wny&W}B?3X^ZV>jE!cKB4%*O_rX zlq2%P6N;HmT;1*4!<8pzXJ^rZxP!+dMwb)!q0KTUKJRGv2r{bDwR-fK&tv51_Dt_A z+~RYkw5PXDQF^`e@c6bdJA}rk3`e8|>GDYI=^kTkBti3igM;(r;YTQM*$=yem`jcy z%KNFlx9G9k5G>9!nG?FI45g2qG5Hixu*8Huc5gZ2LmXAV7|v$x3$=s))#O}+%8{AV zYue(zH`$^%$A-G|$V`$l!Vys%RBzJT(BB=9Nn$Orug0qdPN6G8R$O6W?FHK3z2LCqAHQ$3+_dlvedC9bmx=|=2+cma4XLk8 zM&K7Oyra5zK7QOL%be*Odjs=-)O<-sbYi`ed#rzk$YaO>6D6=Vw<4nq3XXJwY-%!&D;8y=RP4Be)(IJoiCqN(bn> z{tVf@nty@zan!S;JNHYG$7VivFAS?T3nk?`Vk>*!zly*Zsfi2?H9KvqE!rWsgHIiI zU~=L58OT~3^FYwpPm=KMUP$^)S92x}29eGlNSn+viV<(m%QeL!+ACDa_7;A$>$$CE zcb0iG*m8%9noQSAvh!ODG-2tnJL^5Qp_7VEg5GvQ-1!%di+(6I*=XoOKdCNuk-w!h zAab?bg=*C8u#S7Oc+@NM6I^P7@0+%kj$Jz&65HAJm~$`VheV6UsLivWWBt)}K$Wj_dqdpE=XJAnduky*#z_z0Ks_>Z}V&qZG6MLQ|4>5Q-}PS#M7N z*wj>a)f!IJEgdWAcL(xQT_9^|rFSXghApGYo~hD+V&_IU!}r=Phb0}8){(*qo%&Co zmEz6PmE(%+2OZVd1nv41Lhy+RGQq=r!oJ&Pb-sJ7dWGjoHa^k`$(yjEHM3=b6A(MwOLbG_-ru@59BcJt zX&F?**gN$;58fZUE?4fc#HD%f%Nx|aS4>K^n55$W$Rrcj4eXDVIi z^wJasxVRP$og6`<(Wj0bds%kb@0L$X^d02FsS#<%%T|J^w*qr=Mo{9JOIP9v3b5{xPAT&UqNe zTilHs^U~JtajE1?7ZE2&{5~Olk&~ zPt=zEh#$#Kerb>d0H2s^3`F}i-g~2z+jNK{bg4}m8V`%L<76((@CiX ze^Zvcdmma3oZ~Xr%DAPvx2cI_(!4Z2iD1pY&{`fzN6{hJUXD;(Dq!(S9hH*TRMZwkaPjoD-I?J3^9j8&sf-LgA?sO`XjJCjc>Ta|1Vo1uQmaE58`Y(3hxeXn!)NIdSD4+x? zcTYN=p%HaWXysOHz$uun!ea*_?;hZHND_<(_ochsX z+^yFL(DsTdg2B12hPn#Rzu*%djrp0XnrN1jPiv45v3USd02(*tLx zC%KwuX^xTl7&@G(A5Jf;7gnmR(@vk?*sRrhZFs%LGi1{7 z=h%m}d2uO>&>Yg|g;f0Wy1iW%TWsc0M`W@$@8e+ygva7N8=Lbg#&ZKMj~{0k7Tc(G zyn5gv_h`o&%K!VMo+fIR@D%c^Cbd#6(Q}G1oYJ^9NRh6*(OAKP5#PoFt%EFgkajZ+dckmZWBVklK;+5P9$I1B)hX zrQ1UHOKF|b;7?fOv*9s5eijzoS;m&gy}7b)f`WqC+V*3o;;s4#=Y+ni&Gu=cc-&i0 zS@ls}yRj={rdi-nr(I8$f3F_rvKuw%sh!c{aNK2cI;$oCo#-(7ex@~ebxwFgb>N)n zuAv&Pqu|@FX;sjN6PItNDChR|e=zc{Y^zrC$U>RC502BQm$-AB3T-J=?D?r>nauv2 zvEPd>g?fN=7t9GV8ogeY^m<8FX7TviV+%6Jq|o1Qa?zE9<-OnR;?<6e!)O|3Tb#Zi zHB5^{(rgI7~?t1uFXX^lP^>ivj9f-7noL4)HI1${q?}Htjg*ig_eL zIX&KbAQ0d5wjpWQGwyVc|G>p_>tn7@3vfDDCt9(E;y>G8(&2&!9YF>|t$4zyH5xwZb+W&Rp0gJk_wvBtOh2%Gm z-L;>rapWIVD8Gk$dgM;4zg}%QsOqAm#n|*pSvm6wW9@A8r4Y7*$tVtm=e64(#MwI- zI<5+a=K1Ke#A%E!hNK--?W%dg)T}N^uJWTel=Z=#byNqgTW6^>nyhfZM%xS)<$^SGBh*Um$>6^+6eZSEu8O{Zi+~2lFpugX5skOOSr!^CqxTzlC;J`#q9a8xf+ z^X2y7TpZ${?8?=NHRO)*Xn_oukvIpnAQKZHM2kB}%u1)L!NN3uUJ(F`+8Dn8nVoC? zPnf*VnuzhU>C^#6CJEzqp!1K`s>Dp7uKSRUpYHlTGAv6&A!jb)5 zf8NWHuoT5Z8x$N&w2{W1(}OJNV=kWU($N>~pN82n#lOKmOBA+W;CH%wx{TvZB)Pft;~1)#ixxM+BMgNM6l4=h)r;A-`mOYSB?! zE{FD-zIJY&eLMUwjw*ZyEHkcft_(0v`aAVNr7q{}%PZA}KRaBM0-2{<74-dgEp0@1 zrmBA=4JCB;J)w(GIfU?xSXF2fAy+X+rYXgQ8zU1%dOJIxP821cYvi*z7CF6?#ADvz zEhOZYx!+6V%F;6hjFloqb#*mPIj(+@MRm90cKxRdd}pUlfBhQOu{_LSSpHbE0@WFv z>Wpd-4`3FU&U*TkgDJjL;rXGH)Xe?r@xGf|^Hr_a77t+mAPtz}R_=(yqIxpdUHG8RvB_Q^@ntqilMP?}$K zliMT8MCNHk?Xp592l;8Oihg<2XqX5cAA0emgk35!8&wrZVCA#XAiXVqYOHcDy%Vf z81T@+74hXLpu9h=P<3<4kp}>F1G;PF#pfmpnd|y}Yxz^KID8T-SHF(%w0J zTa_EqS5e@Tx<5BdbFl-hQuNO1V0VA6R1$rU?ebw@r zhCg}dT6$9YUz=>K-OI2W!ip#%O=Ir~;`Z%RNu0eX5}7-vlXH&aO1&wExh{R0`C8et zI1SakS(OKAVzHP4a@DRq`ujB{*Vy)Fl6viz^|_m05EEUX+RGJ^Y)}#8gx)lXgqv+> zjY%H2YY63KC^XP)GNsxw3vOr=I*d-~djCpYi)ydTs6~LC{H>x**MPfD4EwFH{!O=U zgmV!}==gIzH!7JBj2TQHa8DiiCt70PU=59iQ%!a*Kn{|#nPc{Uzu?c?Ca<^|ovw=F zOs%jQZ#>G|c3yn5j&BFhHWJAsFS@L1Z=AD!dm`CaMA*75R#b@1psn#OcA#wG>;=8R zYm7LVr59(=?7G(P)g@Y+@}24jB~hCT{&OQfkE80shvW&)lb`jPu#vV{rjz*Kk%^Y* zTuYB8Z0&|s8elTTSwgG@5?aFHQ@ivkd)TdS&m~{+#Yyh%b(kXMxUG;NfH0h#7TFP; zpjp(3w~=L)}8a=tJx(r=}ZBH=T0*7Y+EoBgZh70)vtV7w~GFdbtnPn&ad z?MG+I5W8CFtYKe=@G+*U)^h0$;ICYi0W-<9CDg8O1{yfizn67gri~e}AavbpbOhZY zWXr+bDJO65-U`{NEQ*h7f|m%(B837hiZ788H$sj17)*vpFXIXd3Zp5Toqzh2JxmN( zYVkVTz)r)*68|l8yXXzo=tlh6k>KY3992<3v0L=zAy;_@FH2rN_2Qdikw9xnkG8hY zifSa#$!Vjms2$dD9`v-)>z66B;Ks=?uzV8Kay$NFL{a=oOiB_zJ9(4u zkD_z~)692F87vJ%oyP*nx%%Oxxm0|t&E2-9SC5r;I=;?Up#VH@3YRn0de+tl7!-BS z1bd>7IWI>Z)B}By!u)ApU;A}=6Z<=JD`X)8qV(OVD$0)_GHcW+0urnHZGCug(Z-H6 zmmZrj#c5Rg?Uab+jJYqH6(!)o2Ri0Dr-Nxvigv#)%bekj*psM8|uJBQQ47;DCDCM7DjJ{#EprV02Ej4;e4EKff=6_WBLTr;Y5uTFUu1# zE!~2#!@RTG{GV7(;uThhMXZpi_2(o6k*Gt^g-rmt-?LX$&6^+gs#!vY?Cwaa1|TlH zjYVAWEelmoeEsxk)%v*(X+_P~(?R1rb{OlxN=;pmS;`U5rBb{G`zV>|3f=BnNv@yU z%R+>^hr6_EQ?=dF$;)@sS1l~z81U(-p$eK@4SAK2Y;@-4UKX8u5P#13&g8j8hZtGS z(U%W{a%%z{-O;5_utZ&w#|p`h2^8@d)En%`nX)lpH0Gka3N)!Ezr_Ak49BYwEkP?} zB)hO@tvi*6PK-}kXid0y_4d1K^J1r)M)i za|h)0C;>T%oC_}E2O)!Yrt>~k*@Q0j*{&4lGuDL{)DN_!yq=AF#e-Jle|$C$bCua~ z%CTC35P7<*(Bk&Tu~OL#wzYT2*_)?NwCTV;>fJfuqC71PjIu{U3C*!~`2zi6daqZ) zN*rS$ah>hc#7-t=3am&xljG89?{XmI9bMy+sT1s${UXeEc%Vx2FX;IOt zTL&E%3W3sztL%L!YmORqy~lpTAmD+N&3;bx)FW(9dD<=?eQ_avV5oTNJGRb%C5_H+ z$SD0;P*4zy9$6w+B3q)SzP}iQUR&p)J%m!Ss9O=>?$y;mlm+TBXm*Y4-{l+%cN~lc zo-SZz)e^aC&&MP;Y^3@lYEbkyN2=Bye^sokW&#n;P6L5}k$t@dxHdDeIZJZj8)X~MX9{3++iH!{-D8yGk3WDSU_gDI=eO6aN>1~Kb6v%M$ zUdgFhe#Z8FSuP59)3tSVq%9$RW0UK1L6vr%N|%uIPhMpYK9=Z_$@jR2Zb{o?5@FS1 zgOOXTY9$J{X)|daUHg8w)-k>@xk2Yy>#D@*WMEbp-^#I)U>R?_52vha2UI=TuDJ*) zdkC@!hA#}dJsU0!SLb9osD5CzMo@2aXHBE&g-(|}sJ>Y~K<;X0+#;BuinX2v088s39x+ZRlH+&!kU0~Mx=KP>*@S<=0PZe@mxk`g{&2Rf-G3rMNsrp$| zW%#$5_^p7oFilyv-Ix&j+tT69Dn#M%6Tt$(CP{dhs^5%5WJaHGl#IQp{`J|SBa)su z7Ne(j9na>wyOg!?oJ~z6U!JF|V^^SWf2NQkL&=h9)Wgn>C;K6wl_2NH02vDfy!Cv@(Wi6N@2T0L{r%jP?LJ#G+S@@9LIPd-c z(FLhMgj_@Qfx>j)ddV`ZS^ zj-@!iB(q9fyW7aqz2mZzUA~Qvv_|9hOecblnmkL=xTaHAV$(47^w4mxcb(iNYSM<2 z7kH{{FV-^_cy3Si8ywf>7V^N z2Biz($>-fEsBI!}Z3Di`3Ps51xI?b9C3gnNJPeHkQ}{V=cik5p-WU$=QXtiLqY<|` zfAXQXov|gTEz4}Je$EUOv;1FUOpN&oIzFo=tgfv8#8mjms(kyXI#6`8>4KsIQt{_Z zUS0Fk`>v+K_sJYdORi&O4>M$tjWzUZ5>mgA%7*!IU%Vbv=C6PGQ%b-Y&BIRLPM`~q z{9muxv7^trO~mLu_(~#DeX?u66D94l7b1^otTp0b2mvhDjeTh190Ez>HExzaE)4De z>q0s&i<6FT9MgHS7xjbJubsATe|sb=pxj9?3K6_zFI{w?exI{DO~%2ot0L!bxSSUH z#Le=Qf_aI5@5hTG0+TGbQ8P0eWnkeF;sBLp(5OmjTfaN0{iB|CaC$Y^~O@oaUz;V&6 zYEs6wZ`xnoe0q+p0|-E}@1{cS921Am>+R)E)rquYHyo%aC_XF(96D*+p7J4k(1lji z^`d}nWX`P==^!%vM(9OENB(W;4Z_gNfxGt~oESMYeP8$~ncOYf_aQ}@c!d&2n%W+0 z^i{pZ)j`J=rIYTP%b9t33nh1Y$7#-u{rFlBE|d9&T`QZ?^PF1`KFz=JC%rmaXxZX2 z(^FF^u9G2n@x|qUGJlc3BP6F3p^_|7qn@UC=FFL&KY#k|tWZS_)%hiRr|6g1?(Xik zCJ0G-tzJdRWNYWj3-@v2kcsqzjd;BGk1ub(ybY+YufNlkQQ-d5thD2YvwP13Vfnt=#OQ}G)5bC-9qM*4bEY`5j*C(3g zEIE0mk4SU=?fQ&Bp=td4U~;N!`dy{=gZJ-~h+pL$XYL2n zmmRQL0yxdZ99Ey2vOke=;&xvi`9Mq;ls+pX!4wZ zMPt}&qbl`B&mNW;b7NDKY{o>T;;~1nq-)! zND&c{t&=ArDykaK9~@e1*Ux+SaL~7p&pVA%g*($#%&)<>2fYs*z`Y7<2p^dmN#%o8 zrAp@*RYmK+*1#dRR_8MB?rg3&U!5k|&@Lq~iUXHVnIEonxdV$_U0wB?c5-%3J+v@f zb(3O#sKVUdUWLNqT6MHt5UDOTPV&5)6*Ln8Ij!E=9@yoQB5xJi7O~52;AxEav~HvPpL;Q zbZ1i;R2IAc9D^WHvx4~ut!!;egW&n$svp~Fm-<3~^qSof-OOx%d zhTI-qe9Zq;pv3IMlOI3s8gVA|C=fJjJXaisD-(sCq;Mv*A1EKuNaS`-wS^D+c`_8z zl9{5u*uNlqTr_EVp!>#dOu>Vr->jsUoH zn*98d)2Pzj%S+?7uCDIFNKL;zPWCCK0)gLY>^*FW%fg5cK9*;B5mF&l;Q1wSGXwZg z%O(9LJPMX@wJo8u*Tir5#SPL@EnG}&U!QJsSo$r7oX^9eY0+EYx#LfIvwg^m~Za-C?7qLcJh-ssNO z!Ayq5oV%v)3{j}L2u7j0q@Z-QW zV3N)Lv3gB8Ei}C~l+}Zo*JWfL;&9&ytqCrhI4dL)2~Wb(c3#vqCm?{-U{8i0)xpTj zEH|(NL3#W3ZHQI~cc`JYzB`rkD)?Ys5OZn885!Sqcf0iE-_E%^-IX~@ApZ&5U2rMl zO}qbz1tvl|alIbrX$xT7A?OqxGn##w9kv~_I*@;xv`GUBF`ICznKBPR24uGtKK8~2 zB+%#dXV0GPx&F~Nr&F>JJT_xsH%eJqrEA_>7!hAB<`hcB;YO=HG>qf#6c!dj9b!au zPW75$@*skB*em?@cH#8U>mf|RhOUp|o73jSyjEvB(v)V`s2Occdg98<%lDBU3hNF( zm!6t>zK7TW?;nE}^J%FMX(DLRRvGRNe+ygVGvI#<7h@~Una z4GZ}l;rqe=8n(eJ_Vpj1)2+=9iwX(F@iVfqp+1JvUR7Pxd~Jx};>u&!%39yrs#~Ru z)UDsAeBhtk79U5yNlfE)6h*!~0e% z^S6@m-e`mAfN}ygzs(zL=Dmq#^!HB!hPZ?1{bJ?p-TVF-*l^RPszB3&n0zD@XYmG0 zObZPX^w|>~>0iEl(azOxa^P*ck09=9IthXCY;T^4DiZl=br8+_$Mn~Iw)==UnCgL_ zzd1+Tb)yZ-OK_W0uN7VX8LlzTmz``SjV1r`+fwVXc=G@2HK>gL?aK}n|C&gP1#;r? z3!^FT!#9cf|MeUeNq;`6=`YOZ@gfu=FaPV_^gh|&Zb;l03Ooubib{fD_XQyw97yq}i;y)Rjs|LFL)kpzXLRyHOkCT3=4Mn-7oSB@S%I#}k2 zdw2NMr4yILgvG?F0g}Muq(=Y}J9y|2fUH8L7|sSfo1oxoV>pAzj(OGO^K z%xl-jz4#L9r@99e4TEAEr?2k0({0!&=o5MHDDaVIapYe5ZhN~sV;`O_ z3{_wlQSTq08CNYvK~*LrBg@RpjEjp))c{C=S*=8W4=pKK$u%h3?LB?#h+)+4_;D!8 zgm7a7kAjZf-rjz7Z+inRDJjXzQpkFiVRK7aRb5@ZHD17_!d?F(ehRv|tE(%(V}X(% z%Tt}OTQkN!`ZsU(7o#wCH(m3NvmXDKus%@C%s_#m=jjl z@7~Sl>?O#=0Tc~<`0!SuVibF>agF|376Kt6GT&eH(NxmN#%2=iy%S21KKJ+UhY)Q_ zK){jb-Uv9J)7`JqQzgW_*TV!8CH;)qiKXHg88^!kqaz`;)9(}~KY!PU4{1<>{QdoB zGy8!o)W3TN>ONGmJH4-cb~atu8JX_Ef3B`p1dAgVqCR~=4MU^K)VHumt*Y8u|M@L* z9DZwdV;G_Y;5ao64TsBp*W0S3@Ll)!KL(oc=P^$~bA;$J-}v5^?B(u${`GZ5RnT+6Vc) zk^WioYy<|=Pb0AQH+vv*#I?ak#E@bW5a@1icWO_O^;(;sgSvSA`Wp<3>Ufm$bt$QL z5I!!O!R*4qvHVKLq^$d1H;d&vj!IOX9)JcE5kWs{b>MGwPR!L2d~jclmm9zwz>y;E zKTKCOkp}^(4na4~$;nAgO$DgjC`20gMk`KelI|?@Z>ZT{zkV&UYW1AE#`@dMl3I_( z@|3eLooK@3<#8Da17equkU)$+kot>2Um*NZ0#Che-oD&K9-q&v@0Uh;BqEyJNJz#TA^BY2F4j(wMJU6IQ`spa) z!2Jo5KY#ooMfNEKh`6};Nyk4LkSXHLAI*Z~3G8F-moKKf%$O6gJv!M6uJo&}lG3BFz{HIKj_Ydo&O+h-4m#Y(3|99&_iI^e@2VS51#mbis z5DvKC)ru#J#UT7SWPye9{c0SS45QLX2^PpNifW)U{Iy3Uf3#GU!}uobo2Zmu%ETYt z=RR1)B>5NN)<^M2Nd%zt{QUs7(2?HU`?GC!!S~&t_^S>5r`!GNoCWx)jiv8}5x`DI zYkd-U|7=cn*$3(v8u$ISwiB?02Y7J^nBtBXP|}_x5CD?asWr5;K)M+f=02kla*&ag zZBp`g`nLx?(}>kCw&AgCKBxE60tr>N!Qm>cgm*be?ThNB7ys>hlr4}koJO{=q+7Rc zy^;%AT^Lnm8U^BOo$SM`B`+_pTVhLL=?j`Y@D}w}u&Iq|Jfjq$ADpG3Nr;R*cj=OG znqpLck+sHGDE7m{!=(H7r>i6|3#9OIvkXl9-G*#z^Pw(kMnpwv<>~_~PKb?-y?E*S zKIz{cfv6Y|OMyQdeu~(7TcT;jJ^AB4Pj_b<85({{mQ>}mbaeDvBB*5D1<(aCrv4Qw z3oR{eZ;qa{K;8CYOITPK0PnQ)^nrna(mTELU6~q6(O0ib5w{aMgI1mI&P(Z_LP|yp z)tULxIuoeDiK1>1j3MWF9&85-g0nsH_N{+>D<023M0K9@x0nN*aKAM69Tu9lT=U{A zlTno`t)SicD9k3281o*dyqckbBeV2eo$b%o;mS-;P9E*aHBfLmM#1j9v1r+&A9##H zKG!+V>$hgL62+mDB;nIc`TQG-mR0z#xC>^(qkv5TYj!xaJlP)59K&T|{7UX*Go1Z3 zy~2mQP`Md!JUJC0Wmq9QQqmqje!Nh-g^UqJr{F7HW~8K~G6MhXS%=a44<02Z8!03M zPavZ8SEJ}?SzcZSPN_kFP2}X{1Oi=z!H{zRTN?&xCM|we?hGGG=8q6O8y_Er`eh7= zNZZrdc~H`1lbtx#jm3#?V`F_SANV_Z0Bh6{(pE@7>nsYDcfanBGOY3J9vRu41t^BZzK8~v&oW3wvhqg` z{smFt6duFAMROX7{6Tw4;LtldW+8MFb8Om@#Ahc!4GSWpot~Y&NJ%M2#_u>H#?Ehr z1iVyQTI$eWm{zRtF^=3)?)fE^lX7x$l~q;G=_HMDb-f>wMj>PR?wXjM_$^)jZXFV> zYzzzx2*d_(lEssr9F^W1_Z;Sz#e6oGf!3%diG@3UdC_xEV-6x1`k3F3FaE^1mo*Z| z*ne;TZvh2G3?r7Hp{S^sEa9`Clyq%wkY)7Hfq$!X7$E^1@GvOGT^VZi8f}na78Lg{ z+|TZChN^nhkc}u35!=vwYw)mz=S*%HJv}{Cb3m>yR0zjjD|SNJX1SY|@u#F&wb&x& zo{LZrii0TGzkh%8q`zRCP&xa*7Q%@V!nyP3<^9CP#A5k)h;U=?$cqzOIFiLihU6CS zxZanfB(cW5a!|@-Z<@fb8f? zTp$BOzX(esQJFP8LByM0Xfye;7kzFsmsR1~_0qpix;hh~kZ*8nU7V%pfKJ*!gg`hC zvlbSA?eTu>dBpZ3;nP(Aj2($pzX^xf_xtY1&`<%1Scj|a+8bmIaoo4xIh#_RIM03E z_<%CWpRyOnClm_Rk?QyhqK-Kgcvpu;q2N~(<&6WtQ>fa&|xq3y9Hi_aUP(?M#Y|Tum zn?po;^zqpiZr#p=qIU`@LH^QJZKKN5OujKX*QVMG0`f=q{6OQGuvhdP$ z98SaMY$9|QT>}HmhUK7EZEIIomlSsS2aH|Fw)SM}Jg2X}`04J=Gr<-D_D;}*vt0~a9u@NL_ZB1+dn{Sm_A8!3->9d(jr>bY{WHOcb?G@`2dcuS zPoFGE_}4U!^OJ9FZtiY;Pi|bORNGYl-BDD!yx$GZx6iGs<(nNsZ`WSlrtqr2&3cJ!Q zamWq|KA2~PQUmQj{A|8fK+|uI;&9odVlJ3@*y|G@zEm0S zm^?h`ghqe!8?A;e2yS=;1$75bH5t&@Ei3SZ%s+-kIZ__}4P9CLJ`svS=$(U&xe0HE zUgozSh@5C57QfYL*Mq{|>vtiWbd&IG2E$EweB`{+Pe4ydtne91%7#Tq88(B`oUePs z$3dB|{)%&t#q9rayZd4q{(l#RXX_3ioF{L=vo%F9RXI@#XXnL3pot=8T8)id3=T; zH3k9?PviR}2*E}|r`@Xd9t%o6VSF5zSvAZXoS+eW_Q{FZ0+3SDWA}cE%VGV$Y0I1& zPmqpCXfj5&Z$NU$6yxN44gOM&lX?N%%W9CCBI2{KsAwKI03bTLOm|(WXrGEvMF6@IF*A{T(B~Wta=jTC(w+JDJb{gP(9RA|P{r-B@pWG}5ztm?Tp2U(T zsyRFJw_v2#H#Wja!)4o>I!3KMp+egBe0&5WNWxjgeDsRZDD&=MlexP6LWJr z&=F|vgy0qQ|FWHF*NQ_KGkcU$rTNhMrFMF^Zk@h^xh%`D)LFw%)R)7q4TIBW`y`Hh zN)sBcO*XPF{Rwgd+IJ`)%Pxxcl~mv{gHpTx0`s7{I?2r7f}TdKTB%#BEUFmq_8bS89yN$~o@WgogZNDW3N3vN5v$buf2SnjwA zBLPsori`tT<3fMxCsAQXLE3NtI8zxzkU6}vv}FEm1)9J56#>~mP}@=*G`>Rf1O~mg zlIItGMNM>egVr1re}I)8N(K2D+3M1NTKKF^gug3?EM5V(cUz&5l8Pz@Fw5aXhjHaR39=Qk#*72Id zaP`=s-`0!e&EsR)ARAD7A!0uAAG@9-4f}pr6sTvH{!1YLfA=Hkcfo~=O2ot^13CXc ztfwi3SReoJn=kME&=3PngP7%ogh&83Sgc*jp8L3pC~;0L}ueXzeC1CM3A zz#iM^bxJwlzaX5*ulV4)C5v(a1_pD`NWjws2r>Klr8Ho0bUe&*H6S;sY2fb(E60{CoV zCplB_uSEhrFZ&kI5e({|ou$+S^YfU}2ckds;J0%)f!Tc|3_E(u^dIqS+4@KPD*uQ0 z{oeyZA@ctZ0SeI!58WuaeeM)mokSuhp7f8&(Zy4LM<1YC*sN{905IOErtQo2-;$2F zB}91rD-YiM4y6Ba*4!-r^+)lsoy1X3D-ibXm{z+ZUwJMLz(?g0QIj{Hi~Tw85Vse_A=URHR zv|9T6H`*lkB1=2kq1ABIXof*a12X)G7c5MeH_rLrVfQg9u>AFs@F*ytc@8@FLAjvf z(0&G>_z8@krYex5vV-wcFg*rp(bc{2CJYRM8iQfe&HnCpiUQjNyZrP41UJ+M$OxF$ zymIA=^rI6B^70@dh*C&^*a%V>lmP+TF5PN(o~Vl=&MaJ28aL( z&-=jD>IN$bW;ALA%*Nga|BsLuNs!rba&<*2DwcbLqgSK&Mr@y{^X#j|1xM3g&N%^WZg z`%C2lEf5y6@K13Vb_IPA9PPYLu4E8uNl2RkE+&zuzR2p_FA&@=Kml zP*en0AwASfUnf&N?K~+FOH2S_x@J_#@1d-%9bHzo24QKJBf!go>h5|%!SSxX-ess$ zgqNk6NG+hGijbl!Ve+%U{G;<`m7((y+dY6kjLNguHGLPy6`CRkhcogJYDwzZL zH-~40(PIFM*)=ori6*9~D-4@qLM{NVCu)v%F`(f*dh}@eSu8OIz}lp|rVoF9CYWqR z><>39O6=JqW(J0UIPxvqOD#pNtd5{h#(}`B_U)0l9$1#Js($U@C3;uhx6Up?9Nd82H6M{5=>Y48wT2v258$~9--b#WF6-;$n17* znO+AtJQl};HR(_PPpuRP$KTT|JbZk_5Dr|P!LrhwJNI5&0TUl~w;0v=Xc2HbQ^L!$ zi6dA@QkPbesVy5|-Y#x#ZfLYQN6NF3Xn5b(s=vP?)U#t_vP_awQu)|N(zMr3K^ng9y>BsWGIJdkg+l=l%q1G(x}0hh=UB7N~IJ^ zX^^1^5hYQEBcvh<8GdUUO49dz-_Pg$lf%`>wZtpH`!R<$hs;DM(ZJN3Z zt+n-85#dR+vOzBx^9(Ym>wa_%9;t+r%?n=JibJil+f|@jZi#`ch6QBn?&I+)QIEIf zveCZ)2#UpEzk5r}BH!bfocf@5Br!4Z`GudbwTHc%^NikW*BdC2A%TH>5>0MUPXLcQ zZ}|Ph<4ceG@FWwJN$Yu|FZ}CooI`g_?X`xf$7#)uQ~$s+c>U4!L)SvVtiE@^8I@X# zi@~feSPxCE`^Qqg$lBQIJB};ruFl1daRs(hygr5o290mePFBvxHci}c*S;a1Yp77@ zBDs~^Ze->}M(UBHRf@f5Q%Wzbo+iR5s0Tv~9w|WMP=B+kh3Bki|3u@@sA^MAHnyZ@ z)W*&gJT3x@^`dt^FtmO(9tT*gNLrn_m%PNCR|E67iT&E=za`KZie^H$?prix&W%wI zjR}DG;VHj<#*oHbto=ZB&Wx7=yu7>#tFeK`#KZvCncmnws;oJDy`J;`#1L?$;IKloakxOVU%l#em71 z*j#kiJIG7~4F>sA_w%8(i)ryH^SfJYFA#q9^DDoNL2@7-$-n;kAJ@*X@UK6O#(lU0 zLPs&3Kun$VzwptrU1Uy9PAtS}tvS2tvxeo;-Xp)R=Dc(wESgcup3@l^KE2J*d%%2( zZo*#}!T0d|>fd(Qj3)vYFPt0CMCdjW{#G^b_la(Qg5KAWg7_Bg;a;cCE-9PTki->T;?c0|Oba!`KzsN;c!pd_3*01gO zB}}94Hy%gOoq`e*Rd8S1HzA=w#ueF{qWD!xR?WXH=0G zz0C(hP#f!igTQfsUku0s9q7S>2l@13=_h?fK#q?#Hz!aKyV;e`(qU**R4V2IN=SM*lZJhC|6)(%BMyVcpAq_FX;-?6#?C!Un zcy^q`G>58HJ3AD+c->KNmsf@YZ0BI!cERO4JbuN_Oen15{@BL<0(Vt5px?j?QQ;rvOkub$X_7=GT%Nw@k+|&o+ND&$HJ<4>yHP=SdKd zZ%gG?p5L=szkJEBM0}=9`mT+ZqyG;2UUDGjPlvLi01akrNaQPS@_z4xK?{WYlClpb z0)Ql$(7bV-r~*I%G;o;do+Ga1B-NMSR@M@9wEtofr1B65%i`N^3d+i+Lu-XhW|X;S z2b9s|X)ReFu&)8t0#N|Z#9?aY*5k&;M%Z=Mr=}XE`MhglTkx;%>3<^p;zB z+D{1swd1Z$TD1+IJ`omj=$%zyLOC=OEmWG`zYhox*Lm=i>qD`xa%!9+Y)OEe3A1NL z$HfV7x4}^seQ1!hZOP_1mQXR1{UF|ef8f5medf$_5YWj~QShSn2D=V?u1ULd=fS?V z3!C^C|Fzghi#>;wuwoo$VJ;jR?9Ymh<|WP9#t|txa4%b z`jFANszzlXKB)GDEsWrO<2M_w*m9MTm9?trvwfr$`RXl5z|4vFnU1-G_-*@ z2o4mG*?nFzUr0I0sXAS|a>>1Np=JNRHiCiP-&U#Xp*>ZdhBzfBaC!>#K1Yx4qmnxG z+7_Zjy+$jDC*D6WP?&f2_BxuZOQY7E=RjU-*RI{?>_p!Ei2eDk)bkl>X)!R(S!%`1 z_J13v$trTd)%E;A<^Y!a=wY6)rTtY?#utbG44Xgg*dktRkM_{Yk{Fmf5EGhbEI{Fs zbKqD}bc>W0w7b|IBW-wDgT51{t+$Cm0;V-^<>lTd1JS(c2o>0;3Y(;cJf_jE?UBWt>k|^C?bP{F0{TX5dF3S}8 zO{Olzv-zX$;c{BKR7JHb!3hv!p${LbeXnT+t1y1}$YzUcf6rcFVPRWaTflUt`%EEP zj`AauN*)&-cfAQGRC>aODAzK}1C(3j;DHF_tLZY|y?YleVQ{KqwBkO8-MdAvsOcMi zYKi%4uNgzLZvlQ`L7QDgcR4ZfmUR^yta|d~>!LXp+t87h9xrk$u_w0Ht0SD%{;SCmTG)oM6th zX%p-7FA~{`BlQXSSH=R|70R3 zhqj|oaPed)VT>uOBuHkA6^JzsrOL?s>z0n}iv&;0#6(OCcrBVU6-l}6xIU!TglqMZd8;`Bc~+~<zeiEYE0RfOaGEVBYqYsaGAknMjzif3_c9YrvwEIajYaFTH`5xIxm|r$c%8(laFGkE52T>6( zLZAF5b8lR8%8@MuG<~?h&G#fp`*3~=wLd&KZTrrh^@pd>gL}gz&vNgiCx+bK&&tj< zu_oWm?p->K=ZXu{Zt~QI`J144LrHDaw%AVo-jH-9+QMgU`V2D{+R|F6LC(f28StZC zvcmLxXNic4&dzC$UoI*9b8p3~5{XBQ)knoi-`H3wL3I9`NjHnM57*790;CvN+1lD1 zx}BkYbtu(+^s*Lb(HOd>(X3Sc?)LQp%6gVAwH^D4K%5K{|EO~asil(^%7Gh(E(%j` z-i!Bje?u?${nGju!{5WtCqD(R=$t>l{{Qs1zx;pALUV^{NpUI zYHf|c0)xvydAu-jRzsr(OBUO__&98>e|{m{sKwJpKI3@l<@F27geVBbYws>!dIQ`p zuHT>mZXQUF7MP-zT23OtkY9hOza#%p^MztaR=f)q2v?(dONJ`}X#&@xFG~)OG+Ml0 z%0m;Jf*Wjg(GWH^P$Y42aTXpemqEx~HOcT(L_GRRTs4&J+jeC;0WK}_hiBe0W@lDZQXHuuJeOl8vOH~-L3QH&##1793L-eoDCWY z2sv&*TUVD`)~+ zVt}D_v8s3f0t+ubo7WHq4E2-P1UbgK2bgLvO`q+v1W?alrOJa0^FfrX56{P}K4xn@3 z?aUgQEbJO38y3TG+cyK&>7BWZX)Xq7*pg|P@~vK<((*CYo4)(aO=ZvT>5gwNY$#~* zK9~Ye65Of$;I(7F12;ddwtEDBnEui4@%Xdx>Q+keIuJ=zTpAg>XH1(W=TsARp&C#1 zkX8K?*5qL7Sq|N+M>ta8ajkfLd)HRD1TZk8v&(IuyQ(lJMi?&gFn|6}nR*L03D_6P^f0qV37r5c%FhjMe zTjR9?i`wdLiyRw!K;vqHmQ*4vtKZwIN_w=Ws&~S(W+QzfMJP5l*0hM)Q?9sLT|M_e z-N6j7!T3G8fJ^h(E4+i7ZfKtgoMOv2>Ea)) zPw`>wEeILrKIh*kYegoc0rTu0^la+Qz$IV}+n?Pc1ttfaBZ4tF@|y;u4*Bg8pm?<3 zu2Q#kqN!IJ+;wdMP~DQUsRi?r^CB@pX!j~5M2fYy7!98(E)@ICN7XiI~^JaEUyzqxcjT*tYdgW-%_CrbS2Jg*ky;+g@5!w+x&FV#;jB^ zO~8DSjj_i%oPwVpEKh%!`)rIaYAzr(-} z+G{3CxauKqH8nc!d(Q`+Y)pR&u#7G)3#Fz?zLOVz)dgH!4xg7(CvNtmHC#(dcqhh> zti-T#{LY*qH%+sJCYU5Si2Xt5%{vVaI4?0 z=Ver+NpNs;>+X_ya47@*S>H-r!;nd61a3P#b-}c&2A7|~+phJ(G%KteQ(I8l*54{i zi1z$U+Cc{OkEfPEA9J7oNd$=^v=5#h14dB)l6ThJQ$XY15Lc|PW95dCiYRsvJCp9+ z21P9xQOjGa&`Ge~-~3$@6B0bKn=Tx;1ng#64{1*)&7eUIid4NU(r1|e%t8*9mVRR<`f_)WphcU;+dNL}nxngD~* zhYgs#7{cIVvCPDG5P&oOc?R=klvb9aLi7v1Cc3nU4M;7R6mLAF_Vet`XnFAS^S8{x z#=ij7$kpNxB?GZ`nrh%cLpC6@mK1dU+^4A2nV^kIpwV_?yRz_gBo z{k_K<>lRJvok}=;9z0w>x~>YO6LWKO(X=KdB^^7)P-3q(W5QnIPdk6%f;^r-<|n}o zVA>H2-J^)kb@)&p{H5W$6JcRMAn1oQK__Wo?jNnM+F*ibVPqt>E!`E3FvOcr`v|pxopLR4rZbCu}ra5k34ZFzQrLQ1I~KL*puxFLCqPRooN7*LY};HFA_y zWg!O#gL^0Df&T*SV-Lh|JB4jw#w9xgOrlK=?_D^6LwoGV)9dGNLSMnB7ycI_3#QBA zyCy-j*~MjNwmu;~#g;+k57^ zQXbdBi(`$|Kl+5RerGcLj>jE`H)Q1F#(&5E&i~Q$C0X0rp2>sOe!;8+h3Q&!#^Hq# zm*$<8lRy*%hNFmi4ez`mOY9L)2&3+kkiTK|DLyTvrU%dt(~I(mb#Vy$NimiD^7H*8 zIA9UB0`qYXZ2X?&=NKIxxhA3u`3>>y^ZygXFT)DIM^8`x^qKSh?k&~z1ZExhG{m=T znH_d&Tti2hCU2RdSrxCAUl({YaLBA#$q*%X@4h-Gp=N&3PnEF3f&#nR>|QtplHS1= z48O4Fi$H}*-?g_Vh$WWqO^KZY{J>w`Cc z-`?R=_JQGK@fZ5NcJkqG_6;1_W5@35nkRNmb+9MSG|L4ax4-GZ_SzqhipH9TRR=yJ z@u8!;{2SB6HgFVKic)koY}k$IZCBT>^%D1Gk=lc_ijB>fN6|dT1=&6h@S!MjRj3DK zZpfwPuz(9kxjha!LjsfB9dnY0|L0uZA7AR~QcVMS=2AMCO zKd*j90rdv`TDmG8CJ#;hyo7}}jN0+i{>tB91JnT&+VLXmWNr0o!=b*m>rl8A>`E`e z_`rLxE6~Ua-8(SVrS_M8_;?4%6*T&7SuU4*x4bcNzAuM8AJY8;z;sOeO7;;(KUgNi z7Zf@25;1M{M0iOQtp8ouDwAbk7{CsUE(PXFlN;NQFa}(r2V_>b!!~zr8iw;4ENhRD zCS4_gJIRLzdu=g-ZS#V9F(_!wt4P0&TO}%#EMA_#u6~@`gU?`}=a%vV@hEs>;;N&m z)K4xE<)A%PWmY?_9za~%Lc~THk&=yY%PFRd_650bO4($OCKfsnOik?q{z~;OIVu{J zE>OQa#aM@77Tj0bH?#_L&MzwiC5V~LMht}J1xvFDRnIB@`sL8jDp}d{ET$$sP(YT~TMOZ*J@t_XYTe&IoDx)F;*@n6z_CJGQ#V4gF4^OAR&zoBS$}sN`863S zp?R8AHuq_6?kV}r9TVG?wFdP&_1c_r2EKn6g7a5<02XTK+=5^Dh8S5`Y7vy@1ZXW? z%h^|dMuO;8@Y7lzYu*J|ofkLrfaOX2N2;iC44>>{V>DkHEZED06q}19kTKZg5@84f zfqG&`RB*2vkK6krNG&mJcrKAcpcHlC_I?Ptm^`q6@4R}xeH~i4;#ssz)>yuZV4~NQ zDN$N`4*lQm*Ed$XzWgwY!r$b8M&~0(>F3){@2YEpH78xhBYQX?IZW;Lr>3o*s(u{t z0>v7qIg%aL7-{j;QBI#a)q~Bm^11~E@XT(e)l_1@tM$tD(;B$nl?XFiAR`>)Pdq%( z7lP~X^2A18y$l&kP@z8V#szfZC%9tKcG#H0zl3hW16#0$tsgBNPBd6ZLQP_hT@3ur z`PRkEb3-p~8{YiAyy{N^;=%hP&JPmzi%&+d;LoMWVsur<#Fa_w9p>PQmE9+6ibero zY~Q;yOU(uW67$7!R99e0tk|Vx+P8<`bh@S#Q6Ay^KwG{ND#c88q0AbK?2^5XR^;pV zzlVP;DyAycQrH4+bFA1>)U)jB@%{v4?A1@(vlC#nKA@0#Hl)#x(DKoV0Ogxql(x>5 zm<3-NI18tpDciByG07$;5!Rp*w&>a}n)*4!A1n;@2dGEef!c!hNj>qfNAA1K{t4S| zd{{YLGKC8t4EF7E@$*+5G|FyPZwE%$YVQ8D$=m4_G!0k;3_LNMhf>0(U|cZPABD6+ zTmw{x&XZDqE~%#SLLBTtA;`B>;(8uRGDF_ZS@jxDvYwuE)wM{s?p2x;X}fX!L$r!dc5ICf+E`CR0#>PhMnv_+OQ?FHNfWWBNuU{iVu#>N~1}p;La$7|*`{Knlh(_F@ zf$BkQL=fQce%x*GNXj>|g;l25Ki0+6#E*vCe;L}H@mmOBoz`UWAJ=CF(7n2D5uKfi zZWo&4K6Lps`n_2P{O|N&D%aOv{D6f)7n2J)vAfrdn3J z~BXP68LxWg=BeO81m`}=)^rhQ%pBA zAed935hd7uWfMkSoU>aHsJWriTB+PMi`5Fi*xh#w6pw?lC`u4mlc2kT%kuO0=T-4? zGcpQ0xvWP4Zz9pLW3t>&A;YQ+uQdFegfxn~1{+SEgmK^^4Gj&mY`3zeJ4vuQMTGK? z^d#8cdciKcZIDK8@SptVI5=!jRM_PGA%V!Wxa-P^=+oY2Uhc>Ez5d6uB#c_mU@}2i zrmgz+3db{zg-Z6w6M{0I4IeGKyK_IT6$L2aSiV(DmY|WHZkVv4uwy>QKX>z~#}@}B zLZ_aQIg^Fub6MQUd~{|L_{b4Ryf`eFBH5UHVNs{>w}1T%7;*Nm!l=4y51lxE-0}5| znE6G8`~T>0#?j&qP32Uj&>4L?-g>V&^_dt&?^4#v({O|eF^M$GY0SNgMKlAd>@axyg=I^2MceK zQsNZu!xJ&bl_Kp>g`9YT{u^%Dz5`!C8d-@Y1V9Qy2#*Y%*(AR;d{2oEM&TkHmfUP? zYXd8M{utR9SeSHkq(9)+0`)T>QIfAJ^oKZ^r)5HG<2PXz5sj z6&0H(1bs}{M!tXA*3nTnG^j8w6HSP9l@ZD?N>@N&;0|*gCL}q;q#gp{4^29%ydSg3 ze`z0MA`u4*w>!UOao|fhYh( zF}~lMlk(8Y%IesO6U4B0y(RE4_8;#7(Lo}iYg{n_(1)sk-eh5+F1T+TRd^FDHPA#) zrHQj+<<*NZD`8dv3^2n0jmd2X?1dt&I223OE*W45B5bPJy-LZ%c`LRAT&Kc1Et!b0 z3voroyHL>yQVQ)^F-_gd);73J|BiTumhMIArWdQeWVhdWYYz1W>|kqraoH9uyW`mL zt4~4{I5iE{U|#peKwueksm?%(u@vle*wZraI8{MXDT7GW5XU<_R`Q!;10VwJiF0^r z;bn0^#6<#jKxjb39&6#%p&`u^z5^Q$e8uP$l`!xMmo|tSozu4<24MmnlLN#6H);Q; zFv&!OjoiiCfjTQ*uAB&e^?jVx(`c1Gh}P31jJ*ud2a&uErIm%X=oSaj#s|_V!>eD> zOEk_WYTX)`t1knTmY%>tf+?s@m>=i?>Vix~WS1ZdGv*?YjP_^itG(dE!8a-&>`O0e zxIQK?jP6|9XzKYP=)c2%d#uQpD{sYX zL0O6WU2NN`&;$y46zR3mUPQiyd919Y*d8h$9PA0}LPRzf+*h}Cagi>D1zlS@5nt5z z1$2>M#S$v%8(tXD>o(>`H#wtwlwAvs8Uk6wt`&o<>6UmHGCz8jj_o?*I0v@k<*Qb` zwOcemsAhRYQ|-5y6NI%5A=`xWVa%{789=|$V5be+d2E}nKw4ARbv3@D68#Gb?~yxe zg6-ng9YTi)8dZk|?pDCV?w+ikgF`DC=YrOh@P#Y)EGbrNrKNRZ##Pify`ZK6aY=tN znd2BwKXuBpG_fN4p06L^ntKhCoBK=j+sqU;!)aDzi-X;-FnUsOEq7M6yKEwQ=_{ZX zfc_Kq<13t_e8MoLY%|ba0rfKuAT6^GE5}Q9b{<;=Z1~e0jvYJZ1tn@-&PVJ8=d$u8 z{!v}i@{v~1N?5SUdI5rJ8of{D6>Den;Vt!tJMnIII6GCwZ2)CQXA_DYre@rwgr|^n5!Hzv@f+mDGunW! zcZUXl+7D#ZxU5I)9RltaKqhH)8FDg&$@ZyCF2LH%AF(+B2=$sP!=Ao=+g` z!`lrQcY?i1*rJOH$Loa6Y#fSkq{YuAJQEf_uCEQ;k1FNMd;Dc6o*4W$7<@uJv|P=wYe~ANN!oE`Jm~j63cy3nn0twJsrMtoqoIA>RRQX|+vD!LLLjkc3%?nS{ z0c8gn5c>M1U}}|Y=lFhXOOzV3qwk6MLyt-=4=<~-*d$=L#mH}VEwgY2so?imfo{3*??Dd@DH{pBy z0-%$A)F@d#`GpYN(8wU`SMD)Q1AITeM-R)G@;5Tq>UDCQwt#vSd-NfipiBn-lOiXzDiQa40}RrSuff&)G-Kkt}pQ(tAdW|=p_E`J29*IkSJ8vZAh2@y zHzXawbF;D=0m8UORBqBa@TxE43&Bk#QQ!%}LSdaXD?-}(bXpJ?Uttgp;6E^y7=IbY zLy5j##bVm|urMvk%M@ZXo`*-g$R4r`24>T>FggtPxVt0qebiR}@*~BEAvfIv1UoDT zdX+c9!6RIUm*jHHGzFX`?o%u$&X+Jj?87jbHEM~WfVFEw9|-p{{5B#8x5nWQkQP)y z@B=vyKp4PTEnD$#$lMgGT(Z)=(+ab%Q68alpz12T?iyT0H9Z) z*D6B@O~}!`g6^kcA&fHtd~45=K)#_qa(z%kR^Pl`XHK13!tB!2neMj*ZljeB3u)&Y z6qzaE@L`!9c(?RIaX~>6Qk^cA!%qShze9ECn<_et3U`F~m(M?Z>#su7g86Pj8pahN zLP-CnRbh(Ibe6?h1CZT;7pKXAosz*|p93DcGGr3D5)xc5AJp=yJ`&xNL{9(95L?Q# zy^$w~r%gm;$l$L$;DeIda}R<^rKYWeaO zC<)7PMq6re*o=uwXtWuBO2sS${(cLQhx8Mp3wXoWo!!|{imxCK2(n#nJ_vgNjZ-ry zK;;w+7X#`?Mvwy8&T-1*eO$0-=96=-Y5*|2M zY>?E{o3n^+!ebcEU0whUJe>j-7C6t7yd6y}fTBf~%TvnKqm>sz-G+alGZ=k`?p z7Z|cO1ydQvJMm7B7AwtIfG;{azvF)u=+OsH00KI?x?cqcOwBR3ZT^GlS?_?(cX=}7 zUpd78VAA$bI{lhESrk1~eqO*Q|gzBL|qVfwH(SIg>U|IUF9etY21fRu)z_%}m z`}XYjeX|}#QE=|f1c+f_Nx0*l^6GsQD$n6Hv;M%aO5wqog&Z(iqCku!qHl;)?Cz7B zGW2M|?I1X&eF6mTT}1p&1=PM7yk0j5c`i;TVsZCY4Y53zRRUE81VeHge zbzOqX2Tgc?@Bk%SKK-fYcKXSFfohx;QNI0$vT*fVl+DU(W+ry*8&SD2I#4oiit5D2 zJn|{THHC>uNp*ZU$;$$KIeYdorC#NKKNewsnxNMD_3Rm!Ko!FC#iuuTdIDM*LtT(9 zM$H!O{mKBfbeBpWkC|RLil_|oLnEmocE9ewmlW}1bd0|c*YHOAe$^jVZVVnygj57c z`O9WOmp|eDkKRt4Su$~b{cbVr@))4Tl}h6#$7q)W34k;~Wz{ zXWUL^d6X1rPGke8w|qsH9G*FI)-1G_HHp#Q9s{4Uq|uZjRm-3O2Hv}%laz%m1jbwr zz0IJ2z`V_EhcE2`E}%*;=aG{VQe#n5+1ue-8?!t^|F1@CzVFt2m4B=&Tt?YOg!^jX zGKzoLg8({*Q9GPo!KG}z0q7<2MCt%H}Fd*J1I3G4_qpyn#vp`0Ub z4gnrXAd^s>W=hWLW8X`JK$?%cbj&oK>~@qupZ@U;vM%!M?CWS8A?+6Ac}$Rlms=4foM=D zFIOMLZ;StkTPA%LyWjv`0)8{28{1cVc=TZh((=VHidj{JAzY|%WFz1Hpo0Xm4Fm;` zoo&W!C62VX2G_-wEtMEbT>smH5NhGgC&39%WASz+p|_AB(JUelbj{Cijlp`LChm)u zmn%91xL`+qkHB`p6^L$$Bi~$By~DT=9FHBVy?Rn`KOCAm*izrZu!{E!4CmZdQ{;R> z6D~Myr{^LoY^eaOv({!m>>&jI2>h5|1OG_W7B}P+7~6uCD$aNW>u(lFtVO)2(mhjt zIS3yW`Lgig*sJuynS_W%LnMf%<{_KA;EBliP_s|=+^I5{|HO00KF`F+IEO#v{CQ%2 z&;fGfK3uTuTLgL(Qj=B(=ibaKS6sX81k$PZyjPRz#w&vqiUVfOWI?N)tyl*zHS9O; zg@%RD6H!{?Je8lHZi#1*IGuMAS+sy*E=?coBhwba6ZEC(dL2Y{v(FiE#{@ayaQGQ6 z@7S8Q9YkU=hWzPV(LIf8Pah3uel#-W42tI-5 zmUZ#U?b*Vv9rYT_Vx>P4dHj>>`{UdK1)QCUSbyqk)3OkVT`VRRG%Q zDa)c^PrJgdq}A;YnJWV2%hc`1n8>pMFDqFf`~XwGX;Gq(5{UIUr@B zXCH)W(R%jWIk}>i+g0Z5l=%;-IOoSM161xU%*g?C5%U$|!K5-8VNEp;Aj|}7&P>>Q zMmuHf^#DE>mK)NL$_qV#e`99hKotA!Lb5qpiO`=h#36MAZ{0oun00D=3yTSU(<-}b z0PJSzZlr{FNeUZ(z+9=RkTv30_M$g>dR?LTqKvSTQq8^rY_n6UR|KWNS^d(F=;&(5 z*#X{-1#@pwp|NMVNC~q&0vnHn$y%86tDmUq2E_WlyVPBkv~jJ{d^C!%c}aB}Mr;{; zcc5;gCHyC{M~$-HH-%b!#&LgHi8nq>${Ua$L7E0=q5iAFSTMC)^6zA*aW@k&!m$f7$1cs=86s* zPb8|`Wil{GOcqU(5f1&?9f>)X{WxD8BkT3araKz&^bulp$@V%wJbdYB+;FdEb1PQ# z+_~f!pmhAiiI;XkYwq{8Ug^C*4W}%;Kk*yg$_rmwAgBkD5R=%l35X+s-tp|`aN?4} zvEPjYX$GGjPM5r0gIvV-^Eoh1=`;3^Suvz3stIVFx@?V%UIRiZB}yp`wW7F5J{nI2 zB~}92Q>I)J!|uj1dv?4OGcz+Du_u~Lu3?|L=-v|FKGogQD>H_^Dm-HP%Y5()su8|# zl&Juj%G21W7j?-BVcPyoF}F8jP$pMu@8_y6NUaP+X0};&7vE7 zpFdLiON#rpi8k~tBSJB9n6TGjFUF`>0;=QVBX9}=77wKzT;abIn z4Pu9v<`ZWCi$#TmSSzKr;S3+h;sBXHdU|@Wsgy?pH93@?sP$+QyLknK430-wsjPf( zL~~Bps4g89oOi|TLz+l7CZu4|6z1e_>4ic~c!7bp&hjXS(`3Kod6*nU!hrd568*;Il7R~Pl@jP3T* zplw1NQ9}b>6=GXtmQF+u^iolKuTxgj1vKgyTkOJpI77-J4Pem#sNTJkF!W?M*^0F8 z5XjI3a-;|P91Pn9ZNyCfWzc~fZpOyplEMv7liz|4gtySOshFCShGT||`BFciBf+6n zX|reyR`17;Esyr8qSA?g8df$or~MJH$crrtK3ZZN6l)8UMi&$2C*tI<(4SRv zYGD?_nYpFa+sO|P{88IStx_5^^^?8mCN?6mISy1cEVS={bg^5A^XwxwcSYDEXm@L= z-#@=w{|uY3dzBpJ*^3uW6-i~p9Dy>pU(8b(!|DBoY8QzfgOX)Yf6XY3KQ#w4yY&Nm z>yIxm2cWBwRG_pXCm$H?toM> zR5*w?gv-M5*Omls7_FxrO-Njv{M!EwF|8)ZbDB7}#%-+^7{Urp9v<>@9NtmhXkbH$ z^)^@`opSgvU5DIVsH)xT+*4D96)54W4me@iz`^RY!9|J^n}>vQf`QE3 zYsvPYFj)BBwYtsUZub3UcOvljh*Y|mcWicuFv=g`3U`6i!T+8#XdOiuEwb|I*+h*K zZLdGqh`^BzRL#T~eS8Iw*OGnLO|ya!uB#;8#nR4K{N>GaEj>MAeRR~6hWxzd@Gn0O zb!r4Alk3s`jXK?g+-u&avG}SAv5a}b-fmasXItYhZp^~&o(FcZy zb1hiV{ASk_LC1PWk@u_q)HH>^5Hm{12N&k&_vypHE2To{5+?1(>z>UgXjU~={5w*J z6EYM^g@))y{cht(R{RVKxA-RQmBHI_Oe+xzm(2H|^Y9(s^j+^57X+M};9b-%_{DgVRN2&K8e-nJZm@Rwickhr&W4-fnw;ngl;@-+Vq8K~N%zu^$&r+P(TDTh&xDLiS9+}G*+o;= z4u)Y#7WYC9InaIPa90rr$`9cOd#2$te;B-=&K#v(iWzZW$;t)`Ojh{# z5hvA0&6o{!NiRE8#`dwy5h7i}VLEYJ)n@(kf2IA3Q;?Y^nTXvJyVEC(mPWBNu}ccK z?-`Ya$vmsSG;I(^ZiWo;8weah(1Q(*62qYemo=~@H;`f^H_}n65lEjDftCwsLqb~m zCZ=QH_d4F}Wk940fV?pK9DVYVE>6m*rLZVKbpy@w{Zlb3hGHQysP1b$pY^R!INIy$ zqZ!4@TPzoUf#**x|0fi<=V5|vS7AH9lG#|c@}-d7nJ7xlvUa7Ni_dUc#%IsIn6{*N z$>1~Wixm{1=K&!y`p1JcOFc=!XOMWYVLOq`5q^ZksV|nOL7WhZ%O+Y7&~xYf{S!C4 zzYq=q&1Co?ew~iaGq6+W^WKwAM!;7`7>lCr_wE3{=IWX=G7QU)#> z82C{K8Y(vK9^g<>hC-e{?-0fp42TgKFOW#sDPIGPgUj&jFI{|G5`?9q5mz}pU}yFR z?T47kE!zSF7xx_mFvh4rYHYYi44MbBSqLYe-J6}h9v&)eu#32t93%o)+}wHq#Vu>a zQ%`Oo@4A#D&#LtGA*9JQk-$iCIjXKVz_kv(Kgyca42xlmz-37|#n<|l?Wo=V))Da5 z7-!Op5mP7OCu#BTE)ge}3G~^;N9OCgsm}kVvWR9i`wfbx-3>e0XlTHMHYS>h?0_)# zf(7H2$;k4{TR;ILQvr}pZvR=Me^i8db7f5*#B1$#OtM^5F*uH7vV{ZDKM*6*k~M|% zR2_x?X@}DL8mS^2W@)zRC=iDV=Bm+Oz>+43V|@o-=nt&0c%Zbo4-S(Hw5v$D0aE{% zc~(xJU?uHe05k@=m3e^LUvmbKfMBBHl96;8yN1l%8m}B5q_-kbL+hY-UyE=n#Jr`+ z^GFQcI9ny8Gv;)g^s9#K-99#P0rv7-T>ymhmm64t0Ap3@S)$7=wNu@}AtmjJAalHE zh1<7c1$+7MW^~N}p6d9abMB1B+TgznUu)&yOXK9wCTNsFGfLypI1vN)n~tU@LnKYt zke+V9Z@}>21uT$U`Ma)WW4o`=j$P}yCawI#qF^mAdql~_*`k5L>;W2K9sdhB3ZoJ! zqZ|0w8xp!D$o8@mS_d)vq`h`sBnL~AHpL*~`!Sb@YG-2xMcH zmN9+;MyH#wQ>v?b^|d7O%z8{!^WNLZ=pkY2Qnu7K%9j|<9#-wbJDyT8hBnI~H!tt> zpeFCZ^D0DMUxxP%vfyHPO%nzY##^3$XrRp^FWg!Rb6XKL7v8(4n@bh>R&P41tz!B) zN2EgA+P`|!YK?guwDj$druxh2H)BpdIS_MW2A97B*{Xu3g`d%YHN00?pb9!Sc$5$e= zf*Vob(t2#h0#2zjpJ4p|(syE!oP2`{-pV&O=27hQGqw$5=N8JE+YNR) zgjP~i)Fqj?$cf)SzkVmp6>On&D&{T}i=Z!+v$%=c<&a23oX|>lhWnv1S%}>!$rYgx zqsuZ6!ph+uO_GAQp-gXRmH3trlN`xJu=1w|p$om#6mhPP6J<)!ML>)_`pt?gIGi1D zbOOOUU(fD5Eh#*>EI^Sk5Ig8QCXfi%C^3SGcWS67U-g(?HoTFKspg*Ta%qeT!p6tA zHd&iFDdTKbpEeK5-48;TQi@%B>BQ?-sBw)?skui}5g`~TweZ_wWsmbh#O&Z9rT~PA zEAM%KnDOEuN6Ct|EGZh_P{H2F8u^cO+UwxD-h9(aTXBv7uVqjv*W5u^`I7I0D@B32 zhrJFy&9krjK!_b9CXMg8ND+NW;A`J~3Gwln8|<6+vb!tI$J|}$&wW=g&+60YTe(Ek zFqJgrl0@zEi!vX^_JA{_je!pe%?dPzV6@QW#iU^PyI=|+~?Lth$ zMk;&WLB9+?b`Kg?)XMcY*9-~l{CFy#E9u(>6Q`IpD+FNzdJtnN%(vu~5u6UX37*8U zGaP5&HOYX$g0qLuY<%9b%Ah#;E|rLO>cp{Q zHR!YB_sS*^4XgqgLCFLIi;hpX==;Yw|DeS%2^_)_L)ldW`|Z~z>sMtogq2(%Sl|pw zQ2kqQ3Rm#4$^eIQ2m1l!og_TThFoRuh}~w*E*R-xy7AS}TAf7XjHvFdKemG`y9e^) z5H`O8O?!sr{H(;4b-Ia)+mO$DfpoU#uyZ^=Z)R-14=`e<-wzks1~;K$nyk2ICmBPZ zCRh_mMTTZEa{9@ahJsZPy6H6Vn93;f9pjID^ZYUBhm`#S3jMUF3mjcAl*aJJH*<&n z126XvOU;Xtv9ZEbAKxkZS-iAbWb3sJ)<3a;_-1h7fa;T^nK1~ADZ-j{3%+;3P?*FZ zrop?MzvE^48>&<0%&o}XZ;IZsWGgWzB; zwUJK*6OR|Mu5r*Weg_#(N8uuGYP1S59*9YU@4pwT`kDR)-k~{~nw$nfLdo7Vf-SK?F(Ysbl&V5jovS$-TKD1y@8jgNt|9eP+ z45sIef6%`gO@{ zo_A}ji2Uv~^ZKvKrsu_3@XPOhJPQ<*ID%=4X}Of?9v>R#cA39uj9vdiiJcI|oEPaF z$#+->$MoD=ByIK6@>w+*oZfo`9$el`_x;nGhP}I1D~|j@%+O8czV4=3%fI{eu?0{$ zpIVT4qnY)-+WB%npWMYFeZtO!J3%N2d{}Kk{fJyj<``dzZi zr*6Kbbjl$vQ~p`c-lynL@Hy+!?cV2Z|TXR>P;1~ccjM_d~cZvMlg@Ub%W zEiR(XrH<*@vuB-DFXnKo!HlBcE(KRcQtOM&3Q_l~mK`PzGS0vbl$Q^V5HS`tvhPGj z`*1&WKrehQ|M>>z{oHgWz?zI1IMjcCKR@r5%b^%c7Kk#(r0HIWID}8LEcPiV)nr>_ zyFrZszV@v56-I!TH-ZRSNezPs>L3->5+f7)+U_{K!U)Ocif_PYO5a~wvI}hh^A-CF z9g4E3=x*FJ*?q`P*vX8-aMss1Mi;m$YUN%Z50J{Y5Oh@*rr>OjHpO1J4s30VA?o#_ zVr@^YGqX9R)s@5rb1shLI@k@wufn)j<61Zh3DC@K>EPgiX^B}cg-l7@nV58rKf$pP z!WG^Xf;CM`L6aA_u*}KzW9besl{*80x5(kL+UaIa#nPWWw~cvzuzsqy-5}oXsYEd1 ztFu3n=kq$v ziBKIChI+)Hb2V@`)6AKC4WwT)PT?UTxBnP&>V;rdAW59(F0)Xt?T*ts!ZwJcx6(nS z-p1hiHy1k6{kY;yF>JKb?dy_l&j|x@^^ zp7DMLXFEMRd4szWx~C51RJs}Gv({Kk3s<+JsDDFjm@a_deWZfvsH+?p=XJnI6Bz=l z1S4F{8b(H{D)gxLDLbfZQ7Q}wsgVZ|(7($RVarq3gqIEF@ z2T#{MY-3ZVOj#2@HaMj^1hWNu@w%64GHF__BCe_5Rcph3idjP@`x(U- zFoI9pgh=BC4Spv=o+i$d&)r0Si(q{whMB{RL6qvuBYb+yfVq5`-r-vj(mN3=C@&g zruferx3xu1TaVOIA;18b;=?;sUh$8{F-#|n-B+)Qiu3}xP-5lZ6e8EL-bK~54HdJe zbr7a?;NPWA+)XxMqW4Lg_j!LfzQFDd3O>dPQ}+OA!>WN$J|f4lzA6Hm7dsEn=evVZ z?Co^z^Rx-l!9E`gR_C;UxfW9bK3@%r`MR;^buqB}<5)`-MiK|bK%F_(}xiLJ`yC*=7#oVIYogmDtyH4?LlT^X^^6$Y@$f)3~2a)p} zSJ$wVj3O%Fm^G6|G%Q@e)wEC{x+@mC794(wd2r++F9?rFxfx*R?dUi8b5kec1<{XS zKD7Pi<>yE-%6*djI1fBm(a@XB$0gW*a{YI_fDH_-Q&e#3n6CmruU*t=0=G)wr)@Nb z{+XlBj)um$>9@AGpqu`E>GdaQo07iPcy4DNrTp^?1?+4ey#${ziUeyDjnz{ZT?}rX z+PZAhs)oA1*Udw}8G080z$q>@vnjN1JFbgze#r=d32l{(A;E?gj-7tYQ_7bka(_SFaaGYlic)_d zs>rbXXYJLp>2kN+U4?8h+Mm;*Q zGL0l8EDPsgW1H#@&w}u!iP&2uJorfFG{WIofQFz)dE{dzY(Cp)f;YMpa*sGp`Xxp( z{zjl#74`6;_rF_{(WgGjo}*M^l3-j5HM+7!=~#eY1bmFmrcH)p{`HEFPU{r^r>QL;W|GKc?GZcyl$w%Wbb2tWGYOzEJb~KG*Y4SI_k=x}m|K&aJjLZ-Iq3 zW9$xg-<9=`3xuBWPZzSB{$_^$QMK26+XD`2za0AZ<)<;FCAenykIHtFeJcK}dix?< zTR$7t-nB?svE%VEY*>i3owCIo+p?5Y8kk_%>tO(&tmM)di8 zf&cS(=+Om{vi2{5I^O8KwgDj7%?YcpV@+lmCg(F9HaVytl#h(SyT*QD`N2HpjUm(x zz4mLD?=f+&PvJKRDhCA&aH9m{&?$+4t?vy*&F)sT{WQOdhXkBi3x&rj6pz*n7HJ#- zM_2<33bq&8!v%|MIxEm;Zw~C=;=)C8X++487hnZmpYJW@GrrTWK-Q7PHPb8*XKQU* zUtXS-{SjRaY|Eut6x-K4@?kQzEP^s_B)5$PCNQ6z4Ef52v+Z^$Y?TVg09LbB7W6ii z6OoHmiFi?rmU`y%^C}Hd`Yu6q86m>gMEIAI9(nqmIb->Jjy?=kOGv9v`}orzs_onc zs1J;I|KnT5Q*w~GFiq}>1dRKpF0g^kxF^;E(hkvOTtB^;gV+TnzpsI!vmX(8CWOX^ zGk99N%}ji}^2|G6orl}02r!8-xPwEzA;$Td*k5|(jy0!jOrG2Q#??v1XFu5}p^Nj! zv7lgv%v7blo98Ysv`62HM(Q>Xnv1nA0M*O!#rBamY&ffMy^-NLL8U{c`O*H?c4;EU z(^SyE&w2bA6P%}XaeQ`1ADjQYvh7(|E0xmO%Z}Ya3o?D$v<`_r0CEhUv8U`_Ki&MX zju`{xRZ_*NzTJunysK9UiyHQw^;}b^J+)>_RA$Pl^NkE;@mNNcYqhijs7t1=_RHGe z&SgSONni!Jf72#!#{@LIqKA`mgAAcH;xy4m;;V>IFCDU%ap!vS4Sh^1;JvyP0-gA) z>nX#pT_B&*LS|pxvEZRr)Zfo0Nr#+JgHscnR_K{-R@ZS+1mlb8Oi&WcJFIbh@qwPt z6rZM#A3uV+eK?&&A|WF2W7TzDQ4o|FaBJMilOPRX5C-JOjp;$`xsjk_h)iSiI!79o z{wI&kM+#e#6Qg`)=hs)`Rf7Km)1nAxbU{e}4Y7*|M%jxqt7TvCvhzlYcxW5G8zVt8UiR)FA5!5{c0(5X)%Rj9KqLhI#q%7s&KT>*OnWkg&qLmJ zZ1TNwT1%S@eTv{KGWUFdsS57;c^E2g$YUNlm+n)(bHj!rbdT8&IOJ?!EFKbLPa_;ZPsfZ`fc}_iS1?G3{i0yA|!Iz`C>VB{b)*VWdCw zV;25nVS#)9XPx&?$GZ$mFOB@Il%U|{2N3M=_8I%ud4VC+Q^6wzi$!ft6ciEq=DRq) z0BI6uBvxnjGFFpzTzqL;!@jw&@O(7Fhlk6+nnK_0*SJEsHb&D2&x;C!k}i?6UVoBh z85k=hyoPaa1a_oH(LDaP0DFUSxkG|&`oscmWT;`+fnDKFXYOVVhj~(@Ue)N8fmhaD zURTllkT@g&g6PV3(`L*-O!fm9Eg=19;Y{BuYHs4{y|1)CQEzPETt4n@>$~uWjr=xU z?oLCLZ=B)7cnJGw&%0(p73R}d$UB>lSwGWyG+dCgaI(hms%2a%?2|QIvssYL*|WpQ zXrZ9+Ab&7#hrPb(J~m>JuVeb`o6^`QGE!@F$j9c?cMqr}BE8Eiu+YCpcG)#W-wQKW zJpAyxRN@}ZS;I86D);H|#inmCn!+-!UJ-x8z^%UgQfBMK*Av&XhH<&l$ft|3Z#n$r zU)L)iIP%fNHX|_Yhx%q0>83=aZV$hE1-fLQ0i39Gr1wi@;MnTq|Km%|Tq-7e0a!}n$$ykO4MW~z_=dT`aiO9b5emT+w(vnTFJgS(zPabcc)l)!mzJ?cQYn zgF4?#ak5FUcBb2u;sbhfp&#lw4tI>w8JK&A79{~8p-*TzLg(i~@C27?whItNXLl5j zSo%TcA7!r0HHP?zo(Om2Hl6NhzG>4YOw+>F6LI_|=KXSci5Fk#=+gb-L-&V4H6z_L z;3|F^F1~OVC`}w8=C*`KeLN0>zx_Cvh8luI)HwLNW6$)OO9i zns_zbFAv95&ftLF1_?~C3|_-LQoAH1Pdj@&kY@psft!WBj*}kJy_THnT>-sQrG1~q zelOP;+6!5WIyrRob0f)EyHvT|H;M;rcUDMP_g@{gp<9)%?B>fa<|YvG zFXv6qX_~;$WyRxji@8hogaB4V9S{Zo`1Q!;+7Wk6p!eMOUjBbNMVovLZEO~_+d-Xz z0(IFM_;{kM%awdhDFoR=GuSlI#+bdM=y$+)qqd|f&%3=y}$t{k=%BZxks9>TBF!1x`P|J|KVlQvhk4%QUWFFyL=Jt+^EvK%)rL z3oeq7o1JEG8Rea}Ca%voVllf(Hx=MsD{-|9eK}W@?e<_}MR@r5;MMGs z!mw&&D|xT*dG}(}-|d_Y>HY$+#3fFHBCiJGspa-F4AHe)ev%Y=I9Lu0z3gqv!w z0F#x3$#5|&#Rl-9p@_IMa@@p;9*uj{c3C}b`yuT-Ud)YgWZJGj+zY^%h&349oeF*n zU3fw=rUyJ~)Fn+Z^*aQfGoOyMjwxLO;oJ_=1d8GJ`96_tpr`+Uqg- zus@7Yh$>}WNUg!6r}hJ9B+hDJNZB8=fV`G1L~xG~fO@8>sVP!Dn5m4H7Mo{;!MAhg zX2>d^L}<&=B}f{fFA_E{sz*?;aMz>2LdT73bT$klr=C@R`0$}@QY~lFtfb3$5!pdX z6OG#>B!73;!WuDN*csVq_2U&ssH|Z7%<}DK{b4X9-X@!LioVZ#PsiA|fXxSaDVvhNu}G_|FcfCFmKKyxLFmbs}8WHa{Ts2sjwDcq=bCoB(?m?V(S5M{%z(x<}Vf(K7*+Y_w zK9=Vqjk}`fNGM;ufq_M;!hM;-U?e?Bm%;)TGnRZi;wj|+=O5VrCzQbcbNSlLq@ovf z4?xlE3<+3!0MY|)G`s^K?EfPru?^QN5v2_C_AvYwNCXG>}15AS$m(y`HDd zeNgpaKgf;;HvEOjf<5`D!F$H8t-Eke)}t%Rs#SkK^{-x#Vln$q!H59%vbvN|csI+) zFTyy6Su<9d?pWn_X&q_lwhgJW-1tkbDL=h@Q)&->59SxFaw<+!W4{Bk+4vtlRC^RpvUm;xHE z(_dASH=qEDp*il776(|7%xN0Kt1pZYs*#=9uIBOcbKmM(@1WY)PMeX!%9*&rG;KBe zo~iFR;{5*AHnY@?&w{@PC6_7gCAl6l2pH^l!Cnh#jMK00BT++mm#HF%4&ACP@a zkr@65ieT^o_|K`%0ECOL`>c0`ds2?xVB1G|{SV&=`vKnh(x`TJ`KjpbH2Go!{FrFF znG3GAW_lWjzVUTWoah3x3o^$M=nownE{Sv8e6A0_VAXmQJ{t(NUR6!GQ32N;5`~AMKJN)LDOq0^jX2wK9N} z4Ym96JH19m61#gf1&BNO$u=ik!N^Ps3;c31J`f0dXM!qBzF@ApxxlZN79W^}4x%h{ zNrxH+mc+)!LR%FGOoXT3QI0nO_ZeKUUoe*l`jxaRz=95{A&_s46IRU&a-ouOpAb2q z;Q~zpoydI9Oh{A>Xdi~wm*imk4}kqeWdK&v;dpAGp5HL;%fC;GmgT;%W?2anP6Fg? zpyI^rn{sp)ceMDg-qyR!19O2s=7dS-i(YsQ#9{shJ*GW$zQ9NL>LvH_`HYYOe7@`2 zvL=Zz*bkdYdF;N5)gVJ4AWHJN4Cw)<3c5fE=wAxQX!I%PadeUH5$_qwR5+AD3!8E` z#-jE3<}tiJce~nGJ}JaoL61XN$21m?rMRAjURm5#|A*yIs(kQZNdhe>X!@i{Bc^g2 z2sq97-Eb)z4b-^ht5y_!)V%0b8L=t;RaNFPpSV25p-lbbrLa4cAzjmGxOfbLG5>yt zZ!Vl2(Q=n>cNyZi4yXhfpZJ(}=6$bvmGN@J(FzxQX?Xp-Q=dC>kKpz-#GFPTaVDsr zt6bh{J#&|+^qGxEJ?E!onU$b`Lkz>U~pYs}7$s zi4_*FcTi6K{U@W-H-M=!r&90w$p4T4L7)p;btP!T!z z*CN-g_TX>LoavUJudy$8WbfWV7W%hBFCQ?>Uo&DCdteZR0gExn0wMev#Vh!w3;_WKHm8cs7^|eY^GmEKwn=rPt8V~%*IoyKd+N*RNn<5@ z4A++|$!mKa1aZ!(j8UzB6Rv%976ptWc*m|$+N=XJG=oCJvrp5_>FEO8(jC#9XtID( zDx!&xY$({)cU&<)p%!CXl}yj+qWQIXN9xG}bZ? z0(L0GTnq`>hTVjbHaP8v0Syoe5I|~+R{Pqrnl#oK(0$Vb-B>B5s9aCPV< z+>dD52u99}$z-Rbr}EQ&!BegX)d^IB>H@C*;c8=H5V#N_LQE_ZnT0e}Ldy75KJDy~?$vh?g)XXdvZjy~5)UY>M&xPSQn#j7_* zNBdmwO(_43S0|h>^fl-xb2%5-OI;7z0qh#9L24fbjS;WYgoP($0xa`0OB9Nem<;hy zLy) z$+H66iggrW?=fAwgf7dVj_I1rpTgN5G-7_P-2B{oh5=SQJs@__v0NQFtEXmwrp5cv zaiioI?>q&LY}iU^Hfg$7D4$IuhNy%xe%vka>6Qwi~we(gS+gi`XnF`8yEdcW0aAenv8}Gq zOTz)~!u;jbc^KA-JHy;)iUdI^FuU-aUxWcK!0Kq@czT?F=b!!ptDNE)!N3GRK@ky= z>C;vId#TKmR`D=ULcp4)+hd6~9Y_|?-obVU8YqB_t3h+ac?CE2`5DTbdbTL)!%(oe z6Q(9wppW@sAq2bcW&w3&IIx9*MZ{I>{sw}0UMmW1Ngb3nvK#N+02F~j9p9(SbrkP3 z#r@pvaZhzRz}KU0F%3qO>HK<_$lx34^y5w#x-haXJ;Qhic?h?w#Kh94vI6MfEcJ#s z`FkJ_kD`yAPi4-!D_o)GV7+66Imf$&U>R)-62|+!fxaUOgBC!(a!W%cwQW1q5t8Uj zROgPmRnf9vI$E<`_NaKwRfNxwYRhP8vGQf}HpQAh2Sg&8@0Y^IUROOn9K zqUdDU?QiyRgLaBqowq2#?h=joKnn{$h0_{tZt%EwAyn}AS+Ws%0C5bES;oK*Pflt> z+kY+kFP1NGv-nx~WV*34o5?pl3c3>#1<-IdMNfmDSk$7ccXPm1Zn5(h{)qI7)m}b- z9=kh(Z_=bmJ|{(2JbQUk!?qPuOK!tha9gAGRzSEiWi)@gHi2IuMqpwufkE9ceGJWd z$xk$?_kLYzL)``GRyD~6sIKm~QdB!?)3z-jW^cPtSlCu%w7`KUuN&w}bYZNJYZE$_ zJa%Uo#dJVEi3&h)Ol>0w|AyD{)z%!pW59__sUDk97S^iAetuR+ zsPD@p-UKchnUhCm{2czVA-blk3j2xv9j!2Xq@UAyQXYrH^$!?&BNgfF2EaC$b%px* zHQ@c#(Y>rgEvVBL?npraDPK3b=IL#S`0j;mww)NG05lu(@vn3it1~FaA_R-`XMLu^ z0dV*bDs5=-iNKauQ90I67qr(tV6iqo_YB;Gr^;cDtaat20uI9_G^|OTZ)(^J69RD9 zd*BwHKXZNS&-vL5u0>>G4N4&Og(0+M*bOB=V;POuF=$h}6bUbU)d&ql$&+*`=wi_Q z`Bg3+ws{WMkkc;HdIYgZ$>IDLJHXVTQ7BgU%JbpB0GkhCWiO)f8zMIyMgj)ZQSbBV zi2Px|4rtI&g@TEG_Atpy#BufdjM-olKBlR*T(Y1dsBD7dtlAnG9)v}y8<7l|Qa?X9 zI9vQaslB~Gudth53tDl70tp4P-JxWZLwD_-;_txkJEtG2DeQ#Jx>+Vi;Ro1aSg9>O zJ3MM&Uz9|R#Y}a$&H}b{nViJvnYORL>^j>H+iTv&c$xZ(7&_(eU!E-Z@L(Azh?R?e zmEnS#qk5rR&IU2{qjkNgoLo-LkpQa^t#ZoB4;MxjvvA*oLh?THJEP zBH%4L#Il{IRv?aZhVw90L>{tBmy&6+qqe#BBIKc^gS%{Zhiuuh#lT?l;|i{-B5QTk zHRD~jsou!0?Z zD)khYF3f?{q?XFcwO(WF(l80`oB{vQ;V5J+I=zmW4A-uhqj8Z|T^W8qbSLw{ddYt_ zDxIsWyt%~1W67|O(I*9gDrxw?IvC)Y%~j6NHnPxo$>%+4Ai>UBQ&6#|q1JF06Xrz< z$_$=;G!)g((Ad}*m9S-eB2_Eit0%&7Nb*63qu z35pHeViV@DbYnwTbWx*9I*(Y^oMB6SkgY*ow}03J{eMXr_s1$2`_B2JAc&o%|FLGl zUi3d^d4uCcFNrv?v^Pj^_`i{-i68JK17GFj$M*dRH=pz4$3VfrZk+oGNl zs*bY%zGQ#6C!7xc9Vzn`80IN#BodsUSwgOdI(GbcGFGNl0n-oNPDA?;r(6lK4XlJ}@?vN2uf@E_&gR7A z^3c>%iw$q;PDv(`kr=&X|4~<93J)bsUOj3F(-rss#vqm_zZv^Sp29*Di>7gw|@FRR%1VR)5nF0d?p%33ow}eO=Z6Zj~4gt-C5T}otpY-o& zPp~Es|HV1Ubyp4nY1pdMc?##9Rf(yEGHk)7IPMV6nyL2B72)o!Yi>R(!tDwAJ_94; zeEE|~AR&g$q(DN;8p>64AG);VhVC$fgays$V2Uwq=d@CEi#@O)Tr*R~cr@V;;ceGd zG~~p1AQu2~)qoQkxNOv`PM*6KyZhC}lO`SyE?u}VNk9OTE)^0wfy%)#J7L;Qb4>5+ zn#&UX45@od(WNk55K3U=zV7a5^Du@hD!>PEV@G2Qa$4T$GH{4eRdoV_Cbr~I7Qt5` zBslmu=0ib5-c+66fFuXbVoTOg@Gnst@6UOB%u6B+q_T6zT{HruI(AskOqcV1c^?T9 z(!=FWQ(<ev(|uY+JyWKiZt__#D*nuQhb^Bm^aK^ z+Jec9xFa>&Rxbqi9pi+lP>Pm03}iwc6MZX>VeZq|I9`J+m#zkpZ?B0`uVdS^d(*1P zxW|}o2uy1+0imHSbvIP|#j}@9zs3`@xyqV@+dkB}O)B};ZPu3h<2%}jMz& zEivPGcrGQQB!iy!+$!D~XhA;djzk`5cG_qJffE^=y!z%UC$%|8j4}{nj7~T$5e6+@ zT>BJWt|iK`w1b(I=)iFO3u_h6>BlcKL&g5@NbfUe+F)Z=JUeD$sy)VdU5A*_(Y8Aw z3cbXr{I#?}CJ*bPnW2~w5Qa(Uda89?j~%(_Jf)%q>e(&LaA=2`n~G9qOg+wit%bAf zc)BHFS4@cB8e8>AqRVC_X!4;+NqC)NxDCA;&g<6yC!{;skH6hgwo7oo>FKM*O~)rH z*jHnEWgZHAnxZGh-@A7Y`mE18)~8jip@29!@wyK3rWgej&ME_F#fR}Y(**=J1UHb5 z>p99BHLiU`O$Xkr1mB6S8U-gh59jqyN7fjJ)ck~q zYAWiCWZ`CNHMSx>H`NAn5?Ry?%C{4q61XeMot3%_SOMB5bzZ#vMY14uv&`@3@JMHXQw~ z>c`Jm_)R>?W$!x_@5WfZZu>k*7yqU7c<(Ci3k&|JbDV<9KuJzc&gSd9`Wl0INzDF} z*N+Z{i{mQKU-#=CqqR`9XoiL}ZF|}L#x-eC*y(xoBPXiHz#}Fh2?r1)Rre7Ut<_>F z+c&_JCvuSlvph36<;lB5^IQs!X=gw>?sY;3L7_w1P)6xM)8n8DkFT{oiZZ6qiS_FP zG+)&@7h4WJ!5a2t@doGuV#aT~EjWTZ+? z<^0vRSK`kE(mF!*XcY&s#WN{WhtA3faN*YBr} z`;$tHmBgO8LW?*{79E?A6vZZKZPDt{a}DO4@q?toF z@}s34wQuynw5N=m7~?YAFBL5j58RkZ)_{d2BD&ZGn&59cv`gqySumnsS0{eDI%sDA zv%iMbT>`SCUw6r{ot7w0Un>&()m!7LteCwQn_4&YU|$=}g&>+|Z`Vn`HrU}(qk+%U z*U8v#TMqn@{?gGK!*>*%{)Zp_lOnC(_Zz^e_AAl-_g|46iu$FG{r&)Z ztM}!fx9l1w#i7~eX7&TgL4mioC1=o&^bs)VqZu|D_*~Cn_7}0~p*YE~FJHDK#2`>1 z$0<15UCGQ7>$Y#+@=?0J3&jwv?qqn5JuBcqL8B8$r_=b?=lCj(?pE(2U9|Wu929o6 zZK+FpOJx}A4g00zn_EqoY2QEHpUuIWXQ7)EpHlb)69eku_U4)=?lAo-WHQ}tpOQO_ z)loeFG;G+c12W;(FujZKf@t=?zHCGymOu**4zBzl8eKDQ(uU4Yf@^Tg!)9!JvOf%Y zEHTYw6lp0zA+R9cYD|HtEuMQt?GFHV7g#6lC`Ubk49uK5 zRT;0fS-Tb=@#4h`<2weU3SU4UZ~o*QH0UTxjZ=STiw+**m}|XXA`Bp9`IN#Jz_=55 zWt4A*g{678PAmY=k4ExzN1ifPlpbyilSYtqedy6}v4{ zFzp_Pnjjxhkddi|W*uFbG&J1|aajxpQd* z!TraYekeFL?v0jJ9zS#GMQggt=9jZF(SvVhVq8HQkVNm*(s^?Jl0FGS2F`Mo$d57X zVWO&=$(N*~@~ShbQ;x0i*`Id_S3KYQq*kZRi6~hk^^e`%tVjm!LSVc(d79iVZtZ30 z(z3+lE}u)H)Yz~Tb(k6~86`44d|T1{Ev~kmoV1~PoPEsE5a=oJF%8d!Hh3XHQDUGy zDrD58O4tduH-vUqL-u8|?Wnu8mtSsjcV`XgfbK_O-D#3xU|%;@VGls5RZYz8V3$1E z2=x<426@$9zj|d(r@vZ&Hu_dncAvOYD5$_bfwT5qJ0N~3^2F#RaFT|kGsQO-Yboqh ztI2HyiX8~?l(>cUPC@2PJSdb6=u?LJ?MT(f`OOEQ6-<^4`}^;4dpX_25=dtT1f@j>kT~6#qM+6i42JeoP}w~wvxa^fa+Ob8k6$*)W%_N zRMzzbDRpr$Xd&K9D2k1~2C>U{(uIwAIQh03C<^gKIHAn@BvF!7^)(qdWWFt*GJJ!A z3Q$Bz?rMsT8J((&figGv)Rmv9lgJxg)1ralBcqzTQE9v1{_+`yQ`FQRw+-ChQy)Z& zU1ZZZ3dJYo7ZwvI^;K1Scr023tA$aE7L{M2tsOJ_aL4b1raW{W<3jYP;Iw)8^UZ>* zu(LyA_wn%v;(UXHxH{$O8jzxUNDrWT8P044rz2A3CKXl!2NK9%QX=NpiF6Yk^x7KJWzoHf8!y|Anf&1aYq`mI@Q zQYA~$-0xl*P(ru>qV93VdvvRVkHcuTXVbRE(l0(M<6vo=`h6|DELNKj*Add z8PfyCK@>b)eRhrzf)!bs*DuV*S4dX7l<%60lx%eX(q`4{4W~*S(GH`^31_m8R zuo~$K1D4hpPOUB7pKrrl=j+Sk!9_0myMq9pq7dw^sq=*tXQL;e=qYRt#B4?w`tMk3 z7uLPPP?c#$5HT$SCV`znMID5PsV>b$lrK*ng?`mf8MaI9Bvqf^Wm}%qpp~~f+aCE~ z)gl`^=Wfjp-8|}$iNGo1wqaNnVrhp}y3@`Vf7fkaA%ORO{=Deg&0X@BIpICg^EpwE zehMWTJ?5;jt9RjiSy3cL>8*nwI>hzUOgFSnK(EK$<)^MM&C`&z>@#O-9t+H|PeVudXLw{BWMMzVjJS`+u^Sn~!fA>$S!IL%0pMi!(w>je1+7hJ7#-wiglk z6_z^m)<3iNPK1?Bm_tuE*|&;q@Ud>ys<*C3PV|0ji{(^Ty{~A5PXKUcYVhh3ex8|| z&A3=rmY4&Xjz2D<*m3|EsKj3GKZ;>6Xg}zxvBy%ao>U?g(ql*Td5Q`tT0ejJ5(7Ue zfeX!0?g3Uj;g3{8XYE=H50+G#$ z>?5+dr!L)Hs1dqeB=r$Aq7Lk1i773QQjXm6@E(+KKDMHxODv8aFM9lJP0Aj;?6EvN zm}%Dx%)8?h*k1V59D@bY$Hc=ppAKlqB^E@;_lQ6513kQ5h#n8(PbL;R-o=gE!H?I3 zwwBO(E9`8a)HHH9Sd7j-lOzV0h}eP!=jT^eRIJq2UPg5l7!^99E2;cGt3biqmarh% zLUXhuJ|h4AXm|>vl_sGBMX;yMpREdAeaS>ANI4(b7O6+qgv_(w`Jl;q=0!9bb%wxQ zSGL~jOYeR9jr(&Ne6Xapu?rPVuQnctBy~Lx$g?3*RW1Or4sK=9Ly1PdQQt zI40;)q$Hykr1)mDJ{5C~Q!rQ8^w!$TwY3NGLcVtFk_dyiE+*I%a4O=!N)`qfbh5VA z`Q{?^czo!)xtd$V$R7BQRfx9{CXMyT<&s88gmr|J2V4RV1$pHN%kK#2+YLSw&qD##tQ_Zr zCkSt-3K0nH841qPbCNFOzk_zmmLAS$ntb(!a}qU~4Gllf1kjK@#yNL7CX8zxX^??Z zV8p&Xd&uy9 zRcoB_PlfST0o{TWGSLmR1GWZALcc%Z_^fvAjdD0SjHb@DU*PqFrMVOsnDKPGd=}DW zc{#ZR+oCRHt8JfXqf*fl%{Aip^B;b zh-(G6*kpDTTu-G=6b#9GE_r$Z6k47#4rltkM0j_lKf~n05g_72(B#wliLbl+@MDWDDp!K_(RrgW7hv+^2pohg}uTXJx40QK*3fj*I? zonk*8`(u^2p@9a;+S3e%hp%7fmcz|<;=^p5K^iRf=k#7{zzWNWX_PK!zsnXvt4Ug` zb&7lM7T|($J^oNUy=wvV0nrvNe~FV}4(x7k0vLKlTC1-2-tKG-6M+V7sn^hNo(ct2 z=-n*m^V&mh|Dhksh71c?BDC54z)Wwv2BH}5pNXZ`=R2z@ke_UeH6OJ(>&=@dPfXVe z$!>$h^kz$QaHY;i=||%Sed8%a7BEwNjtooq(N%7q4-*Lj6wB>HSm5Bb%X}#=d`muq z$qr|-k3`LK_b3PtKEvQbR2k(0D~$UvQ|XE~kM;Fy`4n8qv-AsY{_gl2e1qONo(==X zJi+YI>6T2L`wnG!dH#>c${(Y2Zu#Xw9SX`h5Hlcp@uLd&;zBkxVvzYwSfqK9>%>NDjGq0l8JlVEJ%lR-vY!$YS- zy)N-El-+QeEQIi!W8;q_$?ab~C(UMR;TgyvcJJC%n=Rq4$&$29?!~$U%Q3x>K1;2m zbR-@|Lmi67kIRWt*&nmpQONK?x?fNXCz$i+&h5^`wN3%-$d^0iM}$cGK1Q_SHs98W z=Grp>&wr8L`p$j`pe8}L~8Dc_ICZ~NEhwWw!cI+^WS4*BY)%#S8iFdZ@3i2lUk z2Cw8)U_4AoWF^8T|KT(TtI>JhM{I=hwrRhzib^}k6TageIR+Peb0N!zhM89dR-rGM zV>FX4(sWM@KFBOUuj`jfRNmmCFgDH98I1|xZm3YUn1bW9KX9NHgzXw%8tJP>_7bb| zMgx-#-oDj04a9I!CjR_g>6<#_G5dk`n{*zk0ffpjH5jb{KOlgwa44|RK!%8{@=HR8 z;&VA~LJ*4blPBMUra56Fc>}JlfBIZxd>^9R`e(iF+tKKqqWCe5SzBIPsvwrvimgZp zTLqunc}5Ei#CsZt#A|!gAC%9~aM^{~Q&1`2x^=7Vljq4n2W5%^@p&M$A1+l~sF+9( zV(=yd%-ABI9Z4B!A1w6(QU+OTg7_fseL9@T-j#K#r4a0Q```o8{J9z%852&0F2 zH3i{YPcr=+_<~ILn9rfmxW`No%q#h4_ZXQ^^E?AGUQ8IVNT_!&voOXc;3inuLFR@V zooLgLpYESLe!_%pj}G1Ge(GuX2W$e1q4?cwt2aU`V*toly$MXik9>Bj$GRc#b%}EW z?i<`B?vkrmf@pTG*zX$yz>&7JLx&c3s!LY(G8z3Y6A&s!k8%6nNe3%88(4s-+OGnY0&u{Caq=W_QPhJ>?^Arqah@p*#kxI zldpAYXrCC~r8hU~6K0&bc!^4 zg`7rggiNx|4AvD|9?N(Sl=X>Lj>vO5y9pw~P7VA_x+(sz;M!7FIxX!DW_+54N+u3= ziQRFeCS4+d_^d@94wGLRF)22(+wtLRRK3c=!x`E~JU7o(zQ9q!RLzqmpS0w-pkC>N zaOC%_y7`$4G|WsufXIO+q*aI$wcOr<3xT^_l+fpXOQH;V+;vUyW0@2gisR*nvb%IyorHk*}nOV@=ZJi-+6iFpw)QR~|5qji84 zg=ZgVlL<*b=+Cs()umh_qyK6z5<(iXOyn~LBt5hFI`(mW(E=Cbi=9Z6c9ei|o-Vh` z)8*k@WFLz_%!5=eOuqUW6SI*N#XHoQn?A+NVG=#sY!9kbrKuw*`t0n;ToDVCv~Q|O z*MA#s-ue~UDkAZk-`AtcA!R2hVpVbDM!fHNOlC-8Ed}n#r#(=RCo^f_{6@jRtpvJV zC$6%$2;a$_KW#D8bw45|sXDOiIlhjsIkc}WS_=1~*_$*gjE{$1e3f*_TQ7vcCmUa`F;xqJK~PC?|hAiXB$Wn&>)-(XiX z{kR(qAzcF0lGRVn39Bt#wCI8nieBq$ueWd%e-IPbG(8!B`K^g&Z_o%;Ql?~?vkRXL zv6p#wnmC*`pFe+QAp#3%Bpi8mQ=84iwwykFy6||*SLpBDgr4Y&X+-$bBJ_^q&I2GJ zOo`&2e?COtg%B}RN_mQRFTOjOYf&eD{%*LhVeyyN-6OvkZ`1M3MK%M7GBz{0>7+Zc zfk|*{#7x!p0d@0Nm)@!Q zVsDbr(iOw;P7Gj65N+e6uMBrZ0OA8mKwv`z?rwT)Ze|WlR=pLe9bbaCr{{y3r|l8e z9O-j1_zxTqdx;+$nfiu!2cL7lJ@(E`uoShAeycegH}OaJ9jBh##gR27sCCzxUHg33 zMApGF!Oqh>rUI48Zj4Puo0%v_o$MR+YTWr(HDaV4wsvT(Xp7;y6RC%S!hQ!2GK^8Q zL$j+8Jv2o|1b_@WN=8h19C@WEU2^lH&TU@RUF)Hdk_JP(#mP-DJuJp7@EH*z>P|~k zJKBr7ZGLXNWD$B?uz8%{-R`g{_fQnk3tTv2k4>~~ZHlhvgcv7`XHjv|ag_)I3()%W zq&tr(_xSOes*qFh#S!X58rf-xyQevE=y2kC~D zF8Lm#WHtQ&_Agq={<5F>`Tk=7}{ksB6Jy;Gm0Dmb4T%Nl1R1ER$kb>{YucH#gVp zBvi2|s&a>LhmN{8!7UKxaCaHy>N0LS1kG!Cr!=K);w36r4w0WIizY_>*toUH09@vS z(|wT?R4VbV;01s+tFm}=<+;6ok>e$rV{L8Gz0Sq#bA!9jS$jI!F1zXsV_scxyx43i!P^wpZVnp8(}U`z1T zEvjDrJ$2+nv!}0Z)z(lJ-nrid#o?~1{N++-W(Fmpy_WdPR465X2gpPCT41W5!^XAKqYl`;SkgJ3&kiDm)~h3J0^nJL!?z_{0((k z$}6JrH3W73#@@5&6!AQ-5fp?Wq(3A8_k+`3p;Iz#G{`*+4)!X_zPC|CP<;hN-3SKV z#X|Fbc*G0BD6s$=9h7E>>e0#SaGv*jvc=>H0dG-a>}w&(SDg5#!yH{R1|fKK^@v*r zfv?dB9YPk7W7i#M9EENb;3f?V3u{kacF2Y5kL_np?Kxh+xFG=ZV~F%MbESlgmNTz?=Ck?lW|bDmh384~2l|dD`hd3X&yV?w!+*%Q6kCr}G(X9`l3P4NN7Rge{RN|7?#OeVV@)^R z&Kr5%^Yx)qp3DA`w=vCKD(|BGPV{ZUq_Bh6xNdycjG2BrPHLLIrS|TCuU9AL2Z-0W z{OEj9pi!tpNjUb)x4rY?imzW93XjWHzI@Z_Xva@XNFXWwIYYzd_&rnu!z>i`zAeUO zpwO`^m>5m41o!+XG z>Tj~G6(dmsUtWAzBp!A*>QOju*tmmqi2xZ?oYkr8-Y-;qo~=jGfd+1`gXGt5v;TRk zziHFH1Sx|V>Q28q9tAlAAKVaeDx23JjD)FmCsxH7o|!j-bN@%%Q*4<5XsU;fL-$oP~Z&vW-PsFOox!iQfarUE) zo+!Luck!t1y0=&E9NmAWJCL>@saDJG9G9wb>-~H1ajzI7@5igp<6k4s#c%v}`m^u% z@l}zvj!KGDH1Rc*$fwg+M5WI`e{^i}95j$?JRIFN&&Am0bDY;DOBBfIqi(ysYMJWF zBmM0h?tS6Xq%#Z#XQ6RW0NoPm>xpWOJ`M6mq7Fzao~)U5*tm`R_ym=Rt4gl97DqiB z=K1>ZI&8L{qpVh&GV<*5jE+ZZ(rXy zM)(|!Ycq&LuCIm&CO&S`?t9EFMmazWi=v-rwtI)u^)P0}Q~c=K-Y26P@nHEmmhH~i zdBx-cZA(hQKEJ!VPCAsVnwuS&+q>=o3fu_(Kt{sLEG>cvU$>o*A{#bb?D!@E{VcJy z*ZZuaM{bCaxLo_jZ|fUsx}aC?hK!27n}g%_ImV(lJ?nSG`RIwn4|7cX9YSd+QOJWZ zz5f+W=-s*9(1w$Ry`UM-gfMq zQ$7_al>F)G5Nwfg(tepGLU-=xtomk`XEy4|B$|3AzE8Zb;Q{B*Z%1OKABLy5Gqgi1 zKsdin@S~yR?*PBD(3S`Dt}{05`GPJs!Kgh(vz5_p{t%NA_Oyf9Mt2dlYir@A*#npB z<>KgB$`6@e<$*tKEH5t{Y3-=gIdJF#`0!S5^R&l!MRQC-2af%Tq3p<(Ewf=6h7$jR z$JO_U+OumXb)J;ewR6Ze-%dJn=FIQ=888YX`8nqJMk3)uxGMxvO6Hb(pzB;__dgD; z^zX2JkSj`%Zit~!uQ%GYd_4kZpTA)RrTF?9AiZw%>S$`&IVAw!#}!hIKgclT{PU9L zA93`9Ct7)|4)#~q3Qe29+R3@SJ9&#yDSCoo+=kxeJ=q~oU{_0~L0i;;bj|64N@V@j zYZvbW972T$rzn^oPywNoz8pwH_%HjY5C*lA(%!cxe8)Z)?UHfi7&Xn2$MLV{SJ9#n zhuM^HIBPud{{4Hj;=JIeTf$Pgro&U%vM{LO>m#{|RpMb*(NF9Fi4c(J+1X*^EPM?S zMMGS=TG97{p$CoV)cErFh%GcTP-|mk$D3z#?1SPhuHg!UPF%lz?Ilh3Dzrm)!W+fi zXF+S}Q?CoG2%XS*bb%SVXOU-}H);I(s6J!`{rkx=!V9w>fgvD$ANP-c+Ir-2`{lV) z*0282FuPJ>Ep=W^%p9^aF6ZO`EWa_NWts?t{enUz{009J^LJqh(5ElWLV4=->@u$^ z1EDPkM$F93H{>03h65|e8K$Wut1?g7799#~yRN#GI0Xg;t)W|jFBg!yvgzLa`(^Oe z=y@_P$&iKF*MCZeI_2amw(JdP`MT7P_DW@ct~QmJA^glfgzKUFtD9oopL?LIxpV5ev2~*lqT79&5B*JiMe~R4P z0u;TclH>;>>NBF}D*LxY+=$!ofw7^`Y#nu;j7&#o(Q>dG&|gkxistJ!PVbt0KmT) zd}!|HqnOPR6m&ZawbJKPOz@XICg-dW+Pdqhiv^MK07TiVb8(#btSdb51e}p{F4+}E z310A|F$V;m5{74Rok!vpfq)>Oi#rwH$I98!1?n&$lzk|ee$l1i=U>t3*Yt=^XSe#@ z({!nASwV~FUW#O{#)#W^eAsFvmtWfa`WmEyS|xWdaRtZX>W#x~jh3HvkS`zqpsfDH z4|(EJ5l)U}))L;9+g4DiBW&-ki<);(Lir~OU+Br&^BDP`g2G|I6-qqx(BBnB&xnGc zz2B0~AK+>p8`vP`a!J}PO;AY4rQwZIg?V5ZltrMQyU;F3QxgcI6_n`g*)!*+TIF)A zL*$UC{J@v60-qsXLf8SaweR>{CopGU%W(~ymBJXa<*FC1BZghtG9h_L90~WQxi;jU z7G|%iL#ajSN_epBeR~y}%nwhC?gTSX_+Fem&JJbg_By*-Kbp6y5jq93as(% zb$>qBI_`8SecvLrZ=Qeth&R%@6uMrm-qpgjKLv-q7JhZqbM(AnO)BStA@Lp8@#>PE z9lDx=3)5e$|C-=8@B+vEr#sY#hTojG9D9ts9lOeaF#rNR*X@A|OQnyyse8<1!I4`` zX!;Em>X>%k!9&-6#xNx#|!yn>$sA3~?OC6L}o*JIKe15-&g<%i*DpXA`UDmNs0;79)h{=#oQ7!o*GP`c-dwhY+|>@Ya& zA!TpOKmP6iyNBFMmVPHL?tRBYC^>Lz<=sS2Om#tGc465iT$e%u0>msI!&h~q$XnAM zaJd|(qFL(=`f2u(sNC2J_Bb9)83h(J&8SCZX$b%H1r*NVg+eVL!2?6gQC?uIB4B;U zs|I}jmOBHknH?_~8vvBLe|vWy2-l^5N1`@W$%dBS1r{*+LFt)>sskZI-uS>!Z6gr| zry7_!;S8Y#8fuF2f4tSN2cxtYxY*JFWilcmNACNXIOCxxkqH0`cqvc!GUs;>Lr+oa zjF)iw_ZA5S;sr~BE&(Nszrf{x#eM-`34FN#i1)5s`2u43MC*d)s_orN<>ebLZMHf1 z^kvIutLS%`@6MvW*945ZM^bGMvgSQOWMDX|M_C>|;(v}uxUis}d5f0{R?yJtT9Q`i zb9DMm)pOduAI;bxRJWiEzdK+EVqHhjYc9rkWLiZ%eBqRxr9%PLQM*p*YaD8$Fet3R z*!!@uw^`_Ecz@TV=CVb|wbzSxq;NRCLw|@({=M=S(`|3O%pHkR+6wyL+s<#hSpN~6 z!(PcJ=@J23%x$9N=GvYU(I{-?^Zl12ZsN=Tq!N1XAnUPnQRG3fTCz7MfHPP#-*SYp=`-YVVyS1nQ0_z`m z&t+a#Yc6KLmWDmo6TDhLl(w%m&PNdDgH}yDL<5=f`B=)(dyyTSn85S_`n7{6BDIlH zjzmL(EAN86``|@zKER*0x82*NV<#9~5I5E0VaO4`g5VWMMc%eD_73=vI_=Vfv!+>Z zKl1f(mg1AS?g`+pk#prazay{^HoP~&kKWLfExEB^XqZEo8k-fooed@=&&-i=`i63jId27`xf+OVM!IqOo97yL@cF`({sq2V0Izgum#8qLJ) zO1yR$?q`J{RZ_1@=idXw{uLPH(9?6=92|vLyIr!fv%R02)7^ar+(W}bQwY@|uhen& ziT-xzO;(or!BTAiRGdiv4t&;I6McOjfB(ZTXCCQjigsBSH7aEAl|C8gZzD=FpxH6_ z4`VaM8@4{Yx)H?{2p7Rnbzvk+e!xE`&a$D@hvg*@c&I5T#A63ysE3w&z*R!?tZnGo zvU<}U*`&Z#MX$bJTUl}kVScgUTn*?i>AkI-y*IY$GJYW2Tqa+1!_rCM9{r?WBRvnvh&KAYqAYVMT4(<>>p zgx`(&0i(oi+d>{zh!>M)oLG6|KP%1N7m(J z&1ka6MF=Z^Ip2GglnrZ`{PU8c;2T}Ua`mLrT`%~C) zuNQc01a{lZ+^~&}N8ZmK@-<40NdlaN@*#TS#}eSpr^tr&`rZp|N~ahNeDr;RH1pUz zBAB%Qxv%TP3l!$&sBxsuWnXYVO3Gf$VSeBK-|GW~QZb8or$KpQ=>l=+q@aE0*fHz& zs;re%BX8#BUNN>OrNK_2!Z;WG$gSRdK^z<@E2xUT%(Y@?-bOuR_!=!xHKpZgJ2&0k z{-idQH_i-l-01~*FBB7ExBC68Fdy=JZ|;(>VY+SGHZUvE4=b*q!3p2wygkBL))fWm z*0+dSA7)w1X6`EXvKxG0FjQk>Vh$i{#?gh1wGDyi7KHnB6~%ATa&+%+mPf z|GLgLRM&odEq3a;EdxJh05b^jbtm)(fZU)|M^^TlV zDM8FFpa6KREkZm*n}rkM8Pqt@<@ZSI*DRX2ytXfwALdvl=}|78!zI5v!KL|rD8xKX zG2luoIy_8XV#pKtK#K%Y=|&O^redj)V-w~nD2qJW3r3&Rp{!qH%oubQlm#BEhFNL= z;#r41X7-$%I(6lDVIVC;@2{gb_T(;E=Q`f7@QXA>+rlq5 z*9hG|j-n^bk=$FhtDk2_{J!r%4syRl-OR?uhC(5#R+#M9qoMa*7RqmsKHmZG#9ed+ z_3WSd;9880Kkg3LYL9FAd8Q5pcP5;sA2-ZTz-2jZs@#nS4+2HbVUEO3=mk-t$b9`8 zwa;%LZN7a+W`glp6P|=#zdlQs(&#)*$%YJcZV*sW26a?*db-VC_)(~#WpH<#1*EFz zS#&^X2M)Tm5hOpqYRQ=jNk|RE#$Q zR_&jddq4yZvy|0P$G6=?p2T6+myW9BuDi-hR>VTLap~yd&pJ{b253SiobDk2G6G%d z(tjG_4$pgZSh{@v8Ev9)m$Af=qL?;D{~ zeo}T`W$&q3CU}qEKP1Bt7v0K#Q^nM(&?Nm&Fxf!6Z@IK5y8IIiZMpRP`RjCaHYPhi zIhxIYX8yne%@G{S{4Xlmj2jg2z^Gqu`2s`B`|GA&2R(W5MhdNMg)!!i}tKFXbyOj6ytt~4GwmY|$y9;ewJsl2zMB%@; zaP&33W|!_3m+$(G8Q6J&LK25)ybB(j5H7C9rK>y7_RC+)+k~C)19UEiK{IMCMXf%Z zd=g=(;u{`fW&-ya>B*ZdkgSyeUFM>+itKNdWkk|H>#2^VUXrg3Q2+pi9Oj@*x5RaU z8O10o+XXYUH9ZQCQYaJ*%b4r2zF}uojuZ2w*pG;E<%%B@RC)*vylqF+bHbJoe+g z)cpn`tez-x-ejrro4`e;k+S}uHjeL>+C(CMmAUo#eCQVj-sTn?^FKfWH$UJ80g3WXOP!+f=}YMu*y*K%0W z!JWf|*a3t$2mq1|=}m4?erFFV_s!NEfpv2ajDtue0ZX@AS3XWMWHkj9dDR^UorSIO z3c;&mFDV?+_CFFQ=g0p%0yF{YxiZeq)LH0Hk$$4)N3(hK{T2`ZoWM>b-gAFqI*&dW zQwv>r}eJK9Qkt$N$Hf529&h@4*27at7^A1q>o3-{;ANJRy< zW;BD$n^;QtiS60Fd%f@(Nt;{0K#7id#H#v8z__sGp#|J>(ISYH)1cWrEYpim5{iP)|0oV5FoWezrv4h3rPO?^N*vm z>3e5x(6ul^GN=}VKRAky*X{ z!mzVBnp1Y(Jl#iMD{*mDxaup^{^NfK!w?0}O4RJeV%|p_+V|z<@#gA{j@LWiJdjv( zX-Oj85B0AbMO%OIz6xkKgrFF>3!?il1wSdl+^@?$|xMcD-HcPXe67 zT4AL@VS$S-wUkz?jTMLclk`!Zu^cHohvFBYO#OC!H}qQ?)o+{A8a;vI#I#nc^MeqS z<+kUHiycnf-l+O6`9#A{f55#?xS59)+A7&%4t*T;Ic*i-*mA zC>HbuR9omnOA@*h?HoVZSl_!tVHGn&>W>$908=hI!2WjZ=k{7u6U9Es6|7LiCVQD>15}po-@C`mUPc3J^3ACKG-J>`W{}1ZIQzW5z8;b0!z?qv z2Azo~VwMg3T!JE1s(X?^LZ&~=cn=97;7Cpv+K^@`x=%wh!>pzc(Z;D`e_UWcO@Hi( zoszZU7A6tFE~J9Tb6q^gu)os#1$@KF#15G@c?7jxb9Q1xRowYFGh_Y&voBHlGrsI; zn^@xB|Mjvl3CUkxD}&TDy^c%M;ysRj2W6@Dx>}K2-{AT|#f2jqtV}sim#064n z6a#|#7(TUsNo3py{-o2FyuNM8;$$y+WnWzrR@%-w@}bW%MX(VFnaX(&d2d?K-jfGACUtj{~{Dd{jl9}R`7VgLcI*2&xC%|(> zdHI_VwIKVYHT&S9+E~)6mtzDSlnca|T?c{qK!<~Hihm-)A^JCa1^cJ^&vYmN_#H4S z`Kbow>5bDccYoqR`KK%8l>e~oF+nj8dF1vOqMO}HI6`h2Zq+jualX09F-&))>Npdm!#Bwr)N6d`jF`m}I;%s?;!g&di%ComTVQLtP#D1^o1H zC^f*Pb)$FW`92u4syFb*ze>C1JFCesxaaZ_|J~D%*_`E2N?mjC;K8I#bT699kp)Lh zR#Y>{*$1EQqlkXfii)M)QuF5Rdw1Pk$tCoTywG;1*ak88hj_%7`+-BdTcVwtq{B9- z6*>u?AQe%4Z&jP2u!A_u{3%g^PCBeLVcKO}9^;k1yhYT3_pHq3guk1ePzP^}AV?3h z1(3~AsGE`;>a0<|#4^_V@~a(Bb>pdP@XLk%XS=vbPL^n=6>5 zt>#`RKl7DpG5kybRIUdfiUTqY3Wf?ti75UcgUK!P^W}%_W^HmuX7bw?ShI%udT_FG z5Jxy{toexy2gEer@zS_%U%Kx{r3CPB2|z-yufEqz1F5ej%s)-1Oyx_%kM33NwVSD!(3_Qbbp84lo9i zCuaaA%&Id5?o!)PlIjlaJSgDrNG&lTCL8Hg+=B-WV3`o;A7gBYOUvUTl%qb06I0q- zH*N$z4p>Wd#5*l&eTOC9s{xYi`90KxfN_3eu1#qs64KIgammWZhbzqc25dj^arl&zto zA@f#ljlqONw^_W_`t%uYlX*r7=x)6@{k5#U|yFOUb4QUDkG5DVI!cnIy`}?L6NZbHnaA`^WjCKjbpM%lG?!-{*av=Y2QC zag0@ys}qNsbi+pakO!fvy}Y0wOKMZq6T2k8Ue4lHXUbANPRSlkk4?BjI?{{#v}> zzpK94a);^_u&mgPL|6)0FPS4b-g`tH=HfxIO@P) zz5?T9&v;mV;0l{#cc052K%!WRRT7sA260Z_KL69vXzjrEu<`TjLuz1>?_@-y4TC2{ z7c8ZD9jT`f-IFby&~&Bb4i6T@;%hmzgP*|8ID#|6siZx5&-3DrR9rm5MofdVhkptF zc$Xl_Yv&!{U%^TWrFF|RcyeE zyl~sHC3b`EsUW8&+r%V}u?H~~?rYCFlX_bD2j#zkl=#|vkupW)N0_$tCso=@=?rw# z+6$%>L>t;uAdIZ7J{5y!a5^%eDn!9d?zIbEo!q%0k?V^ zE>;)&Wg9^USG(!Cw@H7QLpeOTd1X}BuEflBG`9n}CEYOLZ%q=QB;9|x(R;YMjY2t` z&gF99Vgfi_U}k2Q>pbmoooYzEdvX7ee*pblLBRm1>`@T!Y(0nd5|H&%2$|mq42D7o z+7m1U2CKETm*6B)pOtbGyCd+_Fl#9kyz2N++IW&nPKo3s-sT0Tgt;Mlh<*PouOfAf zpU9P5lT5}V!*49#QK=rS8PL~tYe8PY!Zo}pJPTwo5Gw3K?+mULU;wI^_g!iy$OH+7 zO%K*&JHG5cWg(5G%N;P17LH=71)&%~xGq!ntIKkqzS^Brca(VBVQIeteI>+wana(E zIE9&LYyrXInas?Ge@q1JG`2v+w=c?$KHdF-KF~%D-~KCMS|Svu9R5U{v&a^R{vc5$ z5mB7f$O%-=N-`hGqo{f;L_+=j@9A2ebYa@d6da~r8p?C%d4%=z3?K`APW)$A8c8FT z+Ko-6r{#+)^x14jv$-`jHP4zWDu%o~a9Y@gP{JLgpyYaW^d>0~e7vJt$Z2J#aBA0Q zqA&rkK|7z1q3&D4^Htx~m(u&MZZ_CRe@`T96TvN%1&%FoMANceRCkELi)_SPlH{JD z+rpTSDB=Y0^bUr2l1v|ZxadLdg=nw6gel79ebaxeYV<={Vuj#&U`AI|AE6lrF26CP z{Rk%pVZ8LTfNti>@qI#hmYJEE&SH0K&|KTMYgOW6ehm@R6EeV3q|!paI>Smw!5qmE zC)ImTrGn70MxF}tA#!?I;Zq@teW+RA_0QB;fo%0(RVBMxWFn9kMNO49VQKw$)!)Qv z^_L}ulDd`<-ief4a@t}!s#EBqm{8%1TofV=m=wB+MSBvqSq>WtT?&&Z+No-<>BErh zXGsB5??dMsChO0VcPj zL2VrWW+0c07;(wj`lI&vdG7fVe!+t3V_KCDl}5rsHEsquP+4a9nb7 zaUv40OkdU4X06?7EcUZM)&Szy2`a)2W}vqT(#PuqP0f2_uqL0!Ttp~%Van`=r_}Qf z8oiRHO=vQNqTahYD|~SP6Zh=WrAvK^pU(Y9Ly zfFS@VEN*+J0uJpg^nJh##dS%ZXs=I3dVugn<;c6V?*{CNzpZKqG~0f8?+|oX_9_A8 zpMTcAI7K*(8vUR!6MQ#(ILJfGL@5gf9Ya*Tp4S8S!oki{5j~$BS|U{jOxgZ{Z1$+c z*o_ZEuwU^_U|{^eBxt-3tf5GSa5R)tM4EWPDao@MiFx;Mqs=Od9N8+7Cu6?$8_P zgi^n19^BN3_d6a~q-O{}!0|4)uky;1-#-~_ZfMHpbUKqp_@G(Qqjp1U59Tfuy3M$y zF-=qy@2d>HH55K}&-KAP;6-Q5VaFwa%Y5=wr=HG0{z}2T#<-y^NE;5vUZ*uQEx3n^V|Z$9dBHO!Uimdke_+i zXGRx4+I}55F4ln4mMu%rtqjWmEmFq-5--vjaY?m~1fKvV!Y7t8h!ckrFVFlN(i)7* ztK1iNTo>ht5#MZoFUw@;WHZ%3kX~2-pJr>~T3pl3DdNkbR1SBpl&uyod1P`E{~dQ{N^4v~Q~poLyqqxJFy*5)%>nQin;9Kg-andEHofNV>FUAl?BuFGTK- z^x*Z#ztURLT1I@7DHQ7%S<#t+HBtOt-5`5pvgR04T>_v+(v#DJtwndtR~``P?4I)2 z!i{OI$?Tm|!kMrtzd|HG(BH^tNs=VIBD0;0L1PPBHvPJ*mQ`Uowl=5ikgSegnzw}T zJVCesIbsBav9YmDZk9=J9rI7(DLtNr{3}${z|J!)B%~zqf{E^hX+A`5`?59~Q3GPL zu+Zw%;R5gQ+dE_7)LoPsZ&I$c5A^9m` z6QSVfjNy);mA_fQ9YXnilGtm6zs$(5&P1fg_^J zR*8dppR&_pU?)z;N8y+w9T|#ewgy6)M(v%UG-2B-SXKWMBenVM{Z;dY4!c0jrjEFg zx1y>itLYO~^{br_+Ay2%8_?ExNy{B&YBJx`msh2e@8rdEd?Sh~Cgn%AX+x0@pxAML z*xlDVFXq#ih415rn9T9pGe9|veAW`yi?1n8+AMa>{-H9({O-}Mcpa3Mo@Qqz-|6Gl zRY+MVvk?Z&0uSEbYQwnNdTwB*Xk&&K-XZ^Q<+bf|Tu;QsU$iIgwrSOT+I`04pS59J zQir~O#RBotZWSzLISRu0Z|U6L=))CREP{s7M8UMQ|DEx3=S-pXH?>@FO;hq`_u#Yu zBriohi|l~gx6QEw%)hl2T2ht;C348zUmW=9&?9DM!o8+?fv!nxpv;-C$ol*O_Ut-! z@1oZ4KwQqZ@LVTU9&%x-kFqmb8jFImzD2Mii3_X0-Rcj~?^YbZo@*OP|Ep1Gk%KX^ zcvs^irxRWof_BZL>juIH57zpw5jhWEymm(E?Zxq*-GhUJQG&oW-GfSJ-BoYQFUh4r zS792tVr2OX>C-#L<29HAAAIEPf*;Q-d;M@=U|%@3_sHNv<06%?*`*UPpjB}310D~O z3^EJ~m|kVG>ysJM9-Ec+BvXmN_DO)R#X$2{Y47-($JJ0i-T2tJBCtb6B zX&=sd@!+cTRqZh(Z Date: Tue, 5 Nov 2024 13:28:04 +0800 Subject: [PATCH 441/619] Update code flow in UG and DG with respect to MenuCommand --- docs/UserGuide.md | 15 +++++++++------ .../java/seedu/manager/command/MenuCommand.java | 4 ++-- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 5c98752cd8..2a3803babd 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -32,23 +32,24 @@ Shows a list of all valid user commands in the program. Here are the possible commands: list: List events. -view -e EVENT -y TYPE: View the list of participants or items of an event. add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. +add -m ITEM -e EVENT: Add an item to an even. add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. -add -m ITEM -e EVENT: Add an item to an event. remove -e EVENT: Remove an event from the event list. remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. -edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. +edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. +edit -m ITEM > NEW_ITEM -e EVENT: Edit an item in an event. +view -e EVENT -y TYPE: View the list of participants or items of an event. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. mark -m ITEM -e EVENT -s STATUS: Mark an item as accounted or unaccounted. copy FROM_EVENT > TO_EVENT: Copies participant list from one event to another. sort -by KEYWORD: Sorts events by name/time/priority. -filter -e/-t/-u FILTER_DESCRIPTION: Filters events by name/time/priority. +filter -e/-d/-t/-x/-u FILTER_DESCRIPTION: Filters events by name/date/time/date-time/priority. find -e EVENT -p NAME: Finds all participants with specified name in an event. -exit: Exit program +exit: Exit program. ``` @@ -288,8 +289,10 @@ If the above format or parameter constraints are not followed, the `Event`, `Par * Remove event: `remove -e EVENT` * Remove participant from an event: `remove -p PARTICIPANT -e EVENT` * Remove item from an event: `remove -m ITEM -e EVENT` -* View all participants for an event: `view -e EVENT -y TYPE` +* Edit event: `edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY` * Edit participant of an event: `edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT` +* Edit item of an event: `edit -m ITEM > NEW_ITEM -e EVENT` +* View all participants for an event: `view -e EVENT -y TYPE` * Mark an event as done: `mark -e EVENT -s STATUS` * Mark a participant as present: `mark -p PARTICIPANT -e EVENT -s STATUS` * Mark an item as accounted for: `mark -m ITEM -e EVENT -s STATUS` diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index d47e7a308a..12901c31da 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -10,7 +10,6 @@ public class MenuCommand extends Command { Here are the possible commands: list: List events. - view -e EVENT -y TYPE: View the list of participants or items of an event. add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. add -m ITEM -e EVENT: Add an item to an even. add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Add a participant to an event. @@ -18,8 +17,9 @@ public class MenuCommand extends Command { remove -p PARTICIPANT -e EVENT: Remove a participant from an event. remove -m ITEM -e EVENT: Remove an item from an event. edit -e EVENT -name EVENT_NAME -t TIME -v VENUE -u PRIORITY: Edit event info. - edit -m ITEM > NEW_ITEM -e EVENT: Edit an item in an event. edit -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT: Edit participant contact info. + edit -m ITEM > NEW_ITEM -e EVENT: Edit an item in an event. + view -e EVENT -y TYPE: View the list of participants or items of an event. mark -e EVENT -s STATUS: Mark an event as done or not done. mark -p PARTICIPANT -e EVENT -s STATUS: Mark a participant as present or absent. mark -m ITEM -e EVENT -s STATUS: Mark an item as accounted or unaccounted. From ca9570d477a7027a152b347886e7e9353452d78f Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 5 Nov 2024 14:57:10 +0800 Subject: [PATCH 442/619] Update code flow --- docs/UserGuide.md | 4 +- .../seedu/manager/command/MenuCommand.java | 1 + src/main/java/seedu/manager/event/Event.java | 349 +++++++++--------- .../java/seedu/manager/event/EventList.java | 220 +++++------ .../java/seedu/manager/parser/Parser.java | 155 ++++---- .../seedu/manager/storage/FileParser.java | 30 +- 6 files changed, 386 insertions(+), 373 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 2a3803babd..597ef47ad2 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -30,7 +30,8 @@ Shows a list of all valid user commands in the program. ``` Here are the possible commands: - + +menu: List commands list: List events. add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. add -m ITEM -e EVENT: Add an item to an even. @@ -281,6 +282,7 @@ If the above format or parameter constraints are not followed, the `Event`, `Par ## Command Summary +* List possible commands: `menu` * List all events: `list` * View all participants for an event: `view -e EVENT` * Add event: `add -e EVENT -t TIME -v VENUE` diff --git a/src/main/java/seedu/manager/command/MenuCommand.java b/src/main/java/seedu/manager/command/MenuCommand.java index 12901c31da..464ab9b2ac 100644 --- a/src/main/java/seedu/manager/command/MenuCommand.java +++ b/src/main/java/seedu/manager/command/MenuCommand.java @@ -9,6 +9,7 @@ public class MenuCommand extends Command { private static final String MENU_MESSAGE = """ Here are the possible commands: + menu: List commands. list: List events. add -e EVENT -t TIME -v VENUE -u PRIORITY: Add an event to the event list. add -m ITEM -e EVENT: Add an item to an even. diff --git a/src/main/java/seedu/manager/event/Event.java b/src/main/java/seedu/manager/event/Event.java index 6c69218bc2..da40fa90bd 100644 --- a/src/main/java/seedu/manager/event/Event.java +++ b/src/main/java/seedu/manager/event/Event.java @@ -66,97 +66,6 @@ public Event(String eventName, LocalDateTime eventTime, String eventVenue, Prior this.isDone = isDone; } - //@@author LTK-1606 - /** - * Adds a participant to the participant list for the event. - * - * @param participantName the name of the participant to be added to the list. - * @param isPresent {@code true} if the participant is to be present, {@code false} otherwise. - * @throws DuplicateDataException if a participant with the same name exists in the list. - */ - public void addParticipant(String participantName, String participantNumber, String participantEmail, - boolean isPresent) throws DuplicateDataException { - if (getParticipantByName(participantName).isPresent()) { - throw new DuplicateDataException(DUPLICATE_PARTICIPANT_MESSAGE); - } - - Participant participant = new Participant(participantName, participantNumber, participantEmail, isPresent); - this.participantList.add(participant); - } - - /** - * Removes a participant from the participant list. - * - *

    WsqHCiJZlJe>Tx6$(Sf=jvo1#XYN9Q}k*mRBu< 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 Q9w@=!>FVdQ&MBb@02aF&d;kCd literal 37644 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%0Am}f&} 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 UKdyO+@6%|iZB- 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 Pd)78h{Vf^lmVW;Oi Date: Tue, 5 Nov 2024 12:07:53 +0800 Subject: [PATCH 436/619] Update AboutUs --- docs/AboutUs.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index aae8b60b35..4e2f38b48b 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -2,8 +2,8 @@ Display | Name | Github Profile | Portfolio --------|:----------------:|:--------------:|:---------: -![](https://via.placeholder.com/100.png?text=Photo) | Liang Kuan Hsien | [Github](https://github.com/KuanHsienn) | [Portfolio](docs/team/kuanhsienn.md) -![](https://via.placeholder.com/100.png?text=Photo) | Lim Tze Kang | [Github](https://github.com/LTK-1606) | [Portfolio](docs/team/ltk-1606.md) -![](https://via.placeholder.com/100.png?text=Photo) | Glenn Chew | [Github](https://github.com/glenn-chew) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Jeremy Goh | [Github](https://github.com/jemehgoh) | [Portfolio](docs/team/jemehgoh.md) -![](https://via.placeholder.com/100.png?text=Photo) | FU Yixuan | [Github](https://github.com/MatchaRRR) | [Portfolio](docs/team/yixuan.md) +![](https://via.placeholder.com/100.png?text=Photo) | Liang Kuan Hsien | [Github](https://github.com/KuanHsienn) | [Portfolio](team/kuanhsienn.md) +![](https://wallpapers-clan.com/wp-content/uploads/2023/11/star-wars-bb-8-aesthetic-desktop-wallpaper-cover.jpg) | Lim Tze Kang | [Github](https://github.com/LTK-1606) | [Portfolio](team/ltk-1606.md) +![](https://via.placeholder.com/100.png?text=Photo) | Glenn Chew | [Github](https://github.com/glenn-chew) | [Portfolio](team/johndoe.md) +![](https://via.placeholder.com/100.png?text=Photo) | Jeremy Goh | [Github](https://github.com/jemehgoh) | [Portfolio](team/jemehgoh.md) +![](https://via.placeholder.com/100.png?text=Photo) | FU Yixuan | [Github](https://github.com/MatchaRRR) | [Portfolio](team/yixuan.md) From 93c7c5cdd44a9712b2c58ba15395500d33984eb9 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 5 Nov 2024 12:50:05 +0800 Subject: [PATCH 437/619] Update UserGuide --- docs/UserGuide.md | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 5c98752cd8..4d1c988eb0 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -224,59 +224,63 @@ Format: `exit` ### Saving of program data -The program saves its stored data into three `.csv` files in the same directory as the application `.JAR`. +The program saves its stored data into `data.csv` files in the same directory as the application `.JAR`. -These files are as follows: +This file consolidates information on `Events`, `Participants` and `Items` as follows: -* `events.csv`, which stores data on the `Event`s stored in the program, -* `participants.csv`, which stores data on the `Participant`s for all `Event`s, -* `items.csv`, which stores data on the `Item`s for all `Event`s, +* Each `Event` is stored with fields for its name, datetime, venue, priority, and completion status. +* Each `Participant` entry is tied to a corresponding `Event` and includes the participant’s name, contact number, email, attendance status, and the event name. +* Each `Item` entry, also tied to an `Event`, includes the item’s name, availability status, and event name. -The data is saved after the execution of every command and upon program startup. +The data is saved after the execution of every command and upon program termination. ### Loading of program data -The saved program data in the aforementioned three files is loaded into the program upon program startup. +Upon startup, the program loads data from the `data.csv` file. -If any one of the files do not exist in the directory, the file will be created when the data is saved. +If the file does not exist in the directory, it will be automatically created when data is saved. ### Editing of saved program data -Experienced users may feel free to edit the saved data in the `.csv` files. +Amendment of data is strictly restricted to the program. + +Direct amendment from `data.csv` files is not recommended to prevent data from being lost due to incorrect detail inputs. The program data is stored in the following format: -For `events.csv`: +For Events ``` -EVENT,TIME,VENUE,PRIORITY,STATUS +EVENT,EVENT_NAME,TIME,VENUE,PRIORITY,STATUS ``` * `TIME` must be in the format `yyyy-mm-dd hh:mm`. * `PRIORITY` must be either `HIGH`, `MEDIUM`, or `LOW`. * `STATUS` must be either `Y` or `N` -For `participants.csv`: +For Participants: ``` -PARTICIPANT,NUMBER,EMAIL,STATUS,EVENT +PARTICIPANT,PARTICIPANT_NAME,NUMBER,EMAIL,EVENT,STATUS ``` +* `NUMBER` must be a 8-digit number +* `EMAIL` must follow a similar format such as example@gmail.com +* An entry for the `Event` corresponding to `EVENT` must be present in `data.csv`. * `STATUS` must be either `Y` or `N` -* An entry for the `Event` corresponding to `EVENT` must be present in `events.csv`. -For `items.csv`: +For Items: ``` -ITEM,STATUS,EVENT +ITEM,ITEM_NAME,EVENT,STATUS ``` +* An entry for the `Event` corresponding to `EVENT` must be present in `data.csv`. * `STATUS` must be either `Y` or `N` -* An entry for the `Event` corresponding to `EVENT` must be present in `events.csv`. -All fields added to the `.csv` files must also be enclosed within double quotation marks (`" "`) to be properly parsed. +All fields added to `data.csv` must also be enclosed within double quotation marks (`" "`) to be properly parsed. -If the above format or parameter constraints are not followed, the `Event`, `Participant` or `Item` corresponding to the file line will not be loaded upon program startup. +If the above format or parameter constraints are not followed, the `Event`, `Participant` or `Item` corresponding to the file line will be ignored upon program startup. ## Command Summary From 6bda3d84b1b08dbe2c0c00284bbd5bb1f45635f8 Mon Sep 17 00:00:00 2001 From: KuanHsienn <141622026+KuanHsienn@users.noreply.github.com> Date: Tue, 5 Nov 2024 13:00:02 +0800 Subject: [PATCH 438/619] Update AboutUs.md --- docs/AboutUs.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index aae8b60b35..134f0d3dda 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -2,8 +2,8 @@ Display | Name | Github Profile | Portfolio --------|:----------------:|:--------------:|:---------: -![](https://via.placeholder.com/100.png?text=Photo) | Liang Kuan Hsien | [Github](https://github.com/KuanHsienn) | [Portfolio](docs/team/kuanhsienn.md) -![](https://via.placeholder.com/100.png?text=Photo) | Lim Tze Kang | [Github](https://github.com/LTK-1606) | [Portfolio](docs/team/ltk-1606.md) -![](https://via.placeholder.com/100.png?text=Photo) | Glenn Chew | [Github](https://github.com/glenn-chew) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Jeremy Goh | [Github](https://github.com/jemehgoh) | [Portfolio](docs/team/jemehgoh.md) -![](https://via.placeholder.com/100.png?text=Photo) | FU Yixuan | [Github](https://github.com/MatchaRRR) | [Portfolio](docs/team/yixuan.md) +![](https://via.placeholder.com/100.png?text=Photo) | Liang Kuan Hsien | [Github](https://github.com/KuanHsienn) | [Portfolio](team/kuanhsienn.md) +![](https://via.placeholder.com/100.png?text=Photo) | Lim Tze Kang | [Github](https://github.com/LTK-1606) | [Portfolio](team/ltk-1606.md) +![](https://via.placeholder.com/100.png?text=Photo) | Glenn Chew | [Github](https://github.com/glenn-chew) | [Portfolio](team/johndoe.md) +![](https://via.placeholder.com/100.png?text=Photo) | Jeremy Goh | [Github](https://github.com/jemehgoh) | [Portfolio](team/jemehgoh.md) +![](https://via.placeholder.com/100.png?text=Photo) | FU Yixuan | [Github](https://github.com/MatchaRRR) | [Portfolio](team/yixuan.md) From e6ae23dbb6d1798f34c369e293e3eb439f8977e6 Mon Sep 17 00:00:00 2001 From: KuanHsienn Date: Tue, 5 Nov 2024 13:07:17 +0800 Subject: [PATCH 439/619] Update PPP --- docs/team/kuanhsienn.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/team/kuanhsienn.md b/docs/team/kuanhsienn.md index f24a81e9ab..562618bc1f 100644 --- a/docs/team/kuanhsienn.md +++ b/docs/team/kuanhsienn.md @@ -18,6 +18,7 @@ The app is optimised for quick, command-based interactions, ideal for users who * **New feature**: Added the feature to save/load EventManager details to/from hard disk * What it does: Enables users to save event details (such as event list, participants, and items) to a file on the hard disk and load it back when the application is restarted. This ensures data persistence between sessions. * Justification: Persistent storage is a crucial feature for any event management tool, as it allows users to retrieve previously entered data and continue their work seamlessly. +

    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 bqMmsD=YHdyK&IL8;c02;KB&5H_xk?;$-P|h literal 71665 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 I%2)*cFWWPud;kCd diff --git a/docs/team/screenshots/TKUserGuideScreenshot.png b/docs/team/screenshots/TKUserGuideScreenshot.png index dc84118433ef01584d6454ba5c6a14cf3ffcaa7f..913f88a61ded0691fd769f80ced789e45ceef42b 100644 GIT binary patch literal 94866 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�)8DifZy-W3=u@cRok4Q)rThUrz00T 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≪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 z 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 Date: Tue, 5 Nov 2024 00:35:37 +0800 Subject: [PATCH 415/619] Update ParserIntegrationTest --- src/test/java/seedu/manager/parser/ParserIntegrationTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/seedu/manager/parser/ParserIntegrationTest.java b/src/test/java/seedu/manager/parser/ParserIntegrationTest.java index 7f9550b0eb..efcf5a4fad 100644 --- a/src/test/java/seedu/manager/parser/ParserIntegrationTest.java +++ b/src/test/java/seedu/manager/parser/ParserIntegrationTest.java @@ -50,7 +50,7 @@ void parseCommand_addCommandDuplicateEvent_throwsException() { @Test void parseCommand_addCommandAddParticipant_success() { - String commandString = "add -p John Doe -n 9213 8961 -email johndoe@gmail.com -e Event 1"; + String commandString = "add -p John Doe -n 92138961 -email johndoe@gmail.com -e Event 1"; Command command = parser.parseCommand(commandString); command.setData(events); command.execute(); From 6775771458cdb02c10e7852a9f08ea5b59c7bb89 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 5 Nov 2024 00:37:44 +0800 Subject: [PATCH 416/619] Update PPP --- docs/team/ltk-1606.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/team/ltk-1606.md b/docs/team/ltk-1606.md index c2008e3f35..30c1cae192 100644 --- a/docs/team/ltk-1606.md +++ b/docs/team/ltk-1606.md @@ -61,11 +61,11 @@ EventManagerCLI is a desktop CLI application meant for managing small-scale even ## Extracts ### Developer Guide -Filter Feature Extract Screenshot -Filter Command Sequence Diagram Screenshot -Copy Command Sequence Diagram Screenshot -Find Command Sequence Diagram Screenshot -Sort Command Sequence Diagram Screenshot +Filter Feature Extract Screenshot +Filter Command Sequence Diagram Screenshot +Copy Command Sequence Diagram Screenshot +Find Command Sequence Diagram Screenshot +Sort Command Sequence Diagram Screenshot ### User Guide -Copy, Find, Filter, Sort Commands User Guide Screenshot +Copy, Find, Filter, Sort Commands User Guide Screenshot From 961d27be226b341266846996c14c7875b8e9630e Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 5 Nov 2024 01:17:12 +0800 Subject: [PATCH 417/619] Update AboutUs page --- docs/AboutUs.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/AboutUs.md b/docs/AboutUs.md index a66547d92d..915d60e890 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -1,9 +1,9 @@ # About us -Display | Name | Github Profile | Portfolio ---------|:----------------:|:--------------:|:---------: -![](https://via.placeholder.com/100.png?text=Photo) | Liang Kuan Hsien | [Github](https://github.com/KuanHsienn) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Lim Tze Kang | [Github](https://github.com/LTK-1606) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Glenn Chew | [Github](https://github.com/glenn-chew) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | Jeremy Goh | [Github](https://github.com/jemehgoh) | [Portfolio](docs/team/johndoe.md) -![](https://via.placeholder.com/100.png?text=Photo) | FU Yixuan | [Github](https://github.com/MatchaRRR) | [Portfolio](docs/team/yixuan.md) +| Display | Name | Github Profile | Portfolio | +|-----------------------------------------------------|:----------------:|:---------------------------------------:|:---------------------------------:| +| ![](https://via.placeholder.com/100.png?text=Photo) | Liang Kuan Hsien | [Github](https://github.com/KuanHsienn) | [Portfolio](docs/team/johndoe.md) | +| ![](https://wallpapers-clan.com/wp-content/uploads/2023/11/star-wars-bb-8-aesthetic-desktop-wallpaper-cover.jpg) | Lim Tze Kang | [Github](https://github.com/LTK-1606) | [Portfolio](team/ltk-1606.md) | +| ![](https://via.placeholder.com/100.png?text=Photo) | Glenn Chew | [Github](https://github.com/glenn-chew) | [Portfolio](docs/team/johndoe.md) | +| ![](https://via.placeholder.com/100.png?text=Photo) | Jeremy Goh | [Github](https://github.com/jemehgoh) | [Portfolio](docs/team/johndoe.md) | +| ![](https://via.placeholder.com/100.png?text=Photo) | FU Yixuan | [Github](https://github.com/MatchaRRR) | [Portfolio](docs/team/yixuan.md) | From 5c987c044741252afa30035b7b495b59b9c1de89 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 5 Nov 2024 01:20:15 +0800 Subject: [PATCH 418/619] Update add command section of user guide --- docs/UserGuide.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/UserGuide.md b/docs/UserGuide.md index c5076888a3..e0ae62e60b 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -66,13 +66,16 @@ Adds an event to the event list, a participant to an event, or an item to an eve Format: -* `add -e EVENT -t TIME -v VENUE` for adding an event to the events list. +* `add -e EVENT -t TIME -v VENUE -u PRIORITY` for adding an event to the events list. * `add -p PARTICIPANT -n NUMBER -email EMAIL -e EVENT` for adding a participant to an event. * `add -m ITEM -e EVENT` for adding an item to an event. +Remarks: +* `TIME` must be entered in the format `yyyy-mm-dd HH:mm`. + Examples: -* `add -e Origami workshop -t 2024-10-12 18:00 -v Building A` adds an event with name `Origami workshop`, time `2024-10-12 18:00` and venue `Building A` to the events list. +* `add -e Origami workshop -t 2024-10-12 18:00 -v Building A -u HIGH` adds an event with name `Origami workshop`, time `2024-10-12 18:00`, venue `Building A` and priority `HIGH` to the events list. * `add -p John Tan -n 91583215 -email john@gmail.com -e Origami workshop` adds a participant `John Tan` to the event `Origami workshop`. * `add -m Origami paper -e Origami workshop` adds an item `Origami paper` to the event `Origami workshop`. From 36d5617632809bc3a3acfc8264cbb6d736dece57 Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Tue, 5 Nov 2024 01:20:31 +0800 Subject: [PATCH 419/619] Add add and remove commands to manual testing --- docs/DeveloperGuide.md | 111 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 110 insertions(+), 1 deletion(-) diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 53e22d649e..e190674ee7 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -650,4 +650,113 @@ The user is able to organise and manage his events more quickly and efficiently ## Instructions for manual testing -{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing} +### Launch and shutdown + +1. Initial launch + + 1. Download the `.jar` file and copy it to an empty folder. + + 2. Open a new terminal window in the folder the `.jar` file is in, and enter the command `java -jar manager.jar`. + Expected: The terminal will print a welcome message and prompt for user input. + +### Adding an event + +1. Adding an `Event` to the `Event` list + + 1. Prerequisite: An event with the name `Event 1` is not present in the list. + List all `Event`s with `list` after each test case. + + 2. Test case: `add -e Event 1 -t 2024-10-10 -v Venue 1 -u HIGH` + Expected: No `Event` is added. A date-time format error message is shown. + + 3. Test case: `add -e Event 1 -t 2024-10-10 18:00 -v Venue 1 -u top` + Expected: No `Event` is added. An error message is shown. + +2. Adding a duplicate `Event` to the `Event` list + + 1. Prerequisite: An event with the name `Event 1` is present in the list. + List all `Event`s with `list` after each test case. + + 2. Test case: `add -e Event 1 -t 2024-10-10 18:00 -v Venue 1 -u HIGH` + Expected: No `Event` is added. A duplicate entry error message is shown. + +### Adding a participant + +1. Adding a duplicate `Participant` to an `Event` + + 1. Prerequisite: An event with the name `Event 1` is present in the list. + A `Participant` with the name `Participant 1` is present in `Event 1`'s `Participant` list. + List all `Participant`s with `view -e Event 1 -y participant` after each test case. + + 2. Test case: `add -p Participant 1 -n 9212 8765 -email part@gmail.com -e Event 1`. + Expected: No `Participant` is added. A duplicate entry error message is shown. + +### Adding an item + +1. Adding a duplicate `Item` to an `Event` + + 1. Prerequisite: An event with the name `Event 1` is present in the list. + A `Item` with the name `Item 1` is present in `Event 1`'s `Item` list. + List all `Item`s with `view -e Event 1 -y item` after each test case. + + 2. Test case: `add -p Item -e Event 1`. + Expected: No `Item` is added. A duplicate entry error message is shown. + +### Removing an event + +1. Removing an `Event` from the `Event` list + + 1. Prerequisite: An event with the name `Event 1` is present in the list. + List all `Event`s with `list` after each test case. + + 2. Test case: `remove -e Event 1` + Expected: The `Event` with name `Event 1` is removed. A success message is shown. + + 3. Test case: `remove -e Event 2` + Expected: No `Event` is removed. An error message is shown. + +### Removing a participant + +1. Removing a `Participant` from an `Event` + + 1. Prerequisite: An event with the name `Event 1` is present in the list. + A `Participant` with the name `Participant 1` is present in `Event 1`'s `Participant` list. + A `Participant` with the name `Participant 2` is not present in `Event 1`'s `Participant` list. + List all `Participant`s with `view -e Event 1 -y participant` after each test case. + + 2. Test case: `remove -p Participant 1 -e Event 1` + Expected: The `Participant` with name `Participant 1` is removed from `Event 1`'s `Participant` list. A success message is shown. + + 3. Test case: `remove -p Participant 2 -e Event 1` + Expected: No `Participant` is removed. An error message is shown. + +2. Removing a `Participant` from an invalid `Event` + + 1. Prerequisite: An event with the name `Event 1` is not present in the list. + List all `Participant`s with `view -e Event 1 -y participant` after each test case. + + 2. Test case: `remove -p Participant 1 -e Event 1` + Expected: No `Participant` is removed. An error message is shown. + +### Removing an item + +1. Removing a `Item` from an `Event` + + 1. Prerequisite: An event with the name `Event 1` is present in the list. + A `Item` with the name `Item 1` is present in `Event 1`'s `Item` list. + A `Item` with the name `Item 2` is not present in `Event 1`'s `Item` list. + List all `Item`s with `view -e Event 1 -y item` after each test case. + + 2. Test case: `remove -p Participant 1 -e Event 1` + Expected: The `Participant` with name `Participant 1` is removed from `Event 1`'s `Participant` list. A success message is shown. + + 3. Test case: `remove -p Item 2 -e Event 1` + Expected: No `Item` is removed. An error message is shown. + +2. Removing a `Item` from an invalid `Event` + + 1. Prerequisite: An event with the name `Event 1` is not present in the list. + List all `Item`s with `view -e Event 1 -y item` after each test case. + + 2. Test case: `remove -p Item 1 -e Event 1` + Expected: No `Item` is removed. An error message is shown. \ No newline at end of file From 3852f5e7f4d5d6c8264c24298ab734e37eab8027 Mon Sep 17 00:00:00 2001 From: LTK-1606 Date: Tue, 5 Nov 2024 01:22:59 +0800 Subject: [PATCH 420/619] Add page breaks --- docs/team/ltk-1606.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/team/ltk-1606.md b/docs/team/ltk-1606.md index 30c1cae192..1524562004 100644 --- a/docs/team/ltk-1606.md +++ b/docs/team/ltk-1606.md @@ -22,6 +22,7 @@ EventManagerCLI is a desktop CLI application meant for managing small-scale even * Justification: This feature improves the product significantly as it allows the user to easily track a specific person's attendance or to find out his contact details. * Highlights: This feature required the creation of a new command class, new methods in existing classes and significant changes in other areas (like in the command parsing) to enable this feature. +

    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 WC$Wz^;Qyw$?x?1r#&b2x!2bsdSqPy3 diff --git a/docs/images/RemoveParticipantFromEvent.png b/docs/images/RemoveParticipantFromEvent.png index a44a52cd916d7ca07e7c3d866bbe70c8c6ba7b5e..92783e647a5999a3e64e9f511ecf39b82b7ec0e5 100644 GIT binary patch literal 30636 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 Bk`n*` diff --git a/docs/images/RemoveParticipantSequenceDiagram.png b/docs/images/RemoveParticipantSequenceDiagram.png index 5362749313152c55506175d53088fa5faa7fa281..4f0648ad45bb27b22d383b81bfae295444875c1c 100644 GIT binary patch literal 24947 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 diff --git a/docs/images/ViewEventSequenceDiagram.png b/docs/images/ViewEventSequenceDiagram.png index 2aa1ea5dd217786dae1230338cd93f129219264c..5899028c19c4487c33fb1893af9695f8117c2963 100644 GIT binary patch literal 22033 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 literal 21996 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%0Dc!=eRc|;WjGs{aml|!qP>tjL;W+xYP5N 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 b`3LpXMc%UgZ2QxAP4@^lXLrU~x_|6%IO??Q From 4f01d10c8f4d7a713b10b72e750fcf22ee80b7dc Mon Sep 17 00:00:00 2001 From: jemehgoh Date: Mon, 4 Nov 2024 22:33:27 +0800 Subject: [PATCH 407/619] Remove colours for all sequence diagrams --- docs/diagrams/ArchitectureSequence.puml | 8 ++++---- docs/diagrams/LoadingSequenceDiagram.puml | 2 +- docs/diagrams/SavingSequenceDiagram.puml | 2 +- .../StorageEventLoadingSequenceDiagram.puml | 16 ++++++++-------- .../StorageEventSavingSequenceDiagram.puml | 8 ++++---- .../StorageLoadingSequenceDiagram.puml | 12 ++++++------ ...rageParticipantLoadingSequenceDiagram.puml | 16 ++++++++-------- ...orageParticipantSavingSequenceDiagram.puml | 14 +++++++------- docs/images/ArchitectureSequenceDiagram.png | Bin 19858 -> 19191 bytes docs/images/LoadingSequenceDiagram.png | Bin 9166 -> 9027 bytes docs/images/SavingSequenceDiagram.png | Bin 9527 -> 9390 bytes .../StorageEventLoadingSequenceDiagram.png | Bin 23812 -> 24513 bytes .../StorageEventSavingSequenceDiagram.png | Bin 12085 -> 11943 bytes docs/images/StorageLoadingSequenceDiagram.png | Bin 0 -> 15051 bytes ...orageParticipantLoadingSequenceDiagram.png | Bin 26075 -> 26761 bytes ...torageParticipantSavingSequenceDiagram.png | Bin 26293 -> 26418 bytes 16 files changed, 39 insertions(+), 39 deletions(-) create mode 100644 docs/images/StorageLoadingSequenceDiagram.png diff --git a/docs/diagrams/ArchitectureSequence.puml b/docs/diagrams/ArchitectureSequence.puml index 7cc0e2a929..826c4ca0d3 100644 --- a/docs/diagrams/ArchitectureSequence.puml +++ b/docs/diagrams/ArchitectureSequence.puml @@ -3,12 +3,12 @@ hide footbox Participant ":Main" as main -Participant ":Ui" as ui UI_COLOUR -Participant ":Storage" as storage STORAGE_COLOUR -Participant ":EventList" as events EVENT_COLOUR +Participant ":Ui" as ui +Participant ":Storage" as storage +Participant ":EventList" as events main -> ui : greetUser() -activate ui UI_COLOUR +activate ui return ref over main, storage, events : Loading of events list diff --git a/docs/diagrams/LoadingSequenceDiagram.puml b/docs/diagrams/LoadingSequenceDiagram.puml index 97420cc95b..2ba2f260e7 100644 --- a/docs/diagrams/LoadingSequenceDiagram.puml +++ b/docs/diagrams/LoadingSequenceDiagram.puml @@ -3,7 +3,7 @@ hide footbox Participant ":Main" as main -Participant ":Storage" as storage STORAGE_COLOUR +Participant ":Storage" as storage main -> main : loadData() activate main diff --git a/docs/diagrams/SavingSequenceDiagram.puml b/docs/diagrams/SavingSequenceDiagram.puml index 10554b2390..2b39153e4b 100644 --- a/docs/diagrams/SavingSequenceDiagram.puml +++ b/docs/diagrams/SavingSequenceDiagram.puml @@ -3,7 +3,7 @@ hide footbox Participant ":Main" as main -Participant ":Storage" as storage STORAGE_COLOUR +Participant ":Storage" as storage main -> main : saveData() activate main diff --git a/docs/diagrams/StorageEventLoadingSequenceDiagram.puml b/docs/diagrams/StorageEventLoadingSequenceDiagram.puml index 2add2fbbd3..3f57dd56b9 100644 --- a/docs/diagrams/StorageEventLoadingSequenceDiagram.puml +++ b/docs/diagrams/StorageEventLoadingSequenceDiagram.puml @@ -3,29 +3,29 @@ hide footbox Participant ":Main" as main -Participant ":Storage" as storage STORAGE_COLOUR -Participant ":FileParser" as parser PARSER_COLOUR -Participant ":EventList" as events EVENT_COLOUR +Participant ":Storage" as storage +Participant ":FileParser" as parser +Participant ":EventList" as events group sd Loading of event data main -> storage : loadEvents(EventList) -activate storage STORAGE_COLOUR +activate storage create parser storage -> parser : FileParser() -activate parser PARSER_COLOUR +activate parser return storage -> parser : parseEventFile(String) -activate parser PARSER_COLOUR +activate parser loop for line in file parser -> parser : parseEventFileLine(...) -activate parser PARSER_COLOUR +activate parser parser -> events : addEvent(...) -activate events EVENT_COLOUR +activate events return diff --git a/docs/diagrams/StorageEventSavingSequenceDiagram.puml b/docs/diagrams/StorageEventSavingSequenceDiagram.puml index 75a3471836..01cccfe5d9 100644 --- a/docs/diagrams/StorageEventSavingSequenceDiagram.puml +++ b/docs/diagrams/StorageEventSavingSequenceDiagram.puml @@ -3,15 +3,15 @@ hide footbox Participant ":Main" as main -Participant ":Storage" as storage STORAGE_COLOUR -Participant ":EventList" as event EVENT_COLOUR +Participant ":Storage" as storage +Participant ":EventList" as event group sd Saving of event data main -> storage : saveEvents(EventList) -activate storage STORAGE_COLOUR +activate storage storage -> event : getList() -activate event EVENT_COLOUR +activate event return :ArrayList storage --> main diff --git a/docs/diagrams/StorageLoadingSequenceDiagram.puml b/docs/diagrams/StorageLoadingSequenceDiagram.puml index 33c205200c..a4f1bf5854 100644 --- a/docs/diagrams/StorageLoadingSequenceDiagram.puml +++ b/docs/diagrams/StorageLoadingSequenceDiagram.puml @@ -3,16 +3,16 @@ hide footbox Participant ":Main" as main -Participant ":Storage" as storage STORAGE_COLOUR -Participant ":Parser" as parser PARSER_COLOUR -Participant ":EventList" as event EVENT_COLOUR +Participant ":Storage" as storage +Participant ":Parser" as parser +Participant ":EventList" as event main -> storage : loadEvents(events : EventList) -activate storage STORAGE_COLOUR +activate storage storage --> parser : parseFile(events, FILE_PATH) -activate parser PARSER_COLOUR +activate parser parser -> event : addEvent(eventName, time, venue) -activate event EVENT_COLOUR +activate event event --> parser deactivate event parser --> storage diff --git a/docs/diagrams/StorageParticipantLoadingSequenceDiagram.puml b/docs/diagrams/StorageParticipantLoadingSequenceDiagram.puml index 31fdd2f857..d24dffdb74 100644 --- a/docs/diagrams/StorageParticipantLoadingSequenceDiagram.puml +++ b/docs/diagrams/StorageParticipantLoadingSequenceDiagram.puml @@ -3,29 +3,29 @@ hide footbox Participant ":Main" as main -Participant ":Storage" as storage STORAGE_COLOUR -Participant ":FileParser" as parser PARSER_COLOUR -Participant ":EventList" as events EVENT_COLOUR +Participant ":Storage" as storage +Participant ":FileParser" as parser +Participant ":EventList" as events group sd Loading of event data main -> storage : loadParticipants(EventList) -activate storage STORAGE_COLOUR +activate storage create parser storage -> parser : FileParser() -activate parser PARSER_COLOUR +activate parser return storage -> parser : parseParticipantsFile(String) -activate parser PARSER_COLOUR +activate parser loop for line in file parser -> parser : parseParticipantFileLine(...) -activate parser PARSER_COLOUR +activate parser parser -> events : addParticipantToEvent(...) -activate events EVENT_COLOUR +activate events return diff --git a/docs/diagrams/StorageParticipantSavingSequenceDiagram.puml b/docs/diagrams/StorageParticipantSavingSequenceDiagram.puml index de348991cc..b6d9dc201c 100644 --- a/docs/diagrams/StorageParticipantSavingSequenceDiagram.puml +++ b/docs/diagrams/StorageParticipantSavingSequenceDiagram.puml @@ -3,24 +3,24 @@ hide footbox Participant ":Main" as main -Participant ":Storage" as storage STORAGE_COLOUR -Participant ":EventList" as eventList EVENT_COLOUR -Participant "event:Event" as event EVENT_COLOUR +Participant ":Storage" as storage +Participant ":EventList" as eventList +Participant "event:Event" as event group sd Saving of participant data main -> storage : saveParticipants(EventList) -activate storage STORAGE_COLOUR +activate storage storage -> eventList : getList() -activate eventList EVENT_COLOUR +activate eventList return :ArrayList loop for event in event list storage -> storage : saveEventParticipants(...) -activate storage STORAGE_COLOUR +activate storage storage -> event : getParticipantsList() -activate event EVENT_COLOUR +activate event return :ArrayList return diff --git a/docs/images/ArchitectureSequenceDiagram.png b/docs/images/ArchitectureSequenceDiagram.png index f782d9b2170fd445c0c643e6cd3d51897b00675b..26df731d298d5f2bc806eacbbea3a08fe0fd51cd 100644 GIT binary patch literal 19191 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 S(pyZO=UZc8Ph2tE680~Vsbo(8 literal 29644 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