From 2b5f14cf6979706d394a7699aa00f2b5e9d02bbb Mon Sep 17 00:00:00 2001 From: Austin Cory Bart Date: Mon, 31 Jan 2022 16:37:54 -0500 Subject: [PATCH 01/26] Require Hello World in the document --- src/text.Test.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/text.Test.tsx diff --git a/src/text.Test.tsx b/src/text.Test.tsx new file mode 100644 index 0000000000..b32c330d3f --- /dev/null +++ b/src/text.Test.tsx @@ -0,0 +1,9 @@ +import React from "react"; +import { render, screen } from "@testing-library/react"; +import App from "./App"; + +test("renders the text 'Hello World' somewhere", () => { + render(); + const text = screen.getByText(/Hello World/); + expect(text).toBeInTheDocument(); +}); From a7dee05e0bee0379110c6189433d12482280146a Mon Sep 17 00:00:00 2001 From: Austin Cory Bart Date: Mon, 31 Jan 2022 16:41:17 -0500 Subject: [PATCH 02/26] Rename text.Test.tsx to text.test.tsx --- src/{text.Test.tsx => text.test.tsx} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/{text.Test.tsx => text.test.tsx} (100%) diff --git a/src/text.Test.tsx b/src/text.test.tsx similarity index 100% rename from src/text.Test.tsx rename to src/text.test.tsx From 3e381f38b1d44afd102eb053a8ba9a48a069434e Mon Sep 17 00:00:00 2001 From: Austin Cory Bart Date: Mon, 31 Jan 2022 16:56:42 -0500 Subject: [PATCH 03/26] Include the task info --- public/tasks/task-first-branch.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 public/tasks/task-first-branch.md diff --git a/public/tasks/task-first-branch.md b/public/tasks/task-first-branch.md new file mode 100644 index 0000000000..94333338a0 --- /dev/null +++ b/public/tasks/task-first-branch.md @@ -0,0 +1,5 @@ +# Task - First Branch + +Version: 0.0.1 + +Pass a short test to have certain text on the page. From e6b1dab1961daf6f03459789cef974bf043501f2 Mon Sep 17 00:00:00 2001 From: Austin Cory Bart Date: Thu, 3 Feb 2022 14:10:55 -0500 Subject: [PATCH 04/26] Allow one or more instances of the Hello World text --- src/text.test.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/text.test.tsx b/src/text.test.tsx index b32c330d3f..f99a063e76 100644 --- a/src/text.test.tsx +++ b/src/text.test.tsx @@ -4,6 +4,6 @@ import App from "./App"; test("renders the text 'Hello World' somewhere", () => { render(); - const text = screen.getByText(/Hello World/); - expect(text).toBeInTheDocument(); + const texts = screen.getAllByText(/Hello World/); + expect(texts.length).toBeGreaterThanOrEqual(1); }); From 7a207345d9e404afd04607811b89bb758de02905 Mon Sep 17 00:00:00 2001 From: Austin Cory Bart Date: Sat, 24 Aug 2024 12:52:12 -0400 Subject: [PATCH 05/26] Include json test command here --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index cf6e1bc772..fc2b66a549 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "build": "react-scripts build", "test": "react-scripts test", "test:cov": "react-scripts test --coverage --watchAll", + "test:json": "react-scripts test --json --watchAll=false --outputFile jest-output.json --coverage", "eject": "react-scripts eject", "lint": "eslint ./src --ext .tsx --ext .ts --max-warnings 0", "eslint-output": "eslint-output ./src --ext .tsx --ext .ts --max-warnings 0", From 7fe9ca316fad2e694586e037fe601b85a2584c56 Mon Sep 17 00:00:00 2001 From: Austin Cory Bart Date: Mon, 31 Jan 2022 16:37:54 -0500 Subject: [PATCH 06/26] Require Hello World in the document --- src/text.Test.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/text.Test.tsx diff --git a/src/text.Test.tsx b/src/text.Test.tsx new file mode 100644 index 0000000000..b32c330d3f --- /dev/null +++ b/src/text.Test.tsx @@ -0,0 +1,9 @@ +import React from "react"; +import { render, screen } from "@testing-library/react"; +import App from "./App"; + +test("renders the text 'Hello World' somewhere", () => { + render(); + const text = screen.getByText(/Hello World/); + expect(text).toBeInTheDocument(); +}); From b8b8878c873d4faa2fd5f04d656e23d66c7d6cef Mon Sep 17 00:00:00 2001 From: Austin Cory Bart Date: Mon, 31 Jan 2022 16:56:42 -0500 Subject: [PATCH 07/26] Include the task info --- public/tasks/task-first-branch.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 public/tasks/task-first-branch.md diff --git a/public/tasks/task-first-branch.md b/public/tasks/task-first-branch.md new file mode 100644 index 0000000000..94333338a0 --- /dev/null +++ b/public/tasks/task-first-branch.md @@ -0,0 +1,5 @@ +# Task - First Branch + +Version: 0.0.1 + +Pass a short test to have certain text on the page. From fbdebdec2006b01d3976bd9408037baf82eb5e56 Mon Sep 17 00:00:00 2001 From: Austin Cory Bart Date: Mon, 31 Jan 2022 16:41:17 -0500 Subject: [PATCH 08/26] Rename text.Test.tsx to text.test.tsx --- src/{text.Test.tsx => text.test.tsx} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/{text.Test.tsx => text.test.tsx} (100%) diff --git a/src/text.Test.tsx b/src/text.test.tsx similarity index 100% rename from src/text.Test.tsx rename to src/text.test.tsx From 2f0146c22beca5c5ac48603876f0fa8ea2e2e905 Mon Sep 17 00:00:00 2001 From: Austin Cory Bart Date: Thu, 3 Feb 2022 14:10:55 -0500 Subject: [PATCH 09/26] Allow one or more instances of the Hello World text --- src/text.test.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/text.test.tsx b/src/text.test.tsx index b32c330d3f..f99a063e76 100644 --- a/src/text.test.tsx +++ b/src/text.test.tsx @@ -4,6 +4,6 @@ import App from "./App"; test("renders the text 'Hello World' somewhere", () => { render(); - const text = screen.getByText(/Hello World/); - expect(text).toBeInTheDocument(); + const texts = screen.getAllByText(/Hello World/); + expect(texts.length).toBeGreaterThanOrEqual(1); }); From ac36b32302a8ea2e66b4b954626c8e396e172075 Mon Sep 17 00:00:00 2001 From: Austin Cory Bart Date: Sat, 29 Jan 2022 23:59:24 -0500 Subject: [PATCH 10/26] First set of tests --- public/tasks/task-html-css.md | 5 +++++ src/HtmlCss.test.tsx | 28 ++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 public/tasks/task-html-css.md create mode 100644 src/HtmlCss.test.tsx diff --git a/public/tasks/task-html-css.md b/public/tasks/task-html-css.md new file mode 100644 index 0000000000..ebc0efcba5 --- /dev/null +++ b/public/tasks/task-html-css.md @@ -0,0 +1,5 @@ +# Task - HTML/CSS + +Version: 0.0.1 + +Add in some HTML and CSS, including a fancy looking button. diff --git a/src/HtmlCss.test.tsx b/src/HtmlCss.test.tsx new file mode 100644 index 0000000000..168ce37fde --- /dev/null +++ b/src/HtmlCss.test.tsx @@ -0,0 +1,28 @@ +import React from "react"; +import { render, screen } from "@testing-library/react"; +import App from "./App"; + +describe("Some HTML Elements are added.", () => { + test("There is a header", () => { + render(); + const header = screen.getByRole("heading"); + expect(header).toBeInTheDocument(); + }); +}); + +describe("Some basic CSS is added.", () => { + test("There is a floating red box", () => { + render(); + expect(true); + }); +}); + +describe("Some Bootstrap Elements are added", () => { + test("There is a bootstrap button", () => { + render(); + const button = screen.getByRole("button"); + expect(button).toBeInTheDocument(); + expect(button).toHaveClass("btn"); + expect(button).toHaveClass("btn-primary"); + }); +}); From d04739d1d2ec0c934c0ecf1dc05ac1289063627d Mon Sep 17 00:00:00 2001 From: Austin Cory Bart Date: Sun, 30 Jan 2022 00:24:38 -0500 Subject: [PATCH 11/26] Some logging tests --- src/HtmlCss.test.tsx | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/HtmlCss.test.tsx b/src/HtmlCss.test.tsx index 168ce37fde..bf957616f9 100644 --- a/src/HtmlCss.test.tsx +++ b/src/HtmlCss.test.tsx @@ -1,6 +1,7 @@ import React from "react"; import { render, screen } from "@testing-library/react"; import App from "./App"; +import userEvent from "@testing-library/user-event"; describe("Some HTML Elements are added.", () => { test("There is a header", () => { @@ -18,11 +19,25 @@ describe("Some basic CSS is added.", () => { }); describe("Some Bootstrap Elements are added", () => { - test("There is a bootstrap button", () => { + test("There is one bootstrap button with the text 'Log Hello World'", () => { render(); - const button = screen.getByRole("button"); + const button = screen.getByRole("button", { name: /Log Hello World/i }); expect(button).toBeInTheDocument(); expect(button).toHaveClass("btn"); expect(button).toHaveClass("btn-primary"); }); + + test("Not clicking the bootstrap button does not logs 'Hello World!'", () => { + const consoleSpy = jest.spyOn(console, "log"); + render(); + expect(consoleSpy).not.toHaveBeenCalledWith("Hello World!"); + }); + + test("Clicking the bootstrap button logs 'Hello World!'", () => { + const consoleSpy = jest.spyOn(console, "log"); + render(); + const button = screen.getByRole("button", { name: /Log Hello World/i }); + userEvent.click(button); + expect(consoleSpy).toHaveBeenCalledWith("Hello World!"); + }); }); From b26100f543943eced73fdff33784861243c65386 Mon Sep 17 00:00:00 2001 From: Austin Cory Bart Date: Sun, 30 Jan 2022 00:47:43 -0500 Subject: [PATCH 12/26] More html tests --- src/HtmlCss.test.tsx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/HtmlCss.test.tsx b/src/HtmlCss.test.tsx index bf957616f9..676c37f903 100644 --- a/src/HtmlCss.test.tsx +++ b/src/HtmlCss.test.tsx @@ -9,6 +9,20 @@ describe("Some HTML Elements are added.", () => { const header = screen.getByRole("heading"); expect(header).toBeInTheDocument(); }); + + test("There is an image with alt text", () => { + render(); + const image = screen.getByRole("image"); + expect(image).toBeInTheDocument(); + expect(image).toHaveAttribute("alt"); + }); + + test("There is a list with at least three elements", () => { + render(); + const list = screen.getByRole("list"); + expect(list).toBeInTheDocument(); + expect(list.children.length).toBeGreaterThanOrEqual(3); + }); }); describe("Some basic CSS is added.", () => { From 3bf4550a8f042dee28a57c06abec05dfce779519 Mon Sep 17 00:00:00 2001 From: Austin Cory Bart Date: Sun, 30 Jan 2022 00:55:24 -0500 Subject: [PATCH 13/26] Fix the image test --- src/HtmlCss.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/HtmlCss.test.tsx b/src/HtmlCss.test.tsx index 676c37f903..79b7db2dda 100644 --- a/src/HtmlCss.test.tsx +++ b/src/HtmlCss.test.tsx @@ -12,7 +12,7 @@ describe("Some HTML Elements are added.", () => { test("There is an image with alt text", () => { render(); - const image = screen.getByRole("image"); + const image = screen.getByRole("img"); expect(image).toBeInTheDocument(); expect(image).toHaveAttribute("alt"); }); From 8dff2b64a2efc0b1b49703077965fe5e334eab1a Mon Sep 17 00:00:00 2001 From: Austin Cory Bart Date: Mon, 31 Jan 2022 16:31:58 -0500 Subject: [PATCH 14/26] Updated CSS tests, left a note about additional tests --- src/HtmlCss.test.tsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/HtmlCss.test.tsx b/src/HtmlCss.test.tsx index 79b7db2dda..379fc8f449 100644 --- a/src/HtmlCss.test.tsx +++ b/src/HtmlCss.test.tsx @@ -30,6 +30,14 @@ describe("Some basic CSS is added.", () => { render(); expect(true); }); + + test("The background color of the header area is different", () => { + render(); + const banner = screen.getByRole("banner"); + expect(banner).not.toHaveStyle({ + "background-color": "rgb(40, 44, 52)" + }); + }); }); describe("Some Bootstrap Elements are added", () => { From b66d4de909f74de4cba160a6fff05b078b9b47cc Mon Sep 17 00:00:00 2001 From: Austin Cory Bart Date: Mon, 31 Jan 2022 16:32:13 -0500 Subject: [PATCH 15/26] See previous commit message --- src/HtmlCss.test.tsx | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/HtmlCss.test.tsx b/src/HtmlCss.test.tsx index 379fc8f449..36767ad350 100644 --- a/src/HtmlCss.test.tsx +++ b/src/HtmlCss.test.tsx @@ -26,11 +26,6 @@ describe("Some HTML Elements are added.", () => { }); describe("Some basic CSS is added.", () => { - test("There is a floating red box", () => { - render(); - expect(true); - }); - test("The background color of the header area is different", () => { render(); const banner = screen.getByRole("banner"); @@ -63,3 +58,7 @@ describe("Some Bootstrap Elements are added", () => { expect(consoleSpy).toHaveBeenCalledWith("Hello World!"); }); }); + +/** + * Remember, there are additional tasks described on the page! + */ From 0a24364f67b1ee221ebe175d6c494d5eca6ad7dc Mon Sep 17 00:00:00 2001 From: Austin Cory Bart Date: Sat, 24 Aug 2024 13:10:09 -0400 Subject: [PATCH 16/26] Add in new css test --- src/HtmlCss.test.tsx | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/HtmlCss.test.tsx b/src/HtmlCss.test.tsx index 36767ad350..48b0a6df2d 100644 --- a/src/HtmlCss.test.tsx +++ b/src/HtmlCss.test.tsx @@ -30,7 +30,7 @@ describe("Some basic CSS is added.", () => { render(); const banner = screen.getByRole("banner"); expect(banner).not.toHaveStyle({ - "background-color": "rgb(40, 44, 52)" + "background-color": "rgb(40, 44, 52)", }); }); }); @@ -59,6 +59,25 @@ describe("Some Bootstrap Elements are added", () => { }); }); -/** - * Remember, there are additional tasks described on the page! - */ +describe("Some additional CSS was added", () => { + test("checks if any element has a background color of red", () => { + const { container } = render(); + // Get all elements in the rendered container + const elements = container.querySelectorAll("*"); + + // Check if any element has a background color of red + let foundRedBackground = false; + + elements.forEach((element) => { + const style = getComputedStyle(element); + if ( + style.backgroundColor === "red" || + style.backgroundColor === "rgb(255, 0, 0)" + ) { + foundRedBackground = true; + } + }); + + expect(foundRedBackground).toBe(true); + }); +}); From 4d43d7a5d133522b0a8d92e1cb3d7e4053a81992 Mon Sep 17 00:00:00 2001 From: Austin Cory Bart Date: Sat, 24 Aug 2024 13:12:28 -0400 Subject: [PATCH 17/26] Add in points --- src/HtmlCss.test.tsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/HtmlCss.test.tsx b/src/HtmlCss.test.tsx index 48b0a6df2d..320cb97524 100644 --- a/src/HtmlCss.test.tsx +++ b/src/HtmlCss.test.tsx @@ -4,20 +4,20 @@ import App from "./App"; import userEvent from "@testing-library/user-event"; describe("Some HTML Elements are added.", () => { - test("There is a header", () => { + test("(2 pts) There is a header", () => { render(); const header = screen.getByRole("heading"); expect(header).toBeInTheDocument(); }); - test("There is an image with alt text", () => { + test("(2 pts) There is an image with alt text", () => { render(); const image = screen.getByRole("img"); expect(image).toBeInTheDocument(); expect(image).toHaveAttribute("alt"); }); - test("There is a list with at least three elements", () => { + test("(2 pts) There is a list with at least three elements", () => { render(); const list = screen.getByRole("list"); expect(list).toBeInTheDocument(); @@ -25,7 +25,7 @@ describe("Some HTML Elements are added.", () => { }); }); -describe("Some basic CSS is added.", () => { +describe("(2 pts) Some basic CSS is added.", () => { test("The background color of the header area is different", () => { render(); const banner = screen.getByRole("banner"); @@ -35,7 +35,7 @@ describe("Some basic CSS is added.", () => { }); }); -describe("Some Bootstrap Elements are added", () => { +describe("(2 pts) Some Bootstrap Elements are added", () => { test("There is one bootstrap button with the text 'Log Hello World'", () => { render(); const button = screen.getByRole("button", { name: /Log Hello World/i }); @@ -44,13 +44,13 @@ describe("Some Bootstrap Elements are added", () => { expect(button).toHaveClass("btn-primary"); }); - test("Not clicking the bootstrap button does not logs 'Hello World!'", () => { + test("(2 pts) Not clicking the bootstrap button does not logs 'Hello World!'", () => { const consoleSpy = jest.spyOn(console, "log"); render(); expect(consoleSpy).not.toHaveBeenCalledWith("Hello World!"); }); - test("Clicking the bootstrap button logs 'Hello World!'", () => { + test("(2 pts) Clicking the bootstrap button logs 'Hello World!'", () => { const consoleSpy = jest.spyOn(console, "log"); render(); const button = screen.getByRole("button", { name: /Log Hello World/i }); @@ -60,7 +60,7 @@ describe("Some Bootstrap Elements are added", () => { }); describe("Some additional CSS was added", () => { - test("checks if any element has a background color of red", () => { + test("(2 pts) checks if any element has a background color of red", () => { const { container } = render(); // Get all elements in the rendered container const elements = container.querySelectorAll("*"); From 55c8e9a18038c21431b93e31126851c484f48c5c Mon Sep 17 00:00:00 2001 From: Angel Jose Date: Fri, 29 Aug 2025 13:27:48 -0400 Subject: [PATCH 18/26] Added name to App --- src/App.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/App.tsx b/src/App.tsx index b77558eaac..62365e91a9 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -7,6 +7,10 @@ function App(): React.JSX.Element {
UD CISC275 with React Hooks and TypeScript
+
+ Angel Jose +
+

Edit src/App.tsx and save. This page will automatically reload. From 124cb06058c4754c9be2cc0c9f56c49b3695804f Mon Sep 17 00:00:00 2001 From: Angel Jose Date: Fri, 29 Aug 2025 14:39:33 -0400 Subject: [PATCH 19/26] Added name to App --- src/App.tsx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 62365e91a9..c6981eacef 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -7,10 +7,9 @@ function App(): React.JSX.Element {

UD CISC275 with React Hooks and TypeScript
-
- Angel Jose +
+ Angel Jose
-

Edit src/App.tsx and save. This page will automatically reload. From c8f21b787daaac5032b6ee9e3920ad5881649bdf Mon Sep 17 00:00:00 2001 From: Angel Jose Date: Sat, 30 Aug 2025 22:04:08 -0400 Subject: [PATCH 20/26] Added name to App --- src/App.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index c6981eacef..b0be3df3a6 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -7,9 +7,9 @@ function App(): React.JSX.Element {

UD CISC275 with React Hooks and TypeScript
-
+

Angel Jose -

+

Edit src/App.tsx and save. This page will automatically reload. From 23ac51b51130c04fd356f29199e5a85dcd1fe4f0 Mon Sep 17 00:00:00 2001 From: Angel Jose Date: Wed, 3 Sep 2025 15:10:02 -0400 Subject: [PATCH 21/26] Add Hello World to App --- src/App.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/App.tsx b/src/App.tsx index b0be3df3a6..55a2923ab3 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -14,6 +14,9 @@ function App(): React.JSX.Element { Edit src/App.tsx and save. This page will automatically reload.

+

+ Hello World +

); } From a50097e60e17ef9364e0464d982163b9e0232528 Mon Sep 17 00:00:00 2001 From: Angel Jose Date: Thu, 4 Sep 2025 12:24:12 -0400 Subject: [PATCH 22/26] Added Hello World to App --- src/App.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/App.tsx b/src/App.tsx index 55a2923ab3..fc118cfce8 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -16,7 +16,7 @@ function App(): React.JSX.Element {

Hello World -

+

); } From 0d7a76c9c9d0e54220d768846fab75dfd1a113df Mon Sep 17 00:00:00 2001 From: Angel Jose Date: Thu, 4 Sep 2025 21:26:01 -0400 Subject: [PATCH 23/26] added task files and removed git repo --- git | 0 package-lock.json | 119 +++++++++++++++++++++------------------------- src/App.tsx | 8 +--- src/tasks | 1 + src/text.test.tsx | 2 +- 5 files changed, 59 insertions(+), 71 deletions(-) create mode 100644 git create mode 160000 src/tasks diff --git a/git b/git new file mode 100644 index 0000000000..e69de29bb2 diff --git a/package-lock.json b/package-lock.json index 8c3779f487..cacf8a1063 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3273,7 +3273,7 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" @@ -3436,7 +3436,7 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", @@ -3454,7 +3454,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -3470,7 +3470,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -3487,7 +3487,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -3500,14 +3500,14 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/@jest/types/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=8" @@ -3517,7 +3517,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -3909,7 +3909,7 @@ "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/@sinonjs/commons": { @@ -4222,7 +4222,6 @@ "version": "10.4.0", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", - "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.10.4", @@ -4242,7 +4241,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -4258,7 +4256,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -4275,7 +4272,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -4288,14 +4284,12 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, "license": "MIT" }, "node_modules/@testing-library/dom/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4305,7 +4299,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -4470,35 +4463,34 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/@tsconfig/node12": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/@tsconfig/node14": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/@tsconfig/node16": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", - "dev": true, "license": "MIT" }, "node_modules/@types/babel__core": { @@ -4911,7 +4903,7 @@ "version": "17.0.33", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@types/yargs-parser": "*" @@ -5508,7 +5500,7 @@ "version": "8.3.3", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "acorn": "^8.11.0" @@ -7210,7 +7202,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/cross-spawn": { @@ -7947,7 +7939,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, + "devOptional": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" @@ -13021,7 +13013,7 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -13031,7 +13023,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", @@ -13949,7 +13941,7 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -13959,7 +13951,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "chalk": "^4.0.0", @@ -13994,7 +13986,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -14010,7 +14002,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -14027,7 +14019,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -14040,14 +14032,14 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/jest-resolve/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=8" @@ -14057,7 +14049,7 @@ "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", @@ -14075,7 +14067,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -14518,7 +14510,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", @@ -14536,7 +14528,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -14552,7 +14544,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -14569,7 +14561,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -14582,14 +14574,14 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/jest-util/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=8" @@ -14599,7 +14591,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -14612,7 +14604,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", @@ -14630,7 +14622,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -14646,7 +14638,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=10" @@ -14659,7 +14651,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -14676,7 +14668,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -14689,14 +14681,14 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/jest-validate/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=8" @@ -14706,7 +14698,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", @@ -14721,7 +14713,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=10" @@ -14734,14 +14726,14 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/jest-validate/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -14850,7 +14842,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@types/node": "*", @@ -14866,7 +14858,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=8" @@ -14876,7 +14868,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -15368,7 +15360,6 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", - "dev": true, "license": "MIT", "bin": { "lz-string": "bin/bin.js" @@ -15402,7 +15393,7 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, + "devOptional": true, "license": "ISC" }, "node_modules/makeerror": { @@ -20668,7 +20659,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=10" @@ -22588,7 +22579,7 @@ "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", @@ -22632,7 +22623,7 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/tsconfig-paths": { @@ -23056,7 +23047,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/v8-to-istanbul": { @@ -24118,7 +24109,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=6" diff --git a/src/App.tsx b/src/App.tsx index fc118cfce8..a1e93bca44 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -7,16 +7,12 @@ function App(): React.JSX.Element {
UD CISC275 with React Hooks and TypeScript
-

- Angel Jose -

+

Angel Jose

Edit src/App.tsx and save. This page will automatically reload.

-

- Hello World -

+

Hello World

); } diff --git a/src/tasks b/src/tasks new file mode 160000 index 0000000000..42b33db682 --- /dev/null +++ b/src/tasks @@ -0,0 +1 @@ +Subproject commit 42b33db682337400db6357ef2f826920c279d3b0 diff --git a/src/text.test.tsx b/src/text.test.tsx index f99a063e76..e7e4a3507c 100644 --- a/src/text.test.tsx +++ b/src/text.test.tsx @@ -6,4 +6,4 @@ test("renders the text 'Hello World' somewhere", () => { render(); const texts = screen.getAllByText(/Hello World/); expect(texts.length).toBeGreaterThanOrEqual(1); -}); +}); \ No newline at end of file From dd1a0a8872e22a9cd846bbfcc02246b2d8caff97 Mon Sep 17 00:00:00 2001 From: Angel Jose Date: Thu, 4 Sep 2025 21:48:55 -0400 Subject: [PATCH 24/26] Readd Hello World to App --- src/App.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/App.tsx b/src/App.tsx index a1e93bca44..a6160f9dbb 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -12,7 +12,7 @@ function App(): React.JSX.Element { Edit src/App.tsx and save. This page will automatically reload.

-

Hello World

+

Hello World

); } From 9f529e01c58b1ce55f0bf4d7888c5fc13120525c Mon Sep 17 00:00:00 2001 From: Angel Jose Date: Mon, 8 Sep 2025 11:20:08 -0400 Subject: [PATCH 25/26] changes from Task 3 --- src/App.tsx | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- src/dog.jpg | Bin 0 -> 493969 bytes 2 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 src/dog.jpg diff --git a/src/App.tsx b/src/App.tsx index a6160f9dbb..c570891ce4 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,5 +1,8 @@ import React from "react"; import "./App.css"; +import { Button, Col, Container, Row } from "react-bootstrap"; +import dog from "./dog.jpg" + function App(): React.JSX.Element { return ( @@ -7,14 +10,56 @@ function App(): React.JSX.Element {
UD CISC275 with React Hooks and TypeScript
+

This is header text

Angel Jose

Edit src/App.tsx and save. This page will automatically reload.

-

Hello World

+

Hello World!

+ Dog + +
    +
  1. golden retriever
  2. +
  3. poodle
  4. +
  5. german shepard
  6. +
+ + + + + + {" "} + First column. +
+ + + Second Column. +
+ +
+
+ This is colored text ); } - export default App; diff --git a/src/dog.jpg b/src/dog.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e696ff714d2890781530b4988a95b68d1bf88d30 GIT binary patch literal 493969 zcmZ^J19T=&({Hfx#&$N?WMkXr#&6Ot{={F?d)USP&2pcnNV~1rQK0-M`Hq8uBm43wv1;1mwGvxsZ^Ygpd%CoP({2 zxs@>ph{OM`I7{}xyKr#N1X)X&(j|z1G+xBs8jV#G|H~k$R*jz;RU+U+`Blxl zjhdo(+sCxpi^%0dxHt`SHWqMXJQQ5&5X^&o^Y$KEtG7uEL+-;bMoNguixeq`hEy7X zPaa8nTT4l>oOtvyTspMpGM82AW$f<`1lQ!H_rb%5g5Y9L{Hd27XeJiPypBs zxiB#iA>Q%!G8NcM+!tq%vcsOhZ)aza(+_XSWUCvrJuM_ihn>y>Sqa7y0Wdc(>{~wW zy?#nRhJ&8+i!b0i$XoU<|Id!xzn5jC08tGEJREcY$pC2f_C@|BgEh_e zN^g4RrIpV}7ka%WKV^mZ0>lM@D_pxLqsF7BFUAmF4bDX=97=T~u?wAzUQ;@kZ&l9p zB;)1NC^)y*c9u4%oR6;( zpqXvfdmBAy^)5T}iwk6H*wfQ9*6Ua>7QAK}zY7Jy_tpT{J@J^?TDQQYZBm|2c6`1s0U90mD!^r z2jLR;e`I?XPWtC2HFOq9g&isd_voRz!R<`Xq$I=0@nZqo`y3tAk6?36>VQDPK_-! zY_wukiA6O?S*uZr%zJF9#yywT~uB4oOrABX`WZHg?v@n)&jc)hBHB9l!g?KP^Xx8 zVR5lZ@lifT)lZeo3YFp})ys}Gp~l#=wKJD9tw%KH;8%r5{4?@}>(cK0Su+)8J`F~i z*rp^E87>h|{*XDSA$)FwP}T?riF8lqK5DJ~=*3-(a84PjB#zo++X=z4Bhs zKqg4-e&-NRc+Br~1YN$*wjrhY+4@nt-}|dVXhL{IheUft6$+h2OQPDM(uaJ8)Q2jf zW3gQ`=%u}+2Yyz_#ALqr&KcXQaa1xcnX5FH<(r3<^*KeFSDczMS=PJN3)b_P04K|i ztnQue7mp^7HZgu;7}A(%EU3MkNYol>nrKuva+|(vjjd76TI4HtE;?HBSmrqUJ4ZkA z;ATVvCebn_GtZlZHJhxPE+N;cTuQSmw2QTaH;p|PwkCC~x_i5aEd=fZvXK?d+w7DO-Ujg68$9t*PElZZ~8I}x%4V$9fFRYIyfm?f-D3*nvb^y9(QUJi5*SO9ngxCVG5 z_&)eJIN`T+2;*;y-<+Y^A*Z2vkp-b);M9>FB25QSZ_3>_^RM#j1!Y6aLI*>VLwR7E z;ZlRyVnl{RVzgPFbb^e7NDFvTgztz|MYdw=Vlq&iNi(qU(Y293m`#)>Cej>hqgEtp zxeT`lUxsNS+i`7C0b#bk^T_{@Dv@`{eizqDU*WYmXi?v%CBr5SPsB-(7=;;KPxKsu ziqU22A{k^UqBuPIb`CTDQ!CAkp22i)R^mb8T>?r0rYyXSOR@Wg0>?VGckT}xTWG|yJgTrV|&o*JoZ9BgDg=8=n^-bvEV zM$TX=OUuE=0<00%OrYW5S#`T>7`0aLG>>oajyO(YQEW5Tue)>*<`vkAD*^X?&_rX6 z$VEfE_r9aL>4BwcXNV*1G`_>kIo?RxDm9uHs~wzuYGi zc_XqXQWYsir_=nbSzGgL5Uwa;KAK7vK!)i{@aVWY-6=Jn+C=N9*<{aQ-)i(SiQYw3 zu3}L|t@h%!xT5S_pxr5Zt@Zh`xU`+ z4!=yN^W_t0*S{F;gKNo#ZB4oQU|#Qbe@WA;c}7`9DbFdFkzo>o4;c(u651@B5*Az+EdlHIQ0qP>b=)1JSS?=ntsl#|e@2QauMd{Y2! zZV)zgzks~)UkZ!|o+C0KpfCS$o%GlEokP_oXZp=+le6FjTxd~TmKDpj;X!pddSA_}FPXBR!som8?m7)P z4(`WX#XP5L)h@TRx8``LI0uAkY-*g-w(Huo?AaI9T1&6jR&=S#>cF+QJaJyX7U3eZ zt=SB1cX(4Bs=Qh6ULLzTTy?zCd^JzI9&eFsP;~*^yC3{_1IMF}Qthg+C9Zh673(N{XhXbCmg9eYO^`7u*kHZ+)FQ;<}zUlpji#a?f?wI=G)x zw{>YY_uII1Ms*&$bnZmICS#guZ8JR!JP10*y@4;@w@@F5%7m+g)83Nr4;S|fbbsiK zb*;Nuec;|)0Bp_8s$;3QZ$1$8dE9G%z;8UDKpIFvux>WQ@d2EKPw2wV#g{@meEN&n zb$}L7Ik>OW!uFl*Ng9wR8}J_3vw203umVt|W6+t|La6f|_3G=5GHPKr))l;G78*AA z_sjy$#Lpez3k6f z|6$V+6a7oY$&!ayO-7DL$kxG_h?SO}mY$dwmWYUm+rh|$Q$bkt-|)X99%3^mCp%6$ zI#*X$T304oTL)7*1`ZAmI(kMrMn;;y8Z?gXHct9(G&YVT|6$}m?Fbt?8akNUIhotq z5dC9U-@w+{iHDf@A4mUn{70O|Zsz~($;R>DY5h%*?jH#q11&w>{|n}1Zu0+u{UiAg z*uV1n4|m-E7~@oSG<{4dh+Z%(|7 z?CkXahW&5R{}ZbI-%tj2`u_|1KScin`cD#^3dWAMR?h!SqOy&-6E7n--T#aIzfo%c z4dZ2CW~O8KH|&4%|2Ibc|AYCT{Qr%Sbuj-skNW?F$NQf?{wMF>`rLH?6u|!|i2taz ze{uho8!s$3-G7xXFKpxxs5uA-KZt~|fRY>NMJHSUE=M(uS$lc=_4*UF=@LDhXLEZ6 zH#>*`7|{q3iJ;_YN_i!be_$XYpFr^3>GgJ(_nU<8+4-IAAe0#OE@OL|&r(4Fa>X3T|`IDSj zdy({MD0)a+v#u{;0#;17xf7-W9n&hNNc`2`oh~&v{Tm@e>@q)NI_o-bl7|m@8C7A9emPIIHbicUeYTsRpoyBi5jB5=|^XEHa_Y) zZ-g6^=fGp*Yf*pd1?B^7G$8tU|3lFqmujc@p-*Od7ckH}ZXOs7%<@Crl-i{}(0Q@% zDa{@n@}CTox2=iP=^_ZpwD>jU>e?b`wmX#1t|9^TGxqJA<@|88IJ42jTYUJ;*7Cd~ z3s2<&FTOvq=P;7E-S z%kCH4qL{{>?M0kCXyn!NMM&q#i);^lT9|Xzs96h;1}`ybHk>ybP{!~2T;5z2EU?z= za*9uVh0y)WjsC-d`4xSjP5@F1D{|sO+1S%Ckt}zVbiI7lF(DWViVwciJ)s8ibd|}bn<$3*F;XHrnJw^n;{EP2YUjUd#WQP zN_BbmPOBT;siH$(*!n7QoT9O?8J~FLsehWxP$7ibol_Z+=-kr#{m1i)=^vV%wStg$ z+V=F#_$dN8a17kHK2T~knKoTlkj!t7Ad7va21u!v?LEhJD}!A7y5;kPT|ZAp`})c= z{CLY{A+{R8xT}1J=U+{Ewpk7LAIge~Jb%BfF>Lt3LSvehPg=`gqV95I#m0{V_q|=| z3~rsF=(*{4)Nju*Uqpsp&->Lly>3mAT$9x=D%yvkhjYJ)jm2|A1_ggxrQ}^Zhb&tz z^;P+@dY_KC?)+Fdqn)~r=+0n8e#u-1{UO`GlijX*L>_=N_0;f8git#AQ`o`ENsq}u zD;CaqC1z~6lO3u<{v_Hahk_*!&4eomT_Eq-=@?z@EutFFsO*HB$<0dDrwI-ieFsz; zpX+N$KH{#4Tr+)X#X1^(FNT#y)a_8Gwh@mKk*j#du1V`K-M^K+#(1GXDd9ddB$^%IGPW0yl;fz|^4{?z0Kc~m zgv60>o|29sR0RC1K&dJ^QJ(IWV^XfIxQ6gxqv(?}ls<_dMS7^7#sPFvn{n>{-c~=~meswhRn3sdsHV;_j zC^mTMvONvU`x)CpT#e)5thYp5q?m)KTxBh;qwRv>upv6i9%ooe+%k4_( zhtR5#hc|>E!`*vI@Kl{0cw{c7Yko4`jsXK%zs6(9yd=mKc!r=`k$cq&Xgy-X=2k!)iA~-iFpA_N6@O@H=~iV2n0U@^~0Reg{TDV6V#K6eho>llyTD$!8i zn$GQ&U#AnyOUnJ`eW)^HyUif^iH5lU?a|f2=KKNue!xkC*RN9=tUhDPDZvk)N7U9P z&tYdxlWczue~@dw;y1vM?#YKi2>&eZDWYAd01Eu~pgKz7OHJY)!c(vMwxI9l4U65^ z3Yak*L*i^S4JKkij(?_2tmDpEkelN)=k9L#=u~N84wqXjfp3P*{=jOUnJLso<>qf} zp%#i!du1?Uhl^)`T9x8X^=sh}zCe%bRDB!I@se2WHXv6eK9KuW5+?80_=f%+tNLBS*m*Un0+W9br2sDB&iZQv^j(iiuh_$q})ubgjW zHz(F$Xc4o`EZz`-J*)T%jf}dz)+VOuhOX0urvO>ri(Njcl}4*zfNEQz)`BYjeD3yZ z|MFRMXyJAJHQBxNfVN5UXpi%|uvD(WsWU;Za3oTL8S2WuvgY!70kx$VZ#R~H4bu5}OlL&2jL{8r8}g@Y@V%lqcB)2V@wzRgJK z6{l7zbN?GO7<92s!rSXNHQciXI%1W{@&OCPhfHOcZqE)7WM;w4L~t z9=RrMD0obz(tZm#b`jFC>kww8MYFzU1tl9!&C!cfbn*SkDZP#oHU@?agqJLWF1|Kh zT(I}D@XCH!W(15BW)bqH>r5Vg=~4x2Wr?h(ntw$*Fz&hVS!qYnUlyXP3GAxag9EKo zVmi!kwOyC9X~Ag_Q1`&b-^KN0z;aT38AmR9OSFVtqX(7Abf9okEHb*A%}mNG{c{Ia z_UoX+@kTPBQZC(!?Fc*cMYsy8wj-teH{Y`?1TXr(T(DL0a|vs~bZv@<0Ih|5UuuT0 zPGEA}@!vKhYvtLvMmlnn!E;wU+lPF_q=sgO-6K*1Ce%&bO?0_(?moX4UYrj}KaHr3 z2}Dg>)c5f+h5!#~$4|Y$gyVP)xn-Yg-~UO&wF0E;!|gz3bs4-}WwrI0*gE#qlcp=6 zB<)3v1h%1WL3BFbC)4C9E-&At3S$|X40N%^!Z1kH9o(V98NJ31y^!T?*59;O#$OBY z^GIJ>>CJ<8#>ZY#JN!KoQMZC^?tAKJ+?KeG!ZmICv*--r`>Vg%iEJcg59(vgudlKr zfQo;Oh;>P*x^wWpYG!gHMiG6ZuabJ7D=?8HGxW^+fR`13JMFiR`}lpfqhX1{IGnCG zo;V&7M?gu-nxYc5bgysG(P26gtXZ{*pizT-<=I9hoN|3vZNTHYYWN6~14q+xQA<)F z1Fk{idc4aei_pWaCfz!;)y8H%;=WYn=*yAFQ>l@!BNw&-c1KMAPCH-UgvKgd^@0kx znCp1JzXqx8-i%9=$+gn7$v2^wBtttKJ@Zx7%S*pisM(6A=a$A;iXP>kSv;Uc0)Pi+ znDo3No0PC#46z@YEHcM(CERI^&+euYNTLDYJ z=*-k2-6p2`sq64OhVUz+@3zr*&ne_OYSP|{aNwU;S1-z&vL0>pQnphU+e|rCr*?nY zt15^4>=_xQNta(WeG4@k7TWv2&~ZK*kIq12s9LcjdZOda*GeZTX4xO}bQCJpf2{o& z;^ef-oS*&ighk|@J|bD47#MNq^SXO}mT&sXf6>BAIFPE^BRzGgcHsJhdRNgG}tF=w~)-J(VwVR2ePmOz5Vid0LcDaHRm8B-FBhce5!~DuiS%>B?*Vse zI7)P3qM_cOk3T|7!TqkVxrZhB9}7UsdsMH=LIJ9+=3SC_Q2nptWyV61E`7<;qZfY; zVc(z}^TB+iI3)hOEuh~=;@u%S>Sh}o`7*@xdRuienp9ncIE(_W@mtca;D`(`VJ10AHu9P2`ZH(l=dT;~)VPaY& zW8A86hn`}ng(W$9rIliick$m0A&Zr&2#BNZVeNS?ZyqV3a!iNqCkf$yL~lBNxlH$$ zoDcWXseslWXH8wSZw~yf-_XOlrp!!o-9TF#>O9@(o6Ix9?G7G#qUBw))Fp&n_`Gl` zAZnYsV>1sI!KN$oEMcj1cN~n_pVehDayS{{%;rK#TyXlqyVp|jsXkN>ZQ^XJ#XssR zv((%{xNX>=eyxq4Jf)|kR9h(pS3T2z4rCWVq(SkMr~>3tyxpR`^dsutVfj>v6Rdw( zsY>z8yQk|a=`6e5rSQ=wgMnGVW@~QIh-~gC0bK8WpZ~r7ELZV2A1<}q5;}$&howHT z_2r0>JrNXKhI_J9EGz4tv&+4CmDeAJtO3P>v4h2ce0G3Jsaxcgdw6apo4j_BjRIb& zR7U==eh*IdjQ9LdI^Qr3@z`n8r??QJ+lAq=q`><5->n|$d?OGif7ahnzua^)=uxk> zwHKG4Tmd8GU#S)RZTh@ik{8C9IuGGnKBe1+o)fgLU6p^=T>cDExv>GZHXSW#F_py@ zDwje^HmR<37kcs$+a}ofxAdpAMt2KF^OuZh`&pYM!kFrOLW8uH1;e8tr+ba>QNQ$2 zhd}=9U1;UCHBxzMy0Q~p?#KB`j-#^a%6!K4FF*B$?vEV^14LK*$f2 z90<6X1tMu)20WIutN43mEn7`TpHl*%fX?X8#wp3&hB=g_o5R16gUFg3rTRacf^#9T zAe~w0A`=}T3l@$kEJhZ)8u3Kx09>S}ru`QC&Kl+I{g%ETPj5+)l199$d zLup9emnYpWEk})_X^&q(eg0WBDpdVg(O$pKbzQ&Jc0sj!>DnZYTmAqx7e{(e!h|J* z_o9&;NRBRlLY^;ZW@m`(4Wq~yHuR`xX45bx_n<|0zxKG3OgY4{L$?ZpwX4gKWMdgO zk(;_+pHRk+N*#T(P@FFoEz21jg9NXK!tZ*;8&1Gk#OlKdYLDQ_doATd=ZDxUe=2$F z62n}zguxlV5)e3>xj^iosZez{?C{ZA+AC*$ zG!H~%dcDzDKOZ*SOmU-#Qy-|T=+)?swV2+&)!|XOk4xiWJhxsfBO%&8tC{ai@vHb# z8$uEhp*HdXp1LQ3iDp{ucHI2*B=-fwHRk&Lfp+*?$2ptbMkVT}Tm)J_ znT(YLZ4wuhf1gllmi*B4W{t>067X=_dhj-u5o9SBCvRt_-$tXs2t$bInF zK|bk{-`YN|3XIz2g)9hEO!id+qzX(oQ?61Jdr75xR5+qZF~3-2)YJ7A;SyxTFs+ax zr#4N$*>_fEOlb@v{|9NdTNL4Z&psH2_xJOl>`))&gV+*y>zXxgKx{PBfQna8;3r7GJAq!g)OWkf zq!9EAj9(6uuQ!g#+d~;IcOL7W{{5;dAn)IoS}4+K6OD^j66}kH?5*s{^wc+o-+g|N z3quvC=yN@!%SR3FK;aTOiq%WXM680A?p3o%{|Pl>*+`o=nqn~T9WK!eMS$|d8Rq}; z3^!yEC0YAo0luA~8MZ{KJA}_)(mrLCEZTa0@nf&NYw*0!+1{?W)r0@W1i%MIq%qVk z>`|8IJ?<3VfyPG5tPOO?M^Y1VIQjpX(5|*k5xMS^csNebzd*5$>(5#!(a9{cF5*z* zKk9l_vFX(4uasfmbS)cIN%56rQZ|`FS;fbLshX;nRyNZ0c@{j|FCkAHu~pKq<2kr- zF^nQCpM<>`NLXd5iyEJ*elgpxS&4S;59^WrGJw!3qH{oZESRue&GC6)tLCw2CV$Zz zg?cnI1fZB&;QbKfOCk;(DHbmdTjBczadlJ$EjJ# zPjqO5zxkIcREmAYjsV)|K`GmNK3oXw61pOyNL$T8YkHT#BKDwPI$)u>N_&m*tP|gfW4Si-g3un4qA_A@! zf#c1uy+8GCy$2x|56L#W6m9&3s5pzt>+wMZG+dk8>JW-Pno#vI^yzGJZLQ~O+5Ita z`xxV=0-_r>OzgZ-bt^vupZTnXOVy#A@^z6nB4Jlj#j+16P+8A-YU}uN4ipe15A3C; z&SoZ~Y2~IE9&bp6IqO_X5d^AsYG_-%X%Gx1o{AiK8@KGF6Aji;JK?wZc_!0BwZ|

+)Zg&*b{etMiD8zKmVRSbmR*lCXj2)Tr&h+SGtm_&qll3vMRc z5L$vnmafat%zcZ;H#4O$@uZqegWt7c3X||PD~>WT-;51!6P3Y+p7%q;GLAg9X#1SO zUIkH^YeoJW;fs_q$bH!H%k?@ixU<3S zD=`6ArkeS53Z+n#Oly53?gzECAzNUylhA!WvHn``&m&FZjcJ$fj5m~_YkTFsJDP_K z2$A7!U37|qVyn_fl5$0tWe6=W^{HOhXej%XP!mP(h6UhZ1a*~bV+sAsrD?$hrJ-!x z3j-eY)^oJCa{^KegWzY2!wXZXHH^7QwMB{P~u3q`EUHakKVPl$ZNkQU*pc z_7Yy8dq~6MKQKqTyRv}7cCv%0DZ9N?kz9$%{t%D5qS?=U40Jo9>7)e`T03-SWEU#j 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