From 0de5c4c52914c58c09199e1a7c55aa2921ad7021 Mon Sep 17 00:00:00 2001 From: Kayyali <89478559+Kayyali78@users.noreply.github.com> Date: Sat, 6 May 2023 11:05:32 -0400 Subject: [PATCH] Final delivery of application as of May 6 (#586) --- .circleci/config.yml | 26 + .dockerignore | 0 .gitattributes | 0 .gitignore | 60 +- .idea/CSC480-22S.iml | 9 + .idea/modules.xml | 14 + .idea/vcs.xml | 6 + .idea/workspace.xml | 257 + LICENSE | 0 README.md | 0 .../course-manager-microservice/.dockerignore | 0 .../course-manager-microservice/Dockerfile | 0 .../course-manager-microservice.iml | 12 + backend/course-manager-microservice/pom.xml | 10 + .../application/CourseManagerApplication.java | 0 .../java/edu/oswego/cs/cors/CorsFilter.java | 0 .../java/edu/oswego/cs/daos/CourseDAO.java | 29 + .../main/java/edu/oswego/cs/daos/FileDAO.java | 0 .../edu/oswego/cs/daos/ProfanitySettings.java | 26 + .../java/edu/oswego/cs/daos/StudentDAO.java | 0 .../main/java/edu/oswego/cs/daos/UserDAO.java | 17 + .../oswego/cs/database/AdminInterface.java | 387 + .../oswego/cs/database/CourseInterface.java | 137 +- .../oswego/cs/database/DatabaseManager.java | 0 .../oswego/cs/resources/AdminController.java | 197 + .../cs/resources/CourseManagerResource.java | 24 +- .../java/edu/oswego/cs/util/CPRException.java | 0 .../main/java/edu/oswego/cs/util/CSVUtil.java | 0 .../java/edu/oswego/cs/util/CourseUtil.java | 0 .../src/main/liberty/config/server.xml | 0 .../src/test/java/CourseManagerTests.java | 4 +- .../course-viewer-microservice/.dockerignore | 0 backend/course-viewer-microservice/Dockerfile | 2 +- .../course-viewer-microservice.iml | 12 + backend/course-viewer-microservice/pom.xml | 0 .../application/CourseViewerApplication.java | 0 .../java/edu/oswego/cs/cors/CorsFilter.java | 0 .../edu/oswego/cs/daos/AssignmentDAO.java | 0 .../java/edu/oswego/cs/daos/CourseDAO.java | 0 .../java/edu/oswego/cs/daos/StudentDAO.java | 0 .../oswego/cs/database/CourseInterface.java | 0 .../oswego/cs/database/DatabaseManager.java | 0 .../oswego/cs/database/GradeInterface.java | 0 .../cs/resources/CoursesViewerResources.java | 0 .../src/main/liberty/config/server.xml | 0 .../edu/oswego/edu/CoursesViewerTest.java | 2 +- backend/login-microservice/.dockerignore | 0 backend/login-microservice/Dockerfile | 0 .../login-microservice/login-microservice.iml | 12 + backend/login-microservice/pom.xml | 0 .../cs/application/RestApplication.java | 0 .../edu/oswego/cs/controllers/Controller.java | 1 + .../java/edu/oswego/cs/cors/CorsFilter.java | 0 .../oswego/cs/database/DatabaseManager.java | 0 .../oswego/cs/database/ProfessorCheck.java | 0 .../edu/oswego/cs/services/AuthServices.java | 45 +- .../edu/oswego/cs/services/GoogleService.java | 0 .../java/edu/oswego/cs/util/CPRException.java | 0 .../src/main/liberty/config/server.xml | 0 .../src/test/java/LoginTests.java | 2 +- .../.dockerignore | 0 .../peer-review-teams-microservice/Dockerfile | 0 .../peer-review-teams-microservice/pom.xml | 0 .../cs/application/RestApplication.java | 0 .../java/edu/oswego/cs/cors/CorsFilter.java | 0 .../main/java/edu/oswego/cs/daos/TeamDAO.java | 10 +- .../oswego/cs/database/DatabaseManager.java | 0 .../edu/oswego/cs/database/TeamInterface.java | 138 +- .../oswego/cs/requests/SwitchTeamParam.java | 0 .../edu/oswego/cs/requests/TeamParam.java | 0 .../cs/resources/ProfessorTeamResources.java | 13 + .../cs/resources/StudentTeamResources.java | 0 .../cs/services/IdentifyingService.java | 21 +- .../oswego/cs/services/SecurityService.java | 0 .../edu/oswego/cs/services/TeamService.java | 0 .../java/edu/oswego/cs/util/CPRException.java | 0 .../src/main/liberty/config/server.xml | 0 .../src/test/java/TeamsTests.java | 40 +- .../.dockerignore | 0 .../Dockerfile | 0 .../professor-assignment-microservice/pom.xml | 30 +- .../professor-assignment-microservice.iml | 12 + .../ProfessorAssignmentApplication.java | 0 .../edu/oswego/cs/rest/cors/CorsFilter.java | 0 .../oswego/cs/rest/daos/AssignmentDAO.java | 8 +- .../rest/daos/AssignmentNoPeerReviewDAO.java | 32 + .../java/edu/oswego/cs/rest/daos/FileDAO.java | 19 - .../cs/rest/daos/PeerReviewAddOnDAO.java | 24 + .../cs/rest/database/AssignmentInterface.java | 426 +- .../cs/rest/database/DatabaseManager.java | 0 .../ProfessorAssignmentResource.java | 244 +- .../edu/oswego/cs/rest/util/CPRException.java | 0 .../src/main/liberty/config/server.xml | 1 + .../test/java/ProfessorAssignmentTests.java | 151 +- .../src/test/java/solution.docx | Bin 0 -> 50821 bytes .../.dockerignore | 0 .../Dockerfile | 0 .../student-assignment-microservice/pom.xml | 10 + .../StudentAssignmentApplication.java | 0 .../edu/oswego/cs/rest/cors/CorsFilter.java | 2 + .../java/edu/oswego/cs/rest/daos/FileDAO.java | 68 +- .../cs/rest/database/AssignmentInterface.java | 525 +- .../cs/rest/database/DatabaseManager.java | 0 .../resources/studentAssignmentResource.java | 195 +- .../src/main/liberty/config/server.xml | 0 .../src/test/java/StudentAssignmentTests.java | 343 + .../.dockerignore | 0 .../Dockerfile | 0 .../pom.xml | 0 .../cs/application/RestApplication.java | 0 .../java/edu/oswego/cs/cors/CorsFilter.java | 26 +- .../oswego/cs/database/DatabaseManager.java | 0 .../PeerReviewAssignmentInterface.java | 1330 +- .../cs/{ => database}/daos/FileDAO.java | 2 +- .../cs/{ => database}/daos/PeerReviewDAO.java | 2 +- .../distribution/AssignmentDistribution.java | 0 .../PeerReviewAssignmentResource.java | 160 +- .../src/main/liberty/config/server.xml | 0 .../StudentPeerReviewAssignmentTests.java | 774 +- ...nt-peer-review-assignment-microservice.iml | 12 + compass-connections.json | 83 + docker-compose-db-and-proxy.yml | 115 + docker-compose-local-frontend-m1.yml | 0 docker-compose-local-frontend.yml | 0 docker-compose-local-m1.yml | 0 docker-compose-local.yml | 0 docker-compose-rebuild.yml | 259 + docker-compose.yml | 2 +- env.example | 9 +- frontend/.dockerignore | 0 frontend/Dockerfile | 0 frontend/Frontend.iml | 12 + frontend/README.md | 0 frontend/pom.xml | 2 +- frontend/src/main/frontend/.env.example | 2 - frontend/src/main/frontend/.gitignore | 23 - frontend/src/main/frontend/README.md | 0 .../main/frontend/build/asset-manifest.json | 32 + frontend/src/main/frontend/build/index.html | 1 + .../src/main/frontend/build/manifest.json | 25 + .../Admin_Header.ac40a935ef40bc49e4bb.svg | 4 + .../Arrow_Active.3a543f19aaeb33588a5f.svg | 3 + .../Arrow_Default.a6b2e888a50521367fd4.svg | 3 + .../Bulk Download.1bcf388cb05e91847c5e.svg | 7 + .../Bulk Download.3eb521e713406be59080.svg | 7 + ...CPR logo final-02.e1771c10368e86f15334.svg | 34 + .../media/Courses.10e842de1526296c32fb.svg | 12 + .../media/Courses.6fda0fcfd145845126b4.svg | 12 + .../media/Home.2f31cc44e322c58a979f.svg | 3 + .../media/Home.35e7d66eca98d5e0f21b.svg | 3 + .../media/Logout.dfcf8b594b902195566d.svg | 3 + .../media/loading.803f24369a085e35482e.gif | Bin 0 -> 40957 bytes .../media/no-course.19f64cc5d34c49ed290f.png | Bin 0 -> 33894 bytes .../media/no-data.67c4f2678d27d329dbc6.png | Bin 0 -> 23127 bytes .../media/no-student.6f16574f79805afcc04b.png | Bin 0 -> 23363 bytes .../no-team-no-bg.36f1a86caf0cc8c89ae0.png | Bin 0 -> 54342 bytes ...earch.83bf22fea51e5d789840c7ebeff532fe.svg | 2 + ...ite_bulk_download.aab566bb3002cba7939d.svg | 7 + frontend/src/main/frontend/package-lock.json | 16813 ++++++++++++++++ frontend/src/main/frontend/package.json | 13 +- frontend/src/main/frontend/public/index.html | 24 +- .../src/main/frontend/public/manifest.json | 0 frontend/src/main/frontend/public/robots.txt | 0 frontend/src/main/frontend/src/App.css | 0 frontend/src/main/frontend/src/App.js | 2 + .../main/frontend/src/assets/404-no-bg.png | Bin .../src/assets/icons/Admin_Header.svg | 4 + .../frontend/src/assets/icons/Corner_X.svg | 3 + .../frontend/src/assets/icons/Green_Check.svg | 4 + .../main/frontend/src/assets/icons/Logout.svg | 3 + .../src/assets/icons/White_Download.svg | 7 + .../icons/aboutPage/CPR logo final-01.png | Bin 0 -> 1883 bytes .../aboutPage/Copy of CPR logo final-01.svg | 34 + .../src/assets/icons/aboutPage/DB.svg | 3 + .../src/assets/icons/aboutPage/Engine.svg | 10 + .../src/assets/icons/aboutPage/Gui.svg | 3 + .../src/assets/icons/aboutPage/IBM.svg | 9 + .../src/assets/icons/aboutPage/QA.svg | 7 + .../src/assets/icons/aboutPage/Req.svg | 3 + .../icons/aboutPage/SUNY_Oswego_seal.svg.png | Bin 0 -> 299767 bytes .../assets/icons/aboutPage/Stakeholder.svg | 3 + .../src/assets/icons/aboutPage/Usability.svg | 5 + .../assets/icons/aboutPage/White I Icon.svg | 4 + .../src/assets/icons/aboutPage/docker.png | Bin 0 -> 18968 bytes .../src/assets/icons/aboutPage/html-css.png | Bin 0 -> 99830 bytes .../src/assets/icons/aboutPage/ibm 1.png | Bin 0 -> 2999 bytes .../src/assets/icons/aboutPage/java.png | Bin 0 -> 37158 bytes .../src/assets/icons/aboutPage/maven.png | Bin 0 -> 68217 bytes .../assets/icons/aboutPage/microprofile.png | Bin 0 -> 30972 bytes .../src/assets/icons/aboutPage/mongo-db.png | Bin 0 -> 91754 bytes .../assets/icons/aboutPage/open-liberty.png | Bin 0 -> 58946 bytes .../assets/icons/aboutPage/product-owners.svg | 3 + .../assets/icons/aboutPage/project-lead.svg | 3 + .../src/assets/icons/aboutPage/react.png | Bin 0 -> 27290 bytes .../src/assets/icons/aboutPage/selenium.png | Bin 0 -> 63358 bytes .../assets/icons/logo/CPR logo final-01.svg | 34 + .../assets/icons/logo/CPR logo final-02.svg | 34 + .../assets/icons/logo/CPR logo final-03.svg | 34 + .../assets/icons/navigation/active/Admin.svg | 4 + .../icons/navigation/active/Arrow_Active.svg | 3 + .../icons/navigation/active/Bulk Download.svg | 7 + .../icons/navigation/active/Courses.svg | 12 + .../assets/icons/navigation/active/Home.svg | 3 + .../assets/icons/navigation/default/Admin.svg | 4 + .../navigation/default/Arrow_Default.svg | 3 + .../navigation/default/Bulk Download.svg | 7 + .../icons/navigation/default/Courses.svg | 12 + .../assets/icons/navigation/default/Home.svg | 3 + .../navigation/default/Minus_Default.svg | 4 + .../icons/navigation/default/Plus_Default.svg | 3 + .../default/white_bulk_download.svg | 7 + .../src/main/frontend/src/assets/loading.gif | Bin 0 -> 40957 bytes .../main/frontend/src/assets/no-course.png | Bin .../src/main/frontend/src/assets/no-data.png | Bin .../main/frontend/src/assets/no-student.png | Bin .../frontend/src/assets/no-team-no-bg.png | Bin frontend/src/main/frontend/src/assets/rr.html | 327 + .../assets/rr_files/14-c10b8a9e6cb760e9.js | 1 + .../assets/rr_files/174-bd28069f281ef76f.js | 1 + .../rr_files/1f110208-44a6f43ddc5e9011.js | 1 + .../assets/rr_files/264-5bab79b4cfa13413.js | 1 + .../assets/rr_files/368-07f1471aa435a034.js | 26 + .../assets/rr_files/424-d1d3bfe6a3ca6c4a.js | 1 + .../src/assets/rr_files/717c45ac2a0ad58f.css | 1 + .../assets/rr_files/762-222df1028c0c1555.js | 9 + ...Pkid9pZgrQ9BK3QjiZ_92qW0GGePTkw=s96-c.webp | Bin 0 -> 236 bytes ...9pZgrQ9BK3QjiZ_92qW0GGePTkw=s96-c_002.webp | Bin 0 -> 354 bytes .../[[...chatId]]-862dbc5daf6fb28b.js | 1 + .../assets/rr_files/_app-ebee30cdef4e3c9c.js | 16 + .../src/assets/rr_files/_buildManifest.js | 1 + .../src/assets/rr_files/_ssgManifest.js | 1 + .../main/frontend/src/assets/rr_files/a.html | 2 + .../src/assets/rr_files/a_data/invisible.js | 1 + .../rr_files/framework-7a789ee31d2a7534.js | 33 + .../assets/rr_files/main-149b337e061b4d04.js | 1 + .../rr_files/polyfills-c67a75d1b6f99dc8.js | 1 + .../rr_files/webpack-764371204edc33b1.js | 1 + .../src/components/AssBarComponent.js | 25 +- .../src/components/AssignmentDropdown.js | 43 + .../frontend/src/components/AssignmentTile.js | 95 +- .../frontend/src/components/Breadcrumbs.js | 27 + .../src/components/CourseBarComponent.js | 30 +- .../GlobalComponents/LogoutButton.js | 25 + .../GlobalComponents/LogoutButtonStyle.css | 15 + .../src/components/GradeAssBarComponent.js | 23 +- .../src/components/HeaderBar/HeaderBar.css | 86 + .../src/components/HeaderBar/HeaderBar.js | 89 + .../components/LoaderComponenets/Loader.jsx | 0 .../LoaderComponenets/LoaderComponent.jsx | 0 .../LoaderComponenets/styles/Loader.css | 2 +- .../styles/LoaderComponent.css | 0 .../AdminNavigationContainerComponent.js | 21 + .../BulkDownloadTileComponent.js | 33 + .../CourseAccordionComponent.js | 80 + .../CoursesTileComponent.js | 233 + .../NavigationComponents/HomeTileComponent.js | 37 + .../NavigationContainerComponent.js | 37 + .../_ProfessorNavigationComponents.css | 316 + .../frontend/src/components/PRGivenTile.js | 117 + .../frontend/src/components/PRReceivedTile.js | 117 + .../frontend/src/components/PeerReviewTile.js | 115 + .../ProfessorAllSubmissionsComponent.js | 160 +- .../ProfessorEditAssignmentComponent.js | 940 +- .../TeacherFinalGradeComponent.js | 0 .../styles/ProfessorAllSubmissionsStyle.css | 27 + .../ProfessorAssignmentComponent.js | 36 +- .../ProfessorEditCourseComponent.js | 437 +- .../ProfessorProfanitySettingsComponent.js | 156 + .../CoursesPage/ProfessorRosterComponent.js | 720 +- .../CoursesPage/ProfessorTeamAccordion.jsx | 206 +- .../CoursesPage/ProfessorTeamComponent.js | 150 +- .../ProfessorComponents/CoursesPage/Table.jsx | 89 + .../src/components/SidebarComponent.js | 0 .../RegularAssignmentComponent.css | 7 + .../RegularAssignmentComponent.js | 105 +- .../StudentPeerReviewComponent.js | 330 +- .../SubmittedAssignmentComponent.js | 106 +- .../CoursePage/MyTeamComponent.js | 84 +- .../CoursePage/PeerReviewComponent.js | 86 + .../CoursePage/StudentSubmittedComponent.js | 0 .../CoursePage/StudentTeamComponent.js | 372 +- .../CoursePage/StudentToDoComponent.js | 1 + .../PeerReviewPage/PeerReviewListPage.js | 475 + .../styles/PeerReviewListStyle.css | 220 + .../StudentComponents/StudentHeaderBar.css | 16 + .../StudentComponents/StudentHeaderBar.js | 19 + .../components/SubmittedAssBarComponent.js | 10 +- .../src/components/TeamNameComponent.js | 0 .../frontend/src/components/styles/AssBar.css | 13 +- .../styles/AssignmentDropdown.module.css | 9 + .../src/components/styles/AssignmentTile.css | 151 +- .../components/styles/BreadcrumbsStyle.css | 7 + .../src/components/styles/CourseBar.css | 54 +- .../src/components/styles/DeleteModal.css | 50 +- .../components/styles/EditAssignmentStyle.css | 156 +- .../src/components/styles/EditCourse.css | 436 +- .../src/components/styles/FinalGrade.css | 5 + .../frontend/src/components/styles/MyTeam.css | 126 +- .../src/components/styles/PRGivenTile.css | 90 + .../src/components/styles/PeerReviewPage.css | 112 + .../frontend/src/components/styles/Roster.css | 84 +- .../src/components/styles/Roster.module.css | 38 + .../src/components/styles/Sidebar.css | 11 +- .../src/components/styles/StudentAss.css | 2 +- .../components/styles/StudentTeamStyle.css | 289 +- .../styles/SubmittedAssignmentComponent.css | 6 +- .../src/components/styles/TeacherAss.css | 35 +- .../src/components/styles/TeamManager.css | 216 +- .../src/components/styles/TeamSubmission.css | 0 .../src/components/styles/plus-purple.png | Bin .../src/global_styles/RequiredField.css | 13 + .../frontend/src/global_styles/buttons.css | 176 +- .../main/frontend/src/global_styles/fonts.css | 277 +- .../main/frontend/src/global_styles/forms.css | 9 +- frontend/src/main/frontend/src/index.css | 13 +- frontend/src/main/frontend/src/index.js | 0 .../src/interceptors/axiosInterceptor.js | 0 frontend/src/main/frontend/src/logo.svg | 0 .../frontend/src/pages/AboutPage/AboutPage.js | 164 + .../CurrentContributorsComponent.js | 356 + .../CurrentContributorsStyle.css | 98 + .../DependenciesComponent.js | 147 + .../AboutPageComponents/DependenciesStyle.css | 72 + .../DescriptionComponent.js | 105 + .../AboutPageComponents/DescriptionStyle.css | 90 + .../PreviousContributorsComponent.js | 47 + .../PreviousContributorsStyle.css | 14 + .../src/pages/AboutPage/AboutPageStyle.css | 128 + .../src/pages/AdminPages/AdminInterface.js | 680 + .../AdminPages/AdminProfanityComponent.js | 135 + .../src/pages/AdminPages/AdminStyle.css | 592 + .../frontend/src/pages/AdminPages/Modal.jsx | 40 + .../frontend/src/pages/AdminPages/edit.png | Bin 0 -> 441 bytes .../frontend/src/pages/AdminPages/plus.png | Bin 0 -> 490 bytes .../frontend/src/pages/AdminPages/search.svg | 2 + .../frontend/src/pages/AuthPages/LoginPage.js | 8 +- .../src/pages/AuthPages/UnauthedErrorPage.jsx | 0 .../src/pages/AuthPages/styles/LoginPage.css | 9 +- .../pages/AuthPages/styles/UnauthedStyle.css | 0 .../src/pages/StudentPages/PeerReviewPage.js | 73 + .../StudentPages/StudentAssignmentPage.js | 32 +- .../pages/StudentPages/StudentCoursePage.js | 58 +- .../StudentPages/StudentDashboardPage.js | 138 +- .../pages/StudentPages/StudentGradesPage.js | 86 + .../StudentSubmittedAssignmentPage.js | 28 +- .../styles/AssignmentPageStyle.css | 69 +- .../StudentPages/styles/PeerReviewGRStyle.css | 0 .../styles/StudentCourseStyle.css | 40 +- .../styles/StudentDashboardStyle.css | 147 +- .../styles/StudentGradesStyling.css | 732 + .../TeacherPages/CreateAssignmentPage.js | 622 +- .../pages/TeacherPages/CreateCoursePage.js | 298 +- .../src/pages/TeacherPages/DisplayMatrix.js | 288 + .../TeacherPages/ProfessorAssignmentPage.js | 73 +- .../pages/TeacherPages/ProfessorCoursePage.js | 104 +- .../TeacherPages/ProfessorDashboardPage.js | 94 +- .../pages/TeacherPages/ProfessorGradesPage.js | 495 + .../ProfessorSubmittedAssignmentPage.js | 309 +- .../frontend/src/pages/TeacherPages/Table.jsx | 152 + .../styles/CreateAssignmentStyle.css | 262 +- .../TeacherPages/styles/CreateCourseStyle.css | 95 +- .../styles/DisplayMatrix.module.css | 83 + .../styles/ProfessorCourseStyle.css | 80 +- .../styles/ProfessorDashboardStyle.css | 69 +- .../styles/ProfessorGradesStyling.css | 762 + .../styles/ProfessorRosterStyle.css | 802 + .../ProfessorSubmittedAssignmentPage.css | 149 + .../src/pages/img/Google__G__Logo.svg.png | Bin .../frontend/src/pages/img/google_logo.png | Bin .../src/redux/features/assignmentSlice.js | 0 .../frontend/src/redux/features/authSlice.js | 0 .../src/redux/features/courseSlice.js | 0 .../src/redux/features/coursesTileSlice.js | 31 + .../src/redux/features/peerReviewSlice.js | 0 .../features/submittedAssignmentSlice.js | 0 .../frontend/src/redux/features/teamSlice.js | 0 .../redux/interceptors/reduxInterceptor.js | 0 frontend/src/main/frontend/src/redux/store.js | 2 + .../frontend/src/routing/AuthRouteHandler.js | 0 .../frontend/src/routing/RoleRouteHandler.js | 0 .../frontend/src/routing/RouterHandler.js | 161 +- frontend/src/main/frontend/yarn.lock | 15347 +++++++------- frontend/src/main/liberty/config/server.xml | 0 frontend/src/main/webapp/WEB-INF/web.xml | 0 frontend/src/test/WebDrivers/chromedriver.exe | Bin frontend/src/test/WebDrivers/geckodriver.exe | Bin .../src/test/java/AdminInterfaceTest.java | 77 + frontend/src/test/java/AllSubmissionTest.java | 29 +- .../src/test/java/CreateAssignmentTest.java | 13 +- .../test/java/CreateDeleteAssignmentTest.java | 16 +- .../src/test/java/CreateDeleteCourseTest.java | 23 +- frontend/src/test/java/CreateTeamTest.java | 22 +- .../src/test/java/EditAssignmentTest.java | 18 +- .../src/test/java/LoginAndMultiBrowser.java | 22 +- frontend/src/test/java/LoginLogoutTest.java | 22 +- frontend/src/test/java/ManageTest.java | 20 +- .../src/test/java/NavigationAndInput.java | 40 +- frontend/src/test/java/RosterTest.java | 19 +- frontend/src/test/java/StudentPage.java | 22 +- independently-run-database-m1.yml | 0 independently-run-databases.yml | 0 nginx.conf | 3 +- nginxDBandProxy.conf | 96 + nginxfrontend.conf | 5 +- nginxlocal.conf | 1 + professor-list.txt | 2 +- scripts/build-app-db-and-proxy.sh | 34 + scripts/build-app-local-m1.sh | 0 scripts/build-app-local.sh | 0 scripts/build-app.sh | 0 scripts/delete-db.sh | 0 scripts/independently-run-db-m1.sh | 0 scripts/independently-run-db.sh | 0 scripts/mongo-changepwd.sh | 0 scripts/mongo-init.sh | 0 scripts/rebuild-app.sh | 19 + scripts/run-frontend-proxy-m1.sh | 0 scripts/run-frontend-proxy.sh | 0 scripts/tear-down-app.sh | 0 419 files changed, 46735 insertions(+), 10966 deletions(-) create mode 100644 .circleci/config.yml mode change 100644 => 100755 .dockerignore mode change 100644 => 100755 .gitattributes create mode 100644 .idea/CSC480-22S.iml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml mode change 100644 => 100755 LICENSE mode change 100644 => 100755 README.md mode change 100644 => 100755 backend/course-manager-microservice/.dockerignore mode change 100644 => 100755 backend/course-manager-microservice/Dockerfile create mode 100644 backend/course-manager-microservice/course-manager-microservice.iml mode change 100644 => 100755 backend/course-manager-microservice/pom.xml mode change 100644 => 100755 backend/course-manager-microservice/src/main/java/edu/oswego/cs/application/CourseManagerApplication.java mode change 100644 => 100755 backend/course-manager-microservice/src/main/java/edu/oswego/cs/cors/CorsFilter.java mode change 100644 => 100755 backend/course-manager-microservice/src/main/java/edu/oswego/cs/daos/CourseDAO.java mode change 100644 => 100755 backend/course-manager-microservice/src/main/java/edu/oswego/cs/daos/FileDAO.java create mode 100644 backend/course-manager-microservice/src/main/java/edu/oswego/cs/daos/ProfanitySettings.java mode change 100644 => 100755 backend/course-manager-microservice/src/main/java/edu/oswego/cs/daos/StudentDAO.java create mode 100644 backend/course-manager-microservice/src/main/java/edu/oswego/cs/daos/UserDAO.java create mode 100644 backend/course-manager-microservice/src/main/java/edu/oswego/cs/database/AdminInterface.java mode change 100644 => 100755 backend/course-manager-microservice/src/main/java/edu/oswego/cs/database/CourseInterface.java mode change 100644 => 100755 backend/course-manager-microservice/src/main/java/edu/oswego/cs/database/DatabaseManager.java create mode 100644 backend/course-manager-microservice/src/main/java/edu/oswego/cs/resources/AdminController.java mode change 100644 => 100755 backend/course-manager-microservice/src/main/java/edu/oswego/cs/resources/CourseManagerResource.java mode change 100644 => 100755 backend/course-manager-microservice/src/main/java/edu/oswego/cs/util/CPRException.java mode change 100644 => 100755 backend/course-manager-microservice/src/main/java/edu/oswego/cs/util/CSVUtil.java mode change 100644 => 100755 backend/course-manager-microservice/src/main/java/edu/oswego/cs/util/CourseUtil.java mode change 100644 => 100755 backend/course-manager-microservice/src/main/liberty/config/server.xml mode change 100644 => 100755 backend/course-manager-microservice/src/test/java/CourseManagerTests.java mode change 100644 => 100755 backend/course-viewer-microservice/.dockerignore mode change 100644 => 100755 backend/course-viewer-microservice/Dockerfile create mode 100644 backend/course-viewer-microservice/course-viewer-microservice.iml mode change 100644 => 100755 backend/course-viewer-microservice/pom.xml mode change 100644 => 100755 backend/course-viewer-microservice/src/main/java/edu/oswego/cs/application/CourseViewerApplication.java mode change 100644 => 100755 backend/course-viewer-microservice/src/main/java/edu/oswego/cs/cors/CorsFilter.java mode change 100644 => 100755 backend/course-viewer-microservice/src/main/java/edu/oswego/cs/daos/AssignmentDAO.java mode change 100644 => 100755 backend/course-viewer-microservice/src/main/java/edu/oswego/cs/daos/CourseDAO.java mode change 100644 => 100755 backend/course-viewer-microservice/src/main/java/edu/oswego/cs/daos/StudentDAO.java mode change 100644 => 100755 backend/course-viewer-microservice/src/main/java/edu/oswego/cs/database/CourseInterface.java mode change 100644 => 100755 backend/course-viewer-microservice/src/main/java/edu/oswego/cs/database/DatabaseManager.java mode change 100644 => 100755 backend/course-viewer-microservice/src/main/java/edu/oswego/cs/database/GradeInterface.java mode change 100644 => 100755 backend/course-viewer-microservice/src/main/java/edu/oswego/cs/resources/CoursesViewerResources.java mode change 100644 => 100755 backend/course-viewer-microservice/src/main/liberty/config/server.xml mode change 100644 => 100755 backend/course-viewer-microservice/src/test/java/edu/oswego/edu/CoursesViewerTest.java mode change 100644 => 100755 backend/login-microservice/.dockerignore mode change 100644 => 100755 backend/login-microservice/Dockerfile create mode 100644 backend/login-microservice/login-microservice.iml mode change 100644 => 100755 backend/login-microservice/pom.xml mode change 100644 => 100755 backend/login-microservice/src/main/java/edu/oswego/cs/application/RestApplication.java mode change 100644 => 100755 backend/login-microservice/src/main/java/edu/oswego/cs/controllers/Controller.java mode change 100644 => 100755 backend/login-microservice/src/main/java/edu/oswego/cs/cors/CorsFilter.java mode change 100644 => 100755 backend/login-microservice/src/main/java/edu/oswego/cs/database/DatabaseManager.java mode change 100644 => 100755 backend/login-microservice/src/main/java/edu/oswego/cs/database/ProfessorCheck.java mode change 100644 => 100755 backend/login-microservice/src/main/java/edu/oswego/cs/services/AuthServices.java mode change 100644 => 100755 backend/login-microservice/src/main/java/edu/oswego/cs/services/GoogleService.java mode change 100644 => 100755 backend/login-microservice/src/main/java/edu/oswego/cs/util/CPRException.java mode change 100644 => 100755 backend/login-microservice/src/main/liberty/config/server.xml mode change 100644 => 100755 backend/login-microservice/src/test/java/LoginTests.java mode change 100644 => 100755 backend/peer-review-teams-microservice/.dockerignore mode change 100644 => 100755 backend/peer-review-teams-microservice/Dockerfile mode change 100644 => 100755 backend/peer-review-teams-microservice/pom.xml mode change 100644 => 100755 backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/application/RestApplication.java mode change 100644 => 100755 backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/cors/CorsFilter.java mode change 100644 => 100755 backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/daos/TeamDAO.java mode change 100644 => 100755 backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/database/DatabaseManager.java mode change 100644 => 100755 backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/database/TeamInterface.java mode change 100644 => 100755 backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/requests/SwitchTeamParam.java mode change 100644 => 100755 backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/requests/TeamParam.java mode change 100644 => 100755 backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/resources/ProfessorTeamResources.java mode change 100644 => 100755 backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/resources/StudentTeamResources.java mode change 100644 => 100755 backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/services/IdentifyingService.java mode change 100644 => 100755 backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/services/SecurityService.java mode change 100644 => 100755 backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/services/TeamService.java mode change 100644 => 100755 backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/util/CPRException.java mode change 100644 => 100755 backend/peer-review-teams-microservice/src/main/liberty/config/server.xml mode change 100644 => 100755 backend/peer-review-teams-microservice/src/test/java/TeamsTests.java mode change 100644 => 100755 backend/professor-assignment-microservice/.dockerignore mode change 100644 => 100755 backend/professor-assignment-microservice/Dockerfile mode change 100644 => 100755 backend/professor-assignment-microservice/pom.xml create mode 100644 backend/professor-assignment-microservice/professor-assignment-microservice.iml mode change 100644 => 100755 backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/application/ProfessorAssignmentApplication.java mode change 100644 => 100755 backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/cors/CorsFilter.java mode change 100644 => 100755 backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/AssignmentDAO.java create mode 100755 backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/AssignmentNoPeerReviewDAO.java mode change 100644 => 100755 backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/FileDAO.java create mode 100755 backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/PeerReviewAddOnDAO.java mode change 100644 => 100755 backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/database/AssignmentInterface.java mode change 100644 => 100755 backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/database/DatabaseManager.java mode change 100644 => 100755 backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/resources/ProfessorAssignmentResource.java mode change 100644 => 100755 backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/util/CPRException.java mode change 100644 => 100755 backend/professor-assignment-microservice/src/main/liberty/config/server.xml mode change 100644 => 100755 backend/professor-assignment-microservice/src/test/java/ProfessorAssignmentTests.java create mode 100755 backend/professor-assignment-microservice/src/test/java/solution.docx mode change 100644 => 100755 backend/student-assignment-microservice/.dockerignore mode change 100644 => 100755 backend/student-assignment-microservice/Dockerfile mode change 100644 => 100755 backend/student-assignment-microservice/pom.xml mode change 100644 => 100755 backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/application/StudentAssignmentApplication.java mode change 100644 => 100755 backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/cors/CorsFilter.java mode change 100644 => 100755 backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/FileDAO.java mode change 100644 => 100755 backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/database/AssignmentInterface.java mode change 100644 => 100755 backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/database/DatabaseManager.java mode change 100644 => 100755 backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/resources/studentAssignmentResource.java mode change 100644 => 100755 backend/student-assignment-microservice/src/main/liberty/config/server.xml mode change 100644 => 100755 backend/student-assignment-microservice/src/test/java/StudentAssignmentTests.java mode change 100644 => 100755 backend/student-peer-review-assignment-microservice/.dockerignore mode change 100644 => 100755 backend/student-peer-review-assignment-microservice/Dockerfile mode change 100644 => 100755 backend/student-peer-review-assignment-microservice/pom.xml mode change 100644 => 100755 backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/application/RestApplication.java mode change 100644 => 100755 backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/cors/CorsFilter.java mode change 100644 => 100755 backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/database/DatabaseManager.java mode change 100644 => 100755 backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/database/PeerReviewAssignmentInterface.java rename backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/{ => database}/daos/FileDAO.java (97%) mode change 100644 => 100755 rename backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/{ => database}/daos/PeerReviewDAO.java (81%) mode change 100644 => 100755 mode change 100644 => 100755 backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/distribution/AssignmentDistribution.java mode change 100644 => 100755 backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/resources/PeerReviewAssignmentResource.java mode change 100644 => 100755 backend/student-peer-review-assignment-microservice/src/main/liberty/config/server.xml mode change 100644 => 100755 backend/student-peer-review-assignment-microservice/src/test/java/StudentPeerReviewAssignmentTests.java create mode 100644 backend/student-peer-review-assignment-microservice/student-peer-review-assignment-microservice.iml create mode 100755 compass-connections.json create mode 100755 docker-compose-db-and-proxy.yml mode change 100644 => 100755 docker-compose-local-frontend-m1.yml mode change 100644 => 100755 docker-compose-local-frontend.yml mode change 100644 => 100755 docker-compose-local-m1.yml mode change 100644 => 100755 docker-compose-local.yml create mode 100755 docker-compose-rebuild.yml mode change 100644 => 100755 docker-compose.yml mode change 100644 => 100755 env.example mode change 100644 => 100755 frontend/.dockerignore mode change 100644 => 100755 frontend/Dockerfile create mode 100755 frontend/Frontend.iml mode change 100644 => 100755 frontend/README.md mode change 100644 => 100755 frontend/pom.xml delete mode 100644 frontend/src/main/frontend/.env.example delete mode 100644 frontend/src/main/frontend/.gitignore mode change 100644 => 100755 frontend/src/main/frontend/README.md create mode 100644 frontend/src/main/frontend/build/asset-manifest.json create mode 100644 frontend/src/main/frontend/build/index.html create mode 100755 frontend/src/main/frontend/build/manifest.json create mode 100644 frontend/src/main/frontend/build/static/media/Admin_Header.ac40a935ef40bc49e4bb.svg create mode 100644 frontend/src/main/frontend/build/static/media/Arrow_Active.3a543f19aaeb33588a5f.svg create mode 100644 frontend/src/main/frontend/build/static/media/Arrow_Default.a6b2e888a50521367fd4.svg create mode 100644 frontend/src/main/frontend/build/static/media/Bulk Download.1bcf388cb05e91847c5e.svg create mode 100644 frontend/src/main/frontend/build/static/media/Bulk Download.3eb521e713406be59080.svg create mode 100644 frontend/src/main/frontend/build/static/media/CPR logo final-02.e1771c10368e86f15334.svg create mode 100644 frontend/src/main/frontend/build/static/media/Courses.10e842de1526296c32fb.svg create mode 100644 frontend/src/main/frontend/build/static/media/Courses.6fda0fcfd145845126b4.svg create mode 100644 frontend/src/main/frontend/build/static/media/Home.2f31cc44e322c58a979f.svg create mode 100644 frontend/src/main/frontend/build/static/media/Home.35e7d66eca98d5e0f21b.svg create mode 100644 frontend/src/main/frontend/build/static/media/Logout.dfcf8b594b902195566d.svg create mode 100644 frontend/src/main/frontend/build/static/media/loading.803f24369a085e35482e.gif create mode 100644 frontend/src/main/frontend/build/static/media/no-course.19f64cc5d34c49ed290f.png create mode 100644 frontend/src/main/frontend/build/static/media/no-data.67c4f2678d27d329dbc6.png create mode 100644 frontend/src/main/frontend/build/static/media/no-student.6f16574f79805afcc04b.png create mode 100644 frontend/src/main/frontend/build/static/media/no-team-no-bg.36f1a86caf0cc8c89ae0.png create mode 100644 frontend/src/main/frontend/build/static/media/search.83bf22fea51e5d789840c7ebeff532fe.svg create mode 100644 frontend/src/main/frontend/build/static/media/white_bulk_download.aab566bb3002cba7939d.svg create mode 100755 frontend/src/main/frontend/package-lock.json mode change 100644 => 100755 frontend/src/main/frontend/package.json mode change 100644 => 100755 frontend/src/main/frontend/public/index.html mode change 100644 => 100755 frontend/src/main/frontend/public/manifest.json mode change 100644 => 100755 frontend/src/main/frontend/public/robots.txt mode change 100644 => 100755 frontend/src/main/frontend/src/App.css mode change 100644 => 100755 frontend/src/main/frontend/src/App.js mode change 100644 => 100755 frontend/src/main/frontend/src/assets/404-no-bg.png create mode 100644 frontend/src/main/frontend/src/assets/icons/Admin_Header.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/Corner_X.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/Green_Check.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/Logout.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/White_Download.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/CPR logo final-01.png create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/Copy of CPR logo final-01.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/DB.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/Engine.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/Gui.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/IBM.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/QA.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/Req.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/SUNY_Oswego_seal.svg.png create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/Stakeholder.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/Usability.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/White I Icon.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/docker.png create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/html-css.png create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/ibm 1.png create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/java.png create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/maven.png create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/microprofile.png create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/mongo-db.png create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/open-liberty.png create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/product-owners.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/project-lead.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/react.png create mode 100644 frontend/src/main/frontend/src/assets/icons/aboutPage/selenium.png create mode 100644 frontend/src/main/frontend/src/assets/icons/logo/CPR logo final-01.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/logo/CPR logo final-02.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/logo/CPR logo final-03.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/navigation/active/Admin.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/navigation/active/Arrow_Active.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/navigation/active/Bulk Download.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/navigation/active/Courses.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/navigation/active/Home.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/navigation/default/Admin.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/navigation/default/Arrow_Default.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/navigation/default/Bulk Download.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/navigation/default/Courses.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/navigation/default/Home.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/navigation/default/Minus_Default.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/navigation/default/Plus_Default.svg create mode 100644 frontend/src/main/frontend/src/assets/icons/navigation/default/white_bulk_download.svg create mode 100755 frontend/src/main/frontend/src/assets/loading.gif mode change 100644 => 100755 frontend/src/main/frontend/src/assets/no-course.png mode change 100644 => 100755 frontend/src/main/frontend/src/assets/no-data.png mode change 100644 => 100755 frontend/src/main/frontend/src/assets/no-student.png mode change 100644 => 100755 frontend/src/main/frontend/src/assets/no-team-no-bg.png create mode 100755 frontend/src/main/frontend/src/assets/rr.html create mode 100755 frontend/src/main/frontend/src/assets/rr_files/14-c10b8a9e6cb760e9.js create mode 100755 frontend/src/main/frontend/src/assets/rr_files/174-bd28069f281ef76f.js create mode 100755 frontend/src/main/frontend/src/assets/rr_files/1f110208-44a6f43ddc5e9011.js create mode 100755 frontend/src/main/frontend/src/assets/rr_files/264-5bab79b4cfa13413.js create mode 100755 frontend/src/main/frontend/src/assets/rr_files/368-07f1471aa435a034.js create mode 100755 frontend/src/main/frontend/src/assets/rr_files/424-d1d3bfe6a3ca6c4a.js create mode 100755 frontend/src/main/frontend/src/assets/rr_files/717c45ac2a0ad58f.css create mode 100755 frontend/src/main/frontend/src/assets/rr_files/762-222df1028c0c1555.js create mode 100755 frontend/src/main/frontend/src/assets/rr_files/AGNmyxatjfZsr3ZPkid9pZgrQ9BK3QjiZ_92qW0GGePTkw=s96-c.webp create mode 100755 frontend/src/main/frontend/src/assets/rr_files/AGNmyxatjfZsr3ZPkid9pZgrQ9BK3QjiZ_92qW0GGePTkw=s96-c_002.webp create mode 100755 frontend/src/main/frontend/src/assets/rr_files/[[...chatId]]-862dbc5daf6fb28b.js create mode 100755 frontend/src/main/frontend/src/assets/rr_files/_app-ebee30cdef4e3c9c.js create mode 100755 frontend/src/main/frontend/src/assets/rr_files/_buildManifest.js create mode 100755 frontend/src/main/frontend/src/assets/rr_files/_ssgManifest.js create mode 100755 frontend/src/main/frontend/src/assets/rr_files/a.html create mode 100755 frontend/src/main/frontend/src/assets/rr_files/a_data/invisible.js create mode 100755 frontend/src/main/frontend/src/assets/rr_files/framework-7a789ee31d2a7534.js create mode 100755 frontend/src/main/frontend/src/assets/rr_files/main-149b337e061b4d04.js create mode 100755 frontend/src/main/frontend/src/assets/rr_files/polyfills-c67a75d1b6f99dc8.js create mode 100755 frontend/src/main/frontend/src/assets/rr_files/webpack-764371204edc33b1.js mode change 100644 => 100755 frontend/src/main/frontend/src/components/AssBarComponent.js create mode 100644 frontend/src/main/frontend/src/components/AssignmentDropdown.js mode change 100644 => 100755 frontend/src/main/frontend/src/components/AssignmentTile.js create mode 100755 frontend/src/main/frontend/src/components/Breadcrumbs.js mode change 100644 => 100755 frontend/src/main/frontend/src/components/CourseBarComponent.js create mode 100644 frontend/src/main/frontend/src/components/GlobalComponents/LogoutButton.js create mode 100644 frontend/src/main/frontend/src/components/GlobalComponents/LogoutButtonStyle.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/GradeAssBarComponent.js create mode 100644 frontend/src/main/frontend/src/components/HeaderBar/HeaderBar.css create mode 100644 frontend/src/main/frontend/src/components/HeaderBar/HeaderBar.js mode change 100644 => 100755 frontend/src/main/frontend/src/components/LoaderComponenets/Loader.jsx mode change 100644 => 100755 frontend/src/main/frontend/src/components/LoaderComponenets/LoaderComponent.jsx mode change 100644 => 100755 frontend/src/main/frontend/src/components/LoaderComponenets/styles/Loader.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/LoaderComponenets/styles/LoaderComponent.css create mode 100644 frontend/src/main/frontend/src/components/NavigationComponents/AdminNavigationContainerComponent.js create mode 100644 frontend/src/main/frontend/src/components/NavigationComponents/BulkDownloadTileComponent.js create mode 100644 frontend/src/main/frontend/src/components/NavigationComponents/CourseAccordionComponent.js create mode 100644 frontend/src/main/frontend/src/components/NavigationComponents/CoursesTileComponent.js create mode 100644 frontend/src/main/frontend/src/components/NavigationComponents/HomeTileComponent.js create mode 100644 frontend/src/main/frontend/src/components/NavigationComponents/NavigationContainerComponent.js create mode 100644 frontend/src/main/frontend/src/components/NavigationComponents/_ProfessorNavigationComponents.css create mode 100644 frontend/src/main/frontend/src/components/PRGivenTile.js create mode 100644 frontend/src/main/frontend/src/components/PRReceivedTile.js create mode 100644 frontend/src/main/frontend/src/components/PeerReviewTile.js mode change 100644 => 100755 frontend/src/main/frontend/src/components/ProfessorComponents/AssignmentPage/ProfessorAllSubmissionsComponent.js mode change 100644 => 100755 frontend/src/main/frontend/src/components/ProfessorComponents/AssignmentPage/ProfessorEditAssignmentComponent.js mode change 100644 => 100755 frontend/src/main/frontend/src/components/ProfessorComponents/AssignmentPage/TeacherFinalGradeComponent.js create mode 100755 frontend/src/main/frontend/src/components/ProfessorComponents/AssignmentPage/styles/ProfessorAllSubmissionsStyle.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/ProfessorComponents/CoursesPage/ProfessorAssignmentComponent.js mode change 100644 => 100755 frontend/src/main/frontend/src/components/ProfessorComponents/CoursesPage/ProfessorEditCourseComponent.js create mode 100644 frontend/src/main/frontend/src/components/ProfessorComponents/CoursesPage/ProfessorProfanitySettingsComponent.js mode change 100644 => 100755 frontend/src/main/frontend/src/components/ProfessorComponents/CoursesPage/ProfessorRosterComponent.js mode change 100644 => 100755 frontend/src/main/frontend/src/components/ProfessorComponents/CoursesPage/ProfessorTeamAccordion.jsx mode change 100644 => 100755 frontend/src/main/frontend/src/components/ProfessorComponents/CoursesPage/ProfessorTeamComponent.js create mode 100644 frontend/src/main/frontend/src/components/ProfessorComponents/CoursesPage/Table.jsx mode change 100644 => 100755 frontend/src/main/frontend/src/components/SidebarComponent.js create mode 100755 frontend/src/main/frontend/src/components/StudentComponents/AssignmentPage/RegularAssignmentComponent.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/StudentComponents/AssignmentPage/RegularAssignmentComponent.js mode change 100644 => 100755 frontend/src/main/frontend/src/components/StudentComponents/AssignmentPage/StudentPeerReviewComponent.js mode change 100644 => 100755 frontend/src/main/frontend/src/components/StudentComponents/AssignmentPage/SubmittedAssignmentComponent.js mode change 100644 => 100755 frontend/src/main/frontend/src/components/StudentComponents/CoursePage/MyTeamComponent.js create mode 100644 frontend/src/main/frontend/src/components/StudentComponents/CoursePage/PeerReviewComponent.js mode change 100644 => 100755 frontend/src/main/frontend/src/components/StudentComponents/CoursePage/StudentSubmittedComponent.js mode change 100644 => 100755 frontend/src/main/frontend/src/components/StudentComponents/CoursePage/StudentTeamComponent.js mode change 100644 => 100755 frontend/src/main/frontend/src/components/StudentComponents/CoursePage/StudentToDoComponent.js create mode 100644 frontend/src/main/frontend/src/components/StudentComponents/PeerReviewPage/PeerReviewListPage.js create mode 100644 frontend/src/main/frontend/src/components/StudentComponents/PeerReviewPage/styles/PeerReviewListStyle.css create mode 100644 frontend/src/main/frontend/src/components/StudentComponents/StudentHeaderBar.css create mode 100644 frontend/src/main/frontend/src/components/StudentComponents/StudentHeaderBar.js mode change 100644 => 100755 frontend/src/main/frontend/src/components/SubmittedAssBarComponent.js mode change 100644 => 100755 frontend/src/main/frontend/src/components/TeamNameComponent.js mode change 100644 => 100755 frontend/src/main/frontend/src/components/styles/AssBar.css create mode 100644 frontend/src/main/frontend/src/components/styles/AssignmentDropdown.module.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/styles/AssignmentTile.css create mode 100644 frontend/src/main/frontend/src/components/styles/BreadcrumbsStyle.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/styles/CourseBar.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/styles/DeleteModal.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/styles/EditAssignmentStyle.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/styles/EditCourse.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/styles/FinalGrade.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/styles/MyTeam.css create mode 100644 frontend/src/main/frontend/src/components/styles/PRGivenTile.css create mode 100644 frontend/src/main/frontend/src/components/styles/PeerReviewPage.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/styles/Roster.css create mode 100644 frontend/src/main/frontend/src/components/styles/Roster.module.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/styles/Sidebar.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/styles/StudentAss.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/styles/StudentTeamStyle.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/styles/SubmittedAssignmentComponent.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/styles/TeacherAss.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/styles/TeamManager.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/styles/TeamSubmission.css mode change 100644 => 100755 frontend/src/main/frontend/src/components/styles/plus-purple.png create mode 100644 frontend/src/main/frontend/src/global_styles/RequiredField.css mode change 100644 => 100755 frontend/src/main/frontend/src/global_styles/buttons.css mode change 100644 => 100755 frontend/src/main/frontend/src/global_styles/fonts.css mode change 100644 => 100755 frontend/src/main/frontend/src/global_styles/forms.css mode change 100644 => 100755 frontend/src/main/frontend/src/index.css mode change 100644 => 100755 frontend/src/main/frontend/src/index.js mode change 100644 => 100755 frontend/src/main/frontend/src/interceptors/axiosInterceptor.js mode change 100644 => 100755 frontend/src/main/frontend/src/logo.svg create mode 100644 frontend/src/main/frontend/src/pages/AboutPage/AboutPage.js create mode 100644 frontend/src/main/frontend/src/pages/AboutPage/AboutPageComponents/CurrentContributorsComponent.js create mode 100644 frontend/src/main/frontend/src/pages/AboutPage/AboutPageComponents/CurrentContributorsStyle.css create mode 100644 frontend/src/main/frontend/src/pages/AboutPage/AboutPageComponents/DependenciesComponent.js create mode 100644 frontend/src/main/frontend/src/pages/AboutPage/AboutPageComponents/DependenciesStyle.css create mode 100644 frontend/src/main/frontend/src/pages/AboutPage/AboutPageComponents/DescriptionComponent.js create mode 100644 frontend/src/main/frontend/src/pages/AboutPage/AboutPageComponents/DescriptionStyle.css create mode 100644 frontend/src/main/frontend/src/pages/AboutPage/AboutPageComponents/PreviousContributorsComponent.js create mode 100644 frontend/src/main/frontend/src/pages/AboutPage/AboutPageComponents/PreviousContributorsStyle.css create mode 100644 frontend/src/main/frontend/src/pages/AboutPage/AboutPageStyle.css create mode 100755 frontend/src/main/frontend/src/pages/AdminPages/AdminInterface.js create mode 100644 frontend/src/main/frontend/src/pages/AdminPages/AdminProfanityComponent.js create mode 100644 frontend/src/main/frontend/src/pages/AdminPages/AdminStyle.css create mode 100644 frontend/src/main/frontend/src/pages/AdminPages/Modal.jsx create mode 100755 frontend/src/main/frontend/src/pages/AdminPages/edit.png create mode 100644 frontend/src/main/frontend/src/pages/AdminPages/plus.png create mode 100644 frontend/src/main/frontend/src/pages/AdminPages/search.svg mode change 100644 => 100755 frontend/src/main/frontend/src/pages/AuthPages/LoginPage.js mode change 100644 => 100755 frontend/src/main/frontend/src/pages/AuthPages/UnauthedErrorPage.jsx mode change 100644 => 100755 frontend/src/main/frontend/src/pages/AuthPages/styles/LoginPage.css mode change 100644 => 100755 frontend/src/main/frontend/src/pages/AuthPages/styles/UnauthedStyle.css create mode 100644 frontend/src/main/frontend/src/pages/StudentPages/PeerReviewPage.js mode change 100644 => 100755 frontend/src/main/frontend/src/pages/StudentPages/StudentAssignmentPage.js mode change 100644 => 100755 frontend/src/main/frontend/src/pages/StudentPages/StudentCoursePage.js mode change 100644 => 100755 frontend/src/main/frontend/src/pages/StudentPages/StudentDashboardPage.js create mode 100644 frontend/src/main/frontend/src/pages/StudentPages/StudentGradesPage.js mode change 100644 => 100755 frontend/src/main/frontend/src/pages/StudentPages/StudentSubmittedAssignmentPage.js mode change 100644 => 100755 frontend/src/main/frontend/src/pages/StudentPages/styles/AssignmentPageStyle.css create mode 100644 frontend/src/main/frontend/src/pages/StudentPages/styles/PeerReviewGRStyle.css mode change 100644 => 100755 frontend/src/main/frontend/src/pages/StudentPages/styles/StudentCourseStyle.css mode change 100644 => 100755 frontend/src/main/frontend/src/pages/StudentPages/styles/StudentDashboardStyle.css create mode 100644 frontend/src/main/frontend/src/pages/StudentPages/styles/StudentGradesStyling.css mode change 100644 => 100755 frontend/src/main/frontend/src/pages/TeacherPages/CreateAssignmentPage.js mode change 100644 => 100755 frontend/src/main/frontend/src/pages/TeacherPages/CreateCoursePage.js create mode 100644 frontend/src/main/frontend/src/pages/TeacherPages/DisplayMatrix.js mode change 100644 => 100755 frontend/src/main/frontend/src/pages/TeacherPages/ProfessorAssignmentPage.js mode change 100644 => 100755 frontend/src/main/frontend/src/pages/TeacherPages/ProfessorCoursePage.js mode change 100644 => 100755 frontend/src/main/frontend/src/pages/TeacherPages/ProfessorDashboardPage.js create mode 100644 frontend/src/main/frontend/src/pages/TeacherPages/ProfessorGradesPage.js mode change 100644 => 100755 frontend/src/main/frontend/src/pages/TeacherPages/ProfessorSubmittedAssignmentPage.js create mode 100644 frontend/src/main/frontend/src/pages/TeacherPages/Table.jsx mode change 100644 => 100755 frontend/src/main/frontend/src/pages/TeacherPages/styles/CreateAssignmentStyle.css mode change 100644 => 100755 frontend/src/main/frontend/src/pages/TeacherPages/styles/CreateCourseStyle.css create mode 100644 frontend/src/main/frontend/src/pages/TeacherPages/styles/DisplayMatrix.module.css mode change 100644 => 100755 frontend/src/main/frontend/src/pages/TeacherPages/styles/ProfessorCourseStyle.css mode change 100644 => 100755 frontend/src/main/frontend/src/pages/TeacherPages/styles/ProfessorDashboardStyle.css create mode 100644 frontend/src/main/frontend/src/pages/TeacherPages/styles/ProfessorGradesStyling.css create mode 100644 frontend/src/main/frontend/src/pages/TeacherPages/styles/ProfessorRosterStyle.css create mode 100644 frontend/src/main/frontend/src/pages/TeacherPages/styles/ProfessorSubmittedAssignmentPage.css mode change 100644 => 100755 frontend/src/main/frontend/src/pages/img/Google__G__Logo.svg.png mode change 100644 => 100755 frontend/src/main/frontend/src/pages/img/google_logo.png mode change 100644 => 100755 frontend/src/main/frontend/src/redux/features/assignmentSlice.js mode change 100644 => 100755 frontend/src/main/frontend/src/redux/features/authSlice.js mode change 100644 => 100755 frontend/src/main/frontend/src/redux/features/courseSlice.js create mode 100644 frontend/src/main/frontend/src/redux/features/coursesTileSlice.js mode change 100644 => 100755 frontend/src/main/frontend/src/redux/features/peerReviewSlice.js mode change 100644 => 100755 frontend/src/main/frontend/src/redux/features/submittedAssignmentSlice.js mode change 100644 => 100755 frontend/src/main/frontend/src/redux/features/teamSlice.js mode change 100644 => 100755 frontend/src/main/frontend/src/redux/interceptors/reduxInterceptor.js mode change 100644 => 100755 frontend/src/main/frontend/src/redux/store.js mode change 100644 => 100755 frontend/src/main/frontend/src/routing/AuthRouteHandler.js mode change 100644 => 100755 frontend/src/main/frontend/src/routing/RoleRouteHandler.js mode change 100644 => 100755 frontend/src/main/frontend/src/routing/RouterHandler.js mode change 100644 => 100755 frontend/src/main/frontend/yarn.lock mode change 100644 => 100755 frontend/src/main/liberty/config/server.xml mode change 100644 => 100755 frontend/src/main/webapp/WEB-INF/web.xml mode change 100644 => 100755 frontend/src/test/WebDrivers/chromedriver.exe mode change 100644 => 100755 frontend/src/test/WebDrivers/geckodriver.exe create mode 100755 frontend/src/test/java/AdminInterfaceTest.java mode change 100644 => 100755 frontend/src/test/java/AllSubmissionTest.java mode change 100644 => 100755 frontend/src/test/java/CreateAssignmentTest.java mode change 100644 => 100755 frontend/src/test/java/CreateDeleteAssignmentTest.java mode change 100644 => 100755 frontend/src/test/java/CreateDeleteCourseTest.java mode change 100644 => 100755 frontend/src/test/java/CreateTeamTest.java mode change 100644 => 100755 frontend/src/test/java/EditAssignmentTest.java mode change 100644 => 100755 frontend/src/test/java/LoginAndMultiBrowser.java mode change 100644 => 100755 frontend/src/test/java/LoginLogoutTest.java mode change 100644 => 100755 frontend/src/test/java/ManageTest.java mode change 100644 => 100755 frontend/src/test/java/NavigationAndInput.java mode change 100644 => 100755 frontend/src/test/java/RosterTest.java mode change 100644 => 100755 frontend/src/test/java/StudentPage.java mode change 100644 => 100755 independently-run-database-m1.yml mode change 100644 => 100755 independently-run-databases.yml mode change 100644 => 100755 nginx.conf create mode 100755 nginxDBandProxy.conf mode change 100644 => 100755 nginxfrontend.conf mode change 100644 => 100755 nginxlocal.conf create mode 100755 scripts/build-app-db-and-proxy.sh mode change 100644 => 100755 scripts/build-app-local-m1.sh mode change 100644 => 100755 scripts/build-app-local.sh mode change 100644 => 100755 scripts/build-app.sh mode change 100644 => 100755 scripts/delete-db.sh mode change 100644 => 100755 scripts/independently-run-db-m1.sh mode change 100644 => 100755 scripts/independently-run-db.sh mode change 100644 => 100755 scripts/mongo-changepwd.sh mode change 100644 => 100755 scripts/mongo-init.sh create mode 100755 scripts/rebuild-app.sh mode change 100644 => 100755 scripts/run-frontend-proxy-m1.sh mode change 100644 => 100755 scripts/run-frontend-proxy.sh mode change 100644 => 100755 scripts/tear-down-app.sh diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 000000000..a746ba876 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,26 @@ + +version: 2.1 + +orbs: + maven: circleci/maven@1.4.1 + +jobs: + clean_course_manager: + executor: maven/default + steps: + - checkout + - run: CSC480-22S/backend/course-manager-microservice/pom.xml mvn clean + + build_course_manager: + executor: maven/default + steps: + - checkout + - build + +workflows: + clean_and_build: + jobs: + - clean_course_manager + - build_course_manager: + requires: + - clean_course_manager \ No newline at end of file diff --git a/.dockerignore b/.dockerignore old mode 100644 new mode 100755 diff --git a/.gitattributes b/.gitattributes old mode 100644 new mode 100755 diff --git a/.gitignore b/.gitignore index 5b5a0e385..89accb6ad 100644 --- a/.gitignore +++ b/.gitignore @@ -1,51 +1,9 @@ -# Automatically generated files by Maven and IDEs. -**/.DS_Store -**/.idea/ -**/.vscode/ -**/.env -**/target/ -**/pom.xml.tag -**/pom.xml.releaseBackup -**/pom.xml.versionsBackup -**/pom.xml.next -**/release.properties -**/dependency-reduced-pom.xml -**/buildNumber.properties -**/.mvn/ -**/mvnw -**/mvnw.cmd -**/*.iml - -# Frontend React stuff. -**/node_modules/ -**/build/ -**/node/ -**/static/ -**/webapp/ - -# Compiled class file -*.class - -# Log file -*.log - -# BlueJ files -*.ctxt - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* - -# CSV files -*.csv \ No newline at end of file +/professor-list.txt +.gitignore +/db +/db2 +/db3 +/db4 +/db5 +/assignments +.env diff --git a/.idea/CSC480-22S.iml b/.idea/CSC480-22S.iml new file mode 100644 index 000000000..d6ebd4805 --- /dev/null +++ b/.idea/CSC480-22S.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 000000000..13e9997c9 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 000000000..35eb1ddfb --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 000000000..973385166 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,257 @@ + + + +<<<<<<< HEAD + + + +======= + + + +>>>>>>> Testing + + + + + + +<<<<<<< HEAD + +======= + + + + + + +>>>>>>> Testing + + +<<<<<<< HEAD + { + "keyToString": { + "RunOnceActivity.OpenProjectViewOnStart": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "WebServerToolWindowFactoryState": "false", + "git-widget-placeholder": "Testing", + "last_opened_file_path": "/home/dominic/IdeaProjects/480-Main-Repo/CSC480-22S/frontend", + "node.js.detected.package.eslint": "true", + + "node.js.selected.package.eslint": "(autodetect)", + "node.js.selected.package.tslint": "(autodetect)", + "nodejs_package_manager_path": "npm", + "vue.rearranger.settings.migration": "true" +>>>>>>> Testing + } +} + + + + + + + + + + +<<<<<<< HEAD + + 1682466745301 + +======= + + 1682393365666 + + + + + + + +<<<<<<< HEAD +======= + + + + + + + + + + + + +>>>>>>> Testing + \ No newline at end of file diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/backend/course-manager-microservice/.dockerignore b/backend/course-manager-microservice/.dockerignore old mode 100644 new mode 100755 diff --git a/backend/course-manager-microservice/Dockerfile b/backend/course-manager-microservice/Dockerfile old mode 100644 new mode 100755 diff --git a/backend/course-manager-microservice/course-manager-microservice.iml b/backend/course-manager-microservice/course-manager-microservice.iml new file mode 100644 index 000000000..8c54e3b0b --- /dev/null +++ b/backend/course-manager-microservice/course-manager-microservice.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/course-manager-microservice/pom.xml b/backend/course-manager-microservice/pom.xml old mode 100644 new mode 100755 index 167ca840a..618a7f02d --- a/backend/course-manager-microservice/pom.xml +++ b/backend/course-manager-microservice/pom.xml @@ -75,6 +75,16 @@ com.ibm.websphere.appserver.api.jaxrs20 1.1.54 + + com.google.code.gson + gson + 2.8.9 + + + org.eclipse.microprofile.openapi + microprofile-openapi-api + 3.0 + diff --git a/backend/course-manager-microservice/src/main/java/edu/oswego/cs/application/CourseManagerApplication.java b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/application/CourseManagerApplication.java old mode 100644 new mode 100755 diff --git a/backend/course-manager-microservice/src/main/java/edu/oswego/cs/cors/CorsFilter.java b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/cors/CorsFilter.java old mode 100644 new mode 100755 diff --git a/backend/course-manager-microservice/src/main/java/edu/oswego/cs/daos/CourseDAO.java b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/daos/CourseDAO.java old mode 100644 new mode 100755 index e25974138..6b8379e41 --- a/backend/course-manager-microservice/src/main/java/edu/oswego/cs/daos/CourseDAO.java +++ b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/daos/CourseDAO.java @@ -25,6 +25,7 @@ public class CourseDAO { @JsonbProperty("students") @ElementCollection public List students; @JsonbProperty("year") public String year; @JsonbProperty("team_size") public int teamSize; + @JsonbProperty("blocked_words") @ElementCollection public List blockedWords = new ArrayList<>(); @JsonbCreator public CourseDAO( @@ -46,4 +47,32 @@ public CourseDAO( this.teamSize = 1; this.courseID = this.abbreviation + "-" + this.courseSection + "-" + this.crn + "-" + this.semester + "-" + this.year; } + + public CourseDAO( + // @NonNull @JsonbProperty("abbreviation") + String abbreviation, + // @NonNull @JsonbProperty("course_name") + String courseName, + // @NonNull @JsonbProperty("course_section") + String courseSection, + // @NonNull @JsonbProperty("crn") + String crn, + // @NonNull @JsonbProperty("semester") + String semester, + // @NonNull @JsonbProperty("year") + String year, + // @NonNull @JsonbProperty("professor_id") + String professorID) + { + this.abbreviation = abbreviation; + this.courseName = courseName; + this.courseSection = courseSection; + this.crn = crn; + this.professorID = professorID; + this.semester = semester; + this.students = new ArrayList<>(); + this.year = year; + this.teamSize = 1; + this.courseID = this.abbreviation + "-" + this.courseSection + "-" + this.crn + "-" + this.semester + "-" + this.year; + } } \ No newline at end of file diff --git a/backend/course-manager-microservice/src/main/java/edu/oswego/cs/daos/FileDAO.java b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/daos/FileDAO.java old mode 100644 new mode 100755 diff --git a/backend/course-manager-microservice/src/main/java/edu/oswego/cs/daos/ProfanitySettings.java b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/daos/ProfanitySettings.java new file mode 100644 index 000000000..0ab596026 --- /dev/null +++ b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/daos/ProfanitySettings.java @@ -0,0 +1,26 @@ +package edu.oswego.cs.daos; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.ArrayList; +import java.util.List; + +@Getter +@Setter +public class ProfanitySettings { + private ArrayList words; + + public ProfanitySettings(List blockedWords) { + this.words = new ArrayList<>(blockedWords); + } + + public ArrayList getWords() { + return words; + } + + public void setWords(ArrayList words) { + this.words = words; + } +} diff --git a/backend/course-manager-microservice/src/main/java/edu/oswego/cs/daos/StudentDAO.java b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/daos/StudentDAO.java old mode 100644 new mode 100755 diff --git a/backend/course-manager-microservice/src/main/java/edu/oswego/cs/daos/UserDAO.java b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/daos/UserDAO.java new file mode 100644 index 000000000..6ca6ed520 --- /dev/null +++ b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/daos/UserDAO.java @@ -0,0 +1,17 @@ +package edu.oswego.cs.daos; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class UserDAO { + String user_id; + String role; + String first_name; + String last_name; +} diff --git a/backend/course-manager-microservice/src/main/java/edu/oswego/cs/database/AdminInterface.java b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/database/AdminInterface.java new file mode 100644 index 000000000..9f924e02e --- /dev/null +++ b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/database/AdminInterface.java @@ -0,0 +1,387 @@ +package edu.oswego.cs.database; + + +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; +import edu.oswego.cs.daos.CourseDAO; +import edu.oswego.cs.daos.ProfanitySettings; +import edu.oswego.cs.daos.UserDAO; +import edu.oswego.cs.util.CPRException; + +import java.util.List; +import java.util.ArrayList; + +import com.google.gson.Gson; +import edu.oswego.cs.util.CourseUtil; +import org.bson.Document; + +import javax.ws.rs.Produces; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.SecurityContext; + +import com.mongodb.client.model.Filters; + +import static com.mongodb.client.model.Filters.eq; +import static com.mongodb.client.model.Updates.set; + +public class AdminInterface { + + private final MongoCollection professorCollection; + private final MongoCollection studentCollection; + private final MongoCollection courseCollection; + private final MongoCollection profanitySettings; + private final MongoCollection assignmentCollection; + private final MongoCollection submissionCollection; + private final MongoCollection teamCollection; + + + // Make a generic method to receive a mongo collection and check connection + public AdminInterface() { + DatabaseManager databaseManager = new DatabaseManager(); + try { + MongoDatabase studentDB = databaseManager.getStudentDB(); + // Professors and Admins are in the same database, Admins are elevated + MongoDatabase profAdminDb = databaseManager.getProfessorDB(); + MongoDatabase courseDB = databaseManager.getCourseDB(); + MongoDatabase assignmentDB = databaseManager.getAssignmentDB(); + MongoDatabase teamDB = databaseManager.getTeamDB(); + studentCollection = studentDB.getCollection("students"); + professorCollection = profAdminDb.getCollection("professors"); + courseCollection = courseDB.getCollection("courses"); + profanitySettings = profAdminDb.getCollection("profanitySettings"); + assignmentCollection = assignmentDB.getCollection("assignments"); + submissionCollection = assignmentDB.getCollection("submissions"); + teamCollection = teamDB.getCollection("teams"); + } catch (CPRException e) { + throw new CPRException(Response.Status.INTERNAL_SERVER_ERROR, "Failed to retrieve collections."); + } + } + + public AdminInterface(String user_id) { + checkIfUserIdExists(user_id); + DatabaseManager databaseManager = new DatabaseManager(); + try { + MongoDatabase studentDB = databaseManager.getStudentDB(); + // Professors and Admins are in the same database, Admins are elevated + MongoDatabase profAdminDb = databaseManager.getProfessorDB(); + MongoDatabase courseDB = databaseManager.getCourseDB(); + MongoDatabase assignmentDB = databaseManager.getAssignmentDB(); + MongoDatabase teamDB = databaseManager.getTeamDB(); + studentCollection = studentDB.getCollection("students"); + professorCollection = profAdminDb.getCollection("professors"); + courseCollection = courseDB.getCollection("courses"); + profanitySettings = profAdminDb.getCollection("profanitySettings"); + assignmentCollection = assignmentDB.getCollection("assignments"); + submissionCollection = assignmentDB.getCollection("submissions"); + teamCollection = teamDB.getCollection("teams"); + } catch (CPRException e) { + throw new CPRException(Response.Status.INTERNAL_SERVER_ERROR, "Failed to retrieve collections."); + } + } + + public void deleteAdminUser(String user_id) { + if (professorCollection.countDocuments() == 1) { + throw new CPRException(Response.Status.BAD_REQUEST, "Cannot delete last admin user."); + } + + if (!checkAdmin(user_id)) { + throw new CPRException(Response.Status.NOT_FOUND, "Admin user not found."); + } + + professorCollection.deleteOne(eq("professor_id", user_id)); + } + + public void deleteProfessorUser(String user_id) { + + if (!checkProfessor(user_id)) { + throw new CPRException(Response.Status.NOT_FOUND, "Professor user not found."); + } + professorCollection.deleteOne(eq("professor_id", user_id)); + } + + + public void deleteStudentUser(String user_id) { + + if (!checkStudent(user_id)) { + throw new CPRException(Response.Status.NOT_FOUND, "Student user not found."); + } + studentCollection.deleteOne(eq("student_id", user_id)); + } + + public void addAdminUser(String firstName, String lastName, String user_id) { + + if (checkAdmin(user_id)) { + throw new CPRException(Response.Status.BAD_REQUEST, + "User already exists as Admin."); + } + + if (checkProfessor(user_id)) { + throw new CPRException(Response.Status.BAD_REQUEST, + "User exists as professor, use Elevate to admin instead."); + } + + if (checkStudent(user_id)) { + throw new CPRException(Response.Status.BAD_REQUEST, + "User exists as student, use Elevate student to admin instead."); + } + + Document newAdmin = new Document("professor_id", user_id) + .append("first_name", firstName) + .append("last_name", lastName) + .append("admin", true) + .append("courses", new ArrayList()); + professorCollection.insertOne(newAdmin); + } + + public void addProfessorUser(String firstName, String lastName, String user_id) { + if (checkAdmin(user_id)) { + System.out.println("User already exists as Admin."); + throw new CPRException(Response.Status.BAD_REQUEST, + "User already exists as professor."); + } + + if (checkProfessor(user_id)) { + throw new CPRException(Response.Status.BAD_REQUEST, + "User exists as professor, use Elevate to Admin instead."); + } + + if (checkStudent(user_id)) { + throw new CPRException(Response.Status.BAD_REQUEST, + "User exists as student, use Elevate to Admin instead."); + } + + Document newProfessor = new Document("professor_id", user_id) + .append("first_name", firstName) + .append("last_name", lastName) + .append("admin", false) + .append("courses", new ArrayList()); + + professorCollection.insertOne(newProfessor); + } + + public void addStudentUser(String firstName, String lastName, String user_id) { + System.out.println(user_id + " " + firstName + " " + lastName); + if (checkAdmin(user_id)) { + throw new CPRException(Response.Status.BAD_REQUEST, + "User exists as Admin, use Demote to Student instead."); + } + + if (checkProfessor(user_id)) { + throw new CPRException(Response.Status.BAD_REQUEST, + "User exists as Professor, use Demote to Student instead."); + } + + if (checkStudent(user_id)) { + throw new CPRException(Response.Status.BAD_REQUEST, + "User already exists."); + } + + Document newStudent = new Document("student_id", user_id) + .append("first_name", firstName) + .append("last_name", lastName); + studentCollection.insertOne(newStudent); + } + + public void promoteProfessorToAdmin(String user_id) { + if (!checkProfessor(user_id)) { + throw new CPRException(Response.Status.NOT_FOUND, "Professor user not found."); + } + + professorCollection.updateOne(eq("professor_id", user_id), set("admin", true)); + } + + public void promoteStudentToProfessor(String user_id) { + if (!checkStudent(user_id)) { + throw new CPRException(Response.Status.NOT_FOUND, "Student user not found."); + } + + Document studentDocument = studentCollection.find(eq("student_id", user_id)).first(); + String firstName = studentDocument.getString("first_name"); + String lastName = studentDocument.getString("last_name"); + + Document newProfessor = new Document("professor_id", user_id) + .append("first_name", firstName) + .append("last_name", lastName) + .append("admin", false); + professorCollection.insertOne(newProfessor); + studentCollection.deleteOne(eq("student_id", user_id)); + } + + public void promoteStudentToAdmin(String user_id) { + if (!checkStudent(user_id)) { + throw new CPRException(Response.Status.NOT_FOUND, "Student user not found."); + } + + Document studentDocument = studentCollection.find(eq("student_id", user_id)).first(); + String firstName = studentDocument.getString("first_name"); + String lastName = studentDocument.getString("last_name"); + + Document newProfessor = new Document("professor_id", user_id) + .append("first_name", firstName) + .append("last_name", lastName) + .append("admin", true); + professorCollection.insertOne(newProfessor); + studentCollection.deleteOne(eq("student_id", user_id)); + } + + public void demoteProfessorToStudent(String user_id) { + if (!checkProfessor(user_id)) { + throw new CPRException(Response.Status.NOT_FOUND, "Professor user not found."); + } + + Document professorDocument = professorCollection.find(eq("professor_id", user_id)).first(); + String firstName = professorDocument.getString("first_name"); + String lastName = professorDocument.getString("last_name"); + + Document newStudent = new Document("student_id", user_id) + .append("first_name", firstName) + .append("last_name", lastName); + studentCollection.insertOne(newStudent); + professorCollection.deleteOne(eq("professor_id", user_id)); + } + + public void demoteAdminToProfessor(String user_id) { + if (!checkAdmin(user_id)) { + throw new CPRException(Response.Status.NOT_FOUND, "Admin user not found."); + } + professorCollection.updateOne(eq("professor_id", user_id), set("admin", false)); + } + + public void demoteAdminToStudent(String user_id) { + if (!checkAdmin(user_id)) { + throw new CPRException(Response.Status.NOT_FOUND, "Admin user not found."); + } + + Document professorDocument = professorCollection.find(eq("professor_id", user_id)).first(); + String firstName = professorDocument.getString("first_name"); + String lastName = professorDocument.getString("last_name"); + + Document newStudent = new Document("student_id", user_id) + .append("first_name", firstName) + .append("last_name", lastName); + studentCollection.insertOne(newStudent); + professorCollection.deleteOne(eq("professor_id", user_id)); + } + + private Boolean checkAdmin(String user_id) { + Document adminDocument = professorCollection.find( + Filters.and( + eq("professor_id", user_id), + eq("admin", true))) + .first(); + return adminDocument != null; + } + + private Boolean checkStudent(String user_id) { + Document studentDocument = studentCollection.find(eq("student_id", user_id)).first(); + return studentDocument != null; + } + + private Boolean checkProfessor(String user_id) { + Document professorDocument = professorCollection.find(eq("professor_id", user_id)).first(); + return professorDocument != null; + } + + private void checkIfUserIdExists(String user_id) { + if (user_id == null || user_id.isEmpty()) { + throw new CPRException(Response.Status.BAD_REQUEST, "User ID cannot be null."); + } + } + + // TODO: Add constructor paremeters for CourseDAO + public List getCourseView() { + List courses = new ArrayList<>(); + // iterate through MongoDB CourseDAOs and add to list + for (Document course : courseCollection.find()) { + CourseDAO c = new CourseDAO( + course.getString("abbreviation"), + course.getString("course_name"), + course.getString("course_section"), + course.getString("crn"), + course.getString("semester"), + course.getString("year"), + course.getString("professor_id") + ); + courses.add(c); + } + return courses; + } + + + public Object getUsersView() { + List users = new ArrayList(); + // iterate though mongodb users and add to list + for (Document user : studentCollection.find()) { + UserDAO u = new UserDAO(user.getString("student_id"), "student", user.getString("first_name"), user.getString("last_name")); + users.add(u); + } + + for (Document user : professorCollection.find()) { + UserDAO u = new UserDAO(user.getString("professor_id"), "professor", user.getString("first_name"), user.getString("last_name")); + if (user.getBoolean("admin")) { // if is true override role to admin + u.setRole("admin"); + } + users.add(u); + } + + return users; + } + + + public Boolean checkCourse(String crn) { + Document CourseDAODocument = courseCollection.find(eq("crn", crn)).first(); + if (CourseDAODocument == null) { + return false; + } + return true; + } + + public String getBlockedWords() { + // Find the first document in the collection + Document profanitySettingsDocument = profanitySettings.find().first(); + if (profanitySettingsDocument == null) { + ProfanitySettings initProfanitySettings = new ProfanitySettings(new ArrayList()); + Document initialProfanitySettings = new Document("words", initProfanitySettings.getWords()); + profanitySettings.insertOne(initialProfanitySettings); + Gson gson = new Gson(); + return gson.toJson(new ArrayList()); + } + + // Extract the blocked words from the document + List blockedWords = profanitySettingsDocument.getList("words", String.class); + + // Convert the List to a JSON string using Gson + Gson gson = new Gson(); + String jsonBlockedWords = gson.toJson(blockedWords); + + return jsonBlockedWords; + } + + public void updateBlockedWords(String jsonBlockedWords) { + // Convert the JSON string to a List using Gson + System.out.printf("jsonBlockedWords: %s%n", jsonBlockedWords); + Gson gson = new Gson(); + List blockedWords = gson.fromJson(jsonBlockedWords, List.class); + System.out.printf("blockedWords: %s%n", blockedWords); + ProfanitySettings temp = new ProfanitySettings(blockedWords); + + System.out.printf("profanitySettingsCollection: %s%n", profanitySettings); + + profanitySettings.deleteMany(new Document()); + System.out.println("Deleted all documents from collection"); + + Document profanitySettingsDocument = new Document("words", temp.getWords()); + profanitySettings.insertOne(profanitySettingsDocument); + } + + public void removeCourseAsAdmin(SecurityContext securityContext, String courseID) { + Document courseDocument = courseCollection.find(eq("course_id", courseID)).first(); + if (courseDocument == null) throw new CPRException(Response.Status.BAD_REQUEST, "This course does not exist."); + new CourseUtil().updateCoursesArrayInProfessorDb(securityContext, professorCollection, courseID, null, "DELETE"); + new CourseUtil().updateCoursesArrayInStudentDb(studentCollection, courseID, null, "DELETE"); + new CourseUtil().updateCoursesKeyInDBs(assignmentCollection, courseID, null, "DELETE"); + new CourseUtil().updateCoursesKeyInDBs(submissionCollection, courseID, null, "DELETE"); + new CourseUtil().updateCoursesKeyInDBs(teamCollection, courseID, null, "DELETE"); + courseCollection.deleteOne(eq("course_id", courseID)); + } +} \ No newline at end of file diff --git a/backend/course-manager-microservice/src/main/java/edu/oswego/cs/database/CourseInterface.java b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/database/CourseInterface.java old mode 100644 new mode 100755 index e0727711f..0e5319762 --- a/backend/course-manager-microservice/src/main/java/edu/oswego/cs/database/CourseInterface.java +++ b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/database/CourseInterface.java @@ -1,5 +1,6 @@ package edu.oswego.cs.database; +import com.google.gson.Gson; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Updates; @@ -20,6 +21,7 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; +import java.util.concurrent.ConcurrentHashMap; import static com.mongodb.client.model.Filters.and; import static com.mongodb.client.model.Filters.eq; @@ -35,6 +37,12 @@ public class CourseInterface { private final MongoCollection submissionCollection; private final MongoCollection teamCollection; + /** + * A hashmap of course IDs to a boolean value indicating whether the there is a request + * trying to add a student to the specified course in addStudent(). + */ + private static final ConcurrentHashMap courseLocks = new ConcurrentHashMap<>(); + public CourseInterface() { DatabaseManager databaseManager = new DatabaseManager(); try { @@ -65,10 +73,18 @@ public void addCourse(SecurityContext securityContext, CourseDAO dao) { if (courseDocument != null) throw new CPRException(Response.Status.CONFLICT, "Course already existed."); Document professorDocument = professorCollection.find(eq("professor_id", professorID)).first(); - if (professorDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "This professor does not exist."); + if (professorDocument == null) + throw new CPRException(Response.Status.NOT_FOUND, "This professor does not exist."); List professorDocumentCourses = professorDocument.getList("courses", String.class); - if (professorDocumentCourses == null) throw new CPRException(Response.Status.CONFLICT, "Professor profile is not set up properly."); + if (professorDocumentCourses == null) + throw new CPRException(Response.Status.CONFLICT, "Professor profile is not set up properly."); + + if (dao.courseName == null || dao.abbreviation == null || dao.courseName == null + || dao.courseSection == null || dao.crn == null || dao.semester == null) { + throw new CPRException(Response.Status.NOT_FOUND, "At least one required field is null."); + } + professorDocumentCourses.add(dao.courseID); professorCollection.updateOne(eq("professor_id", professorID), Updates.set("courses", professorDocumentCourses)); @@ -81,7 +97,8 @@ public void addCourse(SecurityContext securityContext, CourseDAO dao) { List students = course.getList("students", String.class); for (String student : students) { Document studentDocument = studentCollection.find(eq("student_id", student)).first(); - if (studentDocument != null) studentCollection.updateOne(eq("student_id", student), push("courses", dao.courseID)); + if (studentDocument != null) + studentCollection.updateOne(eq("student_id", student), push("courses", dao.courseID)); } } @@ -94,6 +111,7 @@ public String updateCourse(SecurityContext securityContext, CourseDAO dao) { String originalCourseID = dao.courseID; String newCourseID = dao.abbreviation + "-" + dao.courseSection + "-" + dao.crn + "-" + dao.semester + "-" + dao.year; int originalTeamSize = courseDocument.getInteger("team_size"); + dao.blockedWords = courseDocument.getList("blocked_words", String.class); int newTeamSize = dao.teamSize; dao.courseID = newCourseID; dao.students = courseDocument.getList("students", String.class); @@ -104,7 +122,8 @@ public String updateCourse(SecurityContext securityContext, CourseDAO dao) { eq("course_id", newCourseID), eq("professor_id", professorID) )).first(); - if (duplicatedCourseDocument != null) throw new CPRException(Response.Status.CONFLICT, "This course_id already exist."); + if (duplicatedCourseDocument != null) + throw new CPRException(Response.Status.CONFLICT, "This course_id already exist."); } if (originalTeamSize != newTeamSize) { @@ -124,36 +143,65 @@ public String updateCourse(SecurityContext securityContext, CourseDAO dao) { return newCourseID; } + /** + * Adds a student to the given course, also adds the course to the + * student's list of enrolled courses. + *

+ * The spin block is to ensure that there is only one request currently working + * to add the student to the course. If the spin block is not present, it is possible + * that two requests will try to add the student to the course (nearly) at the same time, + * which will cause the student to be added twice. + * + * @param securityContext the content of the application (for professor information) + * @param student the student to be added to the course + * @param courseID the course to add the student to + */ public void addStudent(SecurityContext securityContext, StudentDAO student, String courseID) { + while (courseLocks.containsKey(courseID)) ; /* spin block (see explanation above) */ + courseLocks.put(courseID, true); String professorID = securityContext.getUserPrincipal().getName().split("@")[0]; String studentId = student.email.split("@")[0]; String studentLastName = student.fullName.split(", ")[0]; String studentFirstName = student.fullName.split(", ")[1]; Document courseDocument = courseCollection.find(and(eq("course_id", courseID), eq("professor_id", professorID))).first(); - if (courseDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "This course does not exist."); + if (courseDocument == null) { + courseLocks.remove(courseID); + throw new CPRException(Response.Status.NOT_FOUND, "This course does not exist."); + } List students = courseDocument.getList("students", String.class); - if (students.contains(studentId)) throw new CPRException(Response.Status.CONFLICT, "This student is already in the course."); + if (students.contains(studentId)) { + courseLocks.remove(courseID); + throw new CPRException(Response.Status.CONFLICT, "This student is already in the course."); + } courseCollection.updateOne(eq("course_id", courseID), push("students", studentId)); Document studentDocument = studentCollection.find(eq("student_id", studentId)).first(); - if (studentDocument != null) { - List courseList = studentDocument.getList("courses", String.class); - for (String course : courseList) { - if (course.equals(courseID)) throw new CPRException(Response.Status.CONFLICT, "This student is already in the course."); - } - studentCollection.updateOne(eq("student_id", studentId), push("courses", courseID)); - } else { - List courseList = new ArrayList<>(); - courseList.add(courseID); - Document newStudent = new Document() + boolean studentNotFound = false; + if (studentDocument == null) { + studentNotFound = true; + studentDocument = new Document() .append("first_name", studentFirstName) .append("last_name", studentLastName) .append("student_id", studentId) - .append("courses", courseList); - studentCollection.insertOne(newStudent); + .append("courses", new ArrayList()) + .append("team_submissions", new ArrayList()) + .append("peer_reviews", new ArrayList()); + } + + List courseList = studentDocument.getList("courses", String.class); + boolean isAlreadyEnrolled = courseList.contains(courseID); + if (isAlreadyEnrolled) { + courseLocks.remove(courseID); + throw new CPRException(Response.Status.CONFLICT, "This student is already in the course."); + } else { + if (studentNotFound) { + studentDocument.put("courses", new ArrayList<>(List.of(courseID))); + studentCollection.insertOne(studentDocument); + } else studentCollection.updateOne(eq("student_id", studentId), push("courses", courseID)); } + courseLocks.remove(courseID); } public void removeCourse(SecurityContext securityContext, String courseID) { @@ -168,22 +216,50 @@ public void removeCourse(SecurityContext securityContext, String courseID) { courseCollection.deleteOne(eq("course_id", courseID)); } + /** + * Removes a student from the roster of a given course, removes the course from the + * student's list of courses, removes the student from the team they are on + * within the course (if applicable), "randomly" assigns a new team leader if + * the student removed was the leader of a team, and removes the team if the team + * is empty after the removal of the student. + * + * @param securityContext the context of the application (for professor information) + * @param studentID the net ID of the student to be removed + * @param courseID the ID of the course from which the student is to be removed + */ public void removeStudent(SecurityContext securityContext, String studentID, String courseID) { String professorID = securityContext.getUserPrincipal().getName().split("@")[0]; - Document studentDocument = studentCollection.find(and(eq("student_id", studentID), eq("courses", courseID))).first(); if (studentDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "This student does not exist."); - Document courseDocument = courseCollection.find(and(eq("course_id", courseID), eq("professor_id", professorID))).first(); if (courseDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "This course does not exist."); - List courses = studentDocument.getList("courses", String.class); courses.remove(courseID); studentCollection.updateOne(eq("student_id", studentID), set("courses", courses)); - List students = courseDocument.getList("students", String.class); students.remove(studentID); courseCollection.updateOne(eq("course_id", courseID), set("students", students)); + + Document teamDocument = teamCollection.find(and(eq("course_id", courseID), eq("team_members", studentID))).first(); + if (teamDocument == null) return; + int teamSize = teamDocument.getInteger("team_size", -1); + boolean isOnlyMember = teamDocument.getInteger("team_size", -1) == 1; + boolean isTeamLeader = teamDocument.getString("team_lead").equals(studentID); + String teamID = teamDocument.getString("team_id"); + if (teamDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "This team does not exist."); + List teamMembers = teamDocument.getList("team_members", String.class); + if (isOnlyMember) { + teamCollection.deleteOne(eq("course_id", courseID)); + return; + } + teamMembers.remove(studentID); + teamCollection.updateOne(eq("team_id", teamID), set("team_size", teamSize - 1)); + teamCollection.updateOne(eq("team_id", teamID), set("team_members", teamMembers)); + if (isTeamLeader) { + /* "Randomly" select a new team leader (for now) */ + String newTeamLeader = teamMembers.get(0); + teamCollection.updateOne(eq("team_id", teamID), set("team_leader", newTeamLeader)); + } } public void addStudentsFromCSV(SecurityContext securityContext, FileDAO fileDAO) { @@ -220,4 +296,21 @@ public void addStudentsFromCSV(SecurityContext securityContext, FileDAO fileDAO) addStudent(securityContext, student, courseID); } } + + public void updateBlockedWordsForCourse(String course_id, String payload) { + Document courseDocument = courseCollection.find(eq("course_id", course_id)).first(); + if (courseDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "This course does not exist."); + Gson gson = new Gson(); + List blockedWords = gson.fromJson(payload, List.class); + courseDocument.put("blocked_words", blockedWords); + courseCollection.updateOne(eq("course_id", course_id), set("blocked_words", blockedWords)); + } + + public String getBlockedWordsForCourse(String course_id) { + Document courseDocument = courseCollection.find(eq("course_id", course_id)).first(); + if (courseDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "This course does not exist."); + Gson gson = new Gson(); + List blockedWords = courseDocument.getList("blocked_words", String.class); + return gson.toJson(blockedWords); + } } diff --git a/backend/course-manager-microservice/src/main/java/edu/oswego/cs/database/DatabaseManager.java b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/database/DatabaseManager.java old mode 100644 new mode 100755 diff --git a/backend/course-manager-microservice/src/main/java/edu/oswego/cs/resources/AdminController.java b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/resources/AdminController.java new file mode 100644 index 000000000..5d4ac84fc --- /dev/null +++ b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/resources/AdminController.java @@ -0,0 +1,197 @@ +package edu.oswego.cs.resources; + +import edu.oswego.cs.database.AdminInterface; +import org.eclipse.microprofile.openapi.annotations.parameters.RequestBody; + +import javax.annotation.security.DenyAll; +import javax.annotation.security.RolesAllowed; +import javax.ws.rs.*; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.SecurityContext; + +@Path("admin") +@DenyAll +public class AdminController { + + // Delete Admin User by User id and all associated data + @RolesAllowed("admin") + @DELETE + @Produces(MediaType.APPLICATION_JSON) + @Path("/delete/admin/{user_id}") + public Response deleteAdminUser(@Context SecurityContext securityContext, @PathParam("user_id") String userId) + throws Exception { + new AdminInterface(userId).deleteAdminUser(userId); + return Response.status(Response.Status.OK).entity("Admin user deleted.").build(); + } + + // Delete Student User by User id and all associated data. + @RolesAllowed("admin") + @DELETE + @Produces(MediaType.APPLICATION_JSON) + @Path("/delete/student/{user_id}") + public Response deleteStudentUser(@Context SecurityContext securityContext, @PathParam("user_id") String userId) { + new AdminInterface(userId).deleteStudentUser(userId); + return Response.status(Response.Status.OK).entity("Student user deleted.").build(); + } + + // Delete Professor User by User id and all associated data. + @RolesAllowed("admin") + @DELETE + @Produces(MediaType.APPLICATION_JSON) + @Path("/delete/professor/{user_id}") + public Response deleteProfessorUser(@Context SecurityContext securityContext, @PathParam("user_id") String userId) { + new AdminInterface(userId).deleteProfessorUser(userId); + return Response.status(Response.Status.OK).entity("Professor user deleted.").build(); + } + + @RolesAllowed("admin") + @DELETE + @Produces(MediaType.APPLICATION_JSON) + @Path("/delete/course/{course_id}") + public Response deleteCourse(@Context SecurityContext securityContext, @PathParam("course_id") String courseId) { + System.out.printf("Deleting course %s", courseId); + new AdminInterface(securityContext.getUserPrincipal().getName()).removeCourseAsAdmin(securityContext, courseId); + return Response.status(Response.Status.OK).entity("Course deleted.").build(); + } + + // Add Admin User by User Id, First and Last Name + @RolesAllowed("admin") + @POST + @Produces(MediaType.APPLICATION_JSON) + @Path("/add/admin/{user_id}/{first_name}/{last_name}") + public Response addAdminUser(@Context SecurityContext securityContext, @PathParam("user_id") String userId, + @PathParam("first_name") String firstName, @PathParam("last_name") String lastName) { + new AdminInterface(userId).addAdminUser(firstName, lastName, userId); + return Response.status(Response.Status.OK).entity("Admin user added.").build(); + } + + // Add Student User by User Id, First and Last Name + @RolesAllowed("admin") + @POST + @Produces(MediaType.APPLICATION_JSON) + @Path("/add/student/{user_id}/{first_name}/{last_name}") + public Response addStudentUser(@Context SecurityContext securityContext, @PathParam("user_id") String userId, + @PathParam("first_name") String firstName, @PathParam("last_name") String lastName) { + System.out.println("Adding student user"); + new AdminInterface(userId).addStudentUser(firstName, lastName, userId); + return Response.status(Response.Status.OK).entity("Student user added.").build(); + } + + // Add Admin User by User Id, First and Last Name + @RolesAllowed("admin") + @POST + @Produces(MediaType.APPLICATION_JSON) + @Path("/add/professor/{user_id}/{first_name}/{last_name}") + public Response addProfessorUser(@Context SecurityContext securityContext, @PathParam("user_id") String userId, + @PathParam("first_name") String firstName, @PathParam("last_name") String lastName) { + new AdminInterface(userId).addProfessorUser(firstName, lastName, userId); + return Response.status(Response.Status.OK).entity("Professor user added.").build(); + } + + // Promote Professor User to Admin User by User Id + @RolesAllowed("admin") + @POST + @Produces(MediaType.APPLICATION_JSON) + @Path("/roles/promote/professorToAdmin/{user_id}") + public Response promoteProfessorToAdmin(@Context SecurityContext securityContext, + @PathParam("user_id") String userId) { + new AdminInterface(userId).promoteProfessorToAdmin(userId); + return Response.status(Response.Status.OK).entity("Admin role added to professor user.").build(); + } + + // Promote Student User to Professor User by User Id + @RolesAllowed("admin") + @POST + @Produces(MediaType.APPLICATION_JSON) + @Path("/roles/promote/studentToProfessor/{user_id}") + public Response promoteStudentToProfessor(@Context SecurityContext securityContext, + @PathParam("user_id") String userId) { + new AdminInterface(userId).promoteStudentToProfessor(userId); + return Response.status(Response.Status.OK).entity("Student promoted to professor role.").build(); + } + + // Promote Student User to Admin User by User Id + @RolesAllowed("admin") + @POST + @Produces(MediaType.APPLICATION_JSON) + @Path("/roles/promote/studentToAdmin/{user_id}") + public Response promoteStudentToAdmin(@Context SecurityContext securityContext, + @PathParam("user_id") String userId) { + new AdminInterface(userId).promoteStudentToAdmin(userId); + return Response.status(Response.Status.OK).entity("Student promoted to admin role.").build(); + } + + // Demote Professor User to Student User by User Id + @RolesAllowed("admin") + @POST + @Produces(MediaType.APPLICATION_JSON) + @Path("/roles/demote/professorToStudent/{user_id}") + public Response demoteProfessorToStudent(@Context SecurityContext securityContext, + @PathParam("user_id") String userId) { + new AdminInterface(userId).demoteProfessorToStudent(userId); + return Response.status(Response.Status.OK).entity("Admin role removed from professor user.").build(); + } + + // Demote Admin User to Professor User by User Id + @RolesAllowed("admin") + @POST + @Produces(MediaType.APPLICATION_JSON) + @Path("/roles/demote/adminToProfessor/{user_id}") + public Response demoteAdminToProfessor(@Context SecurityContext securityContext, + @PathParam("user_id") String userId) { + new AdminInterface(userId).demoteAdminToProfessor(userId); + return Response.status(Response.Status.OK).entity("Admin role removed from professor user.").build(); + } + + // Demote Admin User to Student User by User Id + @RolesAllowed("admin") + @POST + @Produces(MediaType.APPLICATION_JSON) + @Path("/roles/demote/adminToStudent/{user_id}") + public Response demoteAdminToStudent(@Context SecurityContext securityContext, + @PathParam("user_id") String userId) { + new AdminInterface(userId).demoteAdminToStudent(userId); + return Response.status(Response.Status.OK).entity("Admin role removed from student user.").build(); + } + + // Add Blocked Word + @RolesAllowed("admin") + @POST + @Produces(MediaType.APPLICATION_JSON) + @Consumes(MediaType.APPLICATION_JSON) + @Path("/profanity/update") + public Response updateBlockedWords(@Context SecurityContext securityContext, @RequestBody String payload) { + new AdminInterface().updateBlockedWords(payload); + return Response.status(Response.Status.OK).entity("Profanity settings updated.").build(); + } + + // Get Profanity Settings View + @RolesAllowed({"admin","professor"}) + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("/views/profanity") + public Response getProfanitySettingsView(@Context SecurityContext securityContext) { + System.out.printf("Getting profanity settings view"); + return Response.status(Response.Status.OK).entity(new AdminInterface().getBlockedWords()).build(); + } + + // Get Users View + @RolesAllowed("admin") + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("/views/users") + public Response getUsersView(@Context SecurityContext securityContext) { + return Response.status(Response.Status.OK).entity(new AdminInterface().getUsersView()).build(); + } + + // Get Courses view + @RolesAllowed("admin") + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("/views/courses") + public Response getCoursesView(@Context SecurityContext securityContext) { + return Response.status(Response.Status.OK).entity(new AdminInterface().getCourseView()).build(); + } +} diff --git a/backend/course-manager-microservice/src/main/java/edu/oswego/cs/resources/CourseManagerResource.java b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/resources/CourseManagerResource.java old mode 100644 new mode 100755 index eb5afed0b..295def22d --- a/backend/course-manager-microservice/src/main/java/edu/oswego/cs/resources/CourseManagerResource.java +++ b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/resources/CourseManagerResource.java @@ -15,6 +15,10 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.SecurityContext; +import org.eclipse.microprofile.openapi.annotations.parameters.RequestBody; + + +//reset @Path("professor") @DenyAll public class CourseManagerResource { @@ -59,7 +63,8 @@ public Response addStudent( @PathParam("courseID") String courseID, @PathParam("studentInfo") String studentInfo) { String[] parsedStudentInfo = studentInfo.split("-"); - if (parsedStudentInfo.length < 3) throw new CPRException(Response.Status.BAD_REQUEST, "Add student field was not filled out properly."); + if (parsedStudentInfo.length < 3) + throw new CPRException(Response.Status.BAD_REQUEST, "Add student field was not filled out properly."); StudentDAO studentDAO = new StudentDAO(parsedStudentInfo[0], parsedStudentInfo[1], parsedStudentInfo[2]); new CourseInterface().addStudent(securityContext, studentDAO, courseID); return Response.status(Response.Status.OK).entity("Student successfully added.").build(); @@ -89,4 +94,21 @@ public Response addStudentByCSVFile(@Context SecurityContext securityContext, IM new CourseInterface().addStudentsFromCSV(securityContext, fileDAO); return Response.status(Response.Status.OK).entity("Student(s) successfully added.").build(); } + + @POST + @Consumes(MediaType.APPLICATION_JSON) + @Path("courses/{course_id}/profanity/update") + @RolesAllowed("professor") + public Response updateBlockedWordsForCourse(@Context SecurityContext securityContext, @PathParam("course_id") String course_id, @RequestBody String payload) { + new CourseInterface().updateBlockedWordsForCourse(course_id, payload); + return Response.status(Response.Status.OK).entity("Profanity settings updated.").build(); + } + + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("courses/{course_id}/profanity/view") + @RolesAllowed("professor") + public Response getBlockedWordsForCourse(@Context SecurityContext securityContext, @PathParam("course_id") String course_id) { + return Response.status(Response.Status.OK).entity(new CourseInterface().getBlockedWordsForCourse(course_id)).build(); + } } \ No newline at end of file diff --git a/backend/course-manager-microservice/src/main/java/edu/oswego/cs/util/CPRException.java b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/util/CPRException.java old mode 100644 new mode 100755 diff --git a/backend/course-manager-microservice/src/main/java/edu/oswego/cs/util/CSVUtil.java b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/util/CSVUtil.java old mode 100644 new mode 100755 diff --git a/backend/course-manager-microservice/src/main/java/edu/oswego/cs/util/CourseUtil.java b/backend/course-manager-microservice/src/main/java/edu/oswego/cs/util/CourseUtil.java old mode 100644 new mode 100755 diff --git a/backend/course-manager-microservice/src/main/liberty/config/server.xml b/backend/course-manager-microservice/src/main/liberty/config/server.xml old mode 100644 new mode 100755 diff --git a/backend/course-manager-microservice/src/test/java/CourseManagerTests.java b/backend/course-manager-microservice/src/test/java/CourseManagerTests.java old mode 100644 new mode 100755 index 6029f1e86..a68c4ef4f --- a/backend/course-manager-microservice/src/test/java/CourseManagerTests.java +++ b/backend/course-manager-microservice/src/test/java/CourseManagerTests.java @@ -35,8 +35,8 @@ public class CourseManagerTests { @BeforeAll public static void oneTimeSetup() { - port = "13125"; - baseUrl = "http://moxie.cs.oswego.edu:" + port + "/manage/professor/"; + port = "3000"; + baseUrl = "https://localhost:" + port + "/manage/professor/"; String courseName = "JUnit Theory"; String courseSection = "800"; String crn = "54266"; diff --git a/backend/course-viewer-microservice/.dockerignore b/backend/course-viewer-microservice/.dockerignore old mode 100644 new mode 100755 diff --git a/backend/course-viewer-microservice/Dockerfile b/backend/course-viewer-microservice/Dockerfile old mode 100644 new mode 100755 index 35572be80..1c115bd2b --- a/backend/course-viewer-microservice/Dockerfile +++ b/backend/course-viewer-microservice/Dockerfile @@ -11,4 +11,4 @@ FROM icr.io/appcafe/open-liberty:full-java11-openj9-ubi # Copy from the intermediate build container. COPY --from=maven src/main/liberty/config/server.xml /config/ -COPY --from=maven target/*.war /config/apps +COPY --from=maven target/*.war /config/apps \ No newline at end of file diff --git a/backend/course-viewer-microservice/course-viewer-microservice.iml b/backend/course-viewer-microservice/course-viewer-microservice.iml new file mode 100644 index 000000000..8c54e3b0b --- /dev/null +++ b/backend/course-viewer-microservice/course-viewer-microservice.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/course-viewer-microservice/pom.xml b/backend/course-viewer-microservice/pom.xml old mode 100644 new mode 100755 diff --git a/backend/course-viewer-microservice/src/main/java/edu/oswego/cs/application/CourseViewerApplication.java b/backend/course-viewer-microservice/src/main/java/edu/oswego/cs/application/CourseViewerApplication.java old mode 100644 new mode 100755 diff --git a/backend/course-viewer-microservice/src/main/java/edu/oswego/cs/cors/CorsFilter.java b/backend/course-viewer-microservice/src/main/java/edu/oswego/cs/cors/CorsFilter.java old mode 100644 new mode 100755 diff --git a/backend/course-viewer-microservice/src/main/java/edu/oswego/cs/daos/AssignmentDAO.java b/backend/course-viewer-microservice/src/main/java/edu/oswego/cs/daos/AssignmentDAO.java old mode 100644 new mode 100755 diff --git a/backend/course-viewer-microservice/src/main/java/edu/oswego/cs/daos/CourseDAO.java b/backend/course-viewer-microservice/src/main/java/edu/oswego/cs/daos/CourseDAO.java old mode 100644 new mode 100755 diff --git a/backend/course-viewer-microservice/src/main/java/edu/oswego/cs/daos/StudentDAO.java b/backend/course-viewer-microservice/src/main/java/edu/oswego/cs/daos/StudentDAO.java old mode 100644 new mode 100755 diff --git a/backend/course-viewer-microservice/src/main/java/edu/oswego/cs/database/CourseInterface.java b/backend/course-viewer-microservice/src/main/java/edu/oswego/cs/database/CourseInterface.java old mode 100644 new mode 100755 diff --git a/backend/course-viewer-microservice/src/main/java/edu/oswego/cs/database/DatabaseManager.java b/backend/course-viewer-microservice/src/main/java/edu/oswego/cs/database/DatabaseManager.java old mode 100644 new mode 100755 diff --git a/backend/course-viewer-microservice/src/main/java/edu/oswego/cs/database/GradeInterface.java b/backend/course-viewer-microservice/src/main/java/edu/oswego/cs/database/GradeInterface.java old mode 100644 new mode 100755 diff --git a/backend/course-viewer-microservice/src/main/java/edu/oswego/cs/resources/CoursesViewerResources.java b/backend/course-viewer-microservice/src/main/java/edu/oswego/cs/resources/CoursesViewerResources.java old mode 100644 new mode 100755 diff --git a/backend/course-viewer-microservice/src/main/liberty/config/server.xml b/backend/course-viewer-microservice/src/main/liberty/config/server.xml old mode 100644 new mode 100755 diff --git a/backend/course-viewer-microservice/src/test/java/edu/oswego/edu/CoursesViewerTest.java b/backend/course-viewer-microservice/src/test/java/edu/oswego/edu/CoursesViewerTest.java old mode 100644 new mode 100755 index 798e6ccac..a87b697bd --- a/backend/course-viewer-microservice/src/test/java/edu/oswego/edu/CoursesViewerTest.java +++ b/backend/course-viewer-microservice/src/test/java/edu/oswego/edu/CoursesViewerTest.java @@ -34,7 +34,7 @@ public class CoursesViewerTest { @BeforeAll public static void oneTimeSetup() { port = "13125"; - baseUrl = "http://moxie.cs.oswego.edu:" + port + "/view/professor/"; + baseUrl = "https://moxie.cs.oswego.edu:" + port + "/view/professor/"; // variables for inserted courses diff --git a/backend/login-microservice/.dockerignore b/backend/login-microservice/.dockerignore old mode 100644 new mode 100755 diff --git a/backend/login-microservice/Dockerfile b/backend/login-microservice/Dockerfile old mode 100644 new mode 100755 diff --git a/backend/login-microservice/login-microservice.iml b/backend/login-microservice/login-microservice.iml new file mode 100644 index 000000000..8c54e3b0b --- /dev/null +++ b/backend/login-microservice/login-microservice.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/login-microservice/pom.xml b/backend/login-microservice/pom.xml old mode 100644 new mode 100755 diff --git a/backend/login-microservice/src/main/java/edu/oswego/cs/application/RestApplication.java b/backend/login-microservice/src/main/java/edu/oswego/cs/application/RestApplication.java old mode 100644 new mode 100755 diff --git a/backend/login-microservice/src/main/java/edu/oswego/cs/controllers/Controller.java b/backend/login-microservice/src/main/java/edu/oswego/cs/controllers/Controller.java old mode 100644 new mode 100755 index eacde164f..f3dfa2807 --- a/backend/login-microservice/src/main/java/edu/oswego/cs/controllers/Controller.java +++ b/backend/login-microservice/src/main/java/edu/oswego/cs/controllers/Controller.java @@ -31,6 +31,7 @@ public Response generateToken(@Context HttpHeaders request) throws JsonException @Produces(MediaType.APPLICATION_JSON) public Response refreshToken(@Context SecurityContext securityContext) throws IOException { return Response.status(Response.Status.OK).entity(new AuthServices().refreshToken(securityContext)).build(); + } } diff --git a/backend/login-microservice/src/main/java/edu/oswego/cs/cors/CorsFilter.java b/backend/login-microservice/src/main/java/edu/oswego/cs/cors/CorsFilter.java old mode 100644 new mode 100755 diff --git a/backend/login-microservice/src/main/java/edu/oswego/cs/database/DatabaseManager.java b/backend/login-microservice/src/main/java/edu/oswego/cs/database/DatabaseManager.java old mode 100644 new mode 100755 diff --git a/backend/login-microservice/src/main/java/edu/oswego/cs/database/ProfessorCheck.java b/backend/login-microservice/src/main/java/edu/oswego/cs/database/ProfessorCheck.java old mode 100644 new mode 100755 diff --git a/backend/login-microservice/src/main/java/edu/oswego/cs/services/AuthServices.java b/backend/login-microservice/src/main/java/edu/oswego/cs/services/AuthServices.java old mode 100644 new mode 100755 index a0f987560..1399bbe70 --- a/backend/login-microservice/src/main/java/edu/oswego/cs/services/AuthServices.java +++ b/backend/login-microservice/src/main/java/edu/oswego/cs/services/AuthServices.java @@ -8,7 +8,6 @@ import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import edu.oswego.cs.database.DatabaseManager; -import edu.oswego.cs.database.ProfessorCheck; import edu.oswego.cs.util.CPRException; import org.bson.Document; import org.eclipse.microprofile.jwt.JsonWebToken; @@ -19,7 +18,6 @@ import java.io.IOException; import java.security.Principal; import java.util.*; - import static com.mongodb.client.model.Filters.eq; public class AuthServices { @@ -34,17 +32,21 @@ public AuthServices() throws IOException { } catch (WebApplicationException e) { throw new CPRException(Response.Status.BAD_REQUEST, "Failed to retrieve collections."); } - new ProfessorCheck().addProfessors(); } public Map generateNewToken(String token) { Payload payload = googleService.validateToken(token); if (payload == null) - throw new WebApplicationException(Response.status(Response.Status.UNAUTHORIZED).entity("Invalid token.").build()); + throw new WebApplicationException( + Response.status(Response.Status.UNAUTHORIZED).entity("Invalid token.").build()); Map tokens = new HashMap<>(); String lakerID = payload.getEmail().split("@")[0]; + CheckForDefaultAdmin(lakerID, payload.get("given_name").toString(), payload.get("family_name").toString()); + + + System.out.println("lakerID: " + lakerID); Set roles = getRoles(lakerID); try { @@ -66,6 +68,7 @@ public Map generateNewToken(String token) { .claim("aud", "cpr") .claim("iss", "cpr") .buildJwt().compact(); + System.out.println("access token: " + access_token); tokens.put("access_token", access_token); tokens.put("refresh_token", refresh_token); @@ -74,19 +77,24 @@ public Map generateNewToken(String token) { } catch (JwtException | InvalidBuilderException | InvalidClaimException e) { e.printStackTrace(); - throw new WebApplicationException(Response.status(Response.Status.NOT_FOUND).entity("Unable to find token.").build()); + throw new WebApplicationException( + Response.status(Response.Status.NOT_FOUND).entity("Unable to find token.").build()); } } public Map refreshToken(SecurityContext securityContext) { + System.out.println("refreshing token"); Principal user = securityContext.getUserPrincipal(); JsonWebToken payload = (JsonWebToken) user; if (payload == null) - throw new WebApplicationException(Response.status(Response.Status.UNAUTHORIZED).entity("JWT is not available.").build()); + throw new WebApplicationException( + Response.status(Response.Status.UNAUTHORIZED).entity("JWT is not available.").build()); Map tokens = new HashMap<>(); String lakerID = payload.getName().split("@")[0]; + + // CheckForDefaultAdmin(lakerID, payload.getClaim(), payload.getLastname()); Set roles = getRoles(lakerID); try { @@ -102,24 +110,43 @@ public Map refreshToken(SecurityContext securityContext) { tokens.put("access_token", access_token); } catch (JwtException | InvalidBuilderException | InvalidClaimException e) { e.printStackTrace(); - throw new WebApplicationException(Response.status(Response.Status.NOT_FOUND).entity("Unable to find token.").build()); + throw new WebApplicationException( + Response.status(Response.Status.NOT_FOUND).entity("Unable to find token.").build()); } return tokens; } public Set getRoles(String lakerID) { + Set roles = new HashSet<>(); if (professorCollection.find(eq("professor_id", lakerID)).first() != null) { roles.add("professor"); + Document professorDoc = professorCollection.find(eq("professor_id", lakerID)).first(); + if (professorDoc != null && professorDoc.containsKey("admin") && professorDoc.getBoolean("admin")) { + roles.add("admin"); + } } else { roles.add("student"); } - if (roles.size() == 0) - throw new WebApplicationException(Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity("Can't connect to database.").build()); return roles; + } + // Checks if professor database is empty + // if so assign admin status to first professor + protected void CheckForDefaultAdmin(String user_id, String first_name, String last_name) { + System.out.println("Checking for default admin"); + if (professorCollection.countDocuments() == 0) { + System.out.println("Adding default admin" + user_id); + Document professor = new Document("professor_id", user_id) + .append("admin", true) + .append("first_name", first_name) + .append("last_name", last_name) + .append("courses", new ArrayList()); + professorCollection.insertOne(professor); + } + } } diff --git a/backend/login-microservice/src/main/java/edu/oswego/cs/services/GoogleService.java b/backend/login-microservice/src/main/java/edu/oswego/cs/services/GoogleService.java old mode 100644 new mode 100755 diff --git a/backend/login-microservice/src/main/java/edu/oswego/cs/util/CPRException.java b/backend/login-microservice/src/main/java/edu/oswego/cs/util/CPRException.java old mode 100644 new mode 100755 diff --git a/backend/login-microservice/src/main/liberty/config/server.xml b/backend/login-microservice/src/main/liberty/config/server.xml old mode 100644 new mode 100755 diff --git a/backend/login-microservice/src/test/java/LoginTests.java b/backend/login-microservice/src/test/java/LoginTests.java old mode 100644 new mode 100755 index 1b0b7366a..6a31fb65c --- a/backend/login-microservice/src/test/java/LoginTests.java +++ b/backend/login-microservice/src/test/java/LoginTests.java @@ -18,7 +18,7 @@ public class LoginTests { @BeforeAll public static void onTimeSetup(){ - baseUrl = "http://moxie.cs.oswego.edu:13125/auth/token/generate/"; + baseUrl = "https://moxie.cs.oswego.edu:13125/auth/token/generate/"; // base jwt token found by intercepting the request in Burp ;D // we can manipulate this to see what else we can do with this request. XD diff --git a/backend/peer-review-teams-microservice/.dockerignore b/backend/peer-review-teams-microservice/.dockerignore old mode 100644 new mode 100755 diff --git a/backend/peer-review-teams-microservice/Dockerfile b/backend/peer-review-teams-microservice/Dockerfile old mode 100644 new mode 100755 diff --git a/backend/peer-review-teams-microservice/pom.xml b/backend/peer-review-teams-microservice/pom.xml old mode 100644 new mode 100755 diff --git a/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/application/RestApplication.java b/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/application/RestApplication.java old mode 100644 new mode 100755 diff --git a/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/cors/CorsFilter.java b/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/cors/CorsFilter.java old mode 100644 new mode 100755 diff --git a/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/daos/TeamDAO.java b/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/daos/TeamDAO.java old mode 100644 new mode 100755 index c1badf11a..bba3ca574 --- a/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/daos/TeamDAO.java +++ b/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/daos/TeamDAO.java @@ -35,4 +35,12 @@ public TeamDAO( this.teamMembers = new ArrayList<>(); this.teamSize = teamSize; } -} \ No newline at end of file + public TeamDAO(String teamName, String courseID, int teamSize) { + this.teamID = null; + this.courseID = courseID; + this.teamFull = false; + this.teamLead = null; + this.teamMembers = new ArrayList<>(); + this.teamSize = teamSize; + } +} diff --git a/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/database/DatabaseManager.java b/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/database/DatabaseManager.java old mode 100644 new mode 100755 diff --git a/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/database/TeamInterface.java b/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/database/TeamInterface.java old mode 100644 new mode 100755 index f85de579c..0ac56a8ed --- a/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/database/TeamInterface.java +++ b/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/database/TeamInterface.java @@ -25,7 +25,9 @@ import javax.ws.rs.core.SecurityContext; import java.util.ArrayList; import java.util.List; +import java.util.Objects; +import static com.mongodb.client.model.Filters.and; import static com.mongodb.client.model.Filters.eq; public class TeamInterface { @@ -33,27 +35,58 @@ public class TeamInterface { private final MongoCollection studentCollection; private final MongoCollection teamCollection; + private final MongoCollection submissionCollection; + public TeamInterface() { DatabaseManager databaseManager = new DatabaseManager(); try { MongoDatabase studentDB = databaseManager.getStudentDB(); MongoDatabase courseDB = databaseManager.getCourseDB(); MongoDatabase teamDB = databaseManager.getTeamDB(); + MongoDatabase assignmentDB = databaseManager.getAssignmentDB(); studentCollection = studentDB.getCollection("students"); courseCollection = courseDB.getCollection("courses"); teamCollection = teamDB.getCollection("teams"); + submissionCollection = assignmentDB.getCollection("submissions"); } catch (CPRException e) { throw new CPRException(Response.Status.INTERNAL_SERVER_ERROR, "Failed to retrieve collections."); } } - - public void createTeam(@Context SecurityContext securityContext, TeamParam request) { +// public void createTeam(@Context SecurityContext securityContext, TeamParam request) { +// Document courseDocument = courseCollection.find(eq("course_id", request.getCourseID())).first(); +// if (courseDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Course not found"); +// new IdentifyingService().identifyingStudentService(securityContext, request.getStudentID()); +// new IdentifyingService().identifyingProfessorAsStudentService(securityContext, courseCollection, request.getCourseID()); +// new SecurityService().generateTeamNameSecurity(securityContext, teamCollection, courseDocument, request); +// +// if (request.getTeamName().length() > 25 || request.getTeamName().length() <= 0) { +// throw new CPRException(Response.Status.INTERNAL_SERVER_ERROR, "Team name must be within 1 and 25 characters long."); +// } +// +// int teamSize = new TeamService().getTeamSize(courseDocument); +// TeamDAO newTeam = new TeamDAO(request.getTeamName(), request.getCourseID(), teamSize, request.getStudentID()); +// newTeam.getTeamMembers().add(request.getStudentID()); +// newTeam.setTeamMembers(newTeam.getTeamMembers()); +// +// if (teamSize == 1) newTeam.setTeamFull(true); +// +// Jsonb jsonb = JsonbBuilder.create(); +// Entity courseDAOEntity = Entity.entity(jsonb.toJson(newTeam), MediaType.APPLICATION_JSON_TYPE); +// Document teamDocument = Document.parse(courseDAOEntity.getEntity()); +// teamCollection.insertOne(teamDocument); +// } + + public void createTeam(@Context SecurityContext securityContext, TeamParam request) { Document courseDocument = courseCollection.find(eq("course_id", request.getCourseID())).first(); if (courseDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Course not found"); new IdentifyingService().identifyingStudentService(securityContext, request.getStudentID()); - new IdentifyingService().identifyingProfessorService(securityContext, courseCollection, request.getCourseID()); + new IdentifyingService().identifyingProfessorAsStudentService(securityContext, courseCollection, request.getCourseID()); new SecurityService().generateTeamNameSecurity(securityContext, teamCollection, courseDocument, request); + if (request.getTeamName().length() > 25 || request.getTeamName().length() <= 0) { + throw new CPRException(Response.Status.INTERNAL_SERVER_ERROR, "Team name must be within 1 and 25 characters long."); + } + int teamSize = new TeamService().getTeamSize(courseDocument); TeamDAO newTeam = new TeamDAO(request.getTeamName(), request.getCourseID(), teamSize, request.getStudentID()); newTeam.getTeamMembers().add(request.getStudentID()); @@ -67,6 +100,36 @@ public void createTeam(@Context SecurityContext securityContext, TeamParam reque teamCollection.insertOne(teamDocument); } + public void createTeamProffessor(@Context SecurityContext securityContext, TeamParam request, String studentID) { + Document courseDocument = courseCollection.find(eq("course_id", request.getCourseID())).first(); + if (courseDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Course not found"); + new IdentifyingService().identifyingProfessorAsStudentService(securityContext, courseCollection, request.getCourseID()); + new SecurityService().generateTeamNameSecurity(securityContext, teamCollection, courseDocument, request); + + if (request.getTeamName().length() > 25 || request.getTeamName().length() <= 0) { + throw new CPRException(Response.Status.INTERNAL_SERVER_ERROR, "Team name must be within 1 and 25 characters long."); + } + + if (!new SecurityService().isStudentValid(courseDocument, studentID)) { + throw new CPRException(Response.Status.NOT_FOUND, "Student not found in this course."); + } + + int teamSize = new TeamService().getTeamSize(courseDocument); + TeamDAO newTeam = new TeamDAO(request.getTeamName(), request.getCourseID(), teamSize); + + new IdentifyingService().identifyingStudentService(securityContext, studentID); + newTeam.getTeamMembers().add(studentID); + + newTeam.setTeamMembers(newTeam.getTeamMembers()); + + if (teamSize == 1) newTeam.setTeamFull(true); + + Jsonb jsonb = JsonbBuilder.create(); + Entity courseDAOEntity = Entity.entity(jsonb.toJson(newTeam), MediaType.APPLICATION_JSON_TYPE); + Document teamDocument = Document.parse(courseDAOEntity.getEntity()); + teamCollection.insertOne(teamDocument); + } + public List getAllTeams(SecurityContext securityContext, String courseID) { Document courseDocument = courseCollection.find(eq("course_id", courseID)).first(); if (courseDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Course not found"); @@ -92,7 +155,7 @@ public Document getTeamByStudentID(SecurityContext securityContext, String cours if (!new SecurityService().isStudentValid(courseDocument, studentID)) throw new CPRException(Response.Status.NOT_FOUND, "Student not found in this course."); new IdentifyingService().identifyingStudentService(securityContext, studentID); - new IdentifyingService().identifyingProfessorService(securityContext, courseCollection, courseID); + new IdentifyingService().identifyingProfessorAsStudentService(securityContext, courseCollection, courseID); if (new SecurityService().isStudentAlreadyInATeam(teamCollection, securityContext, studentID, courseID)) { MongoCursor cursor = teamCollection.find(eq("course_id", courseID)).iterator(); @@ -120,7 +183,7 @@ public Document getTeamByTeamID(SecurityContext securityContext, String courseID if (!new SecurityService().isStudentInThisTeam(teamCollection, teamID, userID, courseID)) throw new CPRException(Response.Status.FORBIDDEN, "Principal User is not in this team."); - Bson teamDocumentFilter = Filters.and(eq("team_id", teamID), eq("course_id", courseID)); + Bson teamDocumentFilter = and(eq("team_id", teamID), eq("course_id", courseID)); return teamCollection.find(teamDocumentFilter).first(); } @@ -139,10 +202,10 @@ public void joinTeam(SecurityContext securityContext, TeamParam request) { Document courseDocument = courseCollection.find(eq("course_id", request.getCourseID())).first(); if (courseDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Course not found."); new IdentifyingService().identifyingStudentService(securityContext, request.getStudentID()); - new IdentifyingService().identifyingProfessorService(securityContext, courseCollection, request.getCourseID()); + new IdentifyingService().identifyingProfessorAsStudentService(securityContext, courseCollection, request.getCourseID()); new SecurityService().joinTeamSecurity(securityContext, teamCollection, courseDocument, request); - Bson teamDocumentFilter = Filters.and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); + Bson teamDocumentFilter = and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); Document teamDocument = teamCollection.find(teamDocumentFilter).first(); List teamMembers = teamDocument.getList("team_members", String.class); @@ -152,6 +215,41 @@ public void joinTeam(SecurityContext securityContext, TeamParam request) { teamUpdates = Updates.combine(teamUpdates, Updates.set("team_full", true)); UpdateOptions teamOptions = new UpdateOptions().upsert(true); teamCollection.updateOne(teamDocumentFilter, teamUpdates, teamOptions); + //now add the student's user id to all submissions the new team has made for the current course + + //first get the regular assignments and modify them + for (Document currentSubmission : submissionCollection.find(and(eq("type", "team_submission"), eq("course_id", request.getCourseID()), eq("team_name", request.getTeamID())))) { + //modify currentSubmission's members array to include the new member's ID + List curMembers = currentSubmission.getList("members", String.class); + curMembers.add(request.getStudentID()); + Bson submissionUpdate = Updates.set("members", curMembers); + UpdateOptions submissionOptions = new UpdateOptions().upsert(true); + submissionCollection.updateOne(submissionCollection.find(and(eq("assignment_id", currentSubmission.get("assignment_id")), eq("type", "team_submission"), eq("team_name", currentSubmission.get("team_name")))).first(), submissionUpdate, submissionOptions); + + } + + + //now get and modify peer reviews that the team submitted + for (Document currentSubmission : submissionCollection.find(and(eq("type", "peer_review_submission"), eq("course_id", request.getCourseID()), eq("reviewed_by", request.getTeamID())))) { + //modify currentSubmission's members array to include the new member's ID + List curMembers = currentSubmission.getList("reviewed_by_members", String.class); + curMembers.add(request.getStudentID()); + Bson submissionUpdate = Updates.set("reviewed_by_members", curMembers); + UpdateOptions submissionOptions = new UpdateOptions().upsert(true); + submissionCollection.updateOne(Objects.requireNonNull(submissionCollection.find(and(eq("assignment_id", currentSubmission.get("assignment_id")), eq("type", "peer_review_submission"), eq("reviewed_team", currentSubmission.get("reviewed_team")), eq("reviewed_by", currentSubmission.get("reviewed_by")))).first()), submissionUpdate, submissionOptions); + } + + + //now get and modify peer reviews that the team received + for (Document currentSubmission : submissionCollection.find(and(eq("type", "peer_review_submission"), eq("course_id", request.getCourseID()), eq("reviewed_team", request.getTeamID())))) { + //modify currentSubmission's members array to include the new member's ID + List curMembers = currentSubmission.getList("reviewed_team_members", String.class); + curMembers.add(request.getStudentID()); + Bson submissionUpdate = Updates.set("reviewed_team_members", curMembers); + UpdateOptions submissionOptions = new UpdateOptions().upsert(true); + submissionCollection.updateOne(Objects.requireNonNull(submissionCollection.find(and(eq("assignment_id", currentSubmission.get("assignment_id")), eq("type", "peer_review_submission"), eq("reviewed_team", currentSubmission.get("reviewed_team")), eq("reviewed_by", currentSubmission.get("reviewed_by")))).first()), submissionUpdate, submissionOptions); + } + } /* Deprecated */ @@ -160,7 +258,7 @@ public void switchTeam(SwitchTeamParam request) { if (courseDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Course not found."); new SecurityService().switchTeamSecurity(teamCollection, courseDocument, request); - Bson currentTeamDocumentFilter = Filters.and(eq("team_id", request.getCurrentTeamID()), eq("course_id", request.getCourseID())); + Bson currentTeamDocumentFilter = and(eq("team_id", request.getCurrentTeamID()), eq("course_id", request.getCourseID())); Document currentTeamDocument = teamCollection.find(currentTeamDocumentFilter).first(); if (currentTeamDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Team not found."); @@ -183,7 +281,7 @@ public void switchTeam(SwitchTeamParam request) { teamCollection.updateOne(currentTeamDocumentFilter, currentTeamUpdates, currentTeamOptions); } - Bson targetTeamDocumentFilter = Filters.and(eq("team_id", request.getTargetTeamID()), eq("course_id", request.getCourseID())); + Bson targetTeamDocumentFilter = and(eq("team_id", request.getTargetTeamID()), eq("course_id", request.getCourseID())); Document targetTeamDocument = teamCollection.find(targetTeamDocumentFilter).first(); if (targetTeamDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Team not found."); @@ -203,7 +301,7 @@ public void giveUpTeamLead(TeamParam request) { if (courseDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Course not found."); new SecurityService().giveUpTeamLeadSecurity(teamCollection, courseDocument, request); - Bson teamDocumentFilter = Filters.and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); + Bson teamDocumentFilter = and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); Document teamDocument = teamCollection.find(teamDocumentFilter).first(); if (teamDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Team not found."); @@ -230,7 +328,7 @@ public void nominateTeamLead(TeamParam request) { if (courseDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Course not found."); new SecurityService().nominateTeamLeadSecurity(teamCollection, courseDocument, request); - Bson teamDocumentFilter = Filters.and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); + Bson teamDocumentFilter = and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); Document teamDocument = teamCollection.find(teamDocumentFilter).first(); if (teamDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Team not found."); @@ -259,7 +357,7 @@ public void memberConfirmToggle(TeamParam request) { if (courseDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Course not found."); new SecurityService().memberConfirmToggleSecurity(teamCollection, courseDocument, request); - Bson teamDocumentFilter = Filters.and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); + Bson teamDocumentFilter = and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); Document teamDocument = teamCollection.find(teamDocumentFilter).first(); List teamConfirmedMembers = teamDocument.getList("team_confirmed_members", String.class); @@ -277,7 +375,7 @@ public void generateTeamName(SecurityContext securityContext, TeamParam request) if (courseDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Course not found."); new SecurityService().generateTeamNameSecurity(securityContext, teamCollection, courseDocument, request); - Bson teamDocumentFilter = Filters.and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); + Bson teamDocumentFilter = and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); Bson teamNameUpdates = Updates.combine( Updates.set("team_id", request.getTeamName()), Updates.set("team_lock", true)); @@ -291,7 +389,7 @@ public void removeTeamMember(@Context SecurityContext securityContext, TeamParam new IdentifyingService().identifyingProfessorService(securityContext, courseCollection, request.getCourseID()); new SecurityService().removeTeamMemberSecurity(teamCollection, courseDocument, request); - Bson teamDocumentFilter = Filters.and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); + Bson teamDocumentFilter = and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); Document teamDocument = teamCollection.find(teamDocumentFilter).first(); if (teamDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Team not found."); @@ -316,7 +414,7 @@ public void toggleTeamLock(TeamParam request) { if (!new SecurityService().isTeamCreated(teamCollection, request.getTeamID(), request.getCourseID())) throw new CPRException(Response.Status.NOT_FOUND, "Team not found."); - Bson teamDocumentFilter = Filters.and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); + Bson teamDocumentFilter = and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); Document teamDocument = teamCollection.find(teamDocumentFilter).first(); if (teamDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Team not found."); @@ -338,7 +436,7 @@ public void editTeamName(TeamParam request) { if (courseDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Course not found."); new SecurityService().editTeamNameSecurity(teamCollection, request); - Bson teamDocumentFilter = Filters.and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); + Bson teamDocumentFilter = and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); Bson editTeamNameUpdates = Updates.combine( Updates.set("team_id", request.getTeamName()), Updates.set("team_lock", true) @@ -358,7 +456,7 @@ public void editTeamSize(TeamParam request) { Document courseDocument = courseCollection.find(eq("course_id", request.getCourseID())).first(); if (courseDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Course not found."); new SecurityService().editTeamSizeSecurity(teamCollection, request); - Bson teamDocumentFilter = Filters.and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); + Bson teamDocumentFilter = and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); Bson editTeamSizeUpdates = Updates.set("team_size", request.getTeamSize()); teamCollection.updateOne(teamDocumentFilter, editTeamSizeUpdates); } @@ -368,7 +466,7 @@ public void assignTeamLead(TeamParam request) { if (courseDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Course not found."); new SecurityService().assignTeamLeadSecurity(teamCollection, courseDocument, request); - Bson teamDocumentFilter = Filters.and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); + Bson teamDocumentFilter = and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); Document teamDocument = teamCollection.find(teamDocumentFilter).first(); if (teamDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "Team not found."); @@ -397,7 +495,7 @@ public void deleteTeam(SecurityContext securityContext, TeamParam request) { new IdentifyingService().identifyingProfessorService(securityContext, courseCollection, request.getCourseID()); if (!new SecurityService().isTeamCreated(teamCollection, request.getTeamID(), request.getCourseID())) throw new CPRException(Response.Status.NOT_FOUND, "Team not found."); - Bson teamDocumentFilter = Filters.and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); + Bson teamDocumentFilter = and(eq("team_id", request.getTeamID()), eq("course_id", request.getCourseID())); teamCollection.deleteOne(teamDocumentFilter); } @@ -413,4 +511,4 @@ public List getAllStudentsInThisCourse(String courseID) { } return students; } -} \ No newline at end of file +} diff --git a/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/requests/SwitchTeamParam.java b/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/requests/SwitchTeamParam.java old mode 100644 new mode 100755 diff --git a/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/requests/TeamParam.java b/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/requests/TeamParam.java old mode 100644 new mode 100755 diff --git a/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/resources/ProfessorTeamResources.java b/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/resources/ProfessorTeamResources.java old mode 100644 new mode 100755 index 2d5e557bf..3cd4d6f5f --- a/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/resources/ProfessorTeamResources.java +++ b/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/resources/ProfessorTeamResources.java @@ -3,6 +3,7 @@ import javax.annotation.security.DenyAll; import javax.annotation.security.RolesAllowed; import javax.ws.rs.Consumes; +import javax.ws.rs.POST; import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.PUT; @@ -20,6 +21,18 @@ @Path("teams/professor/team") @DenyAll public class ProfessorTeamResources { + /** + * Endpoint to create course by proffessor + */ + @POST + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + @Path("{student_id}/create") + @RolesAllowed("professor") + public Response createTeamProffessor(@Context SecurityContext securityContext, TeamParam request, @PathParam("student_id") String studentID) { + new TeamInterface().createTeamProffessor(securityContext, request, studentID); + return Response.status(Response.Status.CREATED).entity("Team successfully created.").build(); + } @GET @Produces(MediaType.APPLICATION_JSON) diff --git a/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/resources/StudentTeamResources.java b/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/resources/StudentTeamResources.java old mode 100644 new mode 100755 diff --git a/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/services/IdentifyingService.java b/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/services/IdentifyingService.java old mode 100644 new mode 100755 index eb3bc8288..de67ae487 --- a/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/services/IdentifyingService.java +++ b/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/services/IdentifyingService.java @@ -7,6 +7,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.SecurityContext; +import java.util.ArrayList; public class IdentifyingService { public void identifyingStudentService(SecurityContext securityContext, String studentID) { @@ -17,14 +18,30 @@ public void identifyingStudentService(SecurityContext securityContext, String st } } - public void identifyingProfessorService(SecurityContext securityContext, MongoCollection courseCollection, String courseID) { + public void identifyingProfessorAsStudentService(SecurityContext securityContext, MongoCollection courseCollection, String courseID) { if (securityContext.isUserInRole("professor")) { String userID = securityContext.getUserPrincipal().getName().split("@")[0]; Document courseDocument = courseCollection.find(Filters.eq("course_id", courseID)).first(); if (courseDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "This professor does not exist."); String professorID = courseDocument.getString("professor_id"); - if (!userID.equals(professorID)) + if (!userID.equals(professorID)) { + ArrayList students = (ArrayList) courseDocument.get("students"); + for(String student: students){ + if(student.equals(userID)) + return; + } throw new CPRException(Response.Status.FORBIDDEN, "User principal name doesn't match"); + } + } + } + + public void identifyingProfessorService(SecurityContext securityContext, MongoCollection courseCollection, String courseID) { + if (securityContext.isUserInRole("professor")) { + String userID = securityContext.getUserPrincipal().getName().split("@")[0]; + Document courseDocument = courseCollection.find(Filters.eq("course_id", courseID)).first(); + if (courseDocument == null) throw new CPRException(Response.Status.NOT_FOUND, "This course does not exist."); + String professorID = courseDocument.getString("professor_id"); + if (!userID.equals(professorID)) throw new CPRException(Response.Status.FORBIDDEN, "User principal name doesn't match"); } } } diff --git a/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/services/SecurityService.java b/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/services/SecurityService.java old mode 100644 new mode 100755 diff --git a/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/services/TeamService.java b/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/services/TeamService.java old mode 100644 new mode 100755 diff --git a/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/util/CPRException.java b/backend/peer-review-teams-microservice/src/main/java/edu/oswego/cs/util/CPRException.java old mode 100644 new mode 100755 diff --git a/backend/peer-review-teams-microservice/src/main/liberty/config/server.xml b/backend/peer-review-teams-microservice/src/main/liberty/config/server.xml old mode 100644 new mode 100755 diff --git a/backend/peer-review-teams-microservice/src/test/java/TeamsTests.java b/backend/peer-review-teams-microservice/src/test/java/TeamsTests.java old mode 100644 new mode 100755 index d10b2ac3f..f863ab79b --- a/backend/peer-review-teams-microservice/src/test/java/TeamsTests.java +++ b/backend/peer-review-teams-microservice/src/test/java/TeamsTests.java @@ -1,2 +1,38 @@ -public class TeamsTests { -} +import edu.oswego.cs.daos.CourseDAO; +import edu.oswego.cs.daos.StudentDAO; +import edu.oswego.cs.daos.TeamDAO; +import edu.oswego.cs.database.CourseInterface; +import edu.oswego.cs.database.TeamInterface; +import edu.oswego.cs.requests.TeamParam; + + public class TeamsTests { + @Test + /** + * Test case for createTeamProffessor + * Creates test parameters by: + * Create a test courese, add student to test course,Create team parameter with studentID and teamName,Create security context + * Calls createTeamProffessor with created test paramaters + * Verify team created and team member inserted + */ + public void testTeamCreation() { + CourseDAO course = new CourseDAO("CSC578", "Software Engineering", "800", "12345", "Fall", "2024"); + CourseInterface courseInterface = new CourseInterface(); + courseInterface.addCourse(null, course); + String email = "timmyTest@oswego.edu"; + StudentDAO studentDAO = new StudentDAO(email, course.abbreviation, course.courseName, course.courseSection, + course.crn, course.semester, course.year); + courseInterface.addStudent(null, studentDAO, course.courseID); + TeamParam teamParam = new TeamParam(); + teamParam.setCourseID(course.courseID); + teamParam.setTeamName("Test Team"); + String studentID = email; + SecurityContext securityContext = mock(SecurityContext.class); + TeamInterface teamInterface = new TeamInterface(); + teamInterface.createTeamProffessor(securityContext, teamParam, studentID); + TeamDAO insertedTeam = teamInterface.getTeamsByCourseID(course.courseID).get(0); + assertEquals(teamParam.getTeamName(), insertedTeam.getTeamName()); + assertEquals(teamParam.getCourseID(), insertedTeam.getCourseID()); + assertEquals(1, insertedTeam.getTeamMembers().size()); + assertTrue(insertedTeam.getTeamMembers().contains(studentID)); + } + } diff --git a/backend/professor-assignment-microservice/.dockerignore b/backend/professor-assignment-microservice/.dockerignore old mode 100644 new mode 100755 diff --git a/backend/professor-assignment-microservice/Dockerfile b/backend/professor-assignment-microservice/Dockerfile old mode 100644 new mode 100755 diff --git a/backend/professor-assignment-microservice/pom.xml b/backend/professor-assignment-microservice/pom.xml old mode 100644 new mode 100755 index 0cf151ba6..a0771fc49 --- a/backend/professor-assignment-microservice/pom.xml +++ b/backend/professor-assignment-microservice/pom.xml @@ -15,7 +15,25 @@ UTF-8 + + + MavenCentralRepo + Maven Central Repository + https://repo1.maven.org/maven2/ + + + AsposeJavaAPI + Aspose Java API + https://repository.aspose.com/repo/ + + + + + com.aspose + aspose-pdf + 20.7 + org.mongodb mongo-java-driver @@ -46,7 +64,7 @@ com.ibm.websphere.appserver.api com.ibm.websphere.appserver.api.jaxrs20 - 1.1.54 + 1.1.74 provided @@ -83,6 +101,11 @@ 1.0.0-RC1 runtime + + com.ibm.websphere.appserver.spi + com.ibm.websphere.appserver.spi.logging + 1.1.74 + jakarta.platform jakarta.jakartaee-api @@ -99,6 +122,11 @@ maven-war-plugin 3.3.2 + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.2 + io.openliberty.tools liberty-maven-plugin diff --git a/backend/professor-assignment-microservice/professor-assignment-microservice.iml b/backend/professor-assignment-microservice/professor-assignment-microservice.iml new file mode 100644 index 000000000..8c54e3b0b --- /dev/null +++ b/backend/professor-assignment-microservice/professor-assignment-microservice.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/application/ProfessorAssignmentApplication.java b/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/application/ProfessorAssignmentApplication.java old mode 100644 new mode 100755 diff --git a/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/cors/CorsFilter.java b/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/cors/CorsFilter.java old mode 100644 new mode 100755 diff --git a/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/AssignmentDAO.java b/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/AssignmentDAO.java old mode 100644 new mode 100755 index 54f89413a..6a084b0d4 --- a/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/AssignmentDAO.java +++ b/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/AssignmentDAO.java @@ -2,6 +2,10 @@ import lombok.NoArgsConstructor; import lombok.NonNull; +import org.bson.BsonBinary; +import org.bson.codecs.pojo.annotations.BsonId; +import org.bson.conversions.Bson; + import javax.json.bind.annotation.JsonbCreator; import javax.json.bind.annotation.JsonbProperty; import javax.persistence.Entity; @@ -21,10 +25,6 @@ public class AssignmentDAO { @JsonbProperty("peer_review_instructions") public String peerReviewInstructions; @JsonbProperty("peer_review_due_date") public String peerReviewDueDate; @JsonbProperty("peer_review_points") public int peerReviewPoints; - @JsonbProperty("assignment_instructions") public String assignmentInstruction = ""; - @JsonbProperty("peer_review_template") public String peerReviewTemplate = ""; - @JsonbProperty("peer_review_rubric") public String peerReviewRubric = ""; - @JsonbCreator public AssignmentDAO( @NonNull @JsonbProperty("course_id") String courseID, diff --git a/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/AssignmentNoPeerReviewDAO.java b/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/AssignmentNoPeerReviewDAO.java new file mode 100755 index 000000000..011fdd45f --- /dev/null +++ b/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/AssignmentNoPeerReviewDAO.java @@ -0,0 +1,32 @@ +package edu.oswego.cs.rest.daos; + +import lombok.NonNull; + +import javax.json.bind.annotation.JsonbCreator; +import javax.json.bind.annotation.JsonbProperty; +import javax.persistence.Id; + +public class AssignmentNoPeerReviewDAO { + @Id + @JsonbProperty("course_id") public String courseID; + @JsonbProperty("assignment_name") public String assignmentName; + @JsonbProperty("assignment_id") public int assignmentID; + @JsonbProperty("instructions") public String instructions; + @JsonbProperty("due_date") public String dueDate; + @JsonbProperty("points") public int points; + @JsonbCreator + public AssignmentNoPeerReviewDAO( + @NonNull @JsonbProperty("course_id") String courseID, + @NonNull @JsonbProperty("assignment_name") String assignmentName, + @NonNull @JsonbProperty("instructions") String instructions, + @NonNull @JsonbProperty("due_date") String dueDate, + @NonNull @JsonbProperty("points") Integer points + ) + { + this.assignmentName = assignmentName; + this.courseID = courseID; + this.dueDate = dueDate; + this.instructions = instructions; + this.points = points; + } +} diff --git a/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/FileDAO.java b/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/FileDAO.java old mode 100644 new mode 100755 index 168c0d4b4..349a128c6 --- a/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/FileDAO.java +++ b/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/FileDAO.java @@ -19,16 +19,6 @@ public class FileDAO { @JsonbProperty public String courseID; @JsonbProperty public InputStream file; - @JsonbCreator - public FileDAO( - @NonNull @JsonbProperty("file_name") String fileName, - @NonNull @JsonbProperty("assignment_id") int assignmentID, - @NonNull @JsonbProperty("course_id") String courseID) { - this.fileName = fileName; - this.assignmentID = assignmentID; - this.courseID = courseID; - } - public FileDAO( @NonNull @JsonbProperty("file_name") String fileName, @NonNull @JsonbProperty("assignment_id") int assignmentID, @@ -55,13 +45,4 @@ public static FileDAO fileFactory(String fileName, String courseID, IAttachment InputStream inputStream = attachment.getDataHandler().getInputStream(); return new FileDAO(fileName, assignmentID, courseID, inputStream); } - - /** - * Writes the inputStream to a file. - */ - public void writeFile(String filePath) throws IOException { - OutputStream outputStream = new FileOutputStream(filePath); - outputStream.write(file.readAllBytes()); - outputStream.close(); - } } \ No newline at end of file diff --git a/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/PeerReviewAddOnDAO.java b/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/PeerReviewAddOnDAO.java new file mode 100755 index 000000000..aa6e7af18 --- /dev/null +++ b/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/PeerReviewAddOnDAO.java @@ -0,0 +1,24 @@ +package edu.oswego.cs.rest.daos; + +import lombok.NonNull; + +import javax.json.bind.annotation.JsonbCreator; +import javax.json.bind.annotation.JsonbProperty; + +public class PeerReviewAddOnDAO { + @JsonbProperty("peer_review_instructions") public String peerReviewInstructions; + @JsonbProperty("peer_review_due_date") public String peerReviewDueDate; + @JsonbProperty("peer_review_points") public int peerReviewPoints; + + @JsonbCreator + public PeerReviewAddOnDAO( + @NonNull @JsonbProperty("peer_review_instructions") String peerReviewInstructions, + @NonNull @JsonbProperty("peer_review_due_date") String peerReviewDueDate, + @NonNull @JsonbProperty("peer_review_points") Integer peerReviewPoints + ) + { + this.peerReviewInstructions = peerReviewInstructions; + this.peerReviewDueDate = peerReviewDueDate; + this.peerReviewPoints = peerReviewPoints; + } +} diff --git a/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/database/AssignmentInterface.java b/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/database/AssignmentInterface.java old mode 100644 new mode 100755 index d79b3e6ac..8c7eaf25b --- a/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/database/AssignmentInterface.java +++ b/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/database/AssignmentInterface.java @@ -4,10 +4,13 @@ import com.mongodb.client.MongoCursor; import com.mongodb.client.MongoDatabase; import edu.oswego.cs.rest.daos.AssignmentDAO; +import edu.oswego.cs.rest.daos.AssignmentNoPeerReviewDAO; import edu.oswego.cs.rest.daos.FileDAO; +import edu.oswego.cs.rest.daos.PeerReviewAddOnDAO; import edu.oswego.cs.rest.util.CPRException; import org.apache.commons.io.FileUtils; import org.bson.Document; +import org.bson.types.Binary; import javax.json.bind.Jsonb; import javax.json.bind.JsonbBuilder; @@ -42,147 +45,280 @@ public AssignmentInterface() { } } + /** - * Retrieves the relative location of the root Directory + * Write file binary data and file name of the assignment instructions to its respective assignment document in the + * database. * - * @return String directory location the hw files should be saved to + * @param fileDAO type FileDAO: Representation of File Data */ - public static String getRelPath() { - String path = (System.getProperty("user.dir").contains("\\")) ? System.getProperty("user.dir").replace("\\", "/") : System.getProperty("user.dir"); - String[] slicedPath = path.split("/"); - String targetDir = "defaultServer"; - StringBuilder relativePathPrefix = new StringBuilder(); - for (int i = slicedPath.length - 1; !slicedPath[i].equals(targetDir); i--) { - relativePathPrefix.append("../"); - } - reg = "\\"; - if (System.getProperty("os.name").toLowerCase().contains("win")||(System.getProperty("os.name").toLowerCase().contains("nux") && System.getProperty("os.version").contains("WSL"))) { - reg = "/"; - relativePathPrefix = new StringBuilder(relativePathPrefix.toString().replace("\\", "/")); - } - return relativePathPrefix.toString(); + + /** + * Write file binary data and file name of the assignment instructions to its respective assignment document in the + * database. + * + * @param fileDAO type FileDAO: Representation of File Data + */ + + public void writeToAssignment(FileDAO fileDAO) throws IOException { + //the line below will get the document we are searching for + Document result = assignmentsCollection.find(and(eq("course_id", fileDAO.courseID), eq("assignment_id", fileDAO.assignmentID))).first(); + //makes sure the result isn't null + if (result == null) throw new CPRException(Response.Status.BAD_REQUEST,"No assignment found"); + + //add the assignment instructions binary data and file name to the database + result.append("assignment_instructions_data", Base64.getDecoder().decode(new String(fileDAO.file.readAllBytes()))); + result.append("assignment_instructions_name", fileDAO.fileName); + assignmentsCollection.replaceOne(and(eq("course_id", fileDAO.courseID), eq("assignment_id", fileDAO.assignmentID)), result); } - public static String findFile(String courseID, int assignmentID, String fileName) { - return getRelPath() + "assignments" + reg + courseID + reg + assignmentID + reg + "assignments" + reg + fileName; + /** + * + * @param fileDAO + * @throws IOException + */ + public void writeRubricToPeerReviews(FileDAO fileDAO) throws IOException { + //the line below will get the document we are searching for + Document result = assignmentsCollection.find(and(eq("course_id", fileDAO.courseID), eq("assignment_id", fileDAO.assignmentID))).first(); + //makes sure the result isn't null + if (result == null) throw new CPRException(Response.Status.BAD_REQUEST,"No assignment found"); + + //add the assignment instructions binary data and file name to the database + result.append("rubric_data", Base64.getDecoder().decode(new String(fileDAO.file.readAllBytes()))); + result.append("rubric_name", fileDAO.fileName); + assignmentsCollection.replaceOne(and(eq("course_id", fileDAO.courseID), eq("assignment_id", fileDAO.assignmentID)), result); } - public static String findPeerReviewFile(String courseID, int assignmentID, String fileName) { - String filePath = getRelPath() + "assignments" + reg + courseID + reg + assignmentID + reg + "peer-reviews" + reg + fileName; - if (!new File(filePath).exists()) - throw new CPRException(Response.Status.BAD_REQUEST,filePath + "does not exist"); - return filePath; + /** + * + * @param fileDAO + * @throws IOException + */ + public void writeTemplateToPeerReviews(FileDAO fileDAO) throws IOException { + //the line below will get the document we are searching for + Document result = assignmentsCollection.find(and(eq("course_id", fileDAO.courseID), eq("assignment_id", fileDAO.assignmentID))).first(); + //makes sure the result isn't null + if (result == null) throw new CPRException(Response.Status.BAD_REQUEST,"No assignment found"); + + //add the assignment instructions binary data and file name to the database + result.append("peer_review_template_data", Base64.getDecoder().decode(new String(fileDAO.file.readAllBytes()))); + result.append("peer_review_template_name", fileDAO.fileName); + assignmentsCollection.replaceOne(and(eq("course_id", fileDAO.courseID), eq("assignment_id", fileDAO.assignmentID)), result); } - public void writeToAssignment(FileDAO fileDAO) throws IOException { - String FileStructure = getRelPath() + "assignments" + reg + fileDAO.courseID + reg + fileDAO.assignmentID + reg + "assignments"; - fileDAO.writeFile(FileStructure + reg + fileDAO.fileName); - assignmentsCollection.updateOne(and( - eq("course_id", fileDAO.courseID), - eq("assignment_id", fileDAO.assignmentID)), - set("assignment_instructions", fileDAO.fileName)); + + /** + * Grabs the binary data of the assignment instructions for the respective assignment + * + * @param courseID type String + * @param assignmentID type Integer + */ + + public byte[] getInstructionFileData(String courseID, Integer assignmentID){ + Document result = assignmentsCollection.find(and(eq("course_id", courseID), eq("assignment_id", assignmentID))).first(); + //makes sure the result isn't null + if (result == null) throw new CPRException(Response.Status.BAD_REQUEST,"No assignment found"); + + //grab the assignment instructions data and return it, ensure the assignment instructions data exists first + if(!result.containsKey("assignment_instructions_data")) throw new CPRException(Response.Status.NOT_FOUND, "No assignment instruction data uploaded"); + + Binary data = (Binary) result.get("assignment_instructions_data"); + return data.getData(); } - public void writeRubricToPeerReviews(FileDAO fileDAO) throws IOException { - String FileStructure = getRelPath() + "assignments" + reg + fileDAO.courseID + reg + fileDAO.assignmentID + reg + "peer-reviews"; - fileDAO.writeFile(FileStructure + reg + fileDAO.fileName); - assignmentsCollection.updateOne(and( - eq("course_id", fileDAO.courseID), - eq("assignment_id", fileDAO.assignmentID)), - set("peer_review_rubric", fileDAO.fileName)); + /** + * Grabs the name of the instructions file + * + * @param courseID type String + * @param assignmentID type Integer + */ + + public String getInstructionFileName(String courseID, Integer assignmentID){ + Document result = assignmentsCollection.find(and(eq("course_id", courseID), eq("assignment_id", assignmentID))).first(); + //makes sure the result isn't null + if (result == null) throw new CPRException(Response.Status.BAD_REQUEST,"No assignment found"); + + //grab the assignment instructions data and return it, ensure the assignment instructions data exists first + if(!result.containsKey("assignment_instructions_name")) throw new CPRException(Response.Status.NOT_FOUND, "No assignment instruction data uploaded"); + + return (String) result.get("assignment_instructions_name"); } - public void writeTemplateToPeerReviews(FileDAO fileDAO) throws IOException { - String FileStructure = getRelPath() + "assignments" + reg + fileDAO.courseID + reg + fileDAO.assignmentID + reg + "peer-reviews"; - fileDAO.writeFile(FileStructure + reg + fileDAO.fileName); - assignmentsCollection.updateOne(and( - eq("course_id", fileDAO.courseID), - eq("assignment_id", fileDAO.assignmentID)), - set("peer_review_template", fileDAO.fileName)); + + /** + * Grabs the name of the rubric file + * + * @param courseID type String + * @param assignmentID type Integer + */ + + public String getRubricFileName(String courseID, Integer assignmentID){ + Document result = assignmentsCollection.find(and(eq("course_id", courseID), eq("assignment_id", assignmentID))).first(); + //makes sure the result isn't null + if (result == null) throw new CPRException(Response.Status.BAD_REQUEST,"No assignment found"); + + //grab the assignment instructions data and return it, ensure the assignment instructions data exists first + if(!result.containsKey("rubric_name")) throw new CPRException(Response.Status.NOT_FOUND, "No assignment instruction data uploaded"); + + return (String) result.get("rubric_name"); } - public void removeFile(String courseID, String fileName, int assignmentID) { - String fileLocation = findFile(courseID, assignmentID, fileName); - File file = new File(fileLocation); - if (!file.delete()) - throw new CPRException(Response.Status.BAD_REQUEST,"Assignment does not exist or could not be deleted."); - assignmentsCollection.updateOne(and(eq("course_id", courseID), - eq("assignment_id", assignmentID)), - set("assignment_instructions", "")); + + /** + * Grab the binary data of the assignment rubric for the respective assignment + * + * @param courseID type String + * @param assignmentID type Integer + */ + + public byte[] getRubricFileData(String courseID, Integer assignmentID){ + Document result = assignmentsCollection.find(and(eq("course_id", courseID), eq("assignment_id", assignmentID))).first(); + //makes sure the result isn't null + if (result == null) throw new CPRException(Response.Status.BAD_REQUEST,"No assignment found"); + + //grab the assignment instructions data and return it, ensure the assignment instructions data exists first + if(!result.containsKey("rubric_data")) throw new CPRException(Response.Status.NOT_FOUND, "No rubric data uploaded"); + + Binary data = (Binary) result.get("rubric_data"); + return data.getData(); } - public void removePeerReviewTemplate(String courseID, String fileName, int assignmentID) { - String fileLocation = findPeerReviewFile(courseID, assignmentID, fileName); - File file = new File(fileLocation); - if (!file.delete()) - throw new CPRException(Response.Status.BAD_REQUEST,"Assignment does not exist or could not be deleted."); - assignmentsCollection.updateOne(and( - eq("course_id", courseID), - eq("assignment_id", assignmentID)), - set("peer_review_template", "")); + + /** + * Grabs the name of the rubric file + * + * @param courseID type String + * @param assignmentID type Integer + */ + + public String getTemplateFileName(String courseID, Integer assignmentID){ + Document result = assignmentsCollection.find(and(eq("course_id", courseID), eq("assignment_id", assignmentID))).first(); + //makes sure the result isn't null + if (result == null) throw new CPRException(Response.Status.BAD_REQUEST,"No assignment found"); + + //grab the assignment instructions data and return it, ensure the assignment instructions data exists first + if(!result.containsKey("peer_review_template_name")) throw new CPRException(Response.Status.NOT_FOUND, "No assignment instruction data uploaded"); + + return (String) result.get("peer_review_template_name"); } - public void removePeerReviewRubric(String courseID, String fileName, int assignmentID) { - String fileLocation = findPeerReviewFile(courseID, assignmentID, fileName); - File file = new File(fileLocation); - if (!file.delete()) - throw new CPRException(Response.Status.BAD_REQUEST,"Assignment does not exist or could not be deleted."); - assignmentsCollection.updateOne(and( - eq("course_id", courseID), - eq("assignment_id", assignmentID)), - set("peer_review_rubric", "")); + /** + * Grabs the binary data of the peer review template for the respective assignment + * + * @param courseID type String + * @param assignmentID type Integer + */ + + public byte[] getPeerReviewTemplateData(String courseID, Integer assignmentID){ + Document result = assignmentsCollection.find(and(eq("course_id", courseID), eq("assignment_id", assignmentID))).first(); + //makes sure the result isn't null + if (result == null) throw new CPRException(Response.Status.BAD_REQUEST,"No assignment found"); + + //grab the assignment instructions data and return it, ensure the assignment instructions data exists first + if(!result.containsKey("peer_review_template_data")) throw new CPRException(Response.Status.NOT_FOUND, "No template data uploaded"); + + Binary data = (Binary) result.get("peer_review_template_data"); + return data.getData(); } - public Document createAssignment(AssignmentDAO assignmentDAO) throws IOException { - Document courseDocument = courseCollection.find(eq("course_id", assignmentDAO.courseID)).first(); - if (courseDocument == null) throw new CPRException(Response.Status.BAD_REQUEST,"Course not found."); - String FileStructure = getRelPath() + "assignments" + reg + assignmentDAO.courseID; + public void removeFile(String courseID, int assignmentID) { + Document result = assignmentsCollection.find(and(eq("course_id", courseID), eq("assignment_id", assignmentID))).first(); + //makes sure the result isn't null + if (result == null) throw new CPRException(Response.Status.BAD_REQUEST,"No assignment found"); + + //grab the assignment instructions data and return it, ensure the assignment instructions data exists first + if(!result.containsKey("assignment_instructions_data")) throw new CPRException(Response.Status.NOT_FOUND, "No template data uploaded"); + //add the assignment instructions binary data and file name to the database + result.remove("assignment_instructions_data"); + result.remove("assignment_instructions_name"); + assignmentsCollection.replaceOne(and(eq("course_id", courseID), eq("assignment_id", assignmentID)), result); + } + + public void removePeerReviewTemplate(String courseID, int assignmentID) { + Document result = assignmentsCollection.find(and(eq("course_id", courseID), eq("assignment_id", assignmentID))).first(); + //makes sure the result isn't null + if (result == null) throw new CPRException(Response.Status.BAD_REQUEST,"No assignment found"); + + //grab the assignment instructions data and return it, ensure the assignment instructions data exists first + if(!result.containsKey("peer_review_template_data")) throw new CPRException(Response.Status.NOT_FOUND, "No template data uploaded"); + //add the assignment instructions binary data and file name to the database + result.remove("peer_review_template_data"); + result.remove("peer_review_template_name"); + assignmentsCollection.replaceOne(and(eq("course_id", courseID), eq("assignment_id", assignmentID)), result); + } - File dir = new File(FileStructure); - if (!dir.mkdirs() && !dir.exists()) throw new CPRException(Response.Status.BAD_REQUEST,"Failed to create directory at" + dir.getAbsolutePath()); + public void removePeerReviewRubric(String courseID, int assignmentID) { + Document result = assignmentsCollection.find(and(eq("course_id", courseID), eq("assignment_id", assignmentID))).first(); + //makes sure the result isn't null + if (result == null) throw new CPRException(Response.Status.BAD_REQUEST,"No assignment found"); + + //grab the assignment instructions data and return it, ensure the assignment instructions data exists first + if(!result.containsKey("rubric_data")) throw new CPRException(Response.Status.NOT_FOUND, "No template data uploaded"); + //add the assignment instructions binary data and file name to the database + result.remove("rubric_data"); + result.remove("rubric_name"); + assignmentsCollection.replaceOne(and(eq("course_id", courseID), eq("assignment_id", assignmentID)), result); + } - String[] dirList = dir.list(); - if (dirList == null) throw new CPRException(Response.Status.BAD_REQUEST,"Directory must exist to make file structure."); + /** + * Creates the assignment data based on the POST request's sent data. Previously, this function would make + * a file structure on the host machine to store the PDFs. Now it just stores the assignment data JSON + * and the writeToAssignment function handles writing the Assignment PDF data in the database. + * + * @param assignmentDAO type AssignmentDAO: Representation of Assignment Data + * @return Document + */ + public Document createAssignment(AssignmentDAO assignmentDAO) throws IOException { + Document courseDocument = courseCollection.find(eq("course_id", assignmentDAO.courseID)).first(); + if (courseDocument == null) throw new CPRException(Response.Status.BAD_REQUEST,"Course not found."); int nextPos = generateAssignmentID(); assignmentDAO.assignmentID = nextPos; - FileStructure += reg + nextPos; - if (!new File(FileStructure + reg + "team-submissions").mkdirs()) throw new CPRException(Response.Status.BAD_REQUEST,"Failed to create team-submission directory."); + Jsonb jsonb = JsonbBuilder.create(); + Entity assignmentDAOEntity = Entity.entity(jsonb.toJson(assignmentDAO), MediaType.APPLICATION_JSON_TYPE); + Document assignmentDocument = Document.parse(assignmentDAOEntity.getEntity()); + assignmentDocument + .append("submission_is_past_due", false) + .append("peer_review_is_past_due", false) + .append("grade_finalized", false) + .append("has_peer_review", true); - if (!new File(FileStructure + reg + "peer-reviews").mkdirs()) { - deleteFile(FileStructure + reg + "team-submissions"); - throw new CPRException(Response.Status.BAD_REQUEST,"Failed to create peer-review directory."); - } + MongoCursor query = assignmentsCollection.find(assignmentDocument).iterator(); + if (query.hasNext()) { + query.close(); - if (!new File(FileStructure + reg + "assignments").mkdirs()) { - deleteFile(FileStructure + reg + "team-submissions"); - deleteFile(FileStructure + reg + "peer-reviews"); - throw new CPRException(Response.Status.BAD_REQUEST,"Failed to create assignments directory"); + throw new CPRException(Response.Status.BAD_REQUEST,"This assignment already exists."); } - if (!new File(FileStructure + reg + "peer-review-submission").mkdirs()) { - deleteFile(FileStructure + reg + "team-submissions"); - deleteFile(FileStructure + reg + "peer-reviews"); - deleteFile(FileStructure + reg + "assignments"); - throw new CPRException(Response.Status.BAD_REQUEST,"Failed to create peer-review-submission directory"); - } + assignmentsCollection.insertOne(assignmentDocument); + return assignmentDocument; + } + + /** + *Creates assignment data for assignments without any peer review data + * + * @param assignmentDAO type AssignmentNoPeerReviewDAO: Representation of Assignment Data + * @return Document + */ + + public Document createAssignmentNoPeerReview(AssignmentNoPeerReviewDAO assignmentDAO) throws IOException { + Document courseDocument = courseCollection.find(eq("course_id", assignmentDAO.courseID)).first(); + if (courseDocument == null) throw new CPRException(Response.Status.BAD_REQUEST,"Course not found."); + int nextPos = generateAssignmentID(); + assignmentDAO.assignmentID = nextPos; Jsonb jsonb = JsonbBuilder.create(); Entity assignmentDAOEntity = Entity.entity(jsonb.toJson(assignmentDAO), MediaType.APPLICATION_JSON_TYPE); Document assignmentDocument = Document.parse(assignmentDAOEntity.getEntity()); assignmentDocument .append("submission_is_past_due", false) - .append("peer_review_is_past_due", false) - .append("grade_finalized", false); + .append("grade_finalized", false) + .append("has_peer_review", false); MongoCursor query = assignmentsCollection.find(assignmentDocument).iterator(); if (query.hasNext()) { query.close(); - deleteFile(FileStructure + reg + "team-submissions"); - deleteFile(FileStructure + reg + "peer-reviews"); - deleteFile(FileStructure + reg + "assignments"); - deleteFile(FileStructure + reg + "peer-review-submission"); throw new CPRException(Response.Status.BAD_REQUEST,"This assignment already exists."); } @@ -191,6 +327,26 @@ public Document createAssignment(AssignmentDAO assignmentDAO) throws IOException return assignmentDocument; } + /** + * Appends peer review data onto an assignment that previously had no peer review data + * + * @param courseID + * @param AssignmentID + * @param peerReviewAddOnDAO + */ + public String addPeerReviewDataToAssignment(String courseID, int AssignmentID, PeerReviewAddOnDAO peerReviewAddOnDAO){ + Document assignmentDocument = assignmentsCollection.find(and(eq("assignment_id", AssignmentID),eq("course_id", courseID))).first(); + if (assignmentDocument == null) throw new CPRException(Response.Status.BAD_REQUEST,"This assignment does not exist."); + assignmentDocument.append("peer_review_due_date", peerReviewAddOnDAO.peerReviewDueDate) + .append("peer_review_instructions", peerReviewAddOnDAO.peerReviewInstructions) + .append("peer_review_points", peerReviewAddOnDAO.peerReviewPoints) + .append("peer_review_is_past_due", false); + assignmentDocument.replace("has_peer_review", true); + + assignmentsCollection.replaceOne(and(eq("assignment_id", AssignmentID),eq("course_id", courseID)), assignmentDocument); + return (String) assignmentDocument.get("assignment_name"); + } + public List getAllAssignments() { MongoCursor query = assignmentsCollection.find().iterator(); List assignments = new ArrayList<>(); @@ -201,6 +357,12 @@ public List getAllAssignments() { return assignments; } + /** + * + * @param courseID + * @return + */ + public List getAssignmentsByCourse(String courseID) { MongoCursor query = assignmentsCollection.find(eq("course_id", courseID)).iterator(); if (!query.hasNext()) return Collections.emptyList(); @@ -213,6 +375,13 @@ public List getAssignmentsByCourse(String courseID) { return assignments; } + /** + * + * @param courseID + * @param AssignmentID + * @return + */ + public Document getSpecifiedAssignment(String courseID, int AssignmentID) { Document assignment = assignmentsCollection.find(and( eq("course_id", courseID), @@ -221,6 +390,13 @@ public Document getSpecifiedAssignment(String courseID, int AssignmentID) { return assignment; } + /** + * + * @param assignmentDAO + * @param courseID + * @param assignmentID + */ + public void updateAssignment(AssignmentDAO assignmentDAO, String courseID, int assignmentID) { Document assignmentDocument = assignmentsCollection.find(and(eq("assignment_id", assignmentID),eq("course_id", courseID))).first(); if (assignmentDocument == null) throw new CPRException(Response.Status.BAD_REQUEST,"This assignment does not exist."); @@ -235,6 +411,31 @@ public void updateAssignment(AssignmentDAO assignmentDAO, String courseID, int a assignmentsCollection.replaceOne(and(eq("assignment_id", assignmentID),eq("course_id", courseID)), assignmentDocument); } + /** + * Update an assignment's data that has no peer review + * + * @param assignmentNoPeerReviewDAO + * @param courseID + * @param assignmentID + */ + public void updateAssignmentWithNoPeerReview(AssignmentNoPeerReviewDAO assignmentNoPeerReviewDAO, String courseID, int assignmentID) { + Document assignmentDocument = assignmentsCollection.find(and(eq("assignment_id", assignmentID),eq("course_id", courseID))).first(); + if (assignmentDocument == null) throw new CPRException(Response.Status.BAD_REQUEST,"This assignment does not exist."); + assignmentDocument.replace("assignment_name", assignmentNoPeerReviewDAO.assignmentName); + assignmentDocument.replace("due_date", assignmentNoPeerReviewDAO.dueDate); + assignmentDocument.replace("instructions", assignmentNoPeerReviewDAO.instructions); + assignmentDocument.replace("points", assignmentNoPeerReviewDAO.points); + + assignmentsCollection.replaceOne(and(eq("assignment_id", assignmentID),eq("course_id", courseID)), assignmentDocument); + } + + /** + * + * @param AssignmentID + * @param courseID + * @throws IOException + */ + public void removeAssignment(int AssignmentID, String courseID) throws IOException { MongoCursor results = assignmentsCollection.find(and( eq("assignment_id", AssignmentID), @@ -243,7 +444,6 @@ public void removeAssignment(int AssignmentID, String courseID) throws IOExcepti while (results.hasNext()) { Document assignment = results.next(); - deleteFile(getRelPath() + "assignments" + reg + courseID + reg + assignment.get("assignment_id")); assignmentsCollection.findOneAndDelete(assignment); } removeSubmissions(AssignmentID, courseID); @@ -254,6 +454,12 @@ public void removeSubmissions(int AssignmentID, String courseID) throws IOExcept submissionCollection.findOneAndDelete(submissionDoc); } + /** + * + * @param courseID + * @throws IOException + */ + public void removeCourse(String courseID) throws IOException { MongoCursor results = assignmentsCollection.find(eq("course_id", courseID)).iterator(); if (!results.hasNext()) throw new CPRException(Response.Status.BAD_REQUEST,"No assignment by this name found."); @@ -262,13 +468,21 @@ public void removeCourse(String courseID) throws IOException { Document assignmentDocument = results.next(); assignmentsCollection.findOneAndDelete(assignmentDocument); } - - deleteFile(getRelPath() + "assignments" + reg + courseID); } - private static void deleteFile(String destination) throws IOException { - FileUtils.deleteDirectory(new File(destination)); - } + + /** + * + * Iterates the assignment id by one based on how many assignments currently exist in the DB + * + **/ + + + /** + * + * Iterates the assignment id by one based on how many assignments currently exist in the DB + * + **/ public int generateAssignmentID() { List assignmentsDocuments = getAllAssignments(); diff --git a/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/database/DatabaseManager.java b/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/database/DatabaseManager.java old mode 100644 new mode 100755 diff --git a/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/resources/ProfessorAssignmentResource.java b/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/resources/ProfessorAssignmentResource.java old mode 100644 new mode 100755 index e73e418cb..5d65f1f2d --- a/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/resources/ProfessorAssignmentResource.java +++ b/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/resources/ProfessorAssignmentResource.java @@ -2,7 +2,9 @@ import com.ibm.websphere.jaxrs20.multipart.IAttachment; import edu.oswego.cs.rest.daos.AssignmentDAO; +import edu.oswego.cs.rest.daos.AssignmentNoPeerReviewDAO; import edu.oswego.cs.rest.daos.FileDAO; +import edu.oswego.cs.rest.daos.PeerReviewAddOnDAO; import edu.oswego.cs.rest.database.AssignmentInterface; import org.bson.Document; @@ -13,12 +15,95 @@ import javax.ws.rs.core.Response; import java.io.File; import java.io.IOException; +import java.util.Base64; import java.util.List; @Path("professor") @DenyAll public class ProfessorAssignmentResource { + @POST + @RolesAllowed("professor") + @Consumes(MediaType.APPLICATION_JSON) + @Path("/courses/create-assignment") + public Response createAssignment(AssignmentDAO assignmentDAO) throws IOException { + Document assignmentDocument = new AssignmentInterface().createAssignment(assignmentDAO); + return Response.status(Response.Status.OK).entity(assignmentDocument).build(); + } + + /** + * Create an assignment with no initial peer review data + * + * @param assignmentNoPeerReviewDAO + * @return + * @throws IOException + */ + + @POST + @RolesAllowed("professor") + @Consumes(MediaType.APPLICATION_JSON) + @Path("/courses/create-assignment-no-peer-review") + public Response createAssignmentNoPeerReview(AssignmentNoPeerReviewDAO assignmentNoPeerReviewDAO) throws IOException { + Document assignmentDocument = new AssignmentInterface().createAssignmentNoPeerReview(assignmentNoPeerReviewDAO); + return Response.status(Response.Status.OK).entity(assignmentDocument).build(); + } + + + @DELETE + @RolesAllowed("professor") + @Path("/courses/{courseID}/assignments/{assignmentID}/remove") + public Response removeAssignment(@PathParam("assignmentID") int assignmentID, @PathParam("courseID") String courseID) throws IOException { + new AssignmentInterface().removeAssignment(assignmentID, courseID); + return Response.status(Response.Status.OK).entity("Assignment successfully deleted.").build(); + } + + @PUT + @RolesAllowed("professor") + @Consumes(MediaType.APPLICATION_JSON) + @Path("/courses/{courseID}/assignments/{assignmentID}/edit") + public Response updateAssignment(AssignmentDAO assignmentDAO, @PathParam("courseID") String courseID, @PathParam("assignmentID") int assignmentID) { + new AssignmentInterface().updateAssignment(assignmentDAO, courseID, assignmentID); + String response = assignmentDAO.courseID + ": " + assignmentDAO.assignmentName + " successfully updated."; + return Response.status(Response.Status.OK).entity(response).build(); + } + + /** + * Edit an assignment with no peer review data + * + * @param assignmentNoPeerReviewDAO + * @param courseID + * @param assignmentID + * @return + */ + + @PUT + @RolesAllowed("professor") + @Consumes(MediaType.APPLICATION_JSON) + @Path("/courses/{courseID}/assignments/{assignmentID}/editNoPeerReview") + public Response updateAssignmentNoPeerReview(AssignmentNoPeerReviewDAO assignmentNoPeerReviewDAO, @PathParam("courseID") String courseID, @PathParam("assignmentID") int assignmentID) { + new AssignmentInterface().updateAssignmentWithNoPeerReview(assignmentNoPeerReviewDAO, courseID, assignmentID); + String response = assignmentNoPeerReviewDAO.courseID + ": " + assignmentNoPeerReviewDAO.assignmentName + " successfully updated."; + return Response.status(Response.Status.OK).entity(response).build(); + } + + + /** + * Add peer review data to an assignment that has none + * + * @param peerReviewAddOnDAO + * @param courseID + * @param assignmentID + * @return + */ + @PUT + @RolesAllowed("professor") + @Consumes(MediaType.APPLICATION_JSON) + @Path("/courses/{courseID}/assignments/{assignmentID}/addPeerReviewData") + public Response addPeerReviewData(PeerReviewAddOnDAO peerReviewAddOnDAO, @PathParam("courseID") String courseID, @PathParam("assignmentID") int assignmentID) { + String assignmentName = new AssignmentInterface().addPeerReviewDataToAssignment(courseID, assignmentID, peerReviewAddOnDAO); + return Response.status(Response.Status.OK).entity("Successfully added peer review data to " + courseID + ":" + assignmentName).build(); + } + @GET @RolesAllowed("professor") @Produces(MediaType.APPLICATION_JSON) @@ -43,26 +128,32 @@ public Response viewSpecifiedAssignment(@PathParam("courseID") String courseID, return Response.status(Response.Status.OK).entity(new AssignmentInterface().getSpecifiedAssignment(courseID, assignmentID)).build(); } + /** - * File is uploaded as form-data and passed back as a List - * The attachment is processed in FileDao.FileFactory, which reads and - * reconstructs the file through inputStream and outputStream respectively + * File's Base64 string is uploaded as form-data and passed back as a List. The file's name and + * extension is saved in the form-data's name + * The attachment is processed and turned back into its binary representation. The binary data and file name is then + * saved with its respective assignment document in the DB. * - * @param attachments type List: file(s) passed back as form-data + * @param attachments type List: file(s) Base64 Strings passed back as form-data * @param courseID type String * @param assignmentID type int * @return Response */ + @POST @RolesAllowed("professor") @Consumes(MediaType.MULTIPART_FORM_DATA) - @Produces({MediaType.MULTIPART_FORM_DATA, "application/pdf"}) + @Produces(MediaType.APPLICATION_JSON) @Path("/courses/{courseID}/assignments/{assignmentID}/upload") - public Response addFileToAssignment(List attachments, @PathParam("courseID") String courseID, @PathParam("assignmentID") int assignmentID) throws Exception { + public Response addFileToAssignment + (List attachments, + @PathParam("courseID") String courseID, + @PathParam("assignmentID") int assignmentID) + throws Exception { for (IAttachment attachment : attachments) { if (attachment == null) continue; String fileName = attachment.getDataHandler().getName(); - if (!fileName.endsWith("pdf") && !fileName.endsWith("zip") && !fileName.endsWith("docx")) return Response.status(Response.Status.UNSUPPORTED_MEDIA_TYPE).build(); new AssignmentInterface().writeToAssignment(FileDAO.fileFactory(fileName, courseID, attachment, assignmentID)); @@ -83,20 +174,20 @@ public Response addFileToAssignment(List attachments, @PathParam("c @POST @RolesAllowed("professor") @Consumes(MediaType.MULTIPART_FORM_DATA) - @Produces({MediaType.MULTIPART_FORM_DATA, "application/pdf"}) + @Produces(MediaType.APPLICATION_JSON) @Path("/courses/{courseID}/assignments/{assignmentID}/peer-review/rubric/upload") public Response addRubricToPeerReview(List attachments, @PathParam("courseID") String courseID, @PathParam("assignmentID") int assignmentID) throws Exception { for (IAttachment attachment : attachments) { if (attachment == null) continue; String fileName = attachment.getDataHandler().getName(); - if (!fileName.endsWith("pdf") && !fileName.endsWith("zip") && !fileName.endsWith("docx")) return Response.status(Response.Status.UNSUPPORTED_MEDIA_TYPE).build(); new AssignmentInterface().writeRubricToPeerReviews(FileDAO.fileFactory(fileName, courseID, attachment, assignmentID)); } - return Response.status(Response.Status.OK).entity("Successfully added file to peer reviews.").build(); + return Response.status(Response.Status.OK).entity("Successfully added file to assignment.").build(); } + /** * File is uploaded as form-data and passed back as a List * The attachment is processed in FileDao.FileFactory, which reads and @@ -110,74 +201,41 @@ public Response addRubricToPeerReview(List attachments, @PathParam( @POST @RolesAllowed("professor") @Consumes(MediaType.MULTIPART_FORM_DATA) - @Produces({MediaType.MULTIPART_FORM_DATA, "application/pdf"}) + @Produces(MediaType.APPLICATION_JSON) @Path("/courses/{courseID}/assignments/{assignmentID}/peer-review/template/upload") public Response addTemplateToPeerReview(List attachments, @PathParam("courseID") String courseID, @PathParam("assignmentID") int assignmentID) throws Exception { for (IAttachment attachment : attachments) { if (attachment == null) continue; String fileName = attachment.getDataHandler().getName(); - if (!fileName.endsWith("pdf") && !fileName.endsWith("zip") && !fileName.endsWith("docx")) return Response.status(Response.Status.UNSUPPORTED_MEDIA_TYPE).build(); new AssignmentInterface().writeTemplateToPeerReviews(FileDAO.fileFactory(fileName, courseID, attachment, assignmentID)); } - return Response.status(Response.Status.OK).entity("Successfully added file to peer reviews.").build(); - } - - @DELETE - @RolesAllowed("professor") - @Consumes(MediaType.APPLICATION_JSON) - @Path("/courses/{course-id}/assignments/{assignment-id}/remove-file/{file-name}") - public Response removeFileFromAssignment(@PathParam("course-id") String courseID, @PathParam("assignment-id") int assignmentID, @PathParam("file-name") String fileName) { - new AssignmentInterface().removeFile(courseID, fileName, assignmentID); - return Response.status(Response.Status.OK).entity("File successfully deleted.").build(); - } - - @DELETE - @RolesAllowed("professor") - @Consumes(MediaType.APPLICATION_JSON) - @Path("/courses/{course-id}/assignments/{assignment-id}/peer-review-template/remove-file/{file-name}") - public Response removeFileFromPeerReviewTemplate(@PathParam("course-id") String courseID, @PathParam("assignment-id") int assignmentID, @PathParam("file-name") String fileName) { - new AssignmentInterface().removePeerReviewTemplate(courseID, fileName, assignmentID); - return Response.status(Response.Status.OK).entity("File successfully deleted.").build(); - } - - @DELETE - @RolesAllowed("professor") - @Consumes(MediaType.APPLICATION_JSON) - @Path("/courses/{course-id}/assignments/{assignment-id}/peer-review-rubric/remove-file/{file-name}") - public Response removeFileFromPeerReviewRubric(@PathParam("course-id") String courseID, @PathParam("assignment-id") int assignmentID, @PathParam("file-name") String fileName) { - new AssignmentInterface().removePeerReviewRubric(courseID, fileName, assignmentID); - return Response.status(Response.Status.OK).entity("File successfully deleted.").build(); + return Response.status(Response.Status.OK).entity("Successfully added file to assignment.").build(); } - @POST - @RolesAllowed("professor") - @Consumes(MediaType.APPLICATION_JSON) - @Path("/courses/create-assignment") - public Response createAssignment(AssignmentDAO assignmentDAO) throws IOException { - Document assignmentDocument = new AssignmentInterface().createAssignment(assignmentDAO); -// DueDateChecker.assignmentDocuments.add(assignmentDocument); - return Response.status(Response.Status.OK).entity(assignmentDocument).build(); - } + /** + * Retrieves the assignment instructions file from the DB and passes its Base64 representation to the front end via + * the request header. + * + * @param courseID String + * @param assignmentID int + * @return response + **/ + @GET + @RolesAllowed({"professor", "student"}) + @Produces(MediaType.MULTIPART_FORM_DATA) + @Path("/courses/{courseID}/assignments/{assignmentID}/download") + public Response downloadAssignment(@PathParam("courseID") String courseID, @PathParam("assignmentID") int assignmentID) { + byte[] fileData = new AssignmentInterface().getInstructionFileData(courseID, assignmentID); + String fileName = new AssignmentInterface().getInstructionFileName(courseID, assignmentID); - @DELETE - @RolesAllowed("professor") - @Path("/courses/{courseID}/assignments/{assignmentID}/remove") - public Response removeAssignment(@PathParam("assignmentID") int assignmentID, @PathParam("courseID") String courseID) throws IOException { - new AssignmentInterface().removeAssignment(assignmentID, courseID); - return Response.status(Response.Status.OK).entity("Assignment successfully deleted.").build(); + Response.ResponseBuilder response = Response.ok(Base64.getEncoder().encode(fileData)); + response.header("Content-Disposition", "attachment; filename=" + fileName); + return response.build(); } - @PUT - @RolesAllowed("professor") - @Consumes(MediaType.APPLICATION_JSON) - @Path("/courses/{courseID}/assignments/{assignmentID}/edit") - public Response updateAssignment(AssignmentDAO assignmentDAO, @PathParam("courseID") String courseID, @PathParam("assignmentID") int assignmentID) { - new AssignmentInterface().updateAssignment(assignmentDAO, courseID, assignmentID); - String response = assignmentDAO.courseID + ": " + assignmentDAO.assignmentName + " successfully updated."; - return Response.status(Response.Status.OK).entity(response).build(); - } + //change /** * Retrieves the assignment from its location on the server and passes it to the front end via the request header @@ -190,15 +248,13 @@ public Response updateAssignment(AssignmentDAO assignmentDAO, @PathParam("course @GET @RolesAllowed({"professor", "student"}) @Produces(MediaType.MULTIPART_FORM_DATA) - @Path("/courses/{courseID}/assignments/{assignmentID}/download/{fileName}") - public Response downloadAssignment(@PathParam("courseID") String courseID, @PathParam("assignmentID") int assignmentID, @PathParam("fileName") String fileName) { - new AssignmentInterface(); - File file = new File(AssignmentInterface.findFile(courseID, assignmentID, fileName)); - if (!file.exists()) - return Response.status(Response.Status.BAD_REQUEST).entity("Assignment does not exist.").build(); - - Response.ResponseBuilder response = Response.ok(file); - response.header("Content-Disposition", "attachment; filename=" + file.getName()); + @Path("/courses/{courseID}/assignments/{assignmentID}/peer-review/template/download") + public Response downloadPeerReviewTemplate(@PathParam("courseID") String courseID, @PathParam("assignmentID") int assignmentID) { + byte[] fileData = new AssignmentInterface().getPeerReviewTemplateData(courseID, assignmentID); + String fileName = new AssignmentInterface().getTemplateFileName(courseID, assignmentID); + + Response.ResponseBuilder response = Response.ok(Base64.getEncoder().encode(fileData)); + response.header("Content-Disposition", "attachment; filename=" + fileName); return response.build(); } @@ -213,11 +269,44 @@ public Response downloadAssignment(@PathParam("courseID") String courseID, @Path @GET @RolesAllowed({"professor", "student"}) @Produces(MediaType.MULTIPART_FORM_DATA) - @Path("/courses/{courseID}/assignments/{assignmentID}/peer-review/download/{fileName}") - public Response downloadPeerReview(@PathParam("courseID") String courseID, @PathParam("assignmentID") int assignmentID, @PathParam("fileName") String fileName) { - File file = new File(AssignmentInterface.findPeerReviewFile(courseID, assignmentID, fileName)); + @Path("/courses/{courseID}/assignments/{assignmentID}/peer-review/rubric/download") + public Response downloadPeerReview(@PathParam("courseID") String courseID, @PathParam("assignmentID") int assignmentID) { + byte[] fileData = new AssignmentInterface().getRubricFileData(courseID, assignmentID); + String fileName = new AssignmentInterface().getRubricFileName(courseID, assignmentID); + + Response.ResponseBuilder response = Response.ok(Base64.getEncoder().encode(fileData)); + response.header("Content-Disposition", "attachment; filename=" + fileName); + return response.build(); + } + - return Response.ok(file).header("Content-Disposition", "attachment; filename=" + file.getName()).build(); + //Change + @DELETE + @RolesAllowed("professor") + @Consumes(MediaType.APPLICATION_JSON) + @Path("/courses/{course-id}/assignments/{assignment-id}/remove-file") + public Response removeFileFromAssignment(@PathParam("course-id") String courseID, @PathParam("assignment-id") int assignmentID) { + new AssignmentInterface().removeFile(courseID, assignmentID); + return Response.status(Response.Status.OK).entity("File successfully deleted.").build(); + } + + + @DELETE + @RolesAllowed("professor") + @Consumes(MediaType.APPLICATION_JSON) + @Path("/courses/{course-id}/assignments/{assignment-id}/peer-review/template/remove-file") + public Response removeFileFromPeerReviewTemplate(@PathParam("course-id") String courseID, @PathParam("assignment-id") int assignmentID) { + new AssignmentInterface().removePeerReviewTemplate(courseID, assignmentID); + return Response.status(Response.Status.OK).entity("File successfully deleted.").build(); + } + + @DELETE + @RolesAllowed("professor") + @Consumes(MediaType.APPLICATION_JSON) + @Path("/courses/{course-id}/assignments/{assignment-id}/peer-review/rubric/remove-file") + public Response removeFileFromPeerReviewRubric(@PathParam("course-id") String courseID, @PathParam("assignment-id") int assignmentID) { + new AssignmentInterface().removePeerReviewRubric(courseID, assignmentID); + return Response.status(Response.Status.OK).entity("File successfully deleted.").build(); } @DELETE @@ -227,4 +316,5 @@ public Response removeCourse(@PathParam("courseID") String courseID) throws IOEx new AssignmentInterface().removeCourse(courseID); return Response.status(Response.Status.OK).entity("Course successfully deleted from assignments database and assignments folder.").build(); } + } diff --git a/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/util/CPRException.java b/backend/professor-assignment-microservice/src/main/java/edu/oswego/cs/rest/util/CPRException.java old mode 100644 new mode 100755 diff --git a/backend/professor-assignment-microservice/src/main/liberty/config/server.xml b/backend/professor-assignment-microservice/src/main/liberty/config/server.xml old mode 100644 new mode 100755 index f1af77098..65e79858e --- a/backend/professor-assignment-microservice/src/main/liberty/config/server.xml +++ b/backend/professor-assignment-microservice/src/main/liberty/config/server.xml @@ -23,4 +23,5 @@ + diff --git a/backend/professor-assignment-microservice/src/test/java/ProfessorAssignmentTests.java b/backend/professor-assignment-microservice/src/test/java/ProfessorAssignmentTests.java old mode 100644 new mode 100755 index b71256064..99f1ad3b3 --- a/backend/professor-assignment-microservice/src/test/java/ProfessorAssignmentTests.java +++ b/backend/professor-assignment-microservice/src/test/java/ProfessorAssignmentTests.java @@ -1,22 +1,26 @@ -//import edu.oswego.cs.rest.daos.AssignmentDAO; -//import org.junit.jupiter.api.*; -// -//import javax.json.bind.Jsonb; -//import javax.json.bind.JsonbBuilder; -//import javax.ws.rs.client.Client; -//import javax.ws.rs.client.ClientBuilder; -//import javax.ws.rs.client.Entity; -//import javax.ws.rs.client.WebTarget; -//import javax.ws.rs.core.MediaType; -//import javax.ws.rs.core.Response; -//import java.util.ArrayList; -//import java.util.HashMap; -//import java.util.List; +import com.ibm.websphere.jaxrs20.multipart.AttachmentBuilder; +import com.ibm.websphere.jaxrs20.multipart.IAttachment; +import com.mongodb.client.MongoCollection; +import edu.oswego.cs.rest.daos.AssignmentNoPeerReviewDAO; +import edu.oswego.cs.rest.daos.FileDAO; +import edu.oswego.cs.rest.daos.PeerReviewAddOnDAO; +import edu.oswego.cs.rest.database.AssignmentInterface; +import edu.oswego.cs.rest.database.DatabaseManager; +import org.bson.Document; +import org.junit.jupiter.api.*; + +import java.io.IOException; +import java.util.ArrayList; + +import static com.mongodb.client.model.Filters.eq; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + // //// DISCLAIMER: Don't run all the tests at the same time. You'll likely screw up the database and fail the tests in some way. //// Read through the tests to see what they create, update and delete before you run them please. // -//public class ProfessorAssignmentTests { +public class ProfessorAssignmentTests { // // private static final Jsonb jsonb = JsonbBuilder.create(); // private static final ArrayList expectedAssignments = new ArrayList<>(); @@ -30,7 +34,7 @@ // @BeforeAll // public static void oneTimeSetup() { // port = "13125"; -// baseUrl = "http://moxie.cs.oswego.edu:" + port + "/assignments/professor"; +// baseUrl = "https://moxie.cs.oswego.edu:" + port + "/assignments/professor"; // // // // variables for inserted assignments @@ -324,5 +328,116 @@ // targetUrl = "/courses/"+assignment1.getCourseID()+"/assignments/"+assignmentIdCount+"/view-files"; // // (NOT INCLUDED HERE) // } -//} -// +// @Test +// void uploadAssignmentFilesTest() throws IOException { +// //make a dummy assignment in the database +// +// //String fileBase64 = "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"; +// MongoCollection courses = new DatabaseManager().getCourseDB().getCollection("courses"); +// MongoCollection assignments = new DatabaseManager().getAssignmentDB().getCollection("assignments"); +// Document course = new Document(); +// course +// .append("abbreviation", "CSC212") +// .append("course_id", "CSC212-100-Spring-2023") +// .append("course_name", "Intro to CS") +// .append("course_section", "100") +// .append("crn", "12345") +// .append("professor_id", "daltamur") +// .append("semester", "spring") +// .append("students", new ArrayList()) +// .append("team_size", 1) +// .append("year", "2023"); +// courses.insertOne(course); +// +// Document assignment=new Document(); +// assignment +// .append("assignment_id", 5000) +// .append("assignment_name", "Solve the SPainter Problem") +// .append("course_id", "CSC212-100-Spring-2023") +// .append("due_date", "2024-03-24") +// .append("instructions", "Write a program to solve the problem given in the attached instructions") +// .append("peer_review_due_date", "2023-04-15") +// .append("peer_review_instructions", "Rate your classmate's solution out of 15 points") +// .append("peer_review_points", 15) +// .append("points", 15) +// .append("submission_is_past_due", false) +// .append("peer_review_is_past_due", false) +// .append("grade_finalized", false) +// .append("assigned_teams", new ArrayList<>()) +// .append("completed_teams", new ArrayList<>()) +// .append("all_teams", new ArrayList<>()) +// .append("reviews_per_team",1); +// assignments.insertOne(assignment); +// +// assertEquals(assignment.get("points"), 15); +// +// +// //upload instruction, template, and rubric data +// IAttachment instructionsAttachment = AttachmentBuilder.newBuilder("instructions") +// //file stuff will go here +// .build(); +// System.out.println("asdf"); +// FileDAO instructionsDAO = FileDAO.fileFactory("instructions.docx", "CSC212-100-Spring-2023", instructionsAttachment, 5000); +// new AssignmentInterface().writeToAssignment(instructionsDAO); +// +// //get rid of the test assignment and course +// courses.findOneAndDelete(eq("course_id","CSC 101-800-12312-Spring-2023")); +// } + + @Test + public void makeAssignmentNoPeerReview() throws IOException { + // Note that this test runs under the assumption that the assignments database is empty + // Make a dummy assignment + AssignmentNoPeerReviewDAO testDAO = new AssignmentNoPeerReviewDAO("CSC212-800-12313-Spring-2023", "Rate your classmate's submission", "Rate your classmate's java solution on a scale of 1-10", "2023-05-15", 10); + Document madeAssignment = new AssignmentInterface().createAssignmentNoPeerReview(testDAO); + // Find the assignment and make sure it contains no peer review data and that it does, in fact, exist + Document foundAssignment = new AssignmentInterface().getSpecifiedAssignment("CSC212-800-12313-Spring-2023", (Integer) madeAssignment.get("assignment_id")); + //we don't really have to make sure every single value gets copied over, it's fine just to make sure it exists and contains on peer review data + assertNotNull(foundAssignment); + assertEquals(foundAssignment.get("has_peer_review"), false); + new AssignmentInterface().removeAssignment((Integer) foundAssignment.get("assignment_id"), "CSC212-800-12313-Spring-2023"); + } + + + @Test + public void updateAssignmentNoPeerReview() throws IOException { + //make an assignment to go into the DB that we will later edit + AssignmentNoPeerReviewDAO testDAO = new AssignmentNoPeerReviewDAO("CSC212-800-12313-Spring-2023", "Rate your classmate's submission", "Rate your classmate's java solution on a scale of 1-10", "2023-05-15", 10); + Document madeAssignment = new AssignmentInterface().createAssignmentNoPeerReview(testDAO); + AssignmentNoPeerReviewDAO updatedTestDAO = new AssignmentNoPeerReviewDAO("CSC212-800-12313-Spring-2023", "Java Solution Review", "Rate your classmate's java solution on a scale of 1-100", "2023-05-16", 100); + new AssignmentInterface().updateAssignmentWithNoPeerReview(updatedTestDAO, "CSC212-800-12313-Spring-2023", (Integer) madeAssignment.get("assignment_id")); + //find the assignment after updating it, assert the values are equal to the updated ones + Document foundAssignment = new AssignmentInterface().getSpecifiedAssignment("CSC212-800-12313-Spring-2023", (Integer) madeAssignment.get("assignment_id")); + assertNotNull(foundAssignment); + assertEquals(foundAssignment.get("assignment_name"), updatedTestDAO.assignmentName); + assertEquals(foundAssignment.get("due_date"), updatedTestDAO.dueDate); + assertEquals(foundAssignment.get("instructions"), updatedTestDAO.instructions); + assertEquals(foundAssignment.get("points"), updatedTestDAO.points); + assertEquals(foundAssignment.get("has_peer_review"), false); + new AssignmentInterface().removeAssignment((Integer) foundAssignment.get("assignment_id"), "CSC212-800-12313-Spring-2023"); + } + + @Test + public void addPeerReviewInformation() throws IOException { + //make an assignment to go into the DB that we will later edit + AssignmentNoPeerReviewDAO testDAO = new AssignmentNoPeerReviewDAO("CSC212-800-12313-Spring-2023", "Rate your classmate's submission", "Rate your classmate's java solution on a scale of 1-10", "2023-05-15", 10); + Document madeAssignment = new AssignmentInterface().createAssignmentNoPeerReview(testDAO); + PeerReviewAddOnDAO peerReviewAddOnDAO = new PeerReviewAddOnDAO("Rate your classmate's performance out of 15", "2023-05-26", 15); + new AssignmentInterface().addPeerReviewDataToAssignment("CSC212-800-12313-Spring-2023", (int) madeAssignment.get("assignment_id"), peerReviewAddOnDAO); + //find the assignment with the new peer review data now, ensure it contains all the right values + Document foundAssignment = new AssignmentInterface().getSpecifiedAssignment("CSC212-800-12313-Spring-2023", (Integer) madeAssignment.get("assignment_id")); + assertNotNull(foundAssignment); + assertEquals(foundAssignment.get("assignment_name"), testDAO.assignmentName); + assertEquals(foundAssignment.get("due_date"), testDAO.dueDate); + assertEquals(foundAssignment.get("instructions"), testDAO.instructions); + assertEquals(foundAssignment.get("points"), testDAO.points); + assertEquals(foundAssignment.get("has_peer_review"), true); + assertEquals(foundAssignment.get("peer_review_instructions"), peerReviewAddOnDAO.peerReviewInstructions); + assertEquals(foundAssignment.get("peer_review_due_date"), peerReviewAddOnDAO.peerReviewDueDate); + assertEquals(foundAssignment.get("peer_review_points"), peerReviewAddOnDAO.peerReviewPoints); + new AssignmentInterface().removeAssignment((Integer) foundAssignment.get("assignment_id"), "CSC212-800-12313-Spring-2023"); + } + + +} + diff --git a/backend/professor-assignment-microservice/src/test/java/solution.docx b/backend/professor-assignment-microservice/src/test/java/solution.docx new file mode 100755 index 0000000000000000000000000000000000000000..f946413081f31a3066c2c0bb7a040a3af2df89d6 GIT binary patch literal 50821 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 literal 0 HcmV?d00001 diff --git a/backend/student-assignment-microservice/.dockerignore b/backend/student-assignment-microservice/.dockerignore old mode 100644 new mode 100755 diff --git a/backend/student-assignment-microservice/Dockerfile b/backend/student-assignment-microservice/Dockerfile old mode 100644 new mode 100755 diff --git a/backend/student-assignment-microservice/pom.xml b/backend/student-assignment-microservice/pom.xml old mode 100644 new mode 100755 index 23a6b6384..70b258ce2 --- a/backend/student-assignment-microservice/pom.xml +++ b/backend/student-assignment-microservice/pom.xml @@ -16,6 +16,16 @@ + + org.apache.tika + tika-core + 2.7.0 + + + org.apache.tika + tika-parsers-standard-package + 2.7.0 + jakarta.platform jakarta.jakartaee-api diff --git a/backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/application/StudentAssignmentApplication.java b/backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/application/StudentAssignmentApplication.java old mode 100644 new mode 100755 diff --git a/backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/cors/CorsFilter.java b/backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/cors/CorsFilter.java old mode 100644 new mode 100755 index e751de1ba..87dc9431a --- a/backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/cors/CorsFilter.java +++ b/backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/cors/CorsFilter.java @@ -23,5 +23,7 @@ public void filter(ContainerRequestContext requestContext, responseContext.getHeaders().add( "Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD"); + responseContext.getHeaders().add("Access-Control-Expose-Headers", + "Content-Disposition"); } } \ No newline at end of file diff --git a/backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/FileDAO.java b/backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/FileDAO.java old mode 100644 new mode 100755 index 8f295a721..029d9ab67 --- a/backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/FileDAO.java +++ b/backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/daos/FileDAO.java @@ -1,17 +1,33 @@ package edu.oswego.cs.rest.daos; import com.ibm.websphere.jaxrs20.multipart.IAttachment; +import edu.oswego.cs.rest.database.AssignmentInterface; +import edu.oswego.cs.rest.database.DatabaseManager; import lombok.AllArgsConstructor; import lombok.Getter; +import org.apache.poi.xwpf.extractor.XWPFWordExtractor; +import org.apache.poi.xwpf.usermodel.LineSpacingRule; +import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.apache.tika.exception.TikaException; +import org.apache.tika.metadata.Metadata; +import org.apache.tika.parser.AutoDetectParser; +import org.apache.tika.parser.pdf.PDFParser; +import org.apache.tika.parser.ParseContext; +import org.apache.tika.sax.BodyContentHandler; +import org.xml.sax.SAXException; import java.io.*; +import java.util.Base64; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; @Getter @AllArgsConstructor public class FileDAO { private String filename; private String courseID; - private InputStream file; + private byte[] file; private int assignmentID; private String teamName; @@ -23,19 +39,51 @@ public class FileDAO { * @param courseID String * @param attachment form-data * @return FileDAO Instance - * @throws IOException File Corruption Exception + * @throws IOException File Corruption Exception or contains profanity + * @throws TikaException File Corruption Exception + * @throws SAXException File Corruption Exception */ - public static FileDAO fileFactory(String fileName, String courseID, IAttachment attachment, int assignmentID, String teamName) throws IOException { - InputStream inputStream = attachment.getDataHandler().getInputStream(); - return new FileDAO(fileName, courseID, inputStream, assignmentID, teamName); + public static FileDAO fileFactory(String fileName, String courseID, IAttachment attachment, int assignmentID, String teamName) throws IOException, TikaException, SAXException { + InputStream inputStream = new BufferedInputStream(attachment.getDataHandler().getInputStream()); + byte[] fileData = inputStream.readAllBytes(); + contentFilter(new ByteArrayInputStream(Base64.getDecoder().decode(new String(fileData))), fileName, courseID); + inputStream.mark(inputStream.available()); + return new FileDAO(fileName, courseID, fileData, assignmentID, teamName); } /** - * Writes the inputStream to a file. + * Checks the file for profanity + * + * @param stream InputStream + * @throws IOException File Corruption Exception or contains profanity + * @throws TikaException File Corruption Exception + * @throws SAXException File Corruption Exception */ - public void writeFile(String filePath) throws IOException { - OutputStream outputStream = new FileOutputStream(filePath); - outputStream.write(file.readAllBytes()); - outputStream.close(); + public static void contentFilter(InputStream stream, String fileName, String courseID) throws TikaException, IOException, SAXException { + //get the list of blocked words for the course + List blockedWords = new AssignmentInterface().getCourseProfanityWords(courseID); + String addedWords = ""; + if(blockedWords!=null && blockedWords.size()!=0){ + addedWords+=blockedWords.get(0); + for(int i = 1; i assignmentsCollection; + + static MongoCollection courseCollection; static MongoCollection teamsCollection; static MongoCollection submissionCollection; + static MongoCollection professorCollection; + static MongoCollection studentCollection; + + static ConcurrentHashMap assignmentLock = new ConcurrentHashMap<>(); static String reg = "/"; @@ -34,6 +55,9 @@ public AssignmentInterface() { assignmentsCollection = assignmentDatabase.getCollection("assignments"); submissionCollection = assignmentDatabase.getCollection("submissions"); teamsCollection = teamsDatabase.getCollection("teams"); + professorCollection = manager.getProfessorDB().getCollection("professors"); + courseCollection = manager.getCourseDB().getCollection("courses"); + studentCollection = manager.getStudentDB().getCollection("students"); } catch (WebApplicationException e) { throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("Failed to retrieve collections.").build()); @@ -41,16 +65,11 @@ public AssignmentInterface() { } public void writeToAssignment(FileDAO fileDAO) throws IOException { - String path = "assignments" + reg - + fileDAO.getCourseID() + reg - + fileDAO.getAssignmentID() + reg - + "team-submissions"; + makeSubmission(fileDAO.getCourseID(), fileDAO.getAssignmentID(), fileDAO.getFilename(), fileDAO.getTeamName(), fileDAO.getFile()); + } - if (!new File(path).exists()) { - new File(path).mkdirs(); - } - fileDAO.writeFile(path + reg + fileDAO.getFilename()); - makeSubmission(fileDAO.getCourseID(), fileDAO.getAssignmentID(), fileDAO.getFilename(), fileDAO.getTeamName()); + public List getCourseProfanityWords(String courseID) { + return courseCollection.find(eq("course_id", courseID)).first().getList("blocked_words", String.class); } public List getAllUserAssignments(String courseID, String studentID) { @@ -68,6 +87,12 @@ public List getAllUserAssignments(String courseID, String studentID) { return assignments; } + public Document getSpecifiedTeamSubmission(String courseID, int assignmentID, String teamID) { + Document teamSubmission = submissionCollection.find(and(eq("course_id", courseID), eq("assignment_id", assignmentID), eq("team_name", teamID), eq("type", "team_submission"))).first(); + if (teamSubmission == null) throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("Assignment does not exist").build()); + return teamSubmission; + } + public List getSpecifiedUserAssignment(String courseID, int assignmentID, String studentID) { MongoCursor query = submissionCollection.find(and(eq("course_id", courseID), eq("members", studentID), @@ -99,7 +124,7 @@ public List getAssignmentSubmissions(String courseID, int assignmentID return assignments; } - public void makeSubmission(String course_id, int assignment_id, String file_name, String teamName) { + public void makeSubmission(String course_id, int assignment_id, String file_name, String teamName, byte[] fileData) throws IOException { Document team = teamsCollection.find(and(eq("team_id", teamName), eq("course_id", course_id))).first(); Document assignment = assignmentsCollection.find(and( eq("course_id", course_id), @@ -108,7 +133,6 @@ public void makeSubmission(String course_id, int assignment_id, String file_name if (assignment == null) throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("this assignment was not found in this course").build()); String assignmentName = assignment.getString("assignment_name"); - System.out.println(team); if (team == null) { throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("this team was not found in this course").build()); @@ -119,29 +143,42 @@ public void makeSubmission(String course_id, int assignment_id, String file_name if (team.get("team_id", String.class) == null) { throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("team_id not defined").build()); } - String path = "assignments" + reg + course_id + reg + assignment_id + reg + "team_submissions"; Document new_submission = new Document() .append("course_id", course_id) .append("assignment_id", assignment_id) .append("assigment_name", assignmentName) .append("submission_name", file_name) + .append("submission_data", Base64.getDecoder().decode(new String(fileData))) .append("team_name", team.getString("team_id")) .append("members", team.getList("team_members", String.class)) .append("type", "team_submission") .append("grade", -1) - .append("path", path + reg + file_name) - .append("peer_review_due_date", assignment.get("peer_review_due_date")); - System.out.println(new_submission); + .append("peer_review_due_date", assignment.get("peer_review_due_date")) + .append("due_date", assignment.get("due_date")); + boolean submissionCheck = submissionCollection.find(and(eq("course_id", course_id), eq("assignment_id", assignment_id), eq("team_name", team.getString("team_id")))).iterator().hasNext(); + // do some sort of spinning lock here so that only one teammate at a time is submitting an assignment at a time + //key is assignment_ID+team_name+type + while(assignmentLock.containsKey(assignment_id+team.getString("team_id")+"team_submission")); + //set the lock + assignmentLock.put(assignment_id+team.getString("team_id")+"team_submission", true); if (submissionCheck) { Document extensionCheck = submissionCollection.find(and(eq("course_id", course_id), eq("assignment_id", assignment_id), eq("team_name", team.getString("team_id")))).first(); if (extensionCheck.getString("submission_name").equals(file_name)) { + //remove the lock + assignmentLock.remove(assignment_id+team.getString("team_id")+"team_submission"); throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("submission already exists").build()); } else { submissionCollection.deleteOne(extensionCheck); submissionCollection.insertOne(new_submission); + //remove the lock + assignmentLock.remove(assignment_id+team.getString("team_id")+"team_submission"); } - } else submissionCollection.insertOne(new_submission); + } else { + submissionCollection.insertOne(new_submission); + //remove the lock + assignmentLock.remove(assignment_id+team.getString("team_id")+"team_submission"); + } } public Document allAssignments(String course_id, String student_id) { @@ -240,6 +277,27 @@ public void makeFinalGrades(String courseID, int assignmentID) { throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("team: " + review + "'s review has no points.").build()); } else { total_points += team_review.get("grade", Integer.class); + + /* Insert the peer review score into each student in the team in the student collection */ + List teamMembers = team_review.getList("reviewed_team", String.class); + String teamName = team_review.getString("reviewed_team"); + double grade = team_review.getDouble("grade"); + String reviewedBy = team_review.getString("reviewed_by"); + int assignmentId = team_review.getInteger("assignment_id"); + teamMembers.forEach(studentId -> { + Bson studentQuery = eq("student_id", studentId); + Document student = studentCollection.find(studentQuery).first(); + List peerReviewGrades = student.getList("peer_reviews", Document.class); + Document newPeerReview = new Document() + .append("team_name", teamName) + .append("grade", grade) + .append("reviewed_by", reviewedBy) + .append("assignment_id", assignmentId); + peerReviewGrades.add(newPeerReview); + Bson updateRule = Updates.set("peer_reviews", peerReviewGrades); + UpdateOptions options = new UpdateOptions().upsert(true); + studentCollection.updateOne(studentQuery, updateRule, options); + }); } } } @@ -247,6 +305,21 @@ public void makeFinalGrades(String courseID, int assignmentID) { final_grade = ((int) (final_grade * 100) / 100.0); //round to the nearest 10th submissionCollection.findOneAndUpdate(team_submission, set("grade", final_grade)); assignmentsCollection.findOneAndUpdate(and(eq("course_id", courseID), eq("assignment_id", assignmentID)), set("grade_finalized", true)); + + /* Updating student's grade */ + for (String member : team_submission.getList("members", String.class)) { + List grades = new ArrayList<>(); + grades.addAll(studentCollection.find(eq("student_id", member)).first().getList("grades", Document.class)); + Document newAssignmentGrade = new Document() + .append("assignment_id", assignmentID) + .append("grade", final_grade) + .append("team_name", team_submission.getString("team_name")); + grades.add(newAssignmentGrade); + Bson filter = eq("student_id", member); + UpdateOptions options = new UpdateOptions().upsert(true); + Bson update = Updates.set("team_submissions", grades); + studentCollection.updateOne(filter, update, options); + } } } } @@ -270,4 +343,424 @@ public List getToDosByCourse(String courseID, String studentID) { } return assignments; } + + /** + * Ensures that a request carried out by a client that needs to access assignment information is actually + * the professor of the course in context + * @param securityContext + * @param courseID + */ + public void checkProfessor(SecurityContext securityContext, String courseID){ + String professorID = securityContext.getUserPrincipal().getName().split("@")[0]; + Document professorDocument = professorCollection.find(eq("professor_id", professorID)).first(); + if (professorDocument == null) throw new WebApplicationException(Response.status(Response.Status.NOT_FOUND).entity("This professor does not exist.").build()); + Document courseDocument = courseCollection.find(Filters.eq("course_id", courseID)).first(); + if(courseDocument == null) throw new WebApplicationException(Response.status(Response.Status.NOT_FOUND).entity("This course does not exist.").build()); + String professorIDActual = courseDocument.getString("professor_id"); + if (!professorIDActual.equals(professorID)) throw new WebApplicationException(Response.status(Response.Status.FORBIDDEN).entity("User principal name doesn't match").build()); + } + + + /** + * Inserts the file data related to a predefined assignment + * @param submissions + * @param zipFolder + */ + public void insertAssignmentFiles(MongoCursor submissions, String courseID, ZipOutputStream zipFolder) throws IOException { + while(submissions.hasNext()){ + //get the current submission + Document currentSubmission = submissions.next(); + //make the file path to save the submission in + String path; + String assignmentNameNoSpaces = currentSubmission.getString("assigment_name").replace(" ", "_"); + Binary submission_data = (Binary) currentSubmission.get("submission_data"); + if(currentSubmission.getString("type").equals("team_submission")){ + path = courseID+"/"+assignmentNameNoSpaces+"/"+currentSubmission.getString("team_name")+"/submission/"+currentSubmission.getString("submission_name"); + System.out.println(path); + ZipEntry curEntry = new ZipEntry(path); + zipFolder.putNextEntry(curEntry); + zipFolder.write(submission_data.getData(), 0, submission_data.getData().length); + zipFolder.closeEntry(); + }else{ + //if it is a peer review, save the data in the folder in both the to/from teams + String fromTeam = currentSubmission.getString("reviewed_by"); + String toTeam = currentSubmission.getString("reviewed_team"); + //from team first + path = courseID+"/"+assignmentNameNoSpaces+"/"+fromTeam+"/peer-reviews/given/"+currentSubmission.getString("submission_name"); + ZipEntry curEntryFromTeam = new ZipEntry(path); + zipFolder.putNextEntry(curEntryFromTeam); + zipFolder.write(submission_data.getData(), 0, submission_data.getData().length); + zipFolder.closeEntry(); + + + //to team last + path = courseID+"/"+assignmentNameNoSpaces+"/"+toTeam+"/peer-reviews/received/"+currentSubmission.getString("submission_name"); + ZipEntry curEntryToTeam = new ZipEntry(path); + zipFolder.putNextEntry(curEntryToTeam); + zipFolder.write(submission_data.getData(), 0, submission_data.getData().length); + zipFolder.closeEntry(); + } + } + + } + + /** + * Add all assignment files related to a specific student + * @param submissions + * @param courseID + * @param studentID + * @param zipFolder + * @throws IOException + */ + public void insertAssignmentFilesStudent(MongoCursor submissions, String courseID, String studentID, ZipOutputStream zipFolder) throws IOException { + while(submissions.hasNext()){ + //get the current submission + Document currentSubmission = submissions.next(); + //check and make sure the submission has the current studentID attached to the submitter. If it does not, just continue the loop + if(currentSubmission.getString("type").equals("team_submission")){ + List submission_members = currentSubmission.getList("members", String.class); + if (submission_members.stream().noneMatch(s -> s.equals(studentID))) { + continue; + } + }else{ + List submission_members = currentSubmission.getList("reviewed_by_members", String.class); + if (submission_members.stream().noneMatch(s -> s.equals(studentID))) { + continue; + } + } + + //make the file path to save the submission in + String path; + String assignmentNameNoSpaces = currentSubmission.getString("assigment_name").replace(" ", "_"); + Binary submission_data = (Binary) currentSubmission.get("submission_data"); + if(currentSubmission.getString("type").equals("team_submission")){ + path = courseID+"/"+assignmentNameNoSpaces+"/"+currentSubmission.getString("team_name")+"/submission/"+currentSubmission.getString("submission_name"); + System.out.println(path); + ZipEntry curEntry = new ZipEntry(path); + zipFolder.putNextEntry(curEntry); + zipFolder.write(submission_data.getData(), 0, submission_data.getData().length); + zipFolder.closeEntry(); + }else{ + //if it is a peer review, save the data in the folder in both the to/from teams + String fromTeam = currentSubmission.getString("reviewed_by"); + String toTeam = currentSubmission.getString("reviewed_team"); + //from team first + path = courseID+"/"+assignmentNameNoSpaces+"/"+fromTeam+"/peer-reviews/given/"+currentSubmission.getString("submission_name"); + ZipEntry curEntryFromTeam = new ZipEntry(path); + zipFolder.putNextEntry(curEntryFromTeam); + zipFolder.write(submission_data.getData(), 0, submission_data.getData().length); + zipFolder.closeEntry(); + + + //to team last + path = courseID+"/"+assignmentNameNoSpaces+"/"+toTeam+"/peer-reviews/received/"+currentSubmission.getString("submission_name"); + ZipEntry curEntryToTeam = new ZipEntry(path); + zipFolder.putNextEntry(curEntryToTeam); + zipFolder.write(submission_data.getData(), 0, submission_data.getData().length); + zipFolder.closeEntry(); + } + } + + } + + + /** + * Returns a zip file containing all completed assignment submissions + * @param courseID + * @return File + */ + public File aggregateSubmissions(String courseID) throws IOException { + //make the temporary zip folder + File tempFile = Files.createTempFile(courseID, ".zip").toFile(); + String tempPath = tempFile.getAbsolutePath(); + ZipOutputStream zipFolder = new ZipOutputStream(new FileOutputStream(tempPath)); + //get a list of all the assignments + for (Document currentAssignment : assignmentsCollection.find(eq("course_id", courseID))) { + //get the next assignment related to the current course + //get this to get the submissions quicker + Integer assignment_ID = currentAssignment.getInteger("assignment_id"); + //now iterate through the submissions for the assignment and put them in the proper place in the zip folder + insertAssignmentFiles(submissionCollection.find(eq("assignment_id", assignment_ID)).iterator(), courseID, zipFolder); + } + zipFolder.close(); + + //return the file with all the assignment data + return tempFile; + } + + /** + * Returns a zip file containing all completed assignment submissions for a particular assignment + * @param courseID + * @param assignment_ID + * @return File + */ + public File aggregateSubmissions(String courseID, Integer assignment_ID) throws IOException { + //make the temporary zip folder + File tempFile = Files.createTempFile(courseID, ".zip").toFile(); + String tempPath = tempFile.getAbsolutePath(); + ZipOutputStream zipFolder = new ZipOutputStream(new FileOutputStream(tempPath)); + insertAssignmentFiles(submissionCollection.find(eq("assignment_id", assignment_ID)).iterator(), courseID, zipFolder); + zipFolder.close(); + + //return the file with all the assignment data + return tempFile; + } + + + /** + * Returns a zip file containing all submissions related to the student with the given studentID + * @param courseID + * @param studentID + * @return + * @throws IOException + */ + public File aggregateSubmissionsStudent(String courseID, String studentID) throws IOException { + //make the temporary zip folder + File tempFile = Files.createTempFile(courseID+studentID, ".zip").toFile(); + String tempPath = tempFile.getAbsolutePath(); + ZipOutputStream zipFolder = new ZipOutputStream(new FileOutputStream(tempPath)); + //get a list of all the assignments + for (Document currentAssignment : assignmentsCollection.find(eq("course_id", courseID))) { + //get the next assignment related to the current course + //get this to get the submissions quicker + Integer assignment_ID = currentAssignment.getInteger("assignment_id"); + //now iterate through the submissions for the assignment and put them in the proper place in the zip folder + insertAssignmentFilesStudent(submissionCollection.find(eq("assignment_id", assignment_ID)).iterator(), courseID, studentID, zipFolder); + } + zipFolder.close(); + + //return the file with all the assignment data + return tempFile; + } + + /** + * Retrieves all assignments pertaining to a specific course. + * + * @param courseId id of the course + */ + public List getAllCourseAssignmentsAndPeerReviews(String courseId) { + + /* Get all individual grades on assignments for students in the course */ + Document course = courseCollection.find(eq("course_id", courseId)).first(); + if (course == null) { + throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("Course does not exist.").toString()); + } + List enrolledStudents = course.getList("students", String.class); + List submissions = new ArrayList<>(); + for (String studentId : enrolledStudents) { + List subs = submissionCollection.find( + and( + eq("course_id", courseId), + (eq("members", studentId)), + (eq("type", "team_submission")) + ) + ).into(new ArrayList<>()); + for (Document sub : subs) { + sub.append("student_id", studentId); + submissions.add(sub); + } + } + + /* Get all peer review scores for each team for assignments done by said team */ + List peerReviews = submissionCollection.find( + and( + eq("course_id", courseId), + (eq("type", "peer_review_submission")) + ) + ).into(new ArrayList<>()); + submissions.addAll(peerReviews); + return submissions; + } + + /** + * Updates an individual's score for an assignment or specific peer review. + * + * @param studentId id of the student whose grade is being updated. + * @param submissionId the id of the student's submission to be edited. + * @param newGrade the new grade for the student on the given assignment. + * @param type indicates if the grade being updated is for an assignment or a peer review. + * @throws WebApplicationException if the student does not exist or the student has no grade + * for the assignment. + */ + public void updateIndividualGrade(String studentId, int submissionId, String reviewingTeam, String newGrade, String type) { + /* Find the correct student */ + System.out.println(studentId); + Bson studentQuery = eq("student_id", studentId); + Document student = studentCollection.find(studentQuery).first(); + + /* Throw an exception if no such student exists. */ + if (student == null) { + throw new WebApplicationException("Student could not be found.", 300); + } + + /* Find the correct assignment to update for the student. */ + List assignmentGrades = student.getList("team_submissions", Document.class); + List peerReviewGrades = student.getList("peer_reviews", Document.class); + Document assignment = null; + + if (type.equalsIgnoreCase("teamSubmission")) { + for (Document studentAssignment : assignmentGrades) { + if (studentAssignment.getInteger("assignment_id") == submissionId) { + assignmentGrades.remove(studentAssignment); + assignment = new Document() + .append("assignment_id", studentAssignment.getInteger("assignment_id")) + .append("grade", Double.valueOf(newGrade)) + .append("team_name", studentAssignment.getString("team_name")); + assignmentGrades.add(assignment); + break; + } + } + + /* Throw an exception if the student does not have a grade for the specified assignment */ + if (assignment == null) { + throw new WebApplicationException("The student does not have a grade for the given assignment.", 402); + } + + /* Update the student's grade */ + Bson replaceStudentQuery = eq("student_id", studentId); + UpdateOptions options = new UpdateOptions().upsert(true); + Bson update = Updates.set("team_submissions", assignmentGrades); + } else if (type.equalsIgnoreCase("peerReview")) { + for (Document studentAssignment : peerReviewGrades) { + if (studentAssignment.getInteger("assignment_id") == submissionId && studentAssignment.getString("reviewed_by").equals(reviewingTeam)) { + peerReviewGrades.remove(studentAssignment); + assignment = new Document() + .append("assignment_id", studentAssignment.getInteger("assignment_id")) + .append("grade", Double.valueOf(newGrade)) + .append("reviewed_by", studentAssignment.getString("reviewed_by")) + .append("reviewed_team", studentAssignment.getString("reviewed_team")); + peerReviewGrades.add(assignment); + break; + } + } + + /* Throw an exception if the student does not have a grade for the specified assignment */ + if (assignment == null) { + throw new WebApplicationException("The student does not have a grade for the given assignment.", 404); + } + + /* Update the student's grade */ + Bson replaceStudentQuery = eq("student_id", studentId); + UpdateOptions options = new UpdateOptions().upsert(true); + Bson update = Updates.set("peer_reviews", peerReviewGrades); + studentCollection.updateOne(replaceStudentQuery, update, options); + } else { + throw new WebApplicationException("Invalid type given.", 400); + } + } + + /** + * Updates a team's grade for either an assignment or an individual peer review. + * + * @param reviewedTeamName the name of the team that was reviewed + * @param reviewingTeamName the name of the team who completed the peer review (if applicable) + * @param assignmentId id of the assignment whose grade is to be edited + * @param newGrade the new grade for the submission + * @param type indicating if it is a team submission or peer review to be edited + */ + public void updateTeamGrade(String reviewedTeamName, String reviewingTeamName, int assignmentId, String newGrade, String type) { + /* Find the correct submission */ + Bson assignmentQuery = null; + if (type.equalsIgnoreCase("teamSubmission")) { + assignmentQuery = and( + eq("team_name", reviewedTeamName), + eq("assignment_id", assignmentId), + eq("type", "team_submission") + ); + } else if (type.equalsIgnoreCase("peerReview")) { + assignmentQuery = and( + eq("reviewed_by", reviewingTeamName), + eq("reviewed_team", reviewedTeamName), + eq("assignment_id", assignmentId), + eq("type", "peer_review_submission") + ); + } else { + throw new WebApplicationException("Invalid type given.", 400); + } + Document assignment = submissionCollection.find(assignmentQuery).first(); + + /* Throw an exception if the given submission does not exist */ + if (assignment == null) { + throw new WebApplicationException("No such assignment exists.", 303); + } + + /* Update the grade in the submissions collection */ + Bson submissionUpdate = Updates.set("grade", newGrade); + submissionCollection.updateOne(assignmentQuery, submissionUpdate, new UpdateOptions().upsert(true)); + + /* Update the grade for each student in the students collection */ + if (type.equalsIgnoreCase("teamSubmission")) { + List teamMembers = assignment.getList("members", String.class); + teamMembers.forEach(teamMemberId -> { + Bson studentQuery = eq("student_id", teamMemberId); + Document student = studentCollection.find(studentQuery).first(); + assert student != null; + List teamSubmissionGrades = student.getList("team_submissions", Document.class); + Document teamSubmissionDocument = null; + for (Document teamSubmission : teamSubmissionGrades) { + if (teamSubmission.getInteger("assignment_id") == assignmentId && teamSubmission.getString("team_name").equals(reviewedTeamName)) { + teamSubmissionGrades.remove(teamSubmission); + teamSubmissionDocument = new Document() + .append("assignment_id", teamSubmission.getInteger("assignment_id")) + .append("grade", Double.valueOf(newGrade)) + .append("team_name", teamSubmission.getString("team_name")); + teamSubmissionGrades.add(teamSubmissionDocument); + break; + } + } + if (teamSubmissionDocument == null) { + throw new WebApplicationException("This student does not have a grade for the specified assignment", 301); + } + Bson update = Updates.set("team_submissions", teamSubmissionGrades); + UpdateOptions options = new UpdateOptions().upsert(true); + studentCollection.updateOne(studentQuery, update, options); + }); + } else { + List teamMembers = assignment.getList("reviewed_team_members", String.class); + teamMembers.forEach(teamMemberId -> { + Bson studentQuery = eq("student_id", teamMemberId); + Document student = studentCollection.find(studentQuery).first(); + assert student != null; + List peerReviewGrades = student.getList("peer_reviews", Document.class); + Document peerReviewDocument = null; + for (Document peerReview : peerReviewGrades) { + System.out.println("new one"); + System.out.println("Student ID: " + teamMemberId); + + System.out.println("Assignment ID"); + System.out.println(peerReview.getInteger("assignment_id") == assignmentId); + System.out.println(assignmentId); + System.out.println(peerReview.getInteger("assignment_id")); + + System.out.println("Reviewed By"); + System.out.println(peerReview.getString("reviewed_by").equalsIgnoreCase(reviewingTeamName)); + System.out.println(reviewingTeamName); + System.out.println(peerReview.getString("reviewed_by")); + + System.out.println("Team name"); + System.out.println(peerReview.getString("reviewed_team").equalsIgnoreCase(reviewedTeamName)); + System.out.println(reviewedTeamName); + System.out.println(peerReview.getString("reviewed_team")); + + if ((peerReview.getInteger("assignment_id") == assignmentId) && (peerReview.getString("reviewed_by").equalsIgnoreCase(reviewingTeamName)) + && (peerReview.getString("reviewed_team").equalsIgnoreCase(reviewedTeamName))) { + peerReviewGrades.remove(peerReview); + peerReviewDocument = new Document() + .append("assignment_id", peerReview.getInteger("assignment_id")) + .append("grade", Double.valueOf(newGrade)) + .append("team_name", peerReview.getString("reviewed_team")) + .append("reviewed_by", reviewingTeamName); + peerReviewGrades.add(peerReviewDocument); + break; + } + } + if (peerReviewDocument == null) { + throw new WebApplicationException("This student does not have a grade for the specified assignment", 300); + } + Bson update = Updates.set("peer_reviews", peerReviewGrades); + UpdateOptions options = new UpdateOptions().upsert(true); + studentCollection.updateOne(studentQuery, update, options); + }); + } + } } \ No newline at end of file diff --git a/backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/database/DatabaseManager.java b/backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/database/DatabaseManager.java old mode 100644 new mode 100755 diff --git a/backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/resources/studentAssignmentResource.java b/backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/resources/studentAssignmentResource.java old mode 100644 new mode 100755 index 2e20bf006..fe469391e --- a/backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/resources/studentAssignmentResource.java +++ b/backend/student-assignment-microservice/src/main/java/edu/oswego/cs/rest/resources/studentAssignmentResource.java @@ -1,25 +1,34 @@ + package edu.oswego.cs.rest.resources; import com.ibm.websphere.jaxrs20.multipart.IAttachment; import edu.oswego.cs.rest.daos.FileDAO; import edu.oswego.cs.rest.database.AssignmentInterface; +import org.apache.tika.exception.TikaException; import org.bson.Document; +import org.bson.types.Binary; +import org.eclipse.microprofile.openapi.annotations.parameters.RequestBody; +import org.xml.sax.SAXException; import javax.annotation.security.DenyAll; import javax.annotation.security.RolesAllowed; import javax.ws.rs.*; +import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import javax.ws.rs.core.SecurityContext; import java.io.File; import java.io.IOException; -import java.util.Arrays; +import java.nio.file.Files; +import java.util.Base64; import java.util.List; -import java.util.Optional; @Path("student") @DenyAll public class studentAssignmentResource { + //change + /** * Retrieves the assignment from its location on the server and passes it to the front end via the request header * as a stream. The request entity passes an InputStream[] with the assignment files in each array. @@ -37,17 +46,18 @@ public Response downloadAssignment( @PathParam("courseID") String courseID, @PathParam("assignmentID") int assignmentID, @PathParam("teamName") String teamName) { - - String path = "assignments" + "/" + courseID + "/" + assignmentID + "/" + "team-submissions" + "/"; - Optional file = Arrays.stream(new File(path).listFiles()).filter(f -> f.getName().contains(teamName)).findFirst(); - if (file.isEmpty()) + Document teamSubmission = new AssignmentInterface().getSpecifiedTeamSubmission(courseID, assignmentID, teamName); + if (teamSubmission == null) return Response.status(Response.Status.BAD_REQUEST).entity("Assignment Does Not Exist").build(); - Response.ResponseBuilder response = Response.ok(file.get()); - response.header("Content-Disposition", "attachment; filename=" + file.get().getName()); + Binary fileData = (Binary) teamSubmission.get("submission_data"); + Response.ResponseBuilder response = Response.ok(Base64.getEncoder().encode(fileData.getData())); + response.header("Content-Disposition", "attachment; filename=" + teamSubmission.get("submission_name")); return response.build(); } + //change + /** * File is uploaded as form-data and passed back as a List * The attachment is processed in FileDao.FileFactory, which reads and @@ -60,21 +70,26 @@ public Response downloadAssignment( */ @POST @RolesAllowed({"professor", "student"}) - @Produces({MediaType.MULTIPART_FORM_DATA, "application/pdf"}) + @Consumes(MediaType.MULTIPART_FORM_DATA) + @Produces(MediaType.MULTIPART_FORM_DATA) @Path("/courses/{courseID}/assignments/{assignmentID}/{teamName}/upload") public Response addFileToAssignment( List attachments, @PathParam("courseID") String courseID, @PathParam("assignmentID") int assignmentID, @PathParam("teamName") String teamName - ) throws IOException { + ) throws TikaException, SAXException { for (IAttachment attachment : attachments) { if (attachment == null) continue; String fileName = attachment.getDataHandler().getName(); String fileExt = fileName.substring(fileName.indexOf(".")); if (!fileName.endsWith("pdf") && !fileName.endsWith("docx")) return Response.status(Response.Status.UNSUPPORTED_MEDIA_TYPE).build(); - new AssignmentInterface().writeToAssignment(FileDAO.fileFactory(teamName.concat(fileExt), courseID, attachment, assignmentID, teamName)); + try { + new AssignmentInterface().writeToAssignment(FileDAO.fileFactory(teamName.concat(fileExt), courseID, attachment, assignmentID, teamName)); + } catch (IOException e) { + return Response.status(Response.Status.BAD_REQUEST).entity(e.getMessage()).build(); + } } return Response.status(Response.Status.OK).entity("Successfully uploaded assignment.").build(); } @@ -128,4 +143,160 @@ public Response viewSubmissions( public Response viewToDos(@PathParam("courseID") String courseID, @PathParam("student_id") String student_id) { return Response.status(Response.Status.OK).entity(new AssignmentInterface().getToDosByCourse(courseID, student_id)).build(); } -} \ No newline at end of file + + /** + * @param courseID + * @return String + *

+ * Returns a Base64 string of the zip file containing all submission/peer review information relative to all the assignments + * in a given course that the frontend can decode and get a zip file from. Note that if no peer reviews are added to the assignment + * the Peer-Reviews folder won't be made. + * Structure of the unzipped file goes: + * + * | + * | + * L-> + * | + * | + * L-> + * | + * | + * L-> ---> + * L-> + * | + * | + * L-> ---> + * L-> ---> + */ + @GET + @RolesAllowed("professor") + @Path("{course_id}/course-assignment-files") + @Produces({MediaType.MULTIPART_FORM_DATA, MediaType.APPLICATION_OCTET_STREAM}) + public Response getAllCourseDocuments(@Context SecurityContext securityContext, @PathParam("course_id") String courseID) throws IOException { + //make sure the user is the professor of the course + new AssignmentInterface().checkProfessor(securityContext, courseID); + //create the zip file + File zipFile = new AssignmentInterface().aggregateSubmissions(courseID); + //create the base64 representation + Response.ResponseBuilder response = Response.ok(Base64.getEncoder().encode(Files.readAllBytes(zipFile.toPath()))); + response.header("Content-Disposition", "attachment; filename=" + courseID + ".zip"); + //delete the temp file + zipFile.delete(); + //send back the zip file Base64 + return response.build(); + } + + /** + * @param courseID + * @return String + *

+ * Returns a Base64 string of the zip file containing all submission/peer review information relative to all the assignments + * in a given course that the frontend can decode and get a zip file from. Note that if no peer reviews are added to the assignment + * the Peer-Reviews folder won't be made. + * Structure of the unzipped file goes: + * + * | + * | + * L-> + * | + * | + * | + * L-> ---> + * L-> + * | + * | + * L-> ---> + * L-> ---> + */ + @GET + @RolesAllowed("professor") + @Path("{course_id}/{student_id}/course-assignment-files-student") + @Produces({MediaType.MULTIPART_FORM_DATA, MediaType.APPLICATION_OCTET_STREAM}) + public Response getAllCourseDocumentsStudent(@Context SecurityContext securityContext, @PathParam("course_id") String courseID, @PathParam("student_id") String studentID) throws IOException { + //make sure the user is the professor of the course + System.out.println("here we are"); + new AssignmentInterface().checkProfessor(securityContext, courseID); + //create the zip file + File zipFile = new AssignmentInterface().aggregateSubmissionsStudent(courseID, studentID); + //create the base64 representation + Response.ResponseBuilder response = Response.ok(Base64.getEncoder().encode(Files.readAllBytes(zipFile.toPath()))); + response.header("Content-Disposition", "attachment; filename=" + courseID + "-" + studentID + "Submissions.zip"); + //delete the temp file + zipFile.delete(); + //send back the zip file Base64 + return response.build(); + } + + /** + * @param courseID + * @param assignmentID + * @return String + *

+ * Returns a Base64 string of the zip file containing all submission/peer review information relative to the given assignment + * that the frontend can decode and get a zip file from. Note that if no peer reviews are added to the assignment + * the Peer-Reviews folder won't be made. + * Structure of unzipped file goes: + *

+ * + * | + * | + * L-> + * | + * | + * L-> + * | + * | + * L-> ---> + * L-> + * | + * | + * L-> ---> + * L-> ---> + */ + @GET + @RolesAllowed("professor") + @Path("{assignment_id}/{course_id}/course-assignment-files") + @Produces({MediaType.MULTIPART_FORM_DATA, MediaType.APPLICATION_OCTET_STREAM}) + public Response getAssignmentDocuments(@Context SecurityContext securityContext, @PathParam("course_id") String courseID, @PathParam("assignment_id") String assignmentID) throws IOException { + //make sure the user is the professor of the course + new AssignmentInterface().checkProfessor(securityContext, courseID); + //create the zip file + File zipFile = new AssignmentInterface().aggregateSubmissions(courseID, Integer.parseInt(assignmentID)); + //create the base64 representation + Response.ResponseBuilder response = Response.ok(Base64.getEncoder().encode(Files.readAllBytes(zipFile.toPath()))); + response.header("Content-Disposition", "attachment; filename=" + courseID + ".zip"); + //delete the temp file + zipFile.delete(); + //send back the zip file Base64 + return response.build(); + } + + @GET + @RolesAllowed("professor") + @Path("{courseID}/all-grades") + @Produces(MediaType.APPLICATION_JSON) + public Response getAllAssignmentsAndPeerReviews(@PathParam("courseID") String courseId) { + List docs = new AssignmentInterface().getAllCourseAssignmentsAndPeerReviews(courseId); + return Response.status(Response.Status.OK).entity(docs).build(); + } + + @POST + @RolesAllowed("professor") + @Path("edit/{assignmentId}/{teamName}/{type}/{reviewedBy}/{newGrade}") + @Produces(MediaType.APPLICATION_JSON) + public Response updateTeamGrade(@PathParam("assignmentId") int assignmentId, @PathParam("teamName") String teamName, @PathParam("type") String type, + @PathParam("reviewedBy") String reviewedBy, @PathParam("newGrade") String newGrade) { + new AssignmentInterface().updateTeamGrade(teamName, reviewedBy, assignmentId, newGrade, type); + return Response.status(201).build(); + } + + @POST + @RolesAllowed("professor") + @Path("edit/{studentId}/{assignmentId}/{reviewedBy}/{type}/{newGrade}") + @Produces(MediaType.APPLICATION_JSON) + public Response updateIndividualGrade(@PathParam("newGrade") String newGrade, @PathParam("studentId") String studentId, @PathParam("assignmentId") int assignmentId, + @PathParam("type") String type, @PathParam("reviewedBy") String reviewedBy) { + new AssignmentInterface().updateIndividualGrade(studentId, assignmentId, reviewedBy,newGrade, type); + return Response.status(201).build(); + } +} diff --git a/backend/student-assignment-microservice/src/main/liberty/config/server.xml b/backend/student-assignment-microservice/src/main/liberty/config/server.xml old mode 100644 new mode 100755 diff --git a/backend/student-assignment-microservice/src/test/java/StudentAssignmentTests.java b/backend/student-assignment-microservice/src/test/java/StudentAssignmentTests.java old mode 100644 new mode 100755 index 3f7aaa432..bdd48061f --- a/backend/student-assignment-microservice/src/test/java/StudentAssignmentTests.java +++ b/backend/student-assignment-microservice/src/test/java/StudentAssignmentTests.java @@ -1,10 +1,351 @@ +import com.mongodb.*; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoCursor; +import com.mongodb.client.model.Filters; +import edu.oswego.cs.rest.database.AssignmentInterface; +import org.bson.Document; import org.junit.jupiter.api.*; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import javax.json.bind.Jsonb; import javax.json.bind.JsonbBuilder; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; +import java.util.Arrays; +import static com.mongodb.client.model.Filters.and; +import static com.mongodb.client.model.Filters.eq; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +//please use the default db setup outlined in the "Database Default for Testing" file +//TC|ID 1.1 = TCIDOnePointOne is the naming convention for now +public class StudentAssignmentTests { + + AssignmentInterface assignInter = new AssignmentInterface(); + MongoClient mongoClient, mongoClient2, mongoClient3, mongoClient4, mongoClient5; + MongoCollection teamCollection, assignmentCollection, submissionsCollection; + + +//------------------------------------------------------------------------------------------------------------------------------ + + //To test: + //public void makeSubmission(String course_id, int assignment_id, String file_name, String teamName) + + @Test + public void makeSubmissionTCIDOnePointOne(){//valid course_id + + //gives access to db + //------------------------------------------------------------------------------------------------------------------------------ + //from env file + String username = "root"; + String database = "admin"; + String password = "password"; + //Create credentials + MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray()); + MongoClientOptions options = MongoClientOptions.builder() + .writeConcern(WriteConcern.JOURNALED).build(); + + mongoClient4 = new MongoClient(new ServerAddress("localhost", 27040), Arrays.asList(mongoCredential), options); + submissionsCollection = mongoClient4.getDatabase("cpr").getCollection("submissions"); + //------------------------------------------------------------------------------------------------------------------------------ + + String course_id= "CSC-480-46374-SPR-2023"; + int assignment_id= 1; + String file_name= "file1.pdf";//to add to submissions Collection + String teamName= "Team1";//name of team that submitted the file +// assignInter.makeSubmission(course_id,assignment_id,file_name,teamName);//call method to be tested + + //check if file was added to submissions Collection + + MongoCursor query = submissionsCollection.find(and( + eq("course_id", course_id), + eq("assignment_id", assignment_id), + eq("submission_name", file_name), + eq("team_name", teamName))).iterator(); + Document docFromQuery= query.next();//gets the Document returned by the query + String queriedSubmissionName= docFromQuery.get("submission_name",file_name); + + Document expectedDoc= new Document() + .append("course_id", course_id) + .append("assignment_id", assignment_id) + .append("submission_name", file_name) + .append("team_name", teamName); + String expectedSubmissionName= expectedDoc.get("submission_name",file_name); + + assertEquals(expectedSubmissionName,queriedSubmissionName); + + //remove the change we made to the db (ie. remove the Document we just added) + submissionsCollection.deleteOne(and(Filters. + eq("course_id", course_id), + eq("assignment_id", assignment_id), + eq("submission_name", file_name), + eq("team_name", teamName))); + + + } + + @Test + public void makeSubmissionTCIDOnePointA(){//null course_id + + //gives access to db + //------------------------------------------------------------------------------------------------------------------------------ + //from env file + String username = "root"; + String database = "admin"; + String password = "password"; + //Create credentials + MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray()); + MongoClientOptions options = MongoClientOptions.builder() + .writeConcern(WriteConcern.JOURNALED).build(); + + mongoClient4 = new MongoClient(new ServerAddress("localhost", 27040), Arrays.asList(mongoCredential), options); + submissionsCollection = mongoClient4.getDatabase("cpr").getCollection("submissions"); + //------------------------------------------------------------------------------------------------------------------------------ + + String course_id= null; + int assignment_id= 1; + String file_name= "file1.pdf";//to add to submissions Collection + String teamName= "Team1";//name of team that submitted the file + + //asserts that a javax.ws.rs.WebApplicationException is thrown +// Exception exception = assertThrows( +// javax.ws.rs.WebApplicationException.class, +// () -> assignInter.makeSubmission(course_id,assignment_id,file_name,teamName));//call method to be tested + + } + + @ParameterizedTest + @ValueSource(ints = {-1, 0}) + public void makeSubmissionTCIDTwoPointAB() {//-1,0 assignment_id + + //gives access to db + //------------------------------------------------------------------------------------------------------------------------------ + //from env file + String username = "root"; + String database = "admin"; + String password = "password"; + //Create credentials + MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray()); + MongoClientOptions options = MongoClientOptions.builder() + .writeConcern(WriteConcern.JOURNALED).build(); + + mongoClient4 = new MongoClient(new ServerAddress("localhost", 27040), Arrays.asList(mongoCredential), options); + submissionsCollection = mongoClient4.getDatabase("cpr").getCollection("submissions"); + //------------------------------------------------------------------------------------------------------------------------------ + + String course_id ="CSC-480-46374-SPR-2023"; + int assignment_id = -1; + String file_name = "file1.pdf";//to add to submissions Collection + String teamName = "Team1";//name of team that submitted the file + + //asserts that a javax.ws.rs.WebApplicationException is thrown +// Exception exception = assertThrows( +// javax.ws.rs.WebApplicationException.class, +// () -> assignInter.makeSubmission(course_id,assignment_id,file_name,teamName));//call method to be tested + + } + + //does not pass when run with makeSubmissionTCIDThreePointA(); + //passes after resetting db and not running together with makeSubmissionTCIDThreePointA() + @Test + public void makeSubmissionTCIDThreePointOne(){//valid file_name + + //gives access to db + //------------------------------------------------------------------------------------------------------------------------------ + //from env file + String username = "root"; + String database = "admin"; + String password = "password"; + //Create credentials + MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray()); + MongoClientOptions options = MongoClientOptions.builder() + .writeConcern(WriteConcern.JOURNALED).build(); + + mongoClient4 = new MongoClient(new ServerAddress("localhost", 27040), Arrays.asList(mongoCredential), options); + submissionsCollection = mongoClient4.getDatabase("cpr").getCollection("submissions"); + //------------------------------------------------------------------------------------------------------------------------------ + + String course_id= "CSC-480-46374-SPR-2023"; + int assignment_id= 1; + String file_name= "file1.csv";//to add to submissions Collection + String teamName= "Team1";//name of team that submitted the file +// assignInter.makeSubmission(course_id,assignment_id,file_name,teamName);//call method to be tested + + //check if file was added to submissions Collection + + MongoCursor query = submissionsCollection.find(and( + eq("course_id", course_id), + eq("assignment_id", assignment_id), + eq("submission_name", file_name), + eq("team_name", teamName))).iterator(); + Document docFromQuery= query.next();//gets the Document returned by the query + String queriedSubmissionName= docFromQuery.get("submission_name",file_name); + + Document expectedDoc= new Document() + .append("course_id", course_id) + .append("assignment_id", assignment_id) + .append("submission_name", file_name) + .append("team_name", teamName); + String expectedSubmissionName= expectedDoc.get("submission_name",file_name); + + assertEquals(expectedSubmissionName,queriedSubmissionName); + + //remove the change we made to the db (ie. remove the Document we just added) + submissionsCollection.deleteOne(and(Filters. + eq("course_id", course_id), + eq("assignment_id", assignment_id), + eq("submission_name", file_name), + eq("team_name", teamName))); + + + } + + /* @Test + public void makeSubmissionTCIDThreePointA(){//null file_name + + //gives access to db + //------------------------------------------------------------------------------------------------------------------------------ + //from env file + String username = "root"; + String database = "admin"; + String password = "password"; + //Create credentials + MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray()); + MongoClientOptions options = MongoClientOptions.builder() + .writeConcern(WriteConcern.JOURNALED).build(); + + mongoClient4 = new MongoClient(new ServerAddress("localhost", 27040), Arrays.asList(mongoCredential), options); + submissionsCollection = mongoClient4.getDatabase("cpr").getCollection("submissions"); + //------------------------------------------------------------------------------------------------------------------------------ + + String course_id= "CSC-480-46374-SPR-2023"; + int assignment_id= 1; + String file_name= null;//to add to submissions Collection + String teamName= "Team1";//name of team that submitted the file + + //asserts that a javax.ws.rs.WebApplicationException is thrown + Exception exception = assertThrows( + javax.ws.rs.WebApplicationException.class, + () -> assignInter.makeSubmission(course_id,assignment_id,file_name,teamName));//call method to be tested + + }*/ + + @Test + public void makeSubmissionTCIDFourPointA(){//null teamName + //gives access to db + //------------------------------------------------------------------------------------------------------------------------------ + //from env file + String username = "root"; + String database = "admin"; + String password = "password"; + //Create credentials + MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray()); + MongoClientOptions options = MongoClientOptions.builder() + .writeConcern(WriteConcern.JOURNALED).build(); + + mongoClient4 = new MongoClient(new ServerAddress("localhost", 27040), Arrays.asList(mongoCredential), options); + submissionsCollection = mongoClient4.getDatabase("cpr").getCollection("submissions"); + //------------------------------------------------------------------------------------------------------------------------------ + + String course_id= "CSC-480-46374-SPR-2023"; + int assignment_id= 1; + String file_name= "file1.pdf";//to add to submissions Collection + String teamName= null;//name of team that submitted the file + + //asserts that a javax.ws.rs.WebApplicationException is thrown +// Exception exception = assertThrows( +// javax.ws.rs.WebApplicationException.class, +// () -> assignInter.makeSubmission(course_id,assignment_id,file_name,teamName));//call method to be tested + + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +//The following is code from last year: +/* // DISCLAIMER: Don't run all the tests at the same time. You'll likely screw up the database and fail the tests in some way. // Read through the tests to see what they create, update and delete before you run them please. @@ -60,3 +401,5 @@ public void studentDownloadFileTest() { } } +*/ + diff --git a/backend/student-peer-review-assignment-microservice/.dockerignore b/backend/student-peer-review-assignment-microservice/.dockerignore old mode 100644 new mode 100755 diff --git a/backend/student-peer-review-assignment-microservice/Dockerfile b/backend/student-peer-review-assignment-microservice/Dockerfile old mode 100644 new mode 100755 diff --git a/backend/student-peer-review-assignment-microservice/pom.xml b/backend/student-peer-review-assignment-microservice/pom.xml old mode 100644 new mode 100755 diff --git a/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/application/RestApplication.java b/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/application/RestApplication.java old mode 100644 new mode 100755 diff --git a/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/cors/CorsFilter.java b/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/cors/CorsFilter.java old mode 100644 new mode 100755 index ab7d6e54a..a60fb7f86 --- a/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/cors/CorsFilter.java +++ b/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/cors/CorsFilter.java @@ -11,17 +11,19 @@ public class CorsFilter implements ContainerResponseFilter { @Override - public void filter(ContainerRequestContext requestContext, - ContainerResponseContext responseContext) throws IOException { - responseContext.getHeaders().add( - "Access-Control-Allow-Origin", "*"); - responseContext.getHeaders().add( - "Access-Control-Allow-Credentials", "true"); - responseContext.getHeaders().add( - "Access-Control-Allow-Headers", - "origin, content-type, accept, authorization"); - responseContext.getHeaders().add( - "Access-Control-Allow-Methods", - "GET, POST, PUT, DELETE, OPTIONS, HEAD"); + public void filter(ContainerRequestContext requestContext, + ContainerResponseContext responseContext) throws IOException { + responseContext.getHeaders().add( + "Access-Control-Allow-Origin", "*"); + responseContext.getHeaders().add( + "Access-Control-Allow-Credentials", "true"); + responseContext.getHeaders().add( + "Access-Control-Allow-Headers", + "origin, content-type, accept, authorization"); + responseContext.getHeaders().add( + "Access-Control-Allow-Methods", + "GET, POST, PUT, DELETE, OPTIONS, HEAD"); + responseContext.getHeaders().add("Access-Control-Expose-Headers", + "Content-Disposition"); } } \ No newline at end of file diff --git a/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/database/DatabaseManager.java b/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/database/DatabaseManager.java old mode 100644 new mode 100755 diff --git a/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/database/PeerReviewAssignmentInterface.java b/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/database/PeerReviewAssignmentInterface.java old mode 100644 new mode 100755 index a03795bf2..b545252b0 --- a/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/database/PeerReviewAssignmentInterface.java +++ b/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/database/PeerReviewAssignmentInterface.java @@ -1,28 +1,36 @@ package edu.oswego.cs.database; -import com.ibm.websphere.jaxrs20.multipart.IAttachment; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; import com.mongodb.client.MongoDatabase; -import edu.oswego.cs.daos.FileDAO; +import com.mongodb.client.model.UpdateOptions; +import com.mongodb.client.model.Updates; +import com.mongodb.util.JSON; import org.bson.Document; +import org.bson.conversions.Bson; +import org.bson.types.Binary; import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.Response; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; +import javax.ws.rs.core.SecurityContext; +import java.io.*; import java.util.*; +import java.text.DecimalFormat; +import java.util.concurrent.ConcurrentHashMap; import static com.mongodb.client.model.Filters.and; import static com.mongodb.client.model.Filters.eq; import static com.mongodb.client.model.Updates.set; +import com.mongodb.client.FindIterable; public class PeerReviewAssignmentInterface { private final MongoCollection teamCollection; private final MongoCollection assignmentCollection; private final MongoCollection submissionsCollection; + private final MongoCollection studentCollection; + private final MongoCollection professorCollection; + + static ConcurrentHashMap peerReviewLock = new ConcurrentHashMap(); MongoDatabase assignmentDB; public PeerReviewAssignmentInterface() { @@ -33,12 +41,15 @@ public PeerReviewAssignmentInterface() { teamCollection = teamDB.getCollection("teams"); assignmentCollection = assignmentDB.getCollection("assignments"); submissionsCollection = assignmentDB.getCollection("submissions"); + professorCollection = databaseManager.getProfessorDB().getCollection("professors"); + studentCollection = databaseManager.getStudentDB().getCollection("students"); + } catch (WebApplicationException e) { throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("Failed to retrieve collections.").build()); } } - public void addPeerReviewSubmission(String course_id, int assignment_id, String srcTeamName, String destinationTeam, String fileName, int grade) { + public void addPeerReviewSubmission(String course_id, int assignment_id, String srcTeamName, String destinationTeam, String fileName, int grade, InputStream fileData) throws IOException { Document reviewedByTeam = teamCollection.find(eq("team_id", srcTeamName)).first(); Document reviewedTeam = teamCollection.find(eq("team_id", destinationTeam)).first(); Document assignment = assignmentCollection.find(and(eq("course_id", course_id), eq("assignment_id", assignment_id))).first(); @@ -64,17 +75,52 @@ public void addPeerReviewSubmission(String course_id, int assignment_id, String .append("assignment_id", assignment_id) .append("assigment_name", assignment.getString("assignment_name")) .append("submission_name", fileName) + .append("submission_data", Base64.getDecoder().decode(new String(fileData.readAllBytes()))) .append("reviewed_by", reviewedByTeam.getString("team_id")) .append("reviewed_by_members", reviewedByTeam.getList("team_members", String.class)) .append("reviewed_team", reviewedTeam.getString("team_id")) .append("reviewed_team_members", reviewedTeam.getList("team_members", String.class)) .append("type", "peer_review_submission") - .append("grade", grade) - .append("path", path + reg + fileName); + .append("peer_review_due_date", assignment.get("peer_review_due_date")) + .append("due_date", assignment.getString("due_date")) + .append("grade", grade); + List teamMembers = reviewedTeam.getList("team_members", String.class); + for (String member : teamMembers) { + Document newStudentSubmission = new Document() + .append("assignment_id", assignment_id) + .append("reviewed_team", reviewedTeam.getString("team_id")) + .append("reviewed_by", reviewedByTeam.getString("team_id")) + .append("grade", grade); + Bson studentQuery = eq("student_id", member); + Document student = studentCollection.find(studentQuery).first(); + List peerReviews = student.getList("peer_reviews", Document.class); + peerReviews.add(newStudentSubmission); + Bson update = Updates.set("peer_reviews", peerReviews); + UpdateOptions options = new UpdateOptions().upsert(true); + studentCollection.updateOne(studentQuery, update, options); + } + //wait for the lock to be dropped. + //key is assignment_id+reviewed_by_team_id+reviewed_team+"peer_review_submission" + while (peerReviewLock.containsKey(assignment_id + reviewedByTeam.getString("team_id") + reviewedTeam.getString("team_id") + "peer_review_submission")) + ; + //lock the submission + peerReviewLock.put(assignment_id + reviewedByTeam.getString("team_id") + reviewedTeam.getString("team_id") + "peer_review_submission", true); if (submissionsCollection.find(new_submission).iterator().hasNext()) { + //let go of the lock + peerReviewLock.remove(assignment_id + reviewedByTeam.getString("team_id") + reviewedTeam.getString("team_id") + "peer_review_submission"); throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("submission already exists").build()); } else submissionsCollection.insertOne(new_submission); + //remove the lock + peerReviewLock.remove(assignment_id + reviewedByTeam.getString("team_id") + reviewedTeam.getString("team_id") + "peer_review_submission"); + // Store reviewed_team_members and teams in "teams" collection + teamCollection.updateOne( + eq("team_id", reviewedTeam.getString("team_id")), + new Document("$set", new Document() + .append("reviewed_team", reviewedByTeam.getString("team_id")) + .append("reviewed_members", reviewedByTeam.getList("team_members", String.class)))); + System.out.println(reviewedTeam.getString("team_id")); + System.out.println(reviewedByTeam.getList("team_members", String.class)); addCompletedTeam(course_id, assignment_id, srcTeamName, destinationTeam); } @@ -103,36 +149,37 @@ public void addCompletedTeam(String courseID, int assignmentID, String sourceTea } } if (currentNumOfReviews == (int) assignmentDocument.get("reviews_per_team")) { - makeFinalGrade(courseID, assignmentID, targetTeam); + //makeFinalGrade(courseID, assignmentID, targetTeam); + redoneMakeFinalGrade(courseID, assignmentID, targetTeam); } - if (assignmentDocument.get("completed_teams") == assignmentDocument.get("assigned_teams")) { - assignmentCollection.findOneAndUpdate(and(eq("course_id", courseID), eq("assignment_id", assignmentID)), set("grade_finalized", true)); + + //check if all team grades have been finalized + int num_of_reviews_needed = completedTeams.keySet().size()*assignmentDocument.getInteger("reviews_per_team"); + int total_num_of_reviews = 0; + for (Map.Entry> entry : completedTeams.entrySet()) { + List list = entry.getValue(); + total_num_of_reviews+=list.size(); } - } - public void uploadPeerReview(String courseID, int assignmentID, String srcTeamName, String destTeamName, IAttachment attachment) throws IOException { - FileDAO fileDAO = FileDAO.fileFactory(courseID, srcTeamName, destTeamName, assignmentID, attachment); - String path = "assignments" + "/" + courseID + "/" + assignmentID + "/peer-review-submissions/"; - if (!new File(path).exists()) { - new File(path).mkdirs(); + + if (total_num_of_reviews==num_of_reviews_needed) { + assignmentCollection.findOneAndUpdate(and(eq("course_id", courseID), eq("assignment_id", assignmentID)), set("grade_finalized", true)); } - OutputStream outputStream = new FileOutputStream(path + fileDAO.fileName + ".pdf"); - outputStream.write(fileDAO.inputStream.readAllBytes()); - outputStream.close(); } - public File downloadFinishedPeerReview(String courseID, int assignmentID, String srcTeamName, String destTeamName) { - String path = "assignments/" + courseID + "/" + assignmentID + "/peer-review-submissions/"; - if (!new File(path).exists()) - throw new WebApplicationException("Peer reviews do not exist for this course yet."); + public String downloadFinishedPeerReviewName(String courseID, int assignmentID, String srcTeamName, String destTeamName) { + Document submittedPeerReview = submissionsCollection.find(and(eq("type", "peer_review_submission"), eq("assignment_id", assignmentID), eq("course_id", courseID), eq("reviewed_by", srcTeamName), eq("reviewed_team", destTeamName))).first(); + if (submittedPeerReview == null) + throw new WebApplicationException("No peer review from team " + srcTeamName + " for " + destTeamName); + return (String) submittedPeerReview.get("submission_name"); - Optional file = Arrays.stream(new File(path).listFiles()) - .filter(f -> f.getName().contains(srcTeamName) && f.getName().contains(destTeamName)) - .findFirst(); + } - if (file.isEmpty()) + public Binary downloadFinishedPeerReview(String courseID, int assignmentID, String srcTeamName, String destTeamName) { + Document submittedPeerReview = submissionsCollection.find(and(eq("type", "peer_review_submission"), eq("assignment_id", assignmentID), eq("course_id", courseID), eq("reviewed_by", srcTeamName), eq("reviewed_team", destTeamName))).first(); + if (submittedPeerReview == null) throw new WebApplicationException("No peer review from team " + srcTeamName + " for " + destTeamName); - return file.get(); + return (Binary) submittedPeerReview.get("submission_data"); } @@ -260,6 +307,34 @@ public List getTeams(String courseID, int assignmentID) { return teams; } + + public Document redoneGetTeamGrades(String courseID, int assignmentID, String teamName) { + + List results = new ArrayList<>(); + + FindIterable iterable = submissionsCollection.find(and( + eq("reviewed_team", teamName), + eq("course_id", courseID), + eq("assignment_id", assignmentID), + eq("type", "peer_review_submission") + )); + + iterable.into(results); + System.out.println(results); + //for each grade this team received + List teams = new ArrayList<>(); + for (Document teamGradesReceived : results) { + //grabs the team that assigned this team the grade + Document document = new Document().append("team_name", teamGradesReceived.get("reviewed_by")); + if (results == null) document.append("grade_given", "pending"); + else document.append("grade_given", teamGradesReceived.getInteger("grade")); + teams.add(document); + } + + return new Document().append("teams", teams); + } + + @Deprecated public Document getTeamGrades(String courseID, int assignmentID, String teamName) { Document team = submissionsCollection.find(and( eq("course_id", courseID), @@ -285,7 +360,6 @@ public Document getTeamGrades(String courseID, int assignmentID, String teamName } return new Document().append("teams", teams); } - public Document professorUpdate(String courseID, int assignmentID, String teamName, int grade) { Document team = submissionsCollection.findOneAndUpdate(and( eq("course_id", courseID), @@ -298,6 +372,98 @@ public Document professorUpdate(String courseID, int assignmentID, String teamNa return team; } + //this is a method to test for creating a new makeFinalGrade method functionality, currently in testing + public void redoneMakeFinalGrade(String courseID, int assignmentID, String teamName) { + //need to know what the grade was 'out of' for rounding/final grade purposes + Document assignment = assignmentCollection.find(and(eq("course_id", courseID), eq("assignment_id", assignmentID))).first(); + if (assignment == null) + throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("Assignment not found.").build()); + int points = assignment.getInteger("points"); + + //get iterable of teams that have graded this team + List results = new ArrayList<>(); + + FindIterable iterable = submissionsCollection.find(and( + eq("reviewed_team", teamName), + eq("course_id", courseID), + eq("assignment_id", assignmentID), + eq("type", "peer_review_submission") + )); + + iterable.into(results); + System.out.println(results); + + if (iterable == null) + throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("Assigned teams not found for: " + teamName + "for assignment: " + assignmentID).build()); + + int count_of_reviews_submitted = results.size(); + int total_points = 0; + //for each grade this team received + for (Document teamGradesReceived : results) { + total_points += teamGradesReceived.get("grade", Integer.class); + } + + DecimalFormat tenth = new DecimalFormat("0.##"); + double final_grade = Double.parseDouble(tenth.format((((double) total_points / count_of_reviews_submitted) / points) * 100));//round + + + Document team_submission = submissionsCollection.find(and( + eq("course_id", courseID), + eq("assignment_id", assignmentID), + eq("team_name", teamName), + eq("type", "team_submission"))).first(); + submissionsCollection.findOneAndUpdate(team_submission, set("grade", final_grade)); + + //set the peer review grades for the student. + List teams_that_graded = team_submission.getList("reviews", String.class); + for (String review : teams_that_graded) { + Document team_review = submissionsCollection.find(and( + eq("course_id", courseID), + eq("assignment_id", assignmentID), + eq("reviewed_by", review), + eq("reviewed_team", teamName), + eq("type", "peer_review_submission"))).first(); + if (team_review == null) { + count_of_reviews_submitted--; + } else { + if (team_review.get("grade", Integer.class) == null) { + throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("team: " + review + "'s review has no points.").build()); + } else { + total_points += team_review.get("grade", Integer.class); + for (String teamMember : team_review.getList("reviewed_team_members", String.class)) { + Document newPeerReview = new Document() + .append("course_id", courseID) + .append("grade", team_review.getInteger("grade")) + .append("team_name", teamName); + List peerReviews = studentCollection.find(eq("student_id", teamMember)).first().getList("peer_reviews", Document.class); + peerReviews.add(newPeerReview); + Bson studentQuery = eq("student_id", teamMember); + Bson update = Updates.set("team_submissions", peerReviews); + UpdateOptions options = new UpdateOptions().upsert(true); + studentCollection.updateOne(studentQuery, update, options); + } + } + } + } + + //set the final grade + for (String member : team_submission.getList("members", String.class)) { + List grades = new ArrayList(); + grades.addAll(studentCollection.find(eq("student_id", member)).first().getList("team_submissions", Document.class)); + Document newAssignmentGrade = new Document() + .append("assignment_id", assignmentID) + .append("grade", final_grade) + .append("team_name", team_submission.getString("team_name")); + grades.add(newAssignmentGrade); + Bson filter = eq("student_id", member); + UpdateOptions options = new UpdateOptions().upsert(true); + Bson update = Updates.set("team_submissions", grades); + studentCollection.updateOne(filter, update, options); + } + } + + + @Deprecated public void makeFinalGrade(String courseID, int assignmentID, String teamName) { Document assignment = assignmentCollection.find(and(eq("course_id", courseID), eq("assignment_id", assignmentID))).first(); if (assignment == null) @@ -310,15 +476,27 @@ public void makeFinalGrade(String courseID, int assignmentID, String teamName) { eq("type", "team_submission"))).first(); List teams_that_graded = team_submission.getList("reviews", String.class); + + if (teams_that_graded == null) throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("Assigned teams not found for: " + teamName + "for assignment: " + assignmentID).build()); int total_points = 0; int count_of_reviews_submitted = teams_that_graded.size(); + + //my code + String[] temp = new String[count_of_reviews_submitted]; + int counter = 0; + for (String teamsThatGraded : teams_that_graded) { + temp[counter] = teamsThatGraded; + counter++; + } + int currentTeam = 0; for (String review : teams_that_graded) { Document team_review = submissionsCollection.find(and( eq("course_id", courseID), eq("assignment_id", assignmentID), eq("reviewed_by", review), + eq("reviewed_team", teamName), eq("type", "peer_review_submission"))).first(); if (team_review == null) { count_of_reviews_submitted--; @@ -327,12 +505,39 @@ public void makeFinalGrade(String courseID, int assignmentID, String teamName) { throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("team: " + review + "'s review has no points.").build()); } else { total_points += team_review.get("grade", Integer.class); + for (String teamMember : team_review.getList("reviewed_team", String.class)) { + Document newPeerReview = new Document() + .append("course_id", courseID) + .append("grade", team_review.getInteger("grade")) + .append("team_name", teamName); + List peerReviews = studentCollection.find(eq("student_id", teamMember)).first().getList("peer_reviews", Document.class); + peerReviews.add(newPeerReview); + Bson studentQuery = eq("student_id", teamMember); + Bson update = Updates.set("team_submissions", peerReviews); + UpdateOptions options = new UpdateOptions().upsert(true); + studentCollection.updateOne(studentQuery, update, options); + } } } + currentTeam++; } - double final_grade = (((double) total_points / count_of_reviews_submitted) / points) * 100; - final_grade = ((int) (final_grade * 100) / 100.0); //round to the nearest 10th + DecimalFormat tenth = new DecimalFormat("0.##"); + double final_grade = Double.parseDouble(tenth.format((((double) total_points / count_of_reviews_submitted) / points) * 100));//round + submissionsCollection.findOneAndUpdate(team_submission, set("grade", final_grade)); + for (String member : team_submission.getList("members", String.class)) { + List grades = new ArrayList(); + grades.addAll(studentCollection.find(eq("student_id", member)).first().getList("team_submissions", Document.class)); + Document newAssignmentGrade = new Document() + .append("assignment_id", assignmentID) + .append("grade", final_grade) + .append("team_name", team_submission.getString("team_name")); + grades.add(newAssignmentGrade); + Bson filter = eq("student_id", member); + UpdateOptions options = new UpdateOptions().upsert(true); + Bson update = Updates.set("team_submissions", grades); + studentCollection.updateOne(filter, update, options); + } } public void makeFinalGrades(String courseID, int assignmentID) { @@ -367,6 +572,7 @@ public void makeFinalGrades(String courseID, int assignmentID) { eq("course_id", courseID), eq("assignment_id", assignmentID), eq("reviewed_by", review), + //eq("reviewed_team", teamName), eq("type", "peer_review_submission"))).first(); if (team_review == null) { count_of_reviews_submitted--; @@ -375,11 +581,13 @@ public void makeFinalGrades(String courseID, int assignmentID) { throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("team: " + review + "'s review has no points.").build()); } else { total_points += team_review.get("grade", Integer.class); + } } } - double final_grade = (((double) total_points / count_of_reviews_submitted) / points) * 100; - final_grade = ((int) (final_grade * 100) / 100.0); //round to the nearest 10th + DecimalFormat tenth = new DecimalFormat("0.##"); + double final_grade = Double.parseDouble(tenth.format((((double) total_points / count_of_reviews_submitted) / points) * 100));//round + submissionsCollection.findOneAndUpdate(team_submission, set("grade", final_grade)); assignmentCollection.findOneAndUpdate(and(eq("course_id", courseID), eq("assignment_id", assignmentID)), set("grade_finalized", true)); } @@ -397,4 +605,1054 @@ public Document getGradeForTeam(String courseID, int assignmentID, String teamNa if (result.getInteger("grade") == null) return new Document("grade", -1); else return new Document("grade", result.getInteger("grade")); } -} \ No newline at end of file + /** + * The method gets the team names and their members from teamCollection and gets the final grade from submissionsCollection, + * then it returns a document object containg individual student and their grade. + */ + public Document getGradeForStudent(String courseID, int assignmentID, String teamID, String studentID) { + Document reviewedTeam = teamCollection.find(eq("reviewed_team", teamID)).first(); + //System.out.println(reviewedTeam); + if (reviewedTeam == null) + throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("Reviewed Team not found.").build()); + List teamMembers = reviewedTeam.getList("reviewed_members", String.class); + //System.out.println(teamMembers); + if (teamMembers == null) + throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("No students found.").build()); + if (!teamMembers.contains(studentID)) + throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("Student not found.").build()); + Document result = submissionsCollection.find(and( + eq("course_id", courseID), + eq("assignment_id", assignmentID), + eq("team_name", teamID), + eq("type", "team_submission") + )).first(); + if (result == null) { + throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("No submission found.").build()); + } else { + Document gradeDoc = new Document() + .append("studentID", studentID) + .append("grade", result.getDouble("grade")); + // + // System.out.println(gradeDoc); + return gradeDoc; + } + } + + + //redone matrix outlier detection + public Document getMatrixOfOutlierAndGrades(String courseID, int assignmentID) { + + //get all teams that were assigned this assignment in the course(will be the 'iterable') + Document assignment = assignmentCollection.find(and(eq("course_id", courseID), eq("assignment_id", assignmentID))).first(); + if (assignment == null) + throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("Assignment not found.").build()); + //grab all teams assigned this + List allTeams = assignment.getList("all_teams", String.class); + + + Document matrixHolder = new Document(); + //for every team assigned this assignment + for (String individialTeam : allTeams) { + + //for each team, we will query the DB for a list of documents where they have received a review + //get iterable of teams that have graded this team + List teamsThatReviewedThisTeam = new ArrayList<>(); + FindIterable iterable = submissionsCollection.find(and( + eq("reviewed_team", individialTeam), + eq("course_id", courseID), + eq("assignment_id", assignmentID), + eq("type", "peer_review_submission") + )); + //put iterable contents into array list + iterable.into(teamsThatReviewedThisTeam); + + //we then iterate through this document, grabbing the grade and then determining if that grade + //is an outlier, if it is append a true flag to that grade, else append false + + //document to hold the team that graded and the grade + Document gradeHolder = new Document(); + int totalGrade = 0; + double averageGradeReceived; + int numTeamsReviewed = 0; //= teamsThatReviewedThisTeam.size(); + for (Document respectiveGradesReceived : teamsThatReviewedThisTeam) { + Document gradeToOutlier = new Document(); + //grab the grade received respectively + int gradeReceived = respectiveGradesReceived.get("grade", Integer.class); + totalGrade += gradeReceived; + numTeamsReviewed++; + + //then find every team that graded them(should be a base function call already made inside this file) + Document matrixOfGrades = new Document(); + + String teamThatGraded = respectiveGradesReceived.get("reviewed_by", String.class); + //if the value is an outlier, mark true, else false + if (isOutlier(courseID, assignmentID, gradeReceived)) { + gradeToOutlier.append(String.valueOf(gradeReceived), true); + } else { + gradeToOutlier.append(String.valueOf(gradeReceived), false); + } + + gradeHolder.append(teamThatGraded, gradeToOutlier); + } + + if (numTeamsReviewed == teamsThatReviewedThisTeam.size()) { + double average = (double) totalGrade / (double) numTeamsReviewed; + gradeHolder.append("Average Grade Received", new Document(String.valueOf(average), isOutlier(courseID, assignmentID, average))); + } + + + matrixHolder.append(individialTeam, gradeHolder); + + } + + + //now that we have the grades and average grades received, we can easily qeury to find the grades + //given using the mistaken query for iterating over the reviews array + + List getEachAssignment = new ArrayList<>(); + FindIterable iterable = submissionsCollection.find(and( + eq("course_id", courseID), + eq("assignment_id", assignmentID), + eq("type", "team_submission") + )); + //put iterable contents into array list + iterable.into(getEachAssignment); + + //document to hold grades given + int numTeamsReviewed = 0; + int sumOfTeamReviewGradesGiven = 0; + Document gradesGivenHolder = new Document(); + //List allTeams = assignment.getList("all_teams", String.class); + for (Document individialTeam : getEachAssignment) { + + //List reviews = individialTeam.getList("reviews", String.class); + List individualReviews = new ArrayList<>(); + FindIterable getReviews = submissionsCollection.find(and( + eq("course_id", courseID), + eq("assignment_id", assignmentID), + eq("type", "peer_review_submission"), + eq("reviewed_by", individialTeam.get("team_name")) + )); + //put iterable contents into array list + getReviews.into(individualReviews); + + int totalGradesGiven = 0; + int counter = 0; + Document indGradesHolder = new Document(); + for (Document review : individualReviews) { + totalGradesGiven += review.get("grade", Integer.class); + counter++; + } + double average = (double) totalGradesGiven / (double) counter; + if (isOutlier(courseID, assignmentID, average)) + indGradesHolder.append(String.valueOf(average), true); + else + indGradesHolder.append(String.valueOf(average), false); + + String teamName = (String) individialTeam.get("team_name"); + //append to overall grades holder + gradesGivenHolder.append(teamName, indGradesHolder); + + } + + matrixHolder.append("Average Grades Given", gradesGivenHolder); + // matrixHolder.append("Average Grade Given", gradeHolder); + + //create document to then append to the matrix doc(for grades given averages) +// for (String key : temp.keySet()) { +// //first calculate average +// double average = (double) teamsToGradesGiven.get(assignmentNumber).get(key) / (double) teamsToCountOfReviews.get(assignmentNumber).get(key); +// } + return matrixHolder; + } + + + //redone outlier detection over time + public Document getAllPotentialOutliersAndGrades(String courseID) { + + //grab all of the assignments currently finished for the course + + //must increment at end of each loop + List allOutliers = new ArrayList<>(); + FindIterable iter = assignmentCollection.find(); + iter.into(allOutliers); + + Document allPotentialOutliers = new Document(); + for (Document eachAssignment : allOutliers) { + Document eachMatrixHolder = new Document(); + + int assignmentID = eachAssignment.get("assignment_id", Integer.class); + + //get all teams that were assigned this assignment in the course(will be the 'iterable') + Document assignment = assignmentCollection.find(and(eq("course_id", courseID), eq("assignment_id", assignmentID))).first(); + if (assignment == null) + throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("Assignment not found.").build()); + //grab all teams assigned this + List allTeams = assignment.getList("all_teams", String.class); + + + Document matrixHolder = new Document(); + //for every team assigned this assignment + for (String individialTeam : allTeams) { + + //for each team, we will query the DB for a list of documents where they have received a review + //get iterable of teams that have graded this team + List teamsThatReviewedThisTeam = new ArrayList<>(); + FindIterable iterable = submissionsCollection.find(and( + eq("reviewed_team", individialTeam), + eq("course_id", courseID), + eq("assignment_id", assignmentID), + eq("type", "peer_review_submission") + )); + //put iterable contents into array list + iterable.into(teamsThatReviewedThisTeam); + + //we then iterate through this document, grabbing the grade and then determining if that grade + //is an outlier, if it is append a true flag to that grade, else append false + + //document to hold the team that graded and the grade + Document gradeHolder = new Document(); + int totalGrade = 0; + double averageGradeReceived; + int numTeamsReviewed = 0; //= teamsThatReviewedThisTeam.size(); + for (Document respectiveGradesReceived : teamsThatReviewedThisTeam) { + Document gradeToOutlier = new Document(); + //grab the grade received respectively + int gradeReceived = respectiveGradesReceived.get("grade", Integer.class); + totalGrade += gradeReceived; + numTeamsReviewed++; + + + String teamThatGraded = respectiveGradesReceived.get("reviewed_by", String.class); + //if the value is an outlier, mark true, else false + if (isOutlier(courseID, gradeReceived)) { + gradeToOutlier.append(String.valueOf(gradeReceived), true); + } else { + gradeToOutlier.append(String.valueOf(gradeReceived), false); + } + + gradeHolder.append(teamThatGraded, gradeToOutlier); + } + + if (numTeamsReviewed == teamsThatReviewedThisTeam.size()) { + double average = (double) totalGrade / (double) numTeamsReviewed; + gradeHolder.append("Average Grade Received", new Document(String.valueOf(average), isOutlier(courseID, average))); + } + + + matrixHolder.append(individialTeam, gradeHolder); + + } + + + //now that we have the grades and average grades received, we can easily qeury to find the grades + //given using the mistaken query for iterating over the reviews array + + List getEachAssignment = new ArrayList<>(); + FindIterable iterable = submissionsCollection.find(and( + eq("course_id", courseID), + eq("assignment_id", assignmentID), + eq("type", "team_submission") + )); + //put iterable contents into array list + iterable.into(getEachAssignment); + + //document to hold grades given + int numTeamsReviewed = 0; + int sumOfTeamReviewGradesGiven = 0; + Document gradesGivenHolder = new Document(); + //List allTeams = assignment.getList("all_teams", String.class); + for (Document individialTeam : getEachAssignment) { + + //List reviews = individialTeam.getList("reviews", String.class); + List individualReviews = new ArrayList<>(); + FindIterable getReviews = submissionsCollection.find(and( + eq("course_id", courseID), + eq("assignment_id", assignmentID), + eq("type", "peer_review_submission"), + eq("reviewed_by", individialTeam.get("team_name")) + )); + //put iterable contents into array list + getReviews.into(individualReviews); + + int totalGradesGiven = 0; + int counter = 0; + Document indGradesHolder = new Document(); + for (Document review : individualReviews) { + totalGradesGiven += review.get("grade", Integer.class); + counter++; + } + double average = (double) totalGradesGiven / (double) counter; + if (isOutlier(courseID, average)) + indGradesHolder.append(String.valueOf(average), true); + else + indGradesHolder.append(String.valueOf(average), false); + + String teamName = (String) individialTeam.get("team_name"); + //append to overall grades holder + gradesGivenHolder.append(teamName, indGradesHolder); + + } + // matrixOfGrades.append(teamForThisAssignment, gradesToOutliers); + + } + + // matrixHolder.append("Average Grades Given", gradesGivenHolder); + + //to get the grade document we need to go one step further + // Document gradesAndBoolean = (Document) valuesOfEachKey.get(subKeySet); + + // allPotentialOutliers.append(String.valueOf(assignmentID), matrixHolder); + + return allPotentialOutliers; + } + + // matrixOfGrades.append("Average Grade Given", gradesHolder); + + // return matrixOfGrades; + //} + + /** + * abstraction method that calls calculate IQR, and uses the values calculated from there + * to return a boolean value of whether a number is an outlier or not, based on the current + * grades received for this assignment(this function takes an int to compare) + */ + public boolean isOutlier(String courseID, double numberToCompare) { + HashMap calculatedQuantities = new HashMap(); + calculatedQuantities = calculateIQR(courseID); + int Q1 = calculatedQuantities.get("Q1"); + int Q3 = calculatedQuantities.get("Q3"); + int IQR = calculatedQuantities.get("IQR"); + + //if value is an outlier + if ((numberToCompare < (Q1 - (1.5 * IQR))) || (numberToCompare > (Q3 + (1.5 * IQR)))) { + return true; + } + //if its not an outlier + else { + return false; + } + } + + /** + * abstraction method that calls calculate IQR, and uses the values calculated from there + * to return a boolean value of whether a number is an outlier or not, based on the current + * grades received for this assignment(this function takes an int to compare) + */ + public boolean isOutlier(String courseID, int numberToCompare) { + HashMap calculatedQuantities = new HashMap(); + calculatedQuantities = calculateIQR(courseID); + int Q1 = calculatedQuantities.get("Q1"); + int Q3 = calculatedQuantities.get("Q3"); + int IQR = calculatedQuantities.get("IQR"); + + //if value is an outlier + if ((numberToCompare < (Q1 - (1.5 * IQR))) || (numberToCompare > (Q3 + (1.5 * IQR)))) { + return true; + } + //if its not an outlier + else { + return false; + } + } + + + + /** + * abstraction method that calls calculate IQR, and uses the values calculated from there + * to return a boolean value of whether a number is an outlier or not, based on the current + * grades received for this assignment(this function takes a double to compare) + */ + public boolean isOutlier(String courseID, int assignmentID, double numberToCompare) { + HashMap calculatedQuantities = new HashMap(); + calculatedQuantities = calculateIQR(courseID, assignmentID); + int Q1 = calculatedQuantities.get("Q1"); + int Q3 = calculatedQuantities.get("Q3"); + int IQR = calculatedQuantities.get("IQR"); + + //if value is an outlier + if ((numberToCompare < (Q1 - (1.5 * IQR))) || (numberToCompare > (Q3 + (1.5 * IQR)))) { + return true; + } + //if its not an outlier + else { + return false; + } + } + + /** + * abstraction method that calls calculate IQR, and uses the values calculated from there + * to return a boolean value of whether a number is an outlier or not, based on the current + * grades received for this assignment(this function takes an int to compare) + */ + public boolean isOutlier(String courseID, int assignmentID, int numberToCompare) { + HashMap calculatedQuantities = new HashMap(); + calculatedQuantities = calculateIQR(courseID, assignmentID); + int Q1 = calculatedQuantities.get("Q1"); + int Q3 = calculatedQuantities.get("Q3"); + int IQR = calculatedQuantities.get("IQR"); + + //if value is an outlier + if ((numberToCompare < (Q1 - (1.5 * IQR))) || (numberToCompare > (Q3 + (1.5 * IQR)))) { + return true; + } + //if its not an outlier + else { + return false; + } + } + + /** + * This function is used to calculate the IQR, returning a hashmap of values + * that consist of the q1, q3, and IQR values to allow for computation and + * outlier detection. + * */ + /** + * This function is used to calculate the IQR, returning a hashmap of values + * that consist of the q1, q3, and IQR values to allow for computation and + * outlier detection. + */ + public HashMap calculateIQR(String courseID, int assignmentID) { + + + //for every team in the course, grab the points, and add them to an integer array + List gradesForAssignment = new ArrayList(); + + + //grab each grade that has been given for this respectove assignment + List getEachAssignment = new ArrayList<>(); + FindIterable iterable = submissionsCollection.find(and( + eq("course_id", courseID), + eq("assignment_id", assignmentID), + eq("type", "peer_review_submission") + )); + //put iterable contents into array list + iterable.into(getEachAssignment); + + //for every grade that has been given, add it to the list + for (Document grade : getEachAssignment) { + + if (grade.get("grade", Integer.class) == null) { + throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("Error retreiving grade for team").build()); + } else { + + int respectiveGrade = grade.get("grade", Integer.class); + gradesForAssignment.add(respectiveGrade); + } + + } + + int IQR = 0; + //after all of the team grades are obtained, + + //sort the list + Collections.sort(gradesForAssignment); + + HashMap> subsets = getSubsetOfArray(gradesForAssignment); + + //get subsets from hashmap + List q1Subset = subsets.get(1); + List q3Subset = subsets.get(2); + + //get medians from subsets + int q1Median = findMedian(q1Subset); + int q3Median = findMedian(q3Subset); + + //get IQR from subtracting both values + IQR = q3Median - q1Median; + HashMap returnValues = new HashMap(); + returnValues.put("Q1", q1Median); + returnValues.put("Q3", q3Median); + returnValues.put("IQR", IQR); + + return returnValues; + } + + /** + * This fucntion returns a subset of the array to then be able to calculate the + * median for each 'Q' + */ + public HashMap> getSubsetOfArray(List input) { + List firstSubSet = new ArrayList(); + List secondSubSet = new ArrayList(); + + HashMap> subsetOfArrays = new HashMap<>(); + //if true this is odd + if ((input.size() & 1) == 1) { + firstSubSet = input.subList(0, input.size() / 2); + secondSubSet = input.subList(input.size() / 2 + 1, input.size()); + } else { + firstSubSet = input.subList(0, input.size() / 2); + secondSubSet = input.subList(input.size() / 2, input.size()); + } + subsetOfArrays.put(1, firstSubSet); + subsetOfArrays.put(2, secondSubSet); + + return subsetOfArrays; + + } + + /** + * This function returns the median of any dataset that is larger than 2, also + * it assumes that the data is already sorted when passed in + */ + public int findMedian(List dataSet) { + //this fucntion won't accept an array of length less than 2, + if (dataSet.size() < 2 || dataSet == null) + return -1; + //& 1 is a bitwise operator that is much faster than modulo and determines whether a number is odd or even + if ((dataSet.size() & 1) == 1) + //use int division return median + return dataSet.get(dataSet.size() / 2); + else + //must use formula (((dataSet.length/2) + (dataSet.length/2 -1)) / 2) to obtain the proper index of even length dataset ) + return (dataSet.get(dataSet.size() / 2) + dataSet.get(dataSet.size() / 2 - 1)) / 2; + + } + + + /** + * This method will be used to grab all of the averages/assignments given over for a given course + */ + public HashMap calculateIQR(String courseID) { + + //must increment at end of each loop + List results = new ArrayList<>(); + FindIterable iterable = assignmentCollection.find(and(eq("course_id", courseID))); + + iterable.into(results); + + //for every team in the course, grab the points, and add them to an integer array + List gradesForAssignment = new ArrayList(); + int gradeFinalizedCounter = 0; + //for each assignment that is completed + for (Document eachAssignment : results) { + System.out.println("Iterating over new assignment"); + + if (eachAssignment.get("grade_finalized", Boolean.class)) { + //if a grade has been finalized, increment counter + gradeFinalizedCounter++; + //must make a query to the DB to grab all of the grades + //grab each grade that has been given for this respectove assignment + List getEachAssignment = new ArrayList<>(); + FindIterable tempIter = submissionsCollection.find(and( + eq("course_id", courseID), + eq("assignment_id", eachAssignment.get("assignment_id", Integer.class)), + eq("type", "peer_review_submission") + )); + //put iterable contents into array list + tempIter.into(getEachAssignment); + + //for every grade that has been given, add it to the list + for (Document grade : getEachAssignment) { + + if (grade.get("grade", Integer.class) == null) { + throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("Error retreiving grade for team").build()); + } else { + int respectiveGrade = grade.get("grade", Integer.class); + System.out.println("Grade gotten: " + respectiveGrade); + gradesForAssignment.add(respectiveGrade); + } + + } + + } + + } + + + if (gradesForAssignment == null || gradeFinalizedCounter == 0) + throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("No grades have been finalized, therefore outlier detection over time will not be accurate").build()); + + int IQR = 0; + //after all of the team grades are obtained, + + //we must sort them + Collections.sort(gradesForAssignment); + System.out.println("all grades grabbed and sorted: " + gradesForAssignment); + System.out.println("Size of array: " + gradesForAssignment.size()); + + + HashMap> subsets = getSubsetOfArray(gradesForAssignment); + + //get subsets from hashmap + List q1Subset = subsets.get(1); + List q3Subset = subsets.get(2); + + //get medians from subsets + int q1Median = findMedian(q1Subset); + int q3Median = findMedian(q3Subset); + + //get IQR from subtracting both values + IQR = q3Median - q1Median; + HashMap returnValues = new HashMap(); + returnValues.put("Q1", q1Median); + returnValues.put("Q3", q3Median); + returnValues.put("IQR", IQR); + + return returnValues; + } + + + /** + * This is a method to be used for testing purposes, it will simplify writiing the test cases + * while keeping the same functionality as all other isOutlier methods + */ + public static boolean isOutlier(int numberToCompare, int Q1, int Q3, int IQR) { + + + //if value is an outlier + if ((numberToCompare < (Q1 - (1.5 * IQR))) || (numberToCompare > (Q3 + (1.5 * IQR)))) { + return true; + } + //if its not an outlier + else { + return false; + } + } + + /** + * This method returns a JSON object(Document), that contains all relevant information regarding + * the grades a team ahs received and the average of the grades received, as well as the average grade + * each team has given to other teams. The JSON document it returns also has a boolean value associated + * with the grade stating false if the value is not an outlier, and true if the value is an outlier + *

+ * Notes: + * This method has the assumed functionality that every team in the course has been assigned/performed + * a peer review, as determining if a team was excluded from the assignment/peer-review process was far + * too much work given the data available from querying from the respectove databases. + */ + @Deprecated + public Document getMatrixOfGrades(String courseID, int assignmentID) { + + //get all teams that were assigned this assignment in the course(will be the 'iterable') + Document assignment = assignmentCollection.find(and(eq("course_id", courseID), eq("assignment_id", assignmentID))).first(); + if (assignment == null) + throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity("Assignment not found.").build()); + //grab all teams assigned this + List allTeams = assignment.getList("all_teams", String.class); + + + //we must sort them based on alphabetical order + Collections.sort(allTeams); + + //then find every team that graded them(should be a base function call already made inside this file) + Document matrixOfGrades = new Document(); + + for (String teamForThisAssignment : allTeams) { + + //get document for each team for this assignment + Document team_submission = submissionsCollection.find(and( + eq("course_id", courseID), + eq("assignment_id", assignmentID), + eq("team_name", teamForThisAssignment), + eq("type", "team_submission"))).first(); + + //grade the teams that 'reviewed'/graded this team + List teams_that_graded = team_submission.getList("reviews", String.class); + int sizeOfTeamsThatGraded = teams_that_graded.size(); + + //sort teams_that_graded + Collections.sort(teams_that_graded); + + //create doc for holding each team that graded and if its an outlier or not + Document gradesToOutliers = new Document(); + + //integer values to keep track of average of scores and number of reviews each team made + int totalSum = 0, counter = 0; + + for (String teamThatGraded : teams_that_graded) { + //for each team in the reviews, we need to find the team that reviewed the current team + Document team_review = submissionsCollection.find(and( + eq("course_id", courseID), + eq("assignment_id", assignmentID), + eq("reviewed_by", teamThatGraded), + eq("reviewed_team", teamForThisAssignment), + eq("type", "peer_review_submission"))).first(); + + //if the grade is an outlier(boolean = true, else boolean = false) + int respectiveGrade = team_review.get("grade", Integer.class); + //sum the total and increase counter + totalSum += respectiveGrade; + counter++; + System.out.println("counter: " + counter); + double average = (double) totalSum / (double) counter; + + + if (isOutlier(courseID, assignmentID, respectiveGrade)) { + //fill in the values if they're an outlier + gradesToOutliers.append(teamThatGraded, new Document(String.valueOf(respectiveGrade), true)); + if (counter == sizeOfTeamsThatGraded) { + gradesToOutliers.append("Average Grade Received", new Document(String.valueOf(average), isOutlier(courseID, assignmentID, average))); + System.out.println("value is an: " + isOutlier(courseID, assignmentID, average)); + } + + + } else { + gradesToOutliers.append(teamThatGraded, new Document(String.valueOf(respectiveGrade), false)); + if (counter == sizeOfTeamsThatGraded) { + gradesToOutliers.append("Average Grade Received", new Document(String.valueOf(average), isOutlier(courseID, assignmentID, average))); + System.out.println("value is an: " + isOutlier(courseID, assignmentID, average)); + } + + } + + + } + matrixOfGrades.append(teamForThisAssignment, gradesToOutliers); + + } + + //hashmaps to keep track of grades each team has given/they're review count + HashMap teamsToGradesGiven = new HashMap<>(); + HashMap teamsToCountOfReviews = new HashMap<>(); + + //create values for each team in a hashmap for their grades + for (String teams : matrixOfGrades.keySet()) { + teamsToGradesGiven.put(teams, 0); + teamsToCountOfReviews.put(teams, 0); + } + + //I know three loops is disgusting, but the way the document we created above is formatted, + //the grade is three levels deep, so we need to go to that depth to get the grade + + //grab the keys of the doc(all the grades in document we just created) + for (String keysInMatrixDoc : matrixOfGrades.keySet()) { + + //this will retrieve the list of teams who have given grades + Object valuesOfKeys = matrixOfGrades.get(keysInMatrixDoc); + + //try casting the object to a document + Document valuesOfEachKey = (Document) valuesOfKeys; + + for (String subKeySet : valuesOfEachKey.keySet()) { + + //to get the grade document we need to go one step further + Document gradesAndBoolean = (Document) valuesOfEachKey.get(subKeySet); + + + for (String grade : gradesAndBoolean.keySet()) { + //if current subKeyString equals the a hashmap key, sum current value and counter) + if (teamsToGradesGiven.containsKey(subKeySet)) { + teamsToGradesGiven.put(subKeySet, teamsToGradesGiven.get(subKeySet) + Integer.parseInt(grade)); + teamsToCountOfReviews.put(subKeySet, teamsToCountOfReviews.get(subKeySet) + 1); + } + + } + + } + + } + + + //document to find/grad the grades, will append this to each section of the documentToAppendGrades + Document gradesHolder = new Document(); + + //create document to then append to the matric doc(for grades given averages) + for (String key : teamsToGradesGiven.keySet()) { + //first calculate average + double average = (double) teamsToGradesGiven.get(key) / (double) teamsToCountOfReviews.get(key); + + if (isOutlier(courseID, assignmentID, average)) { + gradesHolder.append(key, new Document(String.valueOf(average), true)); + } else { + gradesHolder.append(key, new Document(String.valueOf(average), false)); + } + } + + matrixOfGrades.append("Average Grade Given", gradesHolder); + + return matrixOfGrades; + } + + + /** + * This method is very similar to the matrix of grades method but returns every matrix over the course of + * every assignment created, this is necessary as the front end can then decide what information they + * would like to present the user(i.e. only the outliers, etc). This method takes every grade given/received + * and uses that as the outlier detection system, rather than individually for each matrix. This allows for a + * more broad evaluation of the outliers and if a team does grade harsher over the course of the semester + * rather than on a weekly basis. + **/ + @Deprecated + public Document allPotentialOutliers(String courseID) { + + //must increment at end of each loop + List results = new ArrayList<>(); + FindIterable iterable = assignmentCollection.find(); + iterable.into(results); + + + Document allPotentialOutliers = new Document(); + + + //for each assignment that is peer-reviewed? or also just regular assignments + for (Document assignment : results) { + + + //error check to see if the assignment is completed(all grades have been finished for each respective assignment) + if (assignment.get("grade_finalized", Boolean.class)) { + //if the assignment_flag doesnt get set, we have to cast the assignment teams object + //and then compare the length of that to the cast of the completed teams object + + + List allTeams = assignment.getList("all_teams", String.class); + //grab assignment_id + int numberOfAssignments = assignment.get("assignment_id", Integer.class); + + //we must sort them based on alphabetical order + Collections.sort(allTeams); + + //then find every team that graded them(should be a base function call already made inside this file) + Document matrixOfGrades = new Document(); + + for (String teamForThisAssignment : allTeams) { + + //get document for each team for this assignment + Document team_submission = submissionsCollection.find(and( + eq("course_id", courseID), + eq("assignment_id", numberOfAssignments), + eq("team_name", teamForThisAssignment), + eq("type", "team_submission"))).first(); + + //grade the teams that 'reviewed'/graded this team + List teams_that_graded = team_submission.getList("reviews", String.class); + int sizeOfTeamsThatGraded = teams_that_graded.size(); + + //sort teams_that_graded + Collections.sort(teams_that_graded); + + //create doc for holding each team that graded and if its an outlier or not + Document gradesToOutliers = new Document(); + + //integer values to keep track of average of scores and number of reviews each team made + int totalSum = 0, counter = 0; + + for (String teamThatGraded : teams_that_graded) { + //for each team in the reviews, we need to find the team that reviewed the current team + Document team_review = submissionsCollection.find(and( + eq("course_id", courseID), + eq("assignment_id", numberOfAssignments), + eq("reviewed_by", teamThatGraded), + eq("reviewed_team", teamForThisAssignment), + eq("type", "peer_review_submission"))).first(); + + //if the grade is an outlier(boolean = true, else boolean = false) + int respectiveGrade = team_review.get("grade", Integer.class); + //sum the total and increase counter + totalSum += respectiveGrade; + counter++; + double average = (double) totalSum / (double) counter; + + + if (isOutlier(courseID, respectiveGrade)) { + //fill in the values if they're an outlier + gradesToOutliers.append(teamThatGraded, new Document(String.valueOf(respectiveGrade), true)); + if (counter == sizeOfTeamsThatGraded) { + gradesToOutliers.append("Average Grade Received", new Document(String.valueOf(average), isOutlier(courseID, average))); + } + + } else { + gradesToOutliers.append(teamThatGraded, new Document(String.valueOf(respectiveGrade), false)); + if (counter == sizeOfTeamsThatGraded) { + gradesToOutliers.append("Average Grade Received", new Document(String.valueOf(average), isOutlier(courseID, average))); + } + } + + + } + matrixOfGrades.append(teamForThisAssignment, gradesToOutliers); + + + } + allPotentialOutliers.append(assignment.get("assignment_id", Integer.class).toString(), matrixOfGrades); + + } + + } + + + HashMap> teamsToGradesGiven = new HashMap<>(); + HashMap> teamsToCountOfReviews = new HashMap<>(); + + + for (String key : allPotentialOutliers.keySet()) { + Object val = allPotentialOutliers.get(key); + + Document keys = (Document) val; + + HashMap temp = new HashMap<>(); + HashMap otherTemp = new HashMap<>(); + for (String values : keys.keySet()) { + temp.put(values, 0); + otherTemp.put(values, 0); + } + teamsToGradesGiven.put(key, temp); + teamsToCountOfReviews.put(key, otherTemp); + + } + + + //again i know it is ridiculous for this many loops but the way the JSON doc created earlier is formatted + //is is necessary to loop over all the information to grab the right information + for (String keys : allPotentialOutliers.keySet()) { + + Object allMatrices = allPotentialOutliers.get(keys); + + Document matrixOfGrades = (Document) allMatrices; + //grab the keys of the doc(all the grades in document we just created) + for (String keysInMatrixDoc : matrixOfGrades.keySet()) { + + //this will retrieve the list of teams who have given grades + Object valuesOfKeys = matrixOfGrades.get(keysInMatrixDoc); + + //try casting the object to a document + Document valuesOfEachKey = (Document) valuesOfKeys; + + for (String subKeySet : valuesOfEachKey.keySet()) { + + + //to get the grade document we need to go one step further + Document gradesAndBoolean = (Document) valuesOfEachKey.get(subKeySet); + + for (String grade : gradesAndBoolean.keySet()) { + + //if current subKeyString equals the a hashmap key, sum current value and counter) + if (teamsToGradesGiven.get(keys).containsKey(subKeySet)) { + HashMap innerGradesGiven = teamsToGradesGiven.get(keys); + HashMap innerCountReviews = teamsToCountOfReviews.get(keys); + innerGradesGiven.put(subKeySet, innerGradesGiven.get(subKeySet) + Integer.valueOf(grade)); + innerCountReviews.put(subKeySet, innerCountReviews.get(subKeySet) + 1); + teamsToGradesGiven.put(keys, innerGradesGiven); + teamsToCountOfReviews.put(keys, innerCountReviews); + } + + } + + } + + } + } + + + for (String assignmentNumber : teamsToGradesGiven.keySet()) { + //find the location of each respective doc and then add the averages to each respectove assignment + HashMap temp = new HashMap<>(); + temp = teamsToGradesGiven.get(assignmentNumber); + Document gradesHolder = new Document(); + + //create document to then append to the matric doc(for grades given averages) + for (String key : temp.keySet()) { + //first calculate average + double average = (double) teamsToGradesGiven.get(assignmentNumber).get(key) / (double) teamsToCountOfReviews.get(assignmentNumber).get(key); + + if (isOutlier(courseID, average)) { + gradesHolder.append(key, new Document(String.valueOf(average), true)); + } else { + gradesHolder.append(key, new Document(String.valueOf(average), false)); + } + } + + //grab portion related to this assignment number + Object holder = allPotentialOutliers.get(assignmentNumber); + Document holderr = (Document) holder; + + holderr.append("Average Grade Given", gradesHolder); + } + + + /** + * This is a method to be used for testing purposes, it will simplify writiing the test cases + * while keeping the same functionality as all other isOutlier methods + * */ + + /*public boolean isOutlier(int numberToCompare, int Q1, int Q3, int IQR){ + return allPotentialOutliers; + } + */ + + + return allPotentialOutliers; + } + + public List getReviewTeams(String courseID, int assignmentID, String teamName) { + Document assignment = assignmentCollection.find(and(eq("assignment_id", assignmentID), eq("course_id", courseID))).first(); + Document assignedTeams = (Document) assignment.get("assigned_teams"); + List teams = assignment.getList("all_teams", String.class); + if(teams == null){ + return null; + } + ArrayList reviewTeams = new ArrayList<>(); + for(String team : teams){ + List teamList = assignedTeams.getList(team, String.class); + if(teamList == null){ + continue; + } + if(teamList.contains(teamName)){ + reviewTeams.add(team); + } + } + return reviewTeams; + } + + /** + * gets list of submissions to be peer-reviewed by a specified team + * + * @param courseID course in question + * @param assignmentID assignment for which desired submissions are made + * @param teamName aforementioned specified team + * @return list of submissions to be peer-reviewed by a specified team + */ + public List peerReviewsGiven(String courseID, int assignmentID, String teamName) { + List teams = getAssignedTeams(courseID, assignmentID, teamName); + if(teams == null){ + return null; + } + List submissions = new ArrayList<>(); + for(String team : teams){ + Document submission = submissionsCollection.find(and(eq("team_name",team), + eq("course_id", courseID), eq("assignment_id", assignmentID), + eq("type", "team_submission"))).first(); + if(submission != null) { + submissions.add(submission); + } + } + return submissions; + } + + /** + * gets list of submissions to be peer-reviewed by a specified team + * + * @param courseID course in question + * @param assignmentID assignment for which desired submissions are made + * @param teamName aforementioned specified team + * @return list of submissions to be peer-reviewed by a specified team + */ + public List peerReviewsReceived(String courseID, int assignmentID, String teamName) { + List teams = getReviewTeams(courseID, assignmentID, teamName); + if(teams == null){ + return null; + } + List submissions = new ArrayList<>(); + for(String team : teams){ + if(team == null){ + continue; + } + Document submission = submissionsCollection.find(and(eq("reviewed_by",team), + eq("course_id", courseID), eq("assignment_id", assignmentID), + eq("type", "peer_review_submission"), eq("reviewed_team", teamName))) + .first(); + if(submission != null) { + submissions.add(submission); + }else{ + submission = submissionsCollection.find(and(eq("team_name", team), + eq("course_id", courseID), eq("assignment_id", assignmentID), + eq("type", "team_submission"))).first(); + if(submission != null){ + submissions.add(submission); + } + } + } + return submissions; + } +} diff --git a/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/daos/FileDAO.java b/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/database/daos/FileDAO.java old mode 100644 new mode 100755 similarity index 97% rename from backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/daos/FileDAO.java rename to backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/database/daos/FileDAO.java index fafb20d69..078dd2028 --- a/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/daos/FileDAO.java +++ b/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/database/daos/FileDAO.java @@ -1,4 +1,4 @@ -package edu.oswego.cs.daos; +package edu.oswego.cs.database.daos; import com.ibm.websphere.jaxrs20.multipart.IAttachment; diff --git a/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/daos/PeerReviewDAO.java b/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/database/daos/PeerReviewDAO.java old mode 100644 new mode 100755 similarity index 81% rename from backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/daos/PeerReviewDAO.java rename to backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/database/daos/PeerReviewDAO.java index ae1fd3db8..dd4253d59 --- a/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/daos/PeerReviewDAO.java +++ b/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/database/daos/PeerReviewDAO.java @@ -1,4 +1,4 @@ -package edu.oswego.cs.daos; +package edu.oswego.cs.database.daos; import javax.json.bind.annotation.JsonbProperty; import javax.persistence.Id; diff --git a/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/distribution/AssignmentDistribution.java b/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/distribution/AssignmentDistribution.java old mode 100644 new mode 100755 diff --git a/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/resources/PeerReviewAssignmentResource.java b/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/resources/PeerReviewAssignmentResource.java old mode 100644 new mode 100755 index 4d5dabcbe..5648f7c7b --- a/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/resources/PeerReviewAssignmentResource.java +++ b/backend/student-peer-review-assignment-microservice/src/main/java/edu/oswego/cs/resources/PeerReviewAssignmentResource.java @@ -1,10 +1,11 @@ package edu.oswego.cs.resources; import com.ibm.websphere.jaxrs20.multipart.IAttachment; -import edu.oswego.cs.daos.FileDAO; +import edu.oswego.cs.database.daos.FileDAO; import edu.oswego.cs.database.PeerReviewAssignmentInterface; import edu.oswego.cs.distribution.AssignmentDistribution; import org.bson.Document; +import org.bson.types.Binary; import javax.annotation.security.DenyAll; import javax.annotation.security.RolesAllowed; @@ -13,6 +14,7 @@ import javax.ws.rs.core.Response; import java.io.File; import java.io.IOException; +import java.util.Base64; import java.util.List; import java.util.Map; @@ -85,7 +87,7 @@ public Response teamName(@PathParam("courseID") String courseID, @PathParam("assignmentID") int assignmentID, @PathParam("teamName") String team_name) { PeerReviewAssignmentInterface peerReviewAssignmentInterface = new PeerReviewAssignmentInterface(); - return Response.status(Response.Status.OK).entity(peerReviewAssignmentInterface.getTeamGrades(courseID, assignmentID, team_name)).build(); + return Response.status(Response.Status.OK).entity(peerReviewAssignmentInterface.redoneGetTeamGrades(courseID, assignmentID, team_name)).build();//GetTeamGrades(courseID, assignmentID, team_name)).build(); } /** @@ -120,6 +122,74 @@ public Response getTeamGrade(@PathParam("courseID") String courseID, return Response.status(Response.Status.OK).entity(peerReviewAssignmentInterface.getGradeForTeam(courseID, assignmentID, teamID)).build(); } + /** + * Endpoint to get all student grades. + * + * @param courseID The course for the assignment + * @param assignmentID The assignment that is being looked up + * @param studentID The team name for the team looked up + * @return the student that was edited + */ + @GET + @RolesAllowed("professor") + @Path("{courseID}/{assignmentID}/{teamID}/{studentID}/grade") + @Produces(MediaType.APPLICATION_JSON) + public Response getTeamGrade(@PathParam("courseID") String courseID, + @PathParam("assignmentID") int assignmentID, + @PathParam("teamID") String teamID, + @PathParam("studentID") String studentID) { + PeerReviewAssignmentInterface peerReviewAssignmentInterface = new PeerReviewAssignmentInterface(); + return Response.status(Response.Status.OK).entity(peerReviewAssignmentInterface.getGradeForStudent(courseID, assignmentID, teamID, studentID)).build(); + } + /** + * Endpoint to get matrix of grades and outliers + * + * @param courseID The course for the assignment + * @return the matrix of grades with outliers as boolean value + */ + @GET + @RolesAllowed("professor") + @Path("{courseID}/outlierDetectionOverTime") + @Produces(MediaType.APPLICATION_JSON) + public Response getMatrixOfGrades(@PathParam("courseID") String courseID){ + //grab instance of peer review interface + PeerReviewAssignmentInterface peerReviewAssignmentInterface = new PeerReviewAssignmentInterface(); + //the function to grab all of the + Document matrixOfGrades = peerReviewAssignmentInterface.getAllPotentialOutliersAndGrades(courseID);//allPotentialOutliers(courseID); + + if(peerReviewAssignmentInterface == null || matrixOfGrades == null) + return Response.status(Response.Status.BAD_REQUEST).entity("Error getting all the potential outliers").build(); + return Response.status(Response.Status.OK).entity(matrixOfGrades).build(); + } + + + + + /** + * Endpoint to get matrix of grades and outliers + * + * @param courseID The course for the assignment + * @param assignmentID The assignment that is being looked up + * @return the matrix of grades with outliers as boolean value + */ + @GET + @RolesAllowed("professor") + @Path("{courseID}/{assignmentID}/matrix") + @Produces(MediaType.APPLICATION_JSON) + public Response getMatrixOfGrades(@PathParam("courseID") String courseID, + @PathParam("assignmentID") int assignmentID){ + //grab instance of peer review interface + PeerReviewAssignmentInterface peerReviewAssignmentInterface = new PeerReviewAssignmentInterface(); + //the function to grab all of the + Document matrixOfGrades = peerReviewAssignmentInterface.getMatrixOfOutlierAndGrades(courseID, assignmentID);//getMatrixOfGrades(courseID, assignmentID); + + if(peerReviewAssignmentInterface == null || matrixOfGrades == null) + return Response.status(Response.Status.BAD_REQUEST).entity("Error getting matrix of grades").build(); + return Response.status(Response.Status.OK).entity(matrixOfGrades).build(); + } + + + /** * Endpoint to get the teams that a team was assigned to peer review. * @@ -142,6 +212,30 @@ public Response getTeamAssignments(@PathParam("courseID") String courseID, return Response.status(Response.Status.OK).entity(assignedTeams).build(); } + /** + * Endpoint to get the teams that were assigned to as specific target team to peer-review + * + * @param courseID course in which team exists + * @param assignmentID the peer review assignment + * @param teamName the target team + * @return all teams assigned to review the target team for this peer review assignment + */ + @GET + @RolesAllowed({"professor", "student"}) + @Path("{courseID}/{assignmentID}/peer-review-team-reviewers/{teamName}") + @Produces(MediaType.APPLICATION_JSON) + public Response getTeamReviewers(@PathParam("courseID") String courseID, + @PathParam("assignmentID") int assignmentID, + @PathParam("teamName") String teamName) { + PeerReviewAssignmentInterface peerReviewAssignmentInterface = new PeerReviewAssignmentInterface(); + List reviewTeams = peerReviewAssignmentInterface.getReviewTeams(courseID, assignmentID, teamName); + if (reviewTeams == null) + return Response.status(Response.Status.BAD_REQUEST).entity("Team name does not exist.").build(); + return Response.status(Response.Status.OK).entity(reviewTeams).build(); + } + + //deprecated so not even going to bother + /** * An endpoint for a team to download another team's assignment submission to be peer reviewed. * @@ -180,8 +274,8 @@ public Response downloadOtherTeamsAssignment(@PathParam("courseID") String cours @POST @RolesAllowed({"professor", "student"}) @Path("{courseID}/{assignmentID}/{srcTeamName}/{destTeamName}/{grade}/upload") - @Consumes({MediaType.MULTIPART_FORM_DATA, MediaType.APPLICATION_OCTET_STREAM}) - @Produces({MediaType.MULTIPART_FORM_DATA, MediaType.APPLICATION_OCTET_STREAM}) + @Consumes(MediaType.MULTIPART_FORM_DATA) + @Produces(MediaType.APPLICATION_JSON) public Response uploadPeerReview(List attachments, @PathParam("courseID") String courseID, @PathParam("assignmentID") int assignmentID, @@ -193,14 +287,15 @@ public Response uploadPeerReview(List attachments, if (attachment == null) continue; String fileName = attachment.getDataHandler().getName(); if (fileName.endsWith("pdf") || fileName.endsWith("docx")) { - peerReviewAssignmentInterface.uploadPeerReview(courseID, assignmentID, srcTeamName, destTeamName, attachment); fileName = "from-" + srcTeamName + "-to-" + destTeamName + fileName.substring(fileName.indexOf(".")); - peerReviewAssignmentInterface.addPeerReviewSubmission(courseID, assignmentID, srcTeamName, destTeamName, fileName, grade); + peerReviewAssignmentInterface.addPeerReviewSubmission(courseID, assignmentID, srcTeamName, destTeamName, fileName, grade, attachment.getDataHandler().getInputStream()); } else return Response.status(Response.Status.UNSUPPORTED_MEDIA_TYPE).build(); } return Response.status(Response.Status.OK).entity("Successfully uploaded peer review.").build(); } + //change + /** * Endpoint for a team to download the peer reviews that were made for the assignment that the team submitted. * The downloaded file from this endpoint is from another teams submitted peer review @@ -223,10 +318,11 @@ public Response downloadFinishedTeamPeerReview(@PathParam("courseID") String cou PeerReviewAssignmentInterface peerReviewAssignmentInterface = new PeerReviewAssignmentInterface(); // check if the peer review due date is past // if not then return a response saying peer review is not ready - File file = peerReviewAssignmentInterface.downloadFinishedPeerReview(courseID, assignmentID, srcTeamName, destTeamName); + String fileName = peerReviewAssignmentInterface.downloadFinishedPeerReviewName(courseID, assignmentID, srcTeamName, destTeamName); + Binary fileData = peerReviewAssignmentInterface.downloadFinishedPeerReview(courseID, assignmentID, srcTeamName, destTeamName); - Response.ResponseBuilder response = Response.ok(file); - response.header("Content-Disposition", "attachment; filename=" + "peer-review-for-" + destTeamName); + Response.ResponseBuilder response = Response.ok(Base64.getEncoder().encode(fileData.getData())); + response.header("Content-Disposition", "attachment; filename=" + "peer-review-for-" + destTeamName + fileName.substring(fileName.indexOf("."))); return response.build(); } @@ -270,4 +366,48 @@ public Response finalizeGrades(@PathParam("course_id") String courseID, new PeerReviewAssignmentInterface().makeFinalGrades(courseID, assignmentID); return Response.status(Response.Status.OK).entity("Peer reviews have been averaged to make final grades.").build(); } -} \ No newline at end of file + + /** + * Endpoint to get a list of submissions for which a given team has been assigned to peer-review + * + * @param courseID course in which this is happening + * @param assignmentID assignment for which these peer reviews are assigned + * @param teamName team assigned to review these submissions + * @return list of assignment submissions assigned to the given team + */ + @GET + @RolesAllowed({"professor", "student"}) + @Path("{courseID}/{assignmentID}/peer-reviews-given/{teamName}") + public Response peerReviewsGiven(@PathParam("courseID") String courseID, + @PathParam("assignmentID") int assignmentID, + @PathParam("teamName") String teamName){ + List submissions = new PeerReviewAssignmentInterface().peerReviewsGiven(courseID, assignmentID, teamName); + if(submissions == null) { + return Response.status(Response.Status.BAD_REQUEST).entity("That assignment has not been distributed for peer reviews yet!").build(); + } + return Response.status(Response.Status.OK).entity(submissions).build(); + } + + /** + * Endpoint to get a list of peer review submissions made for a specified team's assignment submission + * + * @param courseID course in which this is happening + * @param assignmentID assignment for which these peer reviews are assigned + * @param teamName team for whom these reviews are made + * @return list of peer-review submissions assigned for the specified team's submission + */ + @GET + @RolesAllowed({"professor", "student"}) + @Path("{courseID}/{assignmentID}/peer-reviews-received/{teamName}") + public Response peerReviewsReceived(@PathParam("courseID") String courseID, + @PathParam("assignmentID") int assignmentID, + @PathParam("teamName") String teamName){ + List submissions = new PeerReviewAssignmentInterface() + .peerReviewsReceived(courseID, assignmentID, teamName); + if(submissions == null) { + return Response.status(Response.Status.BAD_REQUEST).entity("That assignment has not been distributed for peer reviews yet!").build(); + } + return Response.status(Response.Status.OK).entity(submissions).build(); + } +} + diff --git a/backend/student-peer-review-assignment-microservice/src/main/liberty/config/server.xml b/backend/student-peer-review-assignment-microservice/src/main/liberty/config/server.xml old mode 100644 new mode 100755 diff --git a/backend/student-peer-review-assignment-microservice/src/test/java/StudentPeerReviewAssignmentTests.java b/backend/student-peer-review-assignment-microservice/src/test/java/StudentPeerReviewAssignmentTests.java old mode 100644 new mode 100755 index 7d80cd5f7..fa3a6f868 --- a/backend/student-peer-review-assignment-microservice/src/test/java/StudentPeerReviewAssignmentTests.java +++ b/backend/student-peer-review-assignment-microservice/src/test/java/StudentPeerReviewAssignmentTests.java @@ -1,2 +1,774 @@ +import com.ibm.websphere.jaxrs20.multipart.IAttachment; +import com.mongodb.*; +import com.mongodb.client.MongoClients; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoCursor; +import com.mongodb.client.MongoDatabase; +import com.mongodb.client.model.Filters; +import edu.oswego.cs.daos.FileDAO; +import edu.oswego.cs.database.DatabaseManager; +import edu.oswego.cs.database.PeerReviewAssignmentInterface; +import edu.oswego.cs.resources.PeerReviewAssignmentResource; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.bson.Document; + +import java.io.*; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import static com.mongodb.client.model.Filters.and; +import static com.mongodb.client.model.Filters.eq; +import static edu.oswego.cs.database.PeerReviewAssignmentInterface.isOutlier; +import static org.junit.jupiter.api.Assertions.*; + +import javax.activation.DataHandler; +import javax.activation.DataSource; +import javax.validation.constraints.AssertTrue; +import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.MultivaluedMap; + +/* ********************************************************************************************************************* +ALL CODE THAT IS COMMENTED OUT CAUSES parseInt ERRORS DUE TO +ENVIRONMENT VARIABLE ISSUES OR BECAUSE THERE ARE PARAMETER MISMATCHES OR BECAUSE +THERE ARE METHODS BEING CALLED THAT DO NOT EXIST AND POSSIBLE OTHER ISSUES I DID NOT CATCH. +********************************************************************************************************************* + */ + +//please use the default db setup outlined in the "Database Default for Testing" file +//If a test fails, please ensure db is back to default before testing again public class StudentPeerReviewAssignmentTests { -} + +// PeerReviewAssignmentInterface pr = new PeerReviewAssignmentInterface(); +// MongoClient mongoClient, mongoClient2, mongoClient3, mongoClient4, mongoClient5; +// MongoCollection teamCollection, assignmentCollection, submissionsCollection; + + + + /* //NOT giving access!!! + @BeforeAll + public static void setup(){ + //from env file + String username = "root"; + String database = "admin"; + String password = "password"; + //Create credentials + MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray()); + MongoClientOptions options = MongoClientOptions.builder() + .writeConcern(WriteConcern.JOURNALED).build(); + + //connects to localhost and specified port (ex. 127.0.0.1:27017) (ie. connects Java program to MongoDB server on localhost at given port) + *//* MongoClient mongoClient = new MongoClient(new ServerAddress("localhost", 27037), Arrays.asList(mongoCredential), options);//holds students Collection + MongoClient mongoClient2 = new MongoClient(new ServerAddress("localhost", 27038), Arrays.asList(mongoCredential), options);//holds professors Collection + MongoClient mongoClient3 = new MongoClient(new ServerAddress("localhost", 27039), Arrays.asList(mongoCredential), options);//holds courses Collection + MongoClient mongoClient4 = new MongoClient(new ServerAddress("localhost", 27040), Arrays.asList(mongoCredential), options);//holds assignments, submissions Collections + MongoClient mongoClient5 = new MongoClient(new ServerAddress("localhost", 27041), Arrays.asList(mongoCredential), options);//holds teams Collection*//* + + //gets specified Collections + MongoCollection teamCollection = mongoClient5.getDatabase("cpr").getCollection("teams"); + MongoCollection assignmentCollection = mongoClient4.getDatabase("cpr").getCollection("assignments"); + MongoCollection submissionsCollection = mongoClient4.getDatabase("cpr").getCollection("submissions"); + + }*/ + + + //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + //TC|ID 1.1 = TCIDOnePointOne is the naming convention for now + + //To test: + //public void addPeerReviewSubmission(String course_id,int assignment_id,String srcTeamName,String destinationTeam,String fileName,int grade) + +// @Test +// public void addPeerReviewSubmissionTCIDOnePointOne() {//valid String ""CSC-234-2342-SPR-2023" +// +// //gives access to db +// //------------------------------------------------------------------------------------------------------------------------------ +// //from env file +// String username = "root"; +// String database = "admin"; +// String password = "password"; +// //Create credentials +// MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray()); +// MongoClientOptions options = MongoClientOptions.builder() +// .writeConcern(WriteConcern.JOURNALED).build(); +// +// mongoClient4 = new MongoClient(new ServerAddress("localhost", 27040), Arrays.asList(mongoCredential), options); +// submissionsCollection = mongoClient4.getDatabase("cpr").getCollection("submissions"); +// //------------------------------------------------------------------------------------------------------------------------------ +// +// String course_id = "CSC-480-46374-SPR-2023"; +// int assignment_id = 1; +// String srcTeamName = "Team1";//aka reviewed_by +// String destinationTeam = "Team2";//aka reviewed_team +// String fileName = "PeerReviewFile1.pdf"; +// int grade = 80; +// pr.addPeerReviewSubmission(course_id, assignment_id, srcTeamName, destinationTeam, fileName, grade);//add a Document with the given values +// +// Document docFromQuery = null; +// MongoCursor query = submissionsCollection.find(and( +// eq("course_id", course_id), +// eq("assignment_id", assignment_id), +// eq("submission_name", fileName), +// eq("grade", grade), +// eq("reviewed_by", srcTeamName), +// eq("reviewed_team", destinationTeam), +// eq("type", "peer_review_submission"))).iterator(); +// docFromQuery = query.next();//gets the Document returned by the query +// +// assertFalse(docFromQuery == null); +// +// //remove the change we made to the db (ie. remove the Document we just added) +// submissionsCollection.deleteOne(and(Filters. +// eq("course_id", course_id), +// eq("assignment_id", assignment_id), +// eq("submission_name", fileName), +// eq("grade", grade), +// eq("reviewed_by", srcTeamName), +// eq("reviewed_team", destinationTeam), +// eq("type", "peer_review_submission"))); +// +// } +// +// @Test +// public void addPeerReviewSubmissionTCIDOnePointA() {//null +// //gives access to db +// //------------------------------------------------------------------------------------------------------------------------------ +// //from env file +// String username = "root"; +// String database = "admin"; +// String password = "password"; +// //Create credentials +// MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray()); +// MongoClientOptions options = MongoClientOptions.builder() +// .writeConcern(WriteConcern.JOURNALED).build(); +// +// mongoClient4 = new MongoClient(new ServerAddress("localhost", 27040), Arrays.asList(mongoCredential), options); +// submissionsCollection = mongoClient4.getDatabase("cpr").getCollection("submissions"); +// //------------------------------------------------------------------------------------------------------------------------------ +// +// String course_id = null; +// int assignment_id = 1; +// String srcTeamName = "Team1"; +// String destinationTeam = "Team2"; +// String fileName = "PeerReviewFile1.pdf"; +// int grade = 80; +// +// //asserts that a javax.ws.rs.WebApplicationException is thrown +// Exception exception = assertThrows( +// javax.ws.rs.WebApplicationException.class, +// () -> pr.addPeerReviewSubmission(course_id, assignment_id, srcTeamName, destinationTeam, fileName, grade)); +// +// } +// +// @Test +// public void addPeerReviewSubmissionTCIDTwoPointA() {//assignment_id is -1 +// +// //gives access to db +// //------------------------------------------------------------------------------------------------------------------------------ +// //from env file +// String username = "root"; +// String database = "admin"; +// String password = "password"; +// //Create credentials +// MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray()); +// MongoClientOptions options = MongoClientOptions.builder() +// .writeConcern(WriteConcern.JOURNALED).build(); +// +// mongoClient4 = new MongoClient(new ServerAddress("localhost", 27040), Arrays.asList(mongoCredential), options); +// submissionsCollection = mongoClient4.getDatabase("cpr").getCollection("submissions"); +// //------------------------------------------------------------------------------------------------------------------------------ +// +// String course_id = "CSC-480-46374-SPR-2023"; +// int assignment_id = -1; +// String srcTeamName = "Team1"; +// String destinationTeam = "Team2"; +// String fileName = "PeerReviewFile1.pdf"; +// int grade = 80; +// +// //asserts that a javax.ws.rs.WebApplicationException is thrown +// Exception exception = assertThrows( +// javax.ws.rs.WebApplicationException.class, +// () -> pr.addPeerReviewSubmission(course_id, assignment_id, srcTeamName, destinationTeam, fileName, grade)); +// +// +// } +// +// @Test +// public void addPeerReviewSubmissionTCIDTwoPointB() {//assignment_id is 0 +// +// //gives access to db +// //------------------------------------------------------------------------------------------------------------------------------ +// //from env file +// String username = "root"; +// String database = "admin"; +// String password = "password"; +// //Create credentials +// MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray()); +// MongoClientOptions options = MongoClientOptions.builder() +// .writeConcern(WriteConcern.JOURNALED).build(); +// +// mongoClient4 = new MongoClient(new ServerAddress("localhost", 27040), Arrays.asList(mongoCredential), options); +// submissionsCollection = mongoClient4.getDatabase("cpr").getCollection("submissions"); +// //------------------------------------------------------------------------------------------------------------------------------ +// +// String course_id = "CSC-480-46374-SPR-2023"; +// int assignment_id = 0; +// String srcTeamName = "Team1"; +// String destinationTeam = "Team2"; +// String fileName = "PeerReviewFile1.pdf"; +// int grade = 80; +// +// //asserts that a javax.ws.rs.WebApplicationException is thrown +// Exception exception = assertThrows( +// javax.ws.rs.WebApplicationException.class, +// () -> pr.addPeerReviewSubmission(course_id, assignment_id, srcTeamName, destinationTeam, fileName, grade)); +// +// +// } +// +// @Test +// public void addPeerReviewSubmissionTCIDThreePointA() {//null srcTeamName +// //gives access to db +// //------------------------------------------------------------------------------------------------------------------------------ +// //from env file +// String username = "root"; +// String database = "admin"; +// String password = "password"; +// //Create credentials +// MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray()); +// MongoClientOptions options = MongoClientOptions.builder() +// .writeConcern(WriteConcern.JOURNALED).build(); +// +// mongoClient4 = new MongoClient(new ServerAddress("localhost", 27040), Arrays.asList(mongoCredential), options); +// submissionsCollection = mongoClient4.getDatabase("cpr").getCollection("submissions"); +// //------------------------------------------------------------------------------------------------------------------------------ +// +// String course_id = "CSC-480-46374-SPR-2023"; +// int assignment_id = 1; +// String srcTeamName = null; +// String destinationTeam = "Team2"; +// String fileName = "PeerReviewFile1.pdf"; +// int grade = 80; +// +// //asserts that a javax.ws.rs.WebApplicationException is thrown +// Exception exception = assertThrows( +// javax.ws.rs.WebApplicationException.class, +// () -> pr.addPeerReviewSubmission(course_id, assignment_id, srcTeamName, destinationTeam, fileName, grade)); +// +// } +// +// @Test +// public void addPeerReviewSubmissionTCIDFourPointA() {//null destinationTeam +// //gives access to db +// //------------------------------------------------------------------------------------------------------------------------------ +// //from env file +// String username = "root"; +// String database = "admin"; +// String password = "password"; +// //Create credentials +// MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray()); +// MongoClientOptions options = MongoClientOptions.builder() +// .writeConcern(WriteConcern.JOURNALED).build(); +// +// mongoClient4 = new MongoClient(new ServerAddress("localhost", 27040), Arrays.asList(mongoCredential), options); +// submissionsCollection = mongoClient4.getDatabase("cpr").getCollection("submissions"); +// //------------------------------------------------------------------------------------------------------------------------------ +// +// String course_id = "CSC-480-46374-SPR-2023"; +// int assignment_id = 1; +// String srcTeamName = "Team1"; +// String destinationTeam = null; +// String fileName = "PeerReviewFile1.pdf"; +// int grade = 80; +// +// //asserts that a javax.ws.rs.WebApplicationException is thrown +// Exception exception = assertThrows( +// javax.ws.rs.WebApplicationException.class, +// () -> pr.addPeerReviewSubmission(course_id, assignment_id, srcTeamName, destinationTeam, fileName, grade)); +// +// } +// +// @Test +// public void addPeerReviewSubmissionTCIDFivePointTwo() {//valid fileName +// +// //gives access to db +// //------------------------------------------------------------------------------------------------------------------------------ +// //from env file +// String username = "root"; +// String database = "admin"; +// String password = "password"; +// //Create credentials +// MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray()); +// MongoClientOptions options = MongoClientOptions.builder() +// .writeConcern(WriteConcern.JOURNALED).build(); +// +// mongoClient4 = new MongoClient(new ServerAddress("localhost", 27040), Arrays.asList(mongoCredential), options); +// submissionsCollection = mongoClient4.getDatabase("cpr").getCollection("submissions"); +// //------------------------------------------------------------------------------------------------------------------------------ +// +// String course_id = "CSC-480-46374-SPR-2023"; +// int assignment_id = 1; +// String srcTeamName = "Team1";//aka reviewed_by +// String destinationTeam = "Team2";//aka reviewed_team +// String fileName = "PeerReviewFile1.csv"; +// int grade = 80; +// +// //asserts that a javax.ws.rs.WebApplicationException is thrown +// Exception exception = assertThrows( +// javax.ws.rs.WebApplicationException.class, +// () -> pr.addPeerReviewSubmission(course_id, assignment_id, srcTeamName, destinationTeam, fileName, grade)); +// +// } +// +// +// @Test +// public void addPeerReviewSubmissionTCIDSixPointOne() {//valid grade 32 +// +// //gives access to db +// //------------------------------------------------------------------------------------------------------------------------------ +// //from env file +// String username = "root"; +// String database = "admin"; +// String password = "password"; +// //Create credentials +// MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray()); +// MongoClientOptions options = MongoClientOptions.builder() +// .writeConcern(WriteConcern.JOURNALED).build(); +// +// mongoClient4 = new MongoClient(new ServerAddress("localhost", 27040), Arrays.asList(mongoCredential), options); +// submissionsCollection = mongoClient4.getDatabase("cpr").getCollection("submissions"); +// //------------------------------------------------------------------------------------------------------------------------------ +// +// String course_id = "CSC-480-46374-SPR-2023"; +// int assignment_id = 1; +// String srcTeamName = "Team1";//aka reviewed_by +// String destinationTeam = "Team2";//aka reviewed_team +// String fileName = "PeerReviewFile1.pdf"; +// int grade = 32; +// pr.addPeerReviewSubmission(course_id, assignment_id, srcTeamName, destinationTeam, fileName, grade);//add a Document with the given values +// +// Document docFromQuery = null; +// MongoCursor query = submissionsCollection.find(and( +// eq("course_id", course_id), +// eq("assignment_id", assignment_id), +// eq("submission_name", fileName), +// eq("grade", grade), +// eq("reviewed_by", srcTeamName), +// eq("reviewed_team", destinationTeam), +// eq("type", "peer_review_submission"))).iterator(); +// docFromQuery = query.next();//gets the Document returned by the query +// +// assertFalse(docFromQuery == null); +// +// //remove the change we made to the db (ie. remove the Document we just added) +// submissionsCollection.deleteOne(and(Filters. +// eq("course_id", course_id), +// eq("assignment_id", assignment_id), +// eq("submission_name", fileName), +// eq("grade", grade), +// eq("reviewed_by", srcTeamName), +// eq("reviewed_team", destinationTeam), +// eq("type", "peer_review_submission"))); +// +// } +// +// @Test +// public void addPeerReviewSubmissionTCIDSixPointTwo() {//valid grade 0 +// +// //gives access to db +// //------------------------------------------------------------------------------------------------------------------------------ +// //from env file +// String username = "root"; +// String database = "admin"; +// String password = "password"; +// //Create credentials +// MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray()); +// MongoClientOptions options = MongoClientOptions.builder() +// .writeConcern(WriteConcern.JOURNALED).build(); +// +// mongoClient4 = new MongoClient(new ServerAddress("localhost", 27040), Arrays.asList(mongoCredential), options); +// submissionsCollection = mongoClient4.getDatabase("cpr").getCollection("submissions"); +// //------------------------------------------------------------------------------------------------------------------------------ +// +// String course_id = "CSC-480-46374-SPR-2023"; +// int assignment_id = 1; +// String srcTeamName = "Team1";//aka reviewed_by +// String destinationTeam = "Team2";//aka reviewed_team +// String fileName = "PeerReviewFile1.pdf"; +// int grade = 0; +// pr.addPeerReviewSubmission(course_id, assignment_id, srcTeamName, destinationTeam, fileName, grade);//add a Document with the given values +// +// Document docFromQuery = null; +// MongoCursor query = submissionsCollection.find(and( +// eq("course_id", course_id), +// eq("assignment_id", assignment_id), +// eq("submission_name", fileName), +// eq("grade", grade), +// eq("reviewed_by", srcTeamName), +// eq("reviewed_team", destinationTeam), +// eq("type", "peer_review_submission"))).iterator(); +// docFromQuery = query.next();//gets the Document returned by the query +// +// assertFalse(docFromQuery == null); +// +// //remove the change we made to the db (ie. remove the Document we just added) +// submissionsCollection.deleteOne(and(Filters. +// eq("course_id", course_id), +// eq("assignment_id", assignment_id), +// eq("submission_name", fileName), +// eq("grade", grade), +// eq("reviewed_by", srcTeamName), +// eq("reviewed_team", destinationTeam), +// eq("type", "peer_review_submission"))); +// +// } +// +// +// @Test +// public void addPeerReviewSubmissionTCIDSixPointA() {//grade -2 +// //gives access to db +// //------------------------------------------------------------------------------------------------------------------------------ +// //from env file +// String username = "root"; +// String database = "admin"; +// String password = "password"; +// //Create credentials +// MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray()); +// MongoClientOptions options = MongoClientOptions.builder() +// .writeConcern(WriteConcern.JOURNALED).build(); +// +// mongoClient4 = new MongoClient(new ServerAddress("localhost", 27040), Arrays.asList(mongoCredential), options); +// submissionsCollection = mongoClient4.getDatabase("cpr").getCollection("submissions"); +// //------------------------------------------------------------------------------------------------------------------------------ +// +// String course_id = "CSC-480-46374-SPR-2023"; +// int assignment_id = 1; +// String srcTeamName = "Team1"; +// String destinationTeam = "Team2"; +// String fileName = "PeerReviewFile1.pdf"; +// int grade = -2; +// +// //asserts that a javax.ws.rs.WebApplicationException is thrown +// Exception exception = assertThrows( +// javax.ws.rs.WebApplicationException.class, +// () -> pr.addPeerReviewSubmission(course_id, assignment_id, srcTeamName, destinationTeam, fileName, grade)); +// +// } +// +// +// @Test +// public void addPeerReviewSubmissionTCIDFivePointA() {//null fileName +// //gives access to db +// //------------------------------------------------------------------------------------------------------------------------------ +// //from env file +// String username = "root"; +// String database = "admin"; +// String password = "password"; +// //Create credentials +// MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray()); +// MongoClientOptions options = MongoClientOptions.builder() +// .writeConcern(WriteConcern.JOURNALED).build(); +// +// mongoClient4 = new MongoClient(new ServerAddress("localhost", 27040), Arrays.asList(mongoCredential), options); +// submissionsCollection = mongoClient4.getDatabase("cpr").getCollection("submissions"); +// //------------------------------------------------------------------------------------------------------------------------------ +// +// String course_id = "CSC-480-46374-SPR-2023"; +// int assignment_id = 1; +// String srcTeamName = "Team1"; +// String destinationTeam = "Team2"; +// String fileName = null; +// int grade = 80; +// +// //asserts that a javax.ws.rs.WebApplicationException is thrown +// Exception exception = assertThrows( +// javax.ws.rs.WebApplicationException.class, +// () -> pr.addPeerReviewSubmission(course_id, assignment_id, srcTeamName, destinationTeam, fileName, grade)); +// +// } +// +// //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// +// //To test: +// //public void uploadPeerReview(String courseID, int assignmentID, String srcTeamName, String destTeamName, IAttachment attachment) +// +// IAttachment attachment = new IAttachment() { +// @Override +// public String getContentId() { +// return null; +// } +// +// @Override +// public MediaType getContentType() { +// return null; +// } +// +// @Override +// public DataHandler getDataHandler() { +// DataHandler dh = new DataHandler(new DataSource() { +// @Override +// public InputStream getInputStream() throws IOException { +// InputStream in = new FileInputStream(new File("src/main/liberty/config/server.xml"));//random filepath +// return in; +// } +// +// @Override +// public OutputStream getOutputStream() throws IOException { +// return null; +// } +// +// @Override +// public String getContentType() { +// return null; +// } +// +// @Override +// public String getName() { +// return null; +// } +// }); +// +// return dh; +// } +// +// @Override +// public String getHeader(String s) { +// return null; +// } +// +// @Override +// public MultivaluedMap getHeaders() { +// return null; +// } +// }; +// +// @Test +// public void uploadPeerReviewTCIDOnePointOne() throws IOException {//valid courseID +// String courseID = "CSC-480-46374-SPR-2023"; +// int assignmentID = 1; +// String srcTeamName = "Team1"; +// String destTeamName = "Team2"; +// +// pr.uploadPeerReview(courseID, assignmentID, srcTeamName, destTeamName, attachment); +// +// String path = "assignments" + "/" + courseID + "/" + assignmentID + "/peer-review-submissions/";//copied from method being tested +// String DAOfileName = "from-" + srcTeamName + "-to-" + destTeamName; +// path = path + DAOfileName + ".pdf"; +// +// assertTrue(new File(path).exists()); +// +// //delete File created for testing +// new File(path).delete(); +// +// } +// +// @Test +// public void uploadPeerReviewTCIDOnePointA() throws IOException {//null courseID +// String courseID = null; +// int assignmentID = 1; +// String srcTeamName = "Team1"; +// String destTeamName = "Team2"; +// +// pr.uploadPeerReview(courseID, assignmentID, srcTeamName, destTeamName, attachment); +// +// String path = "assignments" + "/" + courseID + "/" + assignmentID + "/peer-review-submissions/";//copied from method being tested +// String DAOfileName = "from-" + srcTeamName + "-to-" + destTeamName; +// path = path + DAOfileName + ".pdf"; +// +// assertFalse(new File(path).exists()); +// +// //delete File created for testing +// new File(path).delete(); +// +// } +// +// @Test +// public void uploadPeerReviewTCIDTwoPointA() throws IOException {//assignmentID -2 +// String courseID = "CSC-480-46374-SPR-2023"; +// int assignmentID = -1; +// String srcTeamName = "Team1"; +// String destTeamName = "Team2"; +// +// pr.uploadPeerReview(courseID, assignmentID, srcTeamName, destTeamName, attachment); +// +// String path = "assignments" + "/" + courseID + "/" + assignmentID + "/peer-review-submissions/";//copied from method being tested +// String DAOfileName = "from-" + srcTeamName + "-to-" + destTeamName; +// path = path + DAOfileName + ".pdf"; +// +// assertFalse(new File(path).exists()); +// +// //delete File created for testing +// new File(path).delete(); +// +// } +// +// @Test +// public void uploadPeerReviewTCIDTwoPointB() throws IOException {//assignmentID 0 +// String courseID = "CSC-480-46374-SPR-2023"; +// int assignmentID = 0; +// String srcTeamName = "Team1"; +// String destTeamName = "Team2"; +// +// pr.uploadPeerReview(courseID, assignmentID, srcTeamName, destTeamName, attachment); +// +// String path = "assignments" + "/" + courseID + "/" + assignmentID + "/peer-review-submissions/";//copied from method being tested +// String DAOfileName = "from-" + srcTeamName + "-to-" + destTeamName; +// path = path + DAOfileName + ".pdf"; +// +// assertFalse(new File(path).exists()); +// +// //delete File created for testing +// new File(path).delete(); +// +// } +// +// @Test +// public void uploadPeerReviewTCIDThreePointA() throws IOException {//srcTeamName null +// String courseID = "CSC-480-46374-SPR-2023"; +// int assignmentID = 1; +// String srcTeamName = null; +// String destTeamName = "Team2"; +// +// pr.uploadPeerReview(courseID, assignmentID, srcTeamName, destTeamName, attachment); +// +// String path = "assignments" + "/" + courseID + "/" + assignmentID + "/peer-review-submissions/";//copied from method being tested +// String DAOfileName = "from-" + srcTeamName + "-to-" + destTeamName; +// path = path + DAOfileName + ".pdf"; +// +// assertFalse(new File(path).exists()); +// +// //delete File created for testing +// new File(path).delete(); +// +// } +// +// @Test +// public void uploadPeerReviewTCIDFourPointA() throws IOException {//destTeamName null +// String courseID = "CSC-480-46374-SPR-2023"; +// int assignmentID = 1; +// String srcTeamName = "Team1"; +// String destTeamName = null; +// +// pr.uploadPeerReview(courseID, assignmentID, srcTeamName, destTeamName, attachment); +// +// String path = "assignments" + "/" + courseID + "/" + assignmentID + "/peer-review-submissions/";//copied from method being tested +// String DAOfileName = "from-" + srcTeamName + "-to-" + destTeamName; +// path = path + DAOfileName + ".pdf"; +// +// assertFalse(new File(path).exists()); +// +// //delete File created for testing +// new File(path).delete(); +// +// } +// +// @Test +// public void uploadPeerReviewTCIDFivePointA() throws IOException {//attachment null +// String courseID = "CSC-480-46374-SPR-2023"; +// int assignmentID = 1; +// String srcTeamName = "Team1"; +// String destTeamName = "Team2"; +// attachment = null; +// +// //asserts that a javax.ws.rs.WebApplicationException is thrown +// Exception exception = assertThrows( +// NullPointerException.class, +// () -> pr.uploadPeerReview(courseID, assignmentID, srcTeamName, destTeamName, attachment)); +// +// } +// +// //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +// +// //To test: +// // public File downloadFinishedPeerReview(String courseID, int assignmentID, String srcTeamName, String destTeamName) +// +// @Test +// public void downloadFinishedPeerReviewTCIDOnePointOne() throws IOException {//valid courseID +// +// //gives access to db +// //------------------------------------------------------------------------------------------------------------------------------ +// //from env file +// String username = "root"; +// String database = "admin"; +// String password = "password"; +// //Create credentials +// MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray()); +// MongoClientOptions options = MongoClientOptions.builder() +// .writeConcern(WriteConcern.JOURNALED).build(); +// +// mongoClient4 = new MongoClient(new ServerAddress("localhost", 27040), Arrays.asList(mongoCredential), options); +// submissionsCollection = mongoClient4.getDatabase("cpr").getCollection("submissions"); +// //------------------------------------------------------------------------------------------------------------------------------ +// +// pr.addPeerReviewSubmission("CSC-480-46374-SPR-2023", 1, "Team1", "Team2", "PeerReviewFile1.pdf", 80); +// pr.uploadPeerReview("CSC-480-46374-SPR-2023", 1, "Team1", "Team2", attachment); +// +// String courseID = "CSC-480-46374-SPR-2023"; +// int assignmentID = 1; +// String srcTeamName = "Team1"; +// String destTeamName = "Team2"; +// +// File actualFile = pr.downloadFinishedPeerReview(courseID, assignmentID, srcTeamName, destTeamName); +// System.out.println("file name= " + actualFile.getName()); +// System.out.println("file path= " + actualFile.getPath()); +// assertTrue(actualFile != null); +// +// +// //delete File uploaded/created for testing +// String path = "assignments" + "/" + "CSC-480-46374-SPR-2023" + "/" + "1" + "/peer-review-submissions/"; +// String DAOfileName = "from-" + "Team1" + "-to-" + "Team2"; +// path = path + DAOfileName + ".pdf"; +// System.out.println("test file just created was deleted after test= " + new File(path).delete()); +// +// //remove the Document we just added to the db +// submissionsCollection.deleteOne(and(Filters. +// eq("course_id", "CSC-480-46374-SPR-2023"), +// eq("assignment_id", 1), +// eq("submission_name", "PeerReviewFile1.pdf"), +// eq("grade", 80), +// eq("reviewed_by", "Team1"), +// eq("reviewed_team", "Team2"), +// eq("type", "peer_review_submission"))); +// +// } + + @Test + public void outlierDetectionTest() { + int[] testOne = {65, 65, 65, 65, 100}; + int[] testTwo = {75, 50, 50, 50, 50}; + int[] testThree = {75, 90, 90, 90, 90}; + int[] testFour = {90, 90, 90, 90, 90}; + + for (int i = 0; i < testOne.length; i++) { + if (i == 4) + assertEquals(true, isOutlier(testOne[i], 65, 65, 0)); + else + assertEquals(false, isOutlier(testOne[i], 65, 65, 0)); + } + + for (int i = 0; i < testTwo.length; i++) { + if (i == 0) + assertEquals(true, isOutlier(testTwo[i], 50, 50, 0)); + else + assertEquals(false, isOutlier(testTwo[i], 50, 50, 0)); + } + + for (int i = 0; i < testThree.length; i++) { + if (i == 0) + assertEquals(true, isOutlier(testThree[i], 90, 90, 0)); + else + assertEquals(false, isOutlier(testThree[i], 90, 90, 0)); + } + + for (int j : testFour) { + assertEquals(false, isOutlier(j, 90, 90, 0)); + } + } +} \ No newline at end of file diff --git a/backend/student-peer-review-assignment-microservice/student-peer-review-assignment-microservice.iml b/backend/student-peer-review-assignment-microservice/student-peer-review-assignment-microservice.iml new file mode 100644 index 000000000..8c54e3b0b --- /dev/null +++ b/backend/student-peer-review-assignment-microservice/student-peer-review-assignment-microservice.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/compass-connections.json b/compass-connections.json new file mode 100755 index 000000000..af7b13a2f --- /dev/null +++ b/compass-connections.json @@ -0,0 +1,83 @@ +{ + "type": "Compass Connections", + "version": { + "$numberInt": "1" + }, + "connections": [ + { + "id": "05f95566-d853-4e5a-adc2-0d76ffe4a8d2", + "connectionOptions": { + "connectionString": "mongodb://root:password@localhost:27041/?authMechanism=DEFAULT" + }, + "favorite": { + "name": "CPR Mongo DB5:27041", + "color": "color3" + }, + "lastUsed": { + "$date": { + "$numberLong": "1676847176176" + } + } + }, + { + "id": "38cd2b41-f1ce-42ea-a217-f53de03c789f", + "connectionOptions": { + "connectionString": "mongodb://root:password@localhost:27040/?authMechanism=DEFAULT" + }, + "favorite": { + "name": "CPR Mongo DB4:27040", + "color": "color3" + }, + "lastUsed": { + "$date": { + "$numberLong": "1676847184298" + } + } + }, + { + "id": "51055064-2259-4187-81d1-3f9e8ebce04b", + "connectionOptions": { + "connectionString": "mongodb://root:password@localhost:27039/?authMechanism=DEFAULT" + }, + "favorite": { + "name": "CPR Mongo DB3:27039", + "color": "color3" + }, + "lastUsed": { + "$date": { + "$numberLong": "1676847199904" + } + } + }, + { + "id": "ef887e9e-07ed-47dd-9d16-9e6e87fee9e1", + "connectionOptions": { + "connectionString": "mongodb://root:password@localhost:27037/?authMechanism=DEFAULT" + }, + "favorite": { + "name": "CPR Mongo DB2:27037", + "color": "color3" + }, + "lastUsed": { + "$date": { + "$numberLong": "1676848503242" + } + } + }, + { + "id": "b46290fe-c229-45e6-a11a-7face539340b", + "connectionOptions": { + "connectionString": "mongodb://root:password@localhost:27038/?authMechanism=DEFAULT" + }, + "favorite": { + "name": "CPR Mongo DB1:27038", + "color": "color3" + }, + "lastUsed": { + "$date": { + "$numberLong": "1676848518197" + } + } + } + ] +} \ No newline at end of file diff --git a/docker-compose-db-and-proxy.yml b/docker-compose-db-and-proxy.yml new file mode 100755 index 000000000..9bd7d57f9 --- /dev/null +++ b/docker-compose-db-and-proxy.yml @@ -0,0 +1,115 @@ +version: "3.8" +services: + mongo: + image: mongo:5.0.6 + command: mongod --port ${MONGO_PORT} + container_name: cpr-mongo + restart: unless-stopped + volumes: + - ./db:/data/db + environment: + MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE} + MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} + MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} + MONGO_PORT: ${MONGO_PORT} + MONGO2_PORT: ${MONGO2_PORT} + MONGO3_PORT: ${MONGO3_PORT} + MONGO4_PORT: ${MONGO4_PORT} + MONGO5_PORT: ${MONGO5_PORT} + MONGO_USERNAME: ${MONGO_USERNAME} + MONGO_PASSWORD: ${MONGO_PASSWORD} + ports: + - "127.0.0.1:${MONGO_PORT}:${MONGO_PORT}" + + mongo2: + image: mongo:5.0.6 + command: mongod --port ${MONGO2_PORT} + container_name: cpr-mongo2 + restart: unless-stopped + volumes: + - ./db2:/data/db + environment: + MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE} + MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} + MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} + MONGO_PORT: ${MONGO_PORT} + MONGO2_PORT: ${MONGO2_PORT} + MONGO3_PORT: ${MONGO3_PORT} + MONGO4_PORT: ${MONGO4_PORT} + MONGO5_PORT: ${MONGO5_PORT} + MONGO_USERNAME: ${MONGO_USERNAME} + MONGO_PASSWORD: ${MONGO_PASSWORD} + ports: + - "127.0.0.1:${MONGO2_PORT}:${MONGO2_PORT}" + + mongo3: + image: mongo:5.0.6 + command: mongod --port ${MONGO3_PORT} + container_name: cpr-mongo3 + restart: unless-stopped + volumes: + - ./db3:/data/db + environment: + MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE} + MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} + MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} + MONGO_PORT: ${MONGO_PORT} + MONGO2_PORT: ${MONGO2_PORT} + MONGO3_PORT: ${MONGO3_PORT} + MONGO4_PORT: ${MONGO4_PORT} + MONGO5_PORT: ${MONGO5_PORT} + MONGO_USERNAME: ${MONGO_USERNAME} + MONGO_PASSWORD: ${MONGO_PASSWORD} + ports: + - "127.0.0.1:${MONGO3_PORT}:${MONGO3_PORT}" + + mongo4: + image: mongo:5.0.6 + command: mongod --port ${MONGO4_PORT} + container_name: cpr-mongo4 + restart: unless-stopped + volumes: + - ./db4:/data/db + environment: + MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE} + MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} + MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} + MONGO_PORT: ${MONGO_PORT} + MONGO2_PORT: ${MONGO2_PORT} + MONGO3_PORT: ${MONGO3_PORT} + MONGO4_PORT: ${MONGO4_PORT} + MONGO5_PORT: ${MONGO5_PORT} + MONGO_USERNAME: ${MONGO_USERNAME} + MONGO_PASSWORD: ${MONGO_PASSWORD} + ports: + - "127.0.0.1:${MONGO4_PORT}:${MONGO4_PORT}" + + mongo5: + image: mongo:5.0.6 + command: mongod --port ${MONGO5_PORT} + container_name: cpr-mongo5 + restart: unless-stopped + volumes: + - ./db5:/data/db + environment: + MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE} + MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} + MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} + MONGO_PORT: ${MONGO_PORT} + MONGO2_PORT: ${MONGO2_PORT} + MONGO3_PORT: ${MONGO3_PORT} + MONGO4_PORT: ${MONGO4_PORT} + MONGO5_PORT: ${MONGO5_PORT} + MONGO_USERNAME: ${MONGO_USERNAME} + MONGO_PASSWORD: ${MONGO_PASSWORD} + ports: + - "127.0.0.1:${MONGO5_PORT}:${MONGO5_PORT}" + + nginx: + image: nginx:1.21.6 + restart: unless-stopped + container_name: cpr-nginx + volumes: + - ./nginxDBandProxy.conf:/etc/nginx/nginx.conf:rw + ports: + - "3000:80" \ No newline at end of file diff --git a/docker-compose-local-frontend-m1.yml b/docker-compose-local-frontend-m1.yml old mode 100644 new mode 100755 diff --git a/docker-compose-local-frontend.yml b/docker-compose-local-frontend.yml old mode 100644 new mode 100755 diff --git a/docker-compose-local-m1.yml b/docker-compose-local-m1.yml old mode 100644 new mode 100755 diff --git a/docker-compose-local.yml b/docker-compose-local.yml old mode 100644 new mode 100755 diff --git a/docker-compose-rebuild.yml b/docker-compose-rebuild.yml new file mode 100755 index 000000000..09fce9721 --- /dev/null +++ b/docker-compose-rebuild.yml @@ -0,0 +1,259 @@ +version: "3.8" +services: + frontend: + build: + context: ./frontend + args: + URL: ${URL} + CLIENT_ID: ${CLIENT_ID} + image: cpr-frontend + container_name: cpr-frontend + restart: unless-stopped + + login: + build: + context: ./backend/login-microservice + image: cpr-login + container_name: cpr-login + restart: unless-stopped + volumes: + - ./professor-list.txt:/opt/ol/wlp/output/defaultServer/professor-list.txt:rw + environment: + JWK_ACCESS_URL: ${JWK_ACCESS_URL} + JWK_REFRESH_URL: ${JWK_REFRESH_URL} + MONGO_HOSTNAME: ${MONGO_HOSTNAME} + MONGO_PORT: ${MONGO_PORT} + MONGO2_PORT: ${MONGO2_PORT} + MONGO3_PORT: ${MONGO3_PORT} + MONGO4_PORT: ${MONGO4_PORT} + MONGO5_PORT: ${MONGO5_PORT} + MONGO_DATABASE: ${MONGO_INITDB_DATABASE} + MONGO_USERNAME: ${MONGO_USERNAME} + MONGO_PASSWORD: ${MONGO_PASSWORD} + CLIENT_ID: ${CLIENT_ID} + CLIENT_SECRET: ${CLIENT_SECRET} + + course-manager: + build: + context: ./backend/course-manager-microservice + image: cpr-course-manager + container_name: cpr-course-manager + restart: unless-stopped + environment: + JWK_ACCESS_URL: ${JWK_ACCESS_URL} + JWK_REFRESH_URL: ${JWK_REFRESH_URL} + MONGO_HOSTNAME: ${MONGO_HOSTNAME} + MONGO_PORT: ${MONGO_PORT} + MONGO2_PORT: ${MONGO2_PORT} + MONGO3_PORT: ${MONGO3_PORT} + MONGO4_PORT: ${MONGO4_PORT} + MONGO5_PORT: ${MONGO5_PORT} + MONGO_DATABASE: ${MONGO_INITDB_DATABASE} + MONGO_USERNAME: ${MONGO_USERNAME} + MONGO_PASSWORD: ${MONGO_PASSWORD} + + course-viewer: + build: + context: ./backend/course-viewer-microservice + image: cpr-course-viewer + container_name: cpr-course-viewer + restart: unless-stopped + environment: + JWK_ACCESS_URL: ${JWK_ACCESS_URL} + JWK_REFRESH_URL: ${JWK_REFRESH_URL} + MONGO_HOSTNAME: ${MONGO_HOSTNAME} + MONGO_PORT: ${MONGO_PORT} + MONGO2_PORT: ${MONGO2_PORT} + MONGO3_PORT: ${MONGO3_PORT} + MONGO4_PORT: ${MONGO4_PORT} + MONGO5_PORT: ${MONGO5_PORT} + MONGO_DATABASE: ${MONGO_INITDB_DATABASE} + MONGO_USERNAME: ${MONGO_USERNAME} + MONGO_PASSWORD: ${MONGO_PASSWORD} + + peer-review-teams: + build: + context: ./backend/peer-review-teams-microservice + image: cpr-peer-review-teams + container_name: cpr-peer-review-teams + restart: unless-stopped + environment: + JWK_ACCESS_URL: ${JWK_ACCESS_URL} + JWK_REFRESH_URL: ${JWK_REFRESH_URL} + MONGO_HOSTNAME: ${MONGO_HOSTNAME} + MONGO_PORT: ${MONGO_PORT} + MONGO2_PORT: ${MONGO2_PORT} + MONGO3_PORT: ${MONGO3_PORT} + MONGO4_PORT: ${MONGO4_PORT} + MONGO5_PORT: ${MONGO5_PORT} + MONGO_DATABASE: ${MONGO_INITDB_DATABASE} + MONGO_USERNAME: ${MONGO_USERNAME} + MONGO_PASSWORD: ${MONGO_PASSWORD} + + professor-assignment: + build: + context: ./backend/professor-assignment-microservice + image: cpr-professor-assignment + container_name: cpr-professor-assignment + restart: unless-stopped + volumes: + - ./assignments:/opt/ol/wlp/output/defaultServer/assignments + environment: + JWK_ACCESS_URL: ${JWK_ACCESS_URL} + JWK_REFRESH_URL: ${JWK_REFRESH_URL} + MONGO_HOSTNAME: ${MONGO_HOSTNAME} + MONGO_PORT: ${MONGO_PORT} + MONGO2_PORT: ${MONGO2_PORT} + MONGO3_PORT: ${MONGO3_PORT} + MONGO4_PORT: ${MONGO4_PORT} + MONGO5_PORT: ${MONGO5_PORT} + MONGO_DATABASE: ${MONGO_INITDB_DATABASE} + MONGO_USERNAME: ${MONGO_USERNAME} + MONGO_PASSWORD: ${MONGO_PASSWORD} + + student-assignment: + build: + context: ./backend/student-assignment-microservice + image: cpr-student-assignment + container_name: cpr-student-assignment + restart: unless-stopped + volumes: + - ./assignments:/opt/ol/wlp/output/defaultServer/assignments + environment: + JWK_ACCESS_URL: ${JWK_ACCESS_URL} + JWK_REFRESH_URL: ${JWK_REFRESH_URL} + MONGO_HOSTNAME: ${MONGO_HOSTNAME} + MONGO_PORT: ${MONGO_PORT} + MONGO2_PORT: ${MONGO2_PORT} + MONGO3_PORT: ${MONGO3_PORT} + MONGO4_PORT: ${MONGO4_PORT} + MONGO5_PORT: ${MONGO5_PORT} + MONGO_DATABASE: ${MONGO_INITDB_DATABASE} + MONGO_USERNAME: ${MONGO_USERNAME} + MONGO_PASSWORD: ${MONGO_PASSWORD} + + student-peer-review-assignment: + build: + context: ./backend/student-peer-review-assignment-microservice + image: cpr-student-peer-review-assignment + container_name: cpr-student-peer-review-assignment + restart: unless-stopped + volumes: + - ./assignments:/opt/ol/wlp/output/defaultServer/assignments + environment: + JWK_ACCESS_URL: ${JWK_ACCESS_URL} + JWK_REFRESH_URL: ${JWK_REFRESH_URL} + MONGO_HOSTNAME: ${MONGO_HOSTNAME} + MONGO_PORT: ${MONGO_PORT} + MONGO2_PORT: ${MONGO2_PORT} + MONGO3_PORT: ${MONGO3_PORT} + MONGO4_PORT: ${MONGO4_PORT} + MONGO5_PORT: ${MONGO5_PORT} + MONGO_DATABASE: ${MONGO_INITDB_DATABASE} + MONGO_USERNAME: ${MONGO_USERNAME} + MONGO_PASSWORD: ${MONGO_PASSWORD} + + mongo: + image: mongo:5.0.6 + command: mongod --port ${MONGO_PORT} + container_name: cpr-mongo + restart: unless-stopped + volumes: + - ./db:/data/db + environment: + MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE} + MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} + MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} + MONGO_PORT: ${MONGO_PORT} + MONGO2_PORT: ${MONGO2_PORT} + MONGO3_PORT: ${MONGO3_PORT} + MONGO4_PORT: ${MONGO4_PORT} + MONGO5_PORT: ${MONGO5_PORT} + MONGO_USERNAME: ${MONGO_USERNAME} + MONGO_PASSWORD: ${MONGO_PASSWORD} + ports: + - "127.0.0.1:${MONGO_PORT}:${MONGO_PORT}" + + mongo2: + image: mongo:5.0.6 + command: mongod --port ${MONGO2_PORT} + container_name: cpr-mongo2 + restart: unless-stopped + volumes: + - ./db2:/data/db + environment: + MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE} + MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} + MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} + MONGO_PORT: ${MONGO_PORT} + MONGO2_PORT: ${MONGO2_PORT} + MONGO3_PORT: ${MONGO3_PORT} + MONGO4_PORT: ${MONGO4_PORT} + MONGO5_PORT: ${MONGO5_PORT} + MONGO_USERNAME: ${MONGO_USERNAME} + MONGO_PASSWORD: ${MONGO_PASSWORD} + ports: + - "127.0.0.1:${MONGO2_PORT}:${MONGO2_PORT}" + + mongo3: + image: mongo:5.0.6 + command: mongod --port ${MONGO3_PORT} + container_name: cpr-mongo3 + restart: unless-stopped + volumes: + - ./db3:/data/db + environment: + MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE} + MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} + MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} + MONGO_PORT: ${MONGO_PORT} + MONGO2_PORT: ${MONGO2_PORT} + MONGO3_PORT: ${MONGO3_PORT} + MONGO4_PORT: ${MONGO4_PORT} + MONGO5_PORT: ${MONGO5_PORT} + MONGO_USERNAME: ${MONGO_USERNAME} + MONGO_PASSWORD: ${MONGO_PASSWORD} + ports: + - "127.0.0.1:${MONGO3_PORT}:${MONGO3_PORT}" + + mongo4: + image: mongo:5.0.6 + command: mongod --port ${MONGO4_PORT} + container_name: cpr-mongo4 + restart: unless-stopped + volumes: + - ./db4:/data/db + environment: + MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE} + MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} + MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} + MONGO_PORT: ${MONGO_PORT} + MONGO2_PORT: ${MONGO2_PORT} + MONGO3_PORT: ${MONGO3_PORT} + MONGO4_PORT: ${MONGO4_PORT} + MONGO5_PORT: ${MONGO5_PORT} + MONGO_USERNAME: ${MONGO_USERNAME} + MONGO_PASSWORD: ${MONGO_PASSWORD} + ports: + - "127.0.0.1:${MONGO4_PORT}:${MONGO4_PORT}" + + mongo5: + image: mongo:5.0.6 + command: mongod --port ${MONGO5_PORT} + container_name: cpr-mongo5 + restart: unless-stopped + volumes: + - ./db5:/data/db + environment: + MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE} + MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} + MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} + MONGO_PORT: ${MONGO_PORT} + MONGO2_PORT: ${MONGO2_PORT} + MONGO3_PORT: ${MONGO3_PORT} + MONGO4_PORT: ${MONGO4_PORT} + MONGO5_PORT: ${MONGO5_PORT} + MONGO_USERNAME: ${MONGO_USERNAME} + MONGO_PASSWORD: ${MONGO_PASSWORD} + ports: + - "127.0.0.1:${MONGO5_PORT}:${MONGO5_PORT}" \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml old mode 100644 new mode 100755 index 2f5ab136a..32051dc02 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -267,4 +267,4 @@ services: - /tmp/privkey1.pem:/tmp/privkey1.pem - /tmp/pems/fullchain1.pem:/tmp/pems/fullchain1.pem ports: - - "13125:80" \ No newline at end of file + - "3000:80" \ No newline at end of file diff --git a/env.example b/env.example old mode 100644 new mode 100755 index fd6c9bf4b..bd7bf1e0b --- a/env.example +++ b/env.example @@ -7,18 +7,18 @@ URL=http://localhost:3000 #Set to the value of URL+/jwt/ibm/api/cpr_access/jwk if running docker build in production environment #Set to http://localhost:13126/jwt/ibm/api/cpr_access/jwk if running each microservice separately -JWK_ACCESS_URL= +JWK_ACCESS_URL=http://172.17.0.1:3000/jwt/ibm/api/cpr_access/jwk #Set to http://172.17.0.1:3000/jwt/ibm/api/cpr_refresh/jwk if running docker build locally #Set to the value of URL+/jwt/ibm/api/cpr_access/jwk if running docker build in production environment #Set to http://localhost:13126/jwt/ibm/api/cpr_refresh/jwk if running each microservice separately -JWK_REFRESH_URL= +JWK_REFRESH_URL=http://172.17.0.1:3000/jwt/ibm/api/cpr_refresh/jwk # Google OAuth2 credentials. Match those with your OAuth2 credentials at https://console.cloud.google.com/apis/ -CLIENT_ID= -CLIENT_SECRET= +CLIENT_ID= 881555619940-tf3a720vc8c3n0i0vltslns5n7h11fqi.apps.googleusercontent.com +CLIENT_SECRET= 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 # Database name, root username, and root password to be initialized in Docker container. MONGO_INITDB_DATABASE=cpr @@ -38,3 +38,4 @@ MONGO_USERNAME=root MONGO_PASSWORD=password # This one should be the same as MONGO_INITDB_DATABASE unless you intend to use a different database. MONGO_DATABASE=cpr + diff --git a/frontend/.dockerignore b/frontend/.dockerignore old mode 100644 new mode 100755 diff --git a/frontend/Dockerfile b/frontend/Dockerfile old mode 100644 new mode 100755 diff --git a/frontend/Frontend.iml b/frontend/Frontend.iml new file mode 100755 index 000000000..8c54e3b0b --- /dev/null +++ b/frontend/Frontend.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/README.md b/frontend/README.md old mode 100644 new mode 100755 diff --git a/frontend/pom.xml b/frontend/pom.xml old mode 100644 new mode 100755 index a4d7fcc52..6828a4888 --- a/frontend/pom.xml +++ b/frontend/pom.xml @@ -42,7 +42,7 @@ org.seleniumhq.selenium selenium-java - 4.1.2 + 4.8.0 test diff --git a/frontend/src/main/frontend/.env.example b/frontend/src/main/frontend/.env.example deleted file mode 100644 index 53a8095f8..000000000 --- a/frontend/src/main/frontend/.env.example +++ /dev/null @@ -1,2 +0,0 @@ -REACT_APP_URL= -REACT_APP_CLIENT_ID= \ No newline at end of file diff --git a/frontend/src/main/frontend/.gitignore b/frontend/src/main/frontend/.gitignore deleted file mode 100644 index 9699d40f9..000000000 --- a/frontend/src/main/frontend/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -.env - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/frontend/src/main/frontend/README.md b/frontend/src/main/frontend/README.md old mode 100644 new mode 100755 diff --git a/frontend/src/main/frontend/build/asset-manifest.json b/frontend/src/main/frontend/build/asset-manifest.json new file mode 100644 index 000000000..2507122ac --- /dev/null +++ b/frontend/src/main/frontend/build/asset-manifest.json @@ -0,0 +1,32 @@ +{ + "files": { + "main.css": "/static/css/main.f5324125.css", + "main.js": "/static/js/main.88fd373a.js", + "static/media/no-team-no-bg.png": "/static/media/no-team-no-bg.36f1a86caf0cc8c89ae0.png", + "static/media/loading.gif": "/static/media/loading.803f24369a085e35482e.gif", + "static/media/no-course.png": "/static/media/no-course.19f64cc5d34c49ed290f.png", + "static/media/no-student.png": "/static/media/no-student.6f16574f79805afcc04b.png", + "static/media/no-data.png": "/static/media/no-data.67c4f2678d27d329dbc6.png", + "static/media/Courses.svg": "/static/media/Courses.6fda0fcfd145845126b4.svg", + "static/media/CPR logo final-02.svg": "/static/media/CPR logo final-02.e1771c10368e86f15334.svg", + "static/media/Home.svg": "/static/media/Home.35e7d66eca98d5e0f21b.svg", + "static/media/White I Icon.svg": "/static/media/White I Icon.479f2d83ca7f5e8a1f05.svg", + "static/media/Bulk Download.svg": "/static/media/Bulk Download.3eb521e713406be59080.svg", + "static/media/Logout.svg": "/static/media/Logout.dfcf8b594b902195566d.svg", + "static/media/Admin_Header.svg": "/static/media/Admin_Header.ac40a935ef40bc49e4bb.svg", + "static/media/White_Download.svg": "/static/media/White_Download.6831d8a241209b2c94a9f1a8d5053a0c.svg", + "static/media/white_bulk_download.svg": "/static/media/white_bulk_download.aab566bb3002cba7939d.svg", + "index.html": "/index.html", + "static/media/Green_Check.svg": "/static/media/Green_Check.fae579a1adb7ea43ec13.svg", + "static/media/Corner_X.svg": "/static/media/Corner_X.05ec184f39d77de37755.svg", + "static/media/search.svg": "/static/media/search.83bf22fea51e5d789840c7ebeff532fe.svg", + "static/media/Arrow_Default.svg": "/static/media/Arrow_Default.a6b2e888a50521367fd4.svg", + "static/media/Arrow_Active.svg": "/static/media/Arrow_Active.3a543f19aaeb33588a5f.svg", + "main.f5324125.css.map": "/static/css/main.f5324125.css.map", + "main.88fd373a.js.map": "/static/js/main.88fd373a.js.map" + }, + "entrypoints": [ + "static/css/main.f5324125.css", + "static/js/main.88fd373a.js" + ] +} \ No newline at end of file diff --git a/frontend/src/main/frontend/build/index.html b/frontend/src/main/frontend/build/index.html new file mode 100644 index 000000000..a6c85e835 --- /dev/null +++ b/frontend/src/main/frontend/build/index.html @@ -0,0 +1 @@ +CPR Tool

\ No newline at end of file diff --git a/frontend/src/main/frontend/build/manifest.json b/frontend/src/main/frontend/build/manifest.json new file mode 100755 index 000000000..080d6c77a --- /dev/null +++ b/frontend/src/main/frontend/build/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/frontend/src/main/frontend/build/static/media/Admin_Header.ac40a935ef40bc49e4bb.svg b/frontend/src/main/frontend/build/static/media/Admin_Header.ac40a935ef40bc49e4bb.svg new file mode 100644 index 000000000..7c562d323 --- /dev/null +++ b/frontend/src/main/frontend/build/static/media/Admin_Header.ac40a935ef40bc49e4bb.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/src/main/frontend/build/static/media/Arrow_Active.3a543f19aaeb33588a5f.svg b/frontend/src/main/frontend/build/static/media/Arrow_Active.3a543f19aaeb33588a5f.svg new file mode 100644 index 000000000..d7efd5cbf --- /dev/null +++ b/frontend/src/main/frontend/build/static/media/Arrow_Active.3a543f19aaeb33588a5f.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/main/frontend/build/static/media/Arrow_Default.a6b2e888a50521367fd4.svg b/frontend/src/main/frontend/build/static/media/Arrow_Default.a6b2e888a50521367fd4.svg new file mode 100644 index 000000000..495e7dbf7 --- /dev/null +++ b/frontend/src/main/frontend/build/static/media/Arrow_Default.a6b2e888a50521367fd4.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/main/frontend/build/static/media/Bulk Download.1bcf388cb05e91847c5e.svg b/frontend/src/main/frontend/build/static/media/Bulk Download.1bcf388cb05e91847c5e.svg new file mode 100644 index 000000000..9017f78e9 --- /dev/null +++ b/frontend/src/main/frontend/build/static/media/Bulk Download.1bcf388cb05e91847c5e.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/src/main/frontend/build/static/media/Bulk Download.3eb521e713406be59080.svg b/frontend/src/main/frontend/build/static/media/Bulk Download.3eb521e713406be59080.svg new file mode 100644 index 000000000..8c4a61ca6 --- /dev/null +++ b/frontend/src/main/frontend/build/static/media/Bulk Download.3eb521e713406be59080.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/src/main/frontend/build/static/media/CPR logo final-02.e1771c10368e86f15334.svg b/frontend/src/main/frontend/build/static/media/CPR logo final-02.e1771c10368e86f15334.svg new file mode 100644 index 000000000..d3266d45c --- /dev/null +++ b/frontend/src/main/frontend/build/static/media/CPR logo final-02.e1771c10368e86f15334.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + diff --git a/frontend/src/main/frontend/build/static/media/Courses.10e842de1526296c32fb.svg b/frontend/src/main/frontend/build/static/media/Courses.10e842de1526296c32fb.svg new file mode 100644 index 000000000..571cb3486 --- /dev/null +++ b/frontend/src/main/frontend/build/static/media/Courses.10e842de1526296c32fb.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/frontend/src/main/frontend/build/static/media/Courses.6fda0fcfd145845126b4.svg b/frontend/src/main/frontend/build/static/media/Courses.6fda0fcfd145845126b4.svg new file mode 100644 index 000000000..871625c76 --- /dev/null +++ b/frontend/src/main/frontend/build/static/media/Courses.6fda0fcfd145845126b4.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/frontend/src/main/frontend/build/static/media/Home.2f31cc44e322c58a979f.svg b/frontend/src/main/frontend/build/static/media/Home.2f31cc44e322c58a979f.svg new file mode 100644 index 000000000..a31759802 --- /dev/null +++ b/frontend/src/main/frontend/build/static/media/Home.2f31cc44e322c58a979f.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/main/frontend/build/static/media/Home.35e7d66eca98d5e0f21b.svg b/frontend/src/main/frontend/build/static/media/Home.35e7d66eca98d5e0f21b.svg new file mode 100644 index 000000000..72cd2e524 --- /dev/null +++ b/frontend/src/main/frontend/build/static/media/Home.35e7d66eca98d5e0f21b.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/main/frontend/build/static/media/Logout.dfcf8b594b902195566d.svg b/frontend/src/main/frontend/build/static/media/Logout.dfcf8b594b902195566d.svg new file mode 100644 index 000000000..59951d2e6 --- /dev/null +++ b/frontend/src/main/frontend/build/static/media/Logout.dfcf8b594b902195566d.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/main/frontend/build/static/media/loading.803f24369a085e35482e.gif b/frontend/src/main/frontend/build/static/media/loading.803f24369a085e35482e.gif new file mode 100644 index 0000000000000000000000000000000000000000..4301102d388d81223c1a69f051220a4bd8178231 GIT binary patch literal 40957 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%0AJ5_1O&yUnDdu5+s*)|Wxw`cEN09dVas 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
KkbyB;TY;_TjW~N!RWCp4R{6;he;d80 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

@(YFv43kR-T^It44$c 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 literal 0 HcmV?d00001 diff --git a/frontend/src/main/frontend/build/static/media/no-data.67c4f2678d27d329dbc6.png b/frontend/src/main/frontend/build/static/media/no-data.67c4f2678d27d329dbc6.png new file mode 100644 index 0000000000000000000000000000000000000000..79ec6ff83c389d8ea1db1c10b728e16c1a1b8fc8 GIT binary patch literal 23127 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 literal 0 HcmV?d00001 diff --git a/frontend/src/main/frontend/build/static/media/no-student.6f16574f79805afcc04b.png b/frontend/src/main/frontend/build/static/media/no-student.6f16574f79805afcc04b.png new file mode 100644 index 0000000000000000000000000000000000000000..ea8fa0c05b1546404d0216c34ce80d2a9252b00e GIT binary patch literal 23363 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 RYj=*Z40Il8S83YC{uij8YqtOZ literal 0 HcmV?d00001 diff --git a/frontend/src/main/frontend/build/static/media/search.83bf22fea51e5d789840c7ebeff532fe.svg b/frontend/src/main/frontend/build/static/media/search.83bf22fea51e5d789840c7ebeff532fe.svg new file mode 100644 index 000000000..0c9648b33 --- /dev/null +++ b/frontend/src/main/frontend/build/static/media/search.83bf22fea51e5d789840c7ebeff532fe.svg @@ -0,0 +1,2 @@ + + diff --git a/frontend/src/main/frontend/build/static/media/white_bulk_download.aab566bb3002cba7939d.svg b/frontend/src/main/frontend/build/static/media/white_bulk_download.aab566bb3002cba7939d.svg new file mode 100644 index 000000000..18dc0d6e5 --- /dev/null +++ b/frontend/src/main/frontend/build/static/media/white_bulk_download.aab566bb3002cba7939d.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/src/main/frontend/package-lock.json b/frontend/src/main/frontend/package-lock.json new file mode 100755 index 000000000..cf0f06555 --- /dev/null +++ b/frontend/src/main/frontend/package-lock.json @@ -0,0 +1,16813 @@ +{ + "name": "my-app", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "my-app", + "version": "0.1.0", + "dependencies": { + "@react-oauth/google": "^0.6.1", + "@reduxjs/toolkit": "^1.8.0", + "blob-util": "^2.0.2", + "chart.js": "^4.2.1", + "final-form": "^4.20.6", + "jwt-decode": "^3.1.2", + "react": "^17.0.2", + "react-chartjs-2": "^5.2.0", + "react-collapsed": "^3.6.0", + "react-dom": "^17.0.2", + "react-final-form": "^6.5.8", + "react-google-login": "^5.2.2", + "react-icons": "^4.3.1", + "react-pro-sidebar": "^0.7.1", + "react-redux": "^7.2.6", + "react-select": "^5.7.2", + "react-uuid": "^1.0.3", + "timers": "^0.1.1" + }, + "devDependencies": { + "axios": "^0.26.0", + "jest": "^27.5.1", + "react-router-dom": "^6.2.1", + "react-scripts": "^5.0.1" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", + "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.17.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz", + "integrity": "sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.17.2", + "@babel/parser": "^7.17.3", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", + "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", + "dev": true, + "dependencies": { + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/eslint-parser/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz", + "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", + "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", + "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", + "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", + "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", + "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", + "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", + "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", + "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", + "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", + "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.2.tgz", + "integrity": "sha512-WH8Z95CwTq/W8rFbMqb9p3hicpt4RX4f0K659ax2VHxgOyT6qQmUaEVEjIh4WR9Eh9NymkVn5vwsrE68fAQNUw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.1", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.0", + "charcodes": "^0.2.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", + "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", + "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", + "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", + "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", + "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", + "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", + "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.10", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", + "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", + "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", + "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", + "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", + "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", + "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", + "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", + "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", + "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", + "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz", + "integrity": "sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", + "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz", + "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-flow": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", + "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", + "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", + "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", + "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", + "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", + "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", + "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", + "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", + "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.16.7.tgz", + "integrity": "sha512-lF+cfsyTgwWkcw715J88JhMYJ5GpysYNLhLP1PkvkhTRN7B3e74R/1KsDxFxhRpSn0UUD3IWM4GvdBR2PEbbQQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", + "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", + "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-jsx": "^7.16.7", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", + "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", + "dev": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", + "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", + "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.14.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", + "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", + "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", + "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", + "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", + "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", + "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-typescript": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", + "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-react-display-name": "^7.16.7", + "@babel/plugin-transform-react-jsx": "^7.16.7", + "@babel/plugin-transform-react-jsx-development": "^7.16.7", + "@babel/plugin-transform-react-pure-annotations": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", + "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-typescript": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@csstools/normalize.css": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", + "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==", + "dev": true + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "dev": true, + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", + "dev": true, + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "dev": true, + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", + "dev": true, + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "dev": true, + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.1.1.tgz", + "integrity": "sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4", + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.10.6", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.6.tgz", + "integrity": "sha512-p2dAqtVrkhSa7xz1u/m9eHYdLi+en8NowrmXeF/dKtJpU8lCWli8RUAati7NcSl0afsBott48pdnANuD0wh9QQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/serialize": "^1.1.1", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.1.3" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.10.7", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.7.tgz", + "integrity": "sha512-VLl1/2D6LOjH57Y8Vem1RoZ9haWF4jesHDGiHtKozDQuBIkJm2gimVo0I02sWCuzZtVACeixTVB4jeE8qvCBoQ==", + "dependencies": { + "@emotion/memoize": "^0.8.0", + "@emotion/sheet": "^1.2.1", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "stylis": "4.1.3" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.0.tgz", + "integrity": "sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==" + }, + "node_modules/@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" + }, + "node_modules/@emotion/react": { + "version": "11.10.6", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.6.tgz", + "integrity": "sha512-6HT8jBmcSkfzO7mc+N1L9uwvOnlcGoix8Zn7srt+9ga0MjREo6lRpuVX0kzo6Jp6oTqDhREOFsygN6Ew4fEQbw==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.6", + "@emotion/cache": "^11.10.5", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==", + "dependencies": { + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/unitless": "^0.8.0", + "@emotion/utils": "^1.2.0", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz", + "integrity": "sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==" + }, + "node_modules/@emotion/unitless": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz", + "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", + "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz", + "integrity": "sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz", + "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==" + }, + "node_modules/@eslint/eslintrc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz", + "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz", + "integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.6.tgz", + "integrity": "sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==" + }, + "node_modules/@floating-ui/dom": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.6.tgz", + "integrity": "sha512-02vxFDuvuVPs22iJICacezYJyf7zwwOCWkPNkWNBr1U0Qt1cKFYzWvxts0AmqcOQGwt/3KJWcWIgtbUU38keyw==", + "dependencies": { + "@floating-ui/core": "^1.2.6" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dev": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz", + "integrity": "sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw==", + "dev": true, + "dependencies": { + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.8.1", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <3.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.2.tgz", + "integrity": "sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@react-oauth/google": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@react-oauth/google/-/google-0.6.1.tgz", + "integrity": "sha512-Nq4OK/NTgnvl2dTgQW5H8O1bhLg4JRQhwkEzpfZNKA1ijByQk6X4XG1FGS49FIHjjKInb263Me/yVQ2F3LJeuw==", + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@reduxjs/toolkit": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.8.0.tgz", + "integrity": "sha512-cdfHWfcvLyhBUDicoFwG1u32JqvwKDxLxDd7zSmSoFw/RhYLOygIRtmaMjPRUUHmVmmAGAvquLLsKKU/677kSQ==", + "dependencies": { + "immer": "^9.0.7", + "redux": "^4.1.2", + "redux-thunk": "^2.4.1", + "reselect": "^4.1.5" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || 18.0.0-beta", + "react-redux": "^7.2.1 || ^8.0.0-beta" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@remix-run/router": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.3.3.tgz", + "integrity": "sha512-YRHie1yQEj0kqqCTCJEfHqYSSNlZQ696QJG+MMiW4mxSl9I0ojz/eRhJS4fs88Z5i6D1SmoF9d3K99/QOhI8/w==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz", + "integrity": "sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.0.tgz", + "integrity": "sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A==", + "dev": true + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dev": true, + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "dev": true, + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "dev": true, + "dependencies": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.6" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.1.18", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", + "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", + "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.21.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.1.tgz", + "integrity": "sha512-rc9K8ZpVjNcLs8Fp0dkozd5Pt2Apk1glO4Vgz8ix1u6yFByxfqo5Yavpy65o+93TAe24jr7v+eSBtFLvOQtCRQ==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "dev": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.8", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", + "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.14.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.6.tgz", + "integrity": "sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "node_modules/@types/prettier": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", + "dev": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "node_modules/@types/q": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.0.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz", + "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-redux": { + "version": "7.1.25", + "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.25.tgz", + "integrity": "sha512-bAGh4e+w5D8dajd6InASVIyCo4pZLJ66oLb80F9OBLO1gKESbZcRCJpTT6uLXX+HAB57zw1WTdwJdAsewuTweg==", + "dependencies": { + "@types/hoist-non-react-statics": "^3.3.0", + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0", + "redux": "^4.0.0" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "dev": true, + "dependencies": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/trusted-types": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", + "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==", + "dev": true + }, + "node_modules/@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.0.tgz", + "integrity": "sha512-+hSN9BdSr629RF02d7mMtXhAJvDTyCbprNYJKrXETlul/Aml6YZwd90XioVbjejQeHbb3R8Dg0CkRgoJDxo8aw==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.54.0", + "@typescript-eslint/type-utils": "5.54.0", + "@typescript-eslint/utils": "5.54.0", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.54.0.tgz", + "integrity": "sha512-rRYECOTh5V3iWsrOzXi7h1jp3Bi9OkJHrb3wECi3DVqMGTilo9wAYmCbT+6cGdrzUY3MWcAa2mESM6FMik6tVw==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "5.54.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.54.0.tgz", + "integrity": "sha512-aAVL3Mu2qTi+h/r04WI/5PfNWvO6pdhpeMRWk9R7rEV4mwJNzoWf5CCU5vDKBsPIFQFjEq1xg7XBI2rjiMXQbQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.54.0", + "@typescript-eslint/types": "5.54.0", + "@typescript-eslint/typescript-estree": "5.54.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz", + "integrity": "sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.54.0", + "@typescript-eslint/visitor-keys": "5.54.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.54.0.tgz", + "integrity": "sha512-WI+WMJ8+oS+LyflqsD4nlXMsVdzTMYTxl16myXPaCXnSgc7LWwMsjxQFZCK/rVmTZ3FN71Ct78ehO9bRC7erYQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.54.0", + "@typescript-eslint/utils": "5.54.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.0.tgz", + "integrity": "sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz", + "integrity": "sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.54.0", + "@typescript-eslint/visitor-keys": "5.54.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.0.tgz", + "integrity": "sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.54.0", + "@typescript-eslint/types": "5.54.0", + "@typescript-eslint/typescript-estree": "5.54.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz", + "integrity": "sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.54.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-node/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz", + "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", + "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", + "dev": true + }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001426", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.3.tgz", + "integrity": "sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.8" + } + }, + "node_modules/axobject-query": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", + "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dev": true, + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dev": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", + "dev": true, + "peerDependencies": { + "@babel/core": "^7.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", + "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.2", + "core-js-compat": "^3.21.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==", + "dev": true + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-react-app": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", + "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/bfj": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", + "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "check-types": "^11.1.1", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==" + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/bonjour-service": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.0.tgz", + "integrity": "sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q==", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001460", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001460.tgz", + "integrity": "sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/charcodes": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", + "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chart.js": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.2.1.tgz", + "integrity": "sha512-6YbpQ0nt3NovAgOzbkSSeeAQu/3za1319dPUQTXn9WcOpywM8rGKxJHrhS8V8xEkAlk8YhEfjbuAPfUyp6jIsw==", + "dependencies": { + "@kurkle/color": "^0.3.0" + }, + "engines": { + "pnpm": "^7.0.0" + } + }, + "node_modules/check-types": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.2.tgz", + "integrity": "sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "node_modules/classnames": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + }, + "node_modules/clean-css": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", + "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/coa/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/coa/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/coa/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/coa/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "node_modules/color-convert": { + "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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "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 + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/core-js": { + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.0.tgz", + "integrity": "sha512-VG23vuEisJNkGl6XQmFJd3rEG/so/CNatqeE+7uZAwTSwFeB/qaO0be8xZYUNWprJ/GIwL8aMt9cj1kvbpTZhg==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.0.tgz", + "integrity": "sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.29.0.tgz", + "integrity": "sha512-v94gUjN5UTe1n0yN/opTihJ8QBWD2O8i19RfTZR7foONPWArnjB96QA/wk5ozu1mm6ja3udQCzOzwQXTxi3xOQ==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", + "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-loader": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", + "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.19", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "dev": true, + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "dev": true, + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssdb": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.4.1.tgz", + "integrity": "sha512-0Q8NOMpXJ3iTDDbUv9grcmQAfdDx4qz+fN/+Md2FGbevT+6+bJNQ2LjB2YIUlLbpBTM32idU1Sb+tb/uGt6/XQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "dev": true, + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "node_modules/deep-equal": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", + "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", + "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dev": true, + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/detective": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", + "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", + "dev": true, + "dependencies": { + "acorn-node": "^1.8.2", + "defined": "^1.0.0", + "minimist": "^1.2.6" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/ejs": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.319", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.319.tgz", + "integrity": "sha512-WeoI6NwZUgteKB+Wmn692S35QycwwNxwgTomNnoCJ79znBAjtBi6C/cIW62JkXmpJRX5rKNYSLDBdAM8l5fH0w==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dev": true, + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", + "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.1", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/eslint": { + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz", + "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^2.0.0", + "@eslint/js": "8.35.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", + "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.20.7", + "aria-query": "^5.1.3", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.6.2", + "axobject-query": "^3.1.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.3.3", + "language-tags": "=1.0.5", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.32.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", + "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-testing-library": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.10.2.tgz", + "integrity": "sha512-f1DmDWcz5SDM+IpCkEX0lbFqrrTs8HRsEElzDEqN/EBI0hpRj8Cns5+IVANXswE8/LeybIJqPAOQIFu2j5Y5sw==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "^5.43.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0", + "npm": ">=6" + }, + "peerDependencies": { + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", + "dev": true, + "dependencies": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/final-form": { + "version": "4.20.9", + "resolved": "https://registry.npmjs.org/final-form/-/final-form-4.20.9.tgz", + "integrity": "sha512-shA1X/7v8RmukWMNRHx0l7+Bm41hOivY78IvOiBrPVHjyWFIyqqIEMCz7yTVRc9Ea+EU4WkZ5r4MH6whSo5taw==", + "dependencies": { + "@babel/runtime": "^7.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/final-form" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", + "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "dev": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "dev": true, + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "webpack": "^5.20.0" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "dev": true + }, + "node_modules/identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", + "dev": true, + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "9.0.19", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.19.tgz", + "integrity": "sha512-eY+Y0qcsB4TZKwgQzLaE/lqYMlKhv5J9dyd2RhhtGhNo2njPXDqU9XPfcNfa3MIDsdtZt5KlkIsirlo4dHsWdQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "dev": true, + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dev": true, + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dev": true, + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dev": true, + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", + "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "jest": "^27.0.0 || ^28.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { + "version": "17.0.23", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.23.tgz", + "integrity": "sha512-yuogunc04OnzGQCrfHx+Kk883Q4X0aSwmYZhKjI21m+SVYzjIbrWl8dOOwSv5hf2Um2pdCOXWo9isteZTNXUZQ==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { + "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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "dev": true, + "dependencies": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", + "dev": true, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-sdsl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.5", + "object.assign": "^4.1.3" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/jwt-decode": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", + "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==" + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", + "dev": true + }, + "node_modules/language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "dev": true, + "dependencies": { + "language-subtag-registry": "~0.3.2" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz", + "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz", + "integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", + "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz", + "integrity": "sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw==", + "dev": true, + "dependencies": { + "array.prototype.reduce": "^1.0.5", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", + "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "browserslist": ">=4", + "postcss": ">=8" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", + "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", + "dev": true, + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", + "dev": true, + "peerDependencies": { + "postcss": "^8.1.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "dev": true, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "dev": true, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-lab-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", + "dev": true, + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dev": true, + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", + "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nesting": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", + "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", + "dev": true, + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "dev": true, + "dependencies": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "browserslist": ">= 4", + "postcss": ">= 8" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dev": true, + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz", + "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==", + "dev": true, + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dev": true, + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "dev": true, + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", + "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", + "dev": true, + "dependencies": { + "@csstools/postcss-cascade-layers": "^1.1.1", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.13", + "browserslist": "^4.21.4", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^7.1.0", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.10", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.2.1", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.2.0", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.4", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "dev": true, + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", + "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/postcss-svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/postcss-svgo/node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dev": true, + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "dev": true, + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dev": true, + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-app-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", + "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "dev": true, + "dependencies": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-chartjs-2": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-5.2.0.tgz", + "integrity": "sha512-98iN5aguJyVSxp5U3CblRLH67J8gkfyGNbiK3c+l1QI/G4irHMPQw44aEPmjVag+YKTyQ260NcF82GTQ3bdscA==", + "peerDependencies": { + "chart.js": "^4.1.1", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-collapsed": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/react-collapsed/-/react-collapsed-3.6.0.tgz", + "integrity": "sha512-QqtogOGl5hM9L7j7rlMCYxm4jD8Ovr8voqyYS1g5ltADhUNvxbbgtJ5MwRiajJ0DmYFOZHShpnSPz4wvJaOiKA==", + "dependencies": { + "tiny-warning": "^1.0.3" + }, + "peerDependencies": { + "react": "^16.8 || ^17", + "react-dom": "^16.8 || ^17" + } + }, + "node_modules/react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/react-error-overlay": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==", + "dev": true + }, + "node_modules/react-final-form": { + "version": "6.5.9", + "resolved": "https://registry.npmjs.org/react-final-form/-/react-final-form-6.5.9.tgz", + "integrity": "sha512-x3XYvozolECp3nIjly+4QqxdjSSWfcnpGEL5K8OBT6xmGrq5kBqbA6+/tOqoom9NwqIPPbxPNsOViFlbKgowbA==", + "dependencies": { + "@babel/runtime": "^7.15.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/final-form" + }, + "peerDependencies": { + "final-form": "^4.20.4", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-google-login": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/react-google-login/-/react-google-login-5.2.2.tgz", + "integrity": "sha512-JUngfvaSMcOuV0lFff7+SzJ2qviuNMQdqlsDJkUM145xkGPVIfqWXq9Ui+2Dr6jdJWH5KYdynz9+4CzKjI5u6g==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { + "@types/react": "*", + "prop-types": "^15.6.0" + }, + "peerDependencies": { + "react": "^16 || ^17", + "react-dom": "^16 || ^17" + } + }, + "node_modules/react-icons": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.8.0.tgz", + "integrity": "sha512-N6+kOLcihDiAnj5Czu637waJqSnwlMNROzVZMhfX68V/9bu9qHaMIJC4UdozWoOk57gahFCNHwVvWzm0MTzRjg==", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/react-pro-sidebar": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/react-pro-sidebar/-/react-pro-sidebar-0.7.1.tgz", + "integrity": "sha512-Iy1X8ce4t5Vqz4CsyzjwokGUE3/IObgmYzS0ins7/2eWKle0SMUPaWdgMKFIVjtVrMr5vmjPbRicq8FxnVaf8A==", + "dependencies": { + "@popperjs/core": "^2.4.0", + "classnames": "^2.2.6", + "react-slidedown": "^2.4.5", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/react-redux": { + "version": "7.2.9", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", + "integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==", + "dependencies": { + "@babel/runtime": "^7.15.4", + "@types/react-redux": "^7.1.20", + "hoist-non-react-statics": "^3.3.2", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-is": "^17.0.2" + }, + "peerDependencies": { + "react": "^16.8.3 || ^17 || ^18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-refresh": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.8.2.tgz", + "integrity": "sha512-lF7S0UmXI5Pd8bmHvMdPKI4u4S5McxmHnzJhrYi9ZQ6wE+DA8JN5BzVC5EEBuduWWDaiJ8u6YhVOCmThBli+rw==", + "dev": true, + "dependencies": { + "@remix-run/router": "1.3.3" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.8.2.tgz", + "integrity": "sha512-N/oAF1Shd7g4tWy+75IIufCGsHBqT74tnzHQhbiUTYILYF0Blk65cg+HPZqwC+6SqEyx033nKqU7by38v3lBZg==", + "dev": true, + "dependencies": { + "@remix-run/router": "1.3.3", + "react-router": "6.8.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-scripts": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", + "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.1", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.1", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + }, + "bin": { + "react-scripts": "bin/react-scripts.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": ">= 16", + "typescript": "^3.2.1 || ^4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/react-scripts/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-scripts/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/react-scripts/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/react-scripts/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/react-select": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.7.2.tgz", + "integrity": "sha512-cTlJkQ8YjV6T/js8wW0owTzht0hHGABh29vjLscY4HfZGkv7hc3FFTmRp9NzY/Ib1uQ36GieAKEjxpHdpCFpcA==", + "dependencies": { + "@babel/runtime": "^7.12.0", + "@emotion/cache": "^11.4.0", + "@emotion/react": "^11.8.1", + "@floating-ui/dom": "^1.0.1", + "@types/react-transition-group": "^4.4.0", + "memoize-one": "^6.0.0", + "prop-types": "^15.6.0", + "react-transition-group": "^4.3.0", + "use-isomorphic-layout-effect": "^1.1.2" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-slidedown": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/react-slidedown/-/react-slidedown-2.4.7.tgz", + "integrity": "sha512-HGDfrqo70r1WVE0DwrySPdCT27/2wcZaJYh5kOnmuPSCtjDDJrNkDdn4Ep/cma2VVfwupeAGhbc2pbrGThU6VQ==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.3.0 || 17", + "react-dom": "^16.3.0 || 17" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/react-uuid": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/react-uuid/-/react-uuid-1.0.3.tgz", + "integrity": "sha512-cw6Rr6JphvsdK4xHPGBjKD7XSH6Y6i4NJFWUO3OiDd7NLcR8xVeQ3CfeKm7h+S5tpZZVfbH3Tkrz/ydsIiV8pA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", + "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "dependencies": { + "@babel/runtime": "^7.9.2" + } + }, + "node_modules/redux-thunk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", + "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "peerDependencies": { + "redux": "^4" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.1.tgz", + "integrity": "sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dev": true, + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/reselect": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.7.tgz", + "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A==" + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=8.9" + }, + "peerDependencies": { + "rework": "1.0.1", + "rework-visit": "1.0.0" + }, + "peerDependenciesMeta": { + "rework": { + "optional": true + }, + "rework-visit": { + "optional": true + } + } + }, + "node_modules/resolve-url-loader/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==", + "dev": true + }, + "node_modules/sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "dev": true, + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dev": true, + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", + "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "dev": true + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", + "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/stylis": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz", + "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==" + }, + "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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "dev": true + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/svgo/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/svgo/node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/svgo/node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "node_modules/svgo/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svgo/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/svgo/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/tailwindcss": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.7.tgz", + "integrity": "sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==", + "dev": true, + "dependencies": { + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "detective": "^5.2.1", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "lilconfig": "^2.0.6", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.0.9", + "postcss-import": "^14.1.0", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.4", + "postcss-nested": "6.0.0", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.1" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.16.5", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.5.tgz", + "integrity": "sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", + "dev": true + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/timers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/timers/-/timers-0.1.1.tgz", + "integrity": "sha512-pkJC8uIP/gxDHxNQUBUbjHyl6oZfT+ofn7tbaHW+CFIUjI+Q2MBbHcx1JSBQfhDaTcO9bNg328q0i7Vk5PismQ==" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", + "dev": true + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", + "dev": true + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/use-isomorphic-layout-effect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", + "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dev": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.75.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", + "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", + "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz", + "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-manifest-plugin": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", + "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "dev": true, + "dependencies": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "webpack": "^4.44.2 || ^5.47.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", + "dev": true + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-background-sync": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz", + "integrity": "sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==", + "dev": true, + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz", + "integrity": "sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==", + "dev": true, + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-build": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.4.tgz", + "integrity": "sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==", + "dev": true, + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.5.4", + "workbox-broadcast-update": "6.5.4", + "workbox-cacheable-response": "6.5.4", + "workbox-core": "6.5.4", + "workbox-expiration": "6.5.4", + "workbox-google-analytics": "6.5.4", + "workbox-navigation-preload": "6.5.4", + "workbox-precaching": "6.5.4", + "workbox-range-requests": "6.5.4", + "workbox-recipes": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4", + "workbox-streams": "6.5.4", + "workbox-sw": "6.5.4", + "workbox-window": "6.5.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz", + "integrity": "sha512-9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg==", + "dev": true, + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dev": true, + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz", + "integrity": "sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==", + "dev": true, + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-core": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.4.tgz", + "integrity": "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==", + "dev": true + }, + "node_modules/workbox-expiration": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.4.tgz", + "integrity": "sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==", + "dev": true, + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz", + "integrity": "sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==", + "dev": true, + "dependencies": { + "workbox-background-sync": "6.5.4", + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz", + "integrity": "sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==", + "dev": true, + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-precaching": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.4.tgz", + "integrity": "sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==", + "dev": true, + "dependencies": { + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz", + "integrity": "sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==", + "dev": true, + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-recipes": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.4.tgz", + "integrity": "sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==", + "dev": true, + "dependencies": { + "workbox-cacheable-response": "6.5.4", + "workbox-core": "6.5.4", + "workbox-expiration": "6.5.4", + "workbox-precaching": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "node_modules/workbox-routing": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.4.tgz", + "integrity": "sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==", + "dev": true, + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-strategies": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.4.tgz", + "integrity": "sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==", + "dev": true, + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-streams": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.4.tgz", + "integrity": "sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==", + "dev": true, + "dependencies": { + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4" + } + }, + "node_modules/workbox-sw": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.4.tgz", + "integrity": "sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==", + "dev": true + }, + "node_modules/workbox-webpack-plugin": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.4.tgz", + "integrity": "sha512-LmWm/zoaahe0EGmMTrSLUi+BjyR3cdGEfU3fS6PN1zKFYbqAKuQ+Oy/27e4VSXsyIwAw8+QDfk1XHNGtZu9nQg==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.5.4" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.9.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/workbox-window": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.4.tgz", + "integrity": "sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==", + "dev": true, + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.5.4" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/frontend/src/main/frontend/package.json b/frontend/src/main/frontend/package.json old mode 100644 new mode 100755 index 39b1407c9..4489521df --- a/frontend/src/main/frontend/package.json +++ b/frontend/src/main/frontend/package.json @@ -5,17 +5,22 @@ "dependencies": { "@react-oauth/google": "^0.6.1", "@reduxjs/toolkit": "^1.8.0", + "blob-util": "^2.0.2", + "chart.js": "^4.2.1", "final-form": "^4.20.6", "jwt-decode": "^3.1.2", "react": "^17.0.2", + "react-chartjs-2": "^5.2.0", + "react-collapsed": "^3.6.0", "react-dom": "^17.0.2", "react-final-form": "^6.5.8", "react-google-login": "^5.2.2", "react-icons": "^4.3.1", "react-pro-sidebar": "^0.7.1", "react-redux": "^7.2.6", - "react-scripts": "5.0.0", - "react-uuid": "^1.0.3" + "react-select": "^5.7.2", + "react-uuid": "^1.0.3", + "timers": "^0.1.1" }, "scripts": { "start": "react-scripts start", @@ -43,6 +48,8 @@ }, "devDependencies": { "axios": "^0.26.0", - "react-router-dom": "^6.2.1" + "jest": "^27.5.1", + "react-router-dom": "^6.2.1", + "react-scripts": "^5.0.1" } } diff --git a/frontend/src/main/frontend/public/index.html b/frontend/src/main/frontend/public/index.html old mode 100644 new mode 100755 index cc4ecd2ec..c524b8ddd --- a/frontend/src/main/frontend/public/index.html +++ b/frontend/src/main/frontend/public/index.html @@ -1,17 +1,19 @@ - - - - - - - - - - - CPR Tool + + + + + + + + + + + + CPR Tool diff --git a/frontend/src/main/frontend/public/manifest.json b/frontend/src/main/frontend/public/manifest.json old mode 100644 new mode 100755 diff --git a/frontend/src/main/frontend/public/robots.txt b/frontend/src/main/frontend/public/robots.txt old mode 100644 new mode 100755 diff --git a/frontend/src/main/frontend/src/App.css b/frontend/src/main/frontend/src/App.css old mode 100644 new mode 100755 diff --git a/frontend/src/main/frontend/src/App.js b/frontend/src/main/frontend/src/App.js old mode 100644 new mode 100755 index 2eccb4ee9..d77a1f806 --- a/frontend/src/main/frontend/src/App.js +++ b/frontend/src/main/frontend/src/App.js @@ -7,6 +7,8 @@ import { setUserInformation, } from './redux/features/authSlice'; import StudentDashboardPage from './pages/StudentPages/StudentDashboardPage'; +import HeaderBar from "./components/HeaderBar/HeaderBar"; +import NavigationContainerComponent from "./components/NavigationComponents/NavigationContainerComponent"; function App() { const dispatch = useDispatch(); diff --git a/frontend/src/main/frontend/src/assets/404-no-bg.png b/frontend/src/main/frontend/src/assets/404-no-bg.png old mode 100644 new mode 100755 diff --git a/frontend/src/main/frontend/src/assets/icons/Admin_Header.svg b/frontend/src/main/frontend/src/assets/icons/Admin_Header.svg new file mode 100644 index 000000000..7c562d323 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/Admin_Header.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/src/main/frontend/src/assets/icons/Corner_X.svg b/frontend/src/main/frontend/src/assets/icons/Corner_X.svg new file mode 100644 index 000000000..1c299246f --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/Corner_X.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/main/frontend/src/assets/icons/Green_Check.svg b/frontend/src/main/frontend/src/assets/icons/Green_Check.svg new file mode 100644 index 000000000..16cb21677 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/Green_Check.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/src/main/frontend/src/assets/icons/Logout.svg b/frontend/src/main/frontend/src/assets/icons/Logout.svg new file mode 100644 index 000000000..59951d2e6 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/Logout.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/main/frontend/src/assets/icons/White_Download.svg b/frontend/src/main/frontend/src/assets/icons/White_Download.svg new file mode 100644 index 000000000..3e26baa51 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/White_Download.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/CPR logo final-01.png b/frontend/src/main/frontend/src/assets/icons/aboutPage/CPR logo final-01.png new file mode 100644 index 0000000000000000000000000000000000000000..9158d71a59c461e9a8dc24d9401a45fa97dec59f GIT binary patch literal 1883 zcmaKtSv=H>1I2&Lq_K=;ELrCcSuPU8sO)1H+gQdhGASXlyOo_TBWoJlSQD=G%1-g2 zW@H;>xtF9el&lrmO-S6Czx(ok`~M%#IiK@#9?r}6KHlCE$|ubS007k5%A9bL9{&o$ zbK;9dk(W+__m&kY6ae^P|BCC)Y}_#boQ7JPn>t68Y+UQf3Lpv_k4!SV-?^$^p(h0# z3c*{-KeInQ6E=k>eAB%+wiF^NP6SLJR5?Bw1R$5W^28>3EOn!#BrSOJ%h6 zyS#%Tn?|jyzaJjn9J{(-dUO=qx1Aa}y&u;Hj^YuWm$D`MYH^kQk7CH$+3#StpHG4$ z3){&vaL0T05D{Mao7?&V29ZQ06_+;yZQ83ngGoyeUVK2o9iU%(G9TuBpP*NuxL^Ok z$uoQsK7@2#hmj7`S0T{Am_;J5m zbi3-*lHc$N4%mAyuv|^0^bqeuH5zp$hg5}&3#{Cg@H|}MAJ*oZV;;suDYph5nn#0Uc8CaCJ=p+${!}{?pF)mqM|2$jLHVX?yGmfwoRWTmjjXD%Xj!ByFtFuZ`-u^V7U#B6&_$+*X3azq{uuYz>^5cw}f< z9j!HY&LY`5{0i?^Ew*5;{MDz`-7$DWW>_G#(Eo|^1m;OF8dv%(1WUO=>3J2hoV5RW zVm{$i%lUgiXnF>VuPJ?w1nI}`fDXl@j?nh{^PAbwmIBb$7(c}9#`?~RR|kpGPJK2i zhlt&bMIAfpR~AOL6%v%a4ZI(;7{KB%VPH8G=F(i%DHQ{AbSmM-QqpX1jcHIZ9HMU(TB|N!u2#1>9HQH-evuBrD5u!e}1-mHi z(w;iC_6Weg-SjTh-Tb%n_@g!HxLQe?_T*@D1r3Dwv&H1+KT~U2@kiJLG{}2(V#Q&2 zUM-B*@9yq?t)|J3wQ*v?@^h6`&8MMIRjgwXfWPoZ&jI^joPBsiE9o>8^9cIxBsRkJ z_%rK!bj0r4(RRFESuN%#2 z%r1#3-K+Xjc}NkkJfKo~%my5W_H=|^Wn@XzfwPNRyt0Ddnf|pGbj)p~2pnB{TJ(v{ z_o2=$NRNV?9)rQlw4~$>W2==GOert77JdxMjWIYB_#YSMM|Mn3wHW|Lk6b#1?_9yR z-L!Hf-f3pZ+M4(%ZUE9B{(^-*h6}mnyI!^D~H;j9wZ@yej4bt z-DTy)8b*tBf|iRAlG@~b)2dk+UqdboZQJ zSS;aOjCb?R8fa(OomQf93F1?J}TV?#7{{p;vg!Oj + + + + + + + + + + + diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/DB.svg b/frontend/src/main/frontend/src/assets/icons/aboutPage/DB.svg new file mode 100644 index 000000000..8431bc51a --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/aboutPage/DB.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/Engine.svg b/frontend/src/main/frontend/src/assets/icons/aboutPage/Engine.svg new file mode 100644 index 000000000..ba5abdd12 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/aboutPage/Engine.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/Gui.svg b/frontend/src/main/frontend/src/assets/icons/aboutPage/Gui.svg new file mode 100644 index 000000000..fb9932180 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/aboutPage/Gui.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/IBM.svg b/frontend/src/main/frontend/src/assets/icons/aboutPage/IBM.svg new file mode 100644 index 000000000..7c461c96f --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/aboutPage/IBM.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/QA.svg b/frontend/src/main/frontend/src/assets/icons/aboutPage/QA.svg new file mode 100644 index 000000000..c3af0fd22 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/aboutPage/QA.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/Req.svg b/frontend/src/main/frontend/src/assets/icons/aboutPage/Req.svg new file mode 100644 index 000000000..d5364e916 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/aboutPage/Req.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/SUNY_Oswego_seal.svg.png b/frontend/src/main/frontend/src/assets/icons/aboutPage/SUNY_Oswego_seal.svg.png new file mode 100644 index 0000000000000000000000000000000000000000..6717e18b76e74b2f0605d12019837043b1a0f99c GIT binary patch literal 299767 zcma&Oby!tj)HQnOmP40xD~N!ENOPzkh;(-d0@5Yj99kr#Q;`Pg?v|92E|KmAfo~n( z_q+H0dFAl|51h^3bImo!9Al1UxU!Ng9yTR51Oma6mxHN7AgC3HznJLYm0kL(QSb@X zQsT7)1oAx==dTGG_&1%Ioa$=`#FGUA@ehVTZoo_aTM&rra|mR|7y=PWhCs+1(i>HT z!8g!N6=Y$M2gFBq%eQ#&lMs2Bgu2Jv-lDrU@yrdz(V=b5=dVH8Y>{k%BWa2N1r3P3hDT*->W~|rW-0nyHaFX6i~Q=cjva5AxFaDa1Pz_ z`Oud(l)A*Z>iN(b-4J3z0hL@e@r3#aVNP-XtRAUr^ zGAJF!3NlhHbakvl%L)%Vj+>3nFbP%0%SICy@kbZ8LU);hGEqu=D<-9{h7;x(`j^p& zN7MaRRGq8DEcf+^M6t@iV_Wr?MqejSZ0W)MDD7ZSLYM|jLgR0UnIxb+&!8(9*%;*lLWxfx(vW9T-8vEs#Nkk`Na)C5 zw#e?@m!@tZBgFf04V4KA2*&x)-lUp8tyf12Cq&&v<;H{}qY)talSAmB{#+0&Mrri1 z)&Bx_8R!fN1CTL0r7=xgl~{-43yC*RYTw(uO$Il#<;NW$4TDXF|GSdo)5{rgN+xk! zWGFg;4+M4fzfTe8Ukh3^kOXm%bQprw2)9Nez`g95H*mn-fVX}4_ipoz&b2PvRHh61 zKy^ZF6-;z!2}&Ru9l1D}44gxbp6*Y0F4G$Z_%+lKJ@BBqxa!$wHKK4hyoBmsFfCKnu#%k~I$jL1J~oSr8YUAzo( zT!6XCMn|K8!!OHKrdVcb1%fa{^zTOA=4y3TJhKk3#it9!5=Vu>AebAQd@4=sgfMy( zLUVCgC~Pcq&>+P($poa|jz=>c3;5(ex}5!G%Q&137qvTp;WAfBzWRtTpRsFQmjl=xRL|`G<5C3%2nk$XUkeHHo{)A(>IQaXm!= za783j9#r`V)SaM)VxBunxEQ8<1ny5s9#U}*B2AdNX^($}5pg#$lH7>Vhb>I)$C)78QvWU6 zP5gtrb~G}yy#T86ik$>T|C&{z5^_BA_oI~TcVeN?5O7f}4iMYlSwSLyWX|K|g1<9# z#~}x6L+rp~r3{34e#K$Vs+M{BzRk)VN$FavUUq z0LBt{zf%Hory=HA`Pg>tM!8a3_eUs!isiqA(WyaH4}K@dWY{;Vr`Vm^kf5t;S(xS; z2kh??xo)GcZYTSQlEcFUvaZwv2_&B;s~|UzBCFgt%v_JJNhHR71<<&}35eh`%+9w2 zYb?{FARBG|#YCt1V>jlT47M~T!xTb6Qh(MwNmxdjHaccoL|{daO#Xak3qxrjHwd{x zFJgIhzI^=BPlv~(hDM+Ui9)5bRENXM&z>o{jhA!F zFhr=qB$6LxlYwiSC!9jRt3iW@l^gbl=4(q+=)t9(`w*8-DgAdVbkxj}$=Cz}C=Mpz z+KQe6V{}`=i@C4`rilUm%@U=Cp=>BY+y`HCL}4Y^Sm;=Vnopofq(4CpLXsmVVaRpM zAqsFo>SU2%xKFse%i#zO2KxsMkuQ_0fkcd5baLy`D(NV62?X>EJUEv0##L;l`?DHh zst`CX76E}PF-rv;ULf_C{aqp^T`=N@Y{=-0QQ~#L1ym5(k$dr-_)~WJR!*S52Rs>z z&R>F_p;GQMooN~!W*SPwUhV#Dm24Mc0rmdD(VUWZ^9wmQ$Ns4=8p04U^bmM|k-B)h zrUdbHqfl|3rFT-!TM)Mb&VO;suOa@ll1|?xt@4=(Gno_l02iA;<(o2+gm&@7wq~YY zMiQ%uV6f7E*hBF;1v;ydAomtK z*W)Q2t~sn<_vPHn_W5C=gAwfdruvSFDeBC!0|#f#zsFToK}7ivmh{!SoG3D9S~`Jr zB_zz9?*Dd?AXry&1lq(&Ag_hh&kxq9(P5t=MXg$5>Eu<=v>g51f71@Gb@0rtB5{79 z;`K$3u;Pa`QuNrZEDJbtD~WW8Xx)x77UIrsK5>K6<-&+`EVZ})dyaifo)jKvhYXV# zDfsv@?!T`r)Yp@&6=XN)A(WFWx1AI;n7LGuP#6reU2m{^YncwdJh=B;Y{NTI^#`a| z<6eO4s60p=lJgLGe5e?f& zovoxv~lw7Mh6>El^?EI&$u9Z_+ zi%l}6p**E=+9T0R&|{ZN#}Oy#t(ZdILKS%R-mLVZ??)OBCHZ4e@1jAG%vIt5)d)BD zxe@Ub`!F^SrwF>)*8*;;b+pe%0z@s5ud^WJ`@ZFfrwS_b%6(+CcU)Ly zO5D}%pYF6$pm#xREAv&wkC=I1z+f5wU^hdt?u)j-%gJNN0iiVRn%vWys<5|Qz0_)d zC>HD_&C}%xwMFd=dzbgI3A^#gBWk?(Yl`q`p4mB6y1ys@acxD0xLZm$+4fB#9(lx5 zq&BCJz+#G|prA~0YKp*MV=A$rq(!JyMI%7rYX}<$*PqC0XI1fbQzY#Y#i$WNG?Ne* z=fe~G{d*p;;033~Am0m|p$YQij?kVa`l4?r6((|9y3_mfrs~Kx%5p{?O&@Zri<&j& zFI_LKHEzd)O!YF_dGhb4ws9Iroufny7Kh8;JaW6hti}<~9z8c}^S;IRaO|1)j#H(T zAT}bh7#@8}l;=lCcg+l01+Z(Ks9qH7MfpC;+cDCSLvjzNdsj!Gov&$V zFhIt37jBG0ClUNiB85ByK${k)_39~TZ$IQh33S-8Ko?@}10IuLFnH^YtB`&u{0-8X zg}R*4?!|lVqQ&k4mC_|Qn|vs;e@m%|X(xm3`Qy;(He~-joDZaqwj?9ZKK}QW^n)Q! zfb;_$4B9heYtbkPwlMx+FufE7Ap^rM0s`X_F*9Eb@C&j(F-#%9!+||+)#d7ri=&r% zFIqvwXw!6A!_kGg> zz>JHTn?E_e#OGYaDA5wd2*U+?UoqcDgakTR2wdUNS5|cyT?sCjfk|8Buwjcq$bS?l z+Z60rSM2tS2F=Se6Gl)Z=OoGdr@`A2uVv*yIOsNPtiC|MW5c7o9QRf;Fn~h zAi_LLdQro{3a~0Pq>ii%m2@4axdtu_qy~gkw8&!_1Ua>php;FAX>1&6dQeWQ7Ppk|FBZ)yJN$U&d0k03Z|nO$f$928rMG>|zfdqGfP(;V-~f zG*+RChmb#&d|V7l6#<&}LT-|`X2pduqm&fPTojRvJVYXdc|KnP9b(xu7jRULOks0b zr3>gPIYH1_FUSpA2!k*iF*Yk%%iJ{orJ^?RKrT*;JtuX*h@uM6$g$jK*D%0ScjfDE z^Ii>&P5klO!M)+r!ilO!`{FE~-AEZo($2+=2OOBzaUj)L@F~JnP{Qc*-=Ko5i}Iwg z#9-~dh?cZnW)t?>W&Gu9B_O)|ms%?t>_g_X6ggfc7q?iCJjnr>42=TOrTAr zR=be z)Gc+Vq7{)b=HnM&csN1(ZPW^}_}uR2U6K*a85$~Us@3b;a%*gb{NodLJxVB<-2(P+2u+B9JlweI*?&*qH0^r zc|VS(Q)7<@dPzvhni7UyB&a8Ci}W12uQSS0Cba*wM4djIm{sMOaM?__E4i^U=-PTVjB4}MrNwbI%qrSOiQ(pSgMPG+wBMwcZVY8BV>aX ztC(s$TqwQ88>#O^X>|*1T=V>#>=L-ddz&`aN_LaJ8XBV``E=mq#!4ebsAXSL=aoGo2H+VfF3okWEnKI-jd`(B(H1oHCp z$#-5KeBZe?5;6sBiY~!T3x&qFFpBzKxeBK`*oU!{-|uCnk(sV`H;|J3IQJ5uTIgMr4(MpX z*gF5Uto5}iE+X}5O*dsKrQ=zY?|FhOK4sa=dP&;3-h|2n^j)xI9;BNy;sVnXJ+p4ZN%TU+#uzPn!elKi!W4EEtUpyc^| zZ+HP)!_Fk5&Q^@LFW3BN0F^#|32BD!(}Aj2;(0+76-{p9=Hqpegh4RD+L^nS;&+W4 zvq8}cnYrq4^b{G4o&*8z)K+hx6v9Ba>fJ1bTQ3$(Zt#UR75 zjEvZAY|+ED-_S3U6dyAi=1tnqV6FU=s};;7jm{17E_D4# zFbsx{84Qvx6*r*HcVNwC?IvXFT}P5xs`ul?Q54>Gc&Y?fOQMCGxJH zHP8MlU(ER2zJ-d#j};vibv06E&J%nO2fGLFl|Oa-+%dYlzj;2{p1G>EW~dh8q=ELt zx@c_j=a4`em4UH>g|^$FGkTlmoSKy}rmyd{&BE;nk=!ev1dLLjU*g@~oJ`J%^5ZtB zrDxa8d>AJPu~9_Khys}*muffe#S3NReNe!f=sJ@KxZhkV8KD9k&YR<}d11EL%6WDF z*|opLW&JihH-fNav5H{#!mhXa7naAtv~1MeMMBQ{(ON_uCkwm7ia8}Vf`^CX**Tn3linb>!P+Fy$z+WvYihX;YZ8|qrSXKTy-Wz=|2G}U{!4a0+qpRfl! zB~mYQ#X-Y|)n(tAu}OI44)*`DWs4&01TC%HN*TbQ2cL?~Xy)WLsvfduPQ#$6&8~;4 z2+ZBPEpl+`(Nb9IX*uNRXk9P-3wK6HbFW_ zSFn}-3*Det&7QAdF&Vyk<@954_ue3jKzn$Hv|y*`;iL()8|Fqs6E?*90GVc9 z8@uv3JV|7ZX+Lq{8_q5GzwD7l`f!Sp?}?3iK|#Z(t)h}rNsDOguSF-tZRN0(B0>^A zEka|;(%!Y@NSfF6GYp@!+N!F)_psu(h0h!MVHWC8{C)n;=tPXQk}j_K)$k*~7(+yASaN+OZoH{XSI5XwHa}%4I#-zo#_~gD+0?w4&noW0!=c*M zy%;S;^yn5%z7cxR>&>pv- zh>N{l?4Bk;f46dwE56~XSu?>JprNnhIlO%M$`|VXM$e(^qV-^DYmt-uTRFF9QCi)7 z&zVB;V0jbmpFz;q6L$QaIZzR7kX-#8!AqJ9Q*p!UcE+LQn?0o-eHF6*u5ERtu&bZ5 z|6x8C$tmS=&Z1|op96XCBbtC@QG$>EMTzwS?d9qyM~nMT45wW0Y0O;uV`S1FE|q$L zM7c}$ale{<9W9(lKx^&tPmzT*Dn>h0I43Q0!5dj&nAq^BaApEjq#&V2;*gRt&NyH~TX^;Jfpk~kwj@X~#{IyH z;G(wFXnuVr%IE4Z)@bDnPv*Li&pKT&EriIj>S%wY2C(JswZhZ57jId>8t2uPo*l-p zZi@I@ws{88a!|_$2eDx){Lb}sbWk1gQhl|p_fM674x5~nCr4)38Db!n?FWS{azDfT zLm*o#x_C!{HjUpKv3fzl-8+wrf-a2RHtYCSfKo>XbE8KW_*rzT*GK6g!nuaX0PMeI)- zWZKZ^aYKG~b=vdUp|HAQ_~!JycIs+t)80XFQ*e^9Mx(d6Hs=u_cI1<9wLK>JWDBd+-d@*%3`U6fS`~oOHdnNbc^DJLSyG70Ath9X`{jX+I1E z#BV2`baQ&Lnm))&=n&X_*f#X8bPRD6zz9Tr&^faAtw<*6PylidP*`Gk*gd(|*1tw! z5xB|#yjJ-}lt9eO&&DbwMI1s)N0&_S-P;bx5hC~A;ecVYJ%?)RC#=u=@r?@iDaklGhJ3AIW1lGH9X3-xG% zGop`C%=oE)h0ia0kQX&l#-Gal~uZj z_c2Hl1m(|=aaj8p2V@(RK(>1Z2nspDZqBq7u4i*+doY>7d_a7dinKIO>Gx(mE9_BKx+-*>mz z>&v4RTYk&PCw6m9m8YfC@?Mo;`S*|(tqQTPG7F3qgIT7J2i%Sh;&wE-*w`Dt@o@ja zAZQeUgg$4O{w8gvZBTg7YQSkK&F}n;$o1;o1Aow56bX8&%TP* zIKS;6pd&BcjdBX&lqy*|_C=^+&iA(Pl2R^SoQ3duYz0|nPg&1b$Ci6v8UeK7tzYa% zl1knaa7PZsYQJ9zPJTV87wQ0eNuVQQ*g_OHg$<`&qe+LJr_x2F`1j{rXbz2;t{ptX zR*L101Lb~;&-Kt9D6izdPRonQc6gB$Sa+0lHSS|$$Lk&?bqgoBHJyP980TN1fgON$w>8aws*n|$I#TfLOUf9_v7+X?}u2w-T3yKZzPz0-^Q&! zI`L2wofXKx0MgWw(E~H23lwD0EStE#{$%#xw%9;bn@P4p4k>wy6vO?6bP_+NW?_TH z)$N@}mtqfl-W!%&A+G@4DQ_}xersPcq22w)xaXoKX%B@{3wGPm$IzBLSDo{hPl2m!OaEWO;Kz^D0{l zxwx$oU;lBs%7ikGk%+8uc&^p=&G4`Qtdjhsx03>V4Pf>WT)NPk%}>IovH!EK_YVtk0tt{M`g2W%T(>;(=Jv(nBF^^msDEyPpg3`5 zNFUnW%-oQoB7ycqP|GEbmWT8|NG|=>r^Ik>u|e}j=9kO)8D{G6epLkekg~Ihc4~Ya z$VBhPKs5e2BC={nXPo$yi=yp6@R1CC-!HuZfco|455W)oRBex!A{S-jIdhjrqf6%N zda_Y9fk@~5@Iwd;yBypc8dujN&lHUliw5I9T)Y4SriG*LAPrXP^4LAgtKSx$m+SKS ze7r}DmQ-?3qOET?k`k%sEkd{Pcc!TF@8~H2U`IoU%&t6{k~O%VJy`W7bT)aC0jdCd-H`;)oJPsZk&bs2%86-L003tu@f=;uNlZ>PWta(TRS2H~E__K9|&=aVEUK6R`(K z83j%H#VsVyeBqr=kk%;7yYfRn1A9lGTF|E_(63hO{?mfy-C4 z2)eXa-cu6~Ww*#&ewRjn-Cjr^#%1-ERm;5{#?P$~7UUM<16z^_Oo@{MjS8W0v;Vv@ zVV;F-JNIbfgYds%R1J^s5>2+IILSrsyt30`#f0@2R(F0QvwF!+@=b%CgrHf0l??h% znxf(@-!O{YYBx>Qzk8GRXs`Q@*Ir7?-Y;^u3HH$#@OAhBFQz-E7cSX<*c^7W0Q&>| zUK@S6#Iv_uwtDi1XG?w$3ub~2UfW;88q>Z=V^Td9` zJ3PBQfPybS=!IS0slKCcU24QOvNu2jV~GHfE^bg2fmR8Eg`v8=EM`hoQu3DePK*Ff z$n;6wLiOxYRpr#-peV`-s2xKTfZv(7CQ0TFMK_|E{@@WmG8Hd7Iz8&>-Wn%=WhHon z5!NyC=cbCyfI0&SV$gE;Q2Y1>?CD=_Rsz0COQDg>A({kKH8RlxT7JQoG#<02m-N5d zFo2rDO=wt8_4z-}-Fkfv_U_emGx%Pqkx#aXPoBf7HT@;k;$O1e25fo#sbj{4J`;bL}z1(coJ&I3(l z`KxBpNOs%Tiy`vkdED%tQ9TDiu}x&H`X~JPVl889*v$|1mQ_nwB}jwMfgrkgZge4PsHfBkS^{EwxVH&rd^O8 z>qy7a!#!dVDB@Z$Qk!YQ=`a!b_9M%a)+WjK?HOL`%MUlFGat3AW}k*&T%)atoj$yG zyjx1D)jRx>rv9V{0EyjI{SS0S+P{k(YGLD6orQ0{ak|{l8UH4hjA?Jo7hRN!vi_W! zXySOQtE&-{bzv`E)fj@&%1gkF8Td>mg}5bG*0dTQMH2QW7zpk>IEbMjh(5+w9(jIL zj)T3!H-U7<7yazN?nZ=!t5!^|>gz^v2jL%mwa*t=JuaqYSBx#~zaJOBE9e2jQ{M-X z{BJ2$vyN(G0&J7HHw!@HC=GMlzVq%7PzIcrq7KWzZ+nq~M;gSs*={KLTt&H>QnVE-I$w_l$=k^!OQMW`rgd zsI1y|3*S8U%O0xr)^@mPaRX6tSh~%2cb{@T`*33URbwOhZg2mWAH$TB*cUV`nslFU zJ?CDFOPnk|t)Ohm)XXQEG``dO#-)3J$>C1cC2O4Mj5^Kddb#`7AuT=f8Vm&ab!ZKn zeXx?47Q=q|jz4Il#Py>R18z3WHH@Bn&|VK zM-otn-QbrV9LGi#iSB2KG}}^<#ePK8C6(RhF;flZ$CuIO@Tk!LbZhb zCUQQE;LZ%XMP#f}Oh_~GG8Bgy4f71^`M@cO2Bns;&**pJEf_VEdD#xZ(N1~8vEy#-1raxf8 zNI(`z)o23(*YSZ5S8kZSfcMda7Ab|E3i0v!((o@2V+=bQek@*DMM+rseW{Xl_2%o- z;qOGpOO0F{PyXy)zVB#TKjaxWrQi*LLI%}I`i0Y??*~Oo=k8~Jkd5VP>ixdv`aH0@ zwqmYKrSTpwo^EEv{17u`@i2IcCRweu}CfmVDLd=5J<@_Qnt4UzNU}0r%1rq`mRpy@ry}Bob z(D#W}epGmJxhBqfg1m~tiB^8;3I!NMA^a)UTJ-X961plUacri@d5$6FO#-5RwiJ>m zQbUz~fpjZ5S3OWvq{H%upQh^zxteDCnbF!!mW%+5$rp;nBvHI_i`~gkJzORHKhr+m zdkoQ+UzqLxUGT0TNV8blM@ z8cXqFA(v1aax`)O-oxP{gGHX0@)Zc58}01!4(jxFU%LJptvFn#9BP z$l+y>AY{{dWcxRAL~ztrHsi!bSleXDzBETzL1Bf#Iq?dL5_ z*sC~Wvx@0skulm6ny{}8hW+ZUQyIsMWh&5M0o$pX@^oFVh#wk+DrxJOAW@tV_JAT? zZw81-RPVznz-9M`>oL<$T968+ZP5e`trg%9@PM4VeE$Lk!>jMy78oFljt=g)Bxidn z5{FPFfCAIv&>md8QxgX0YPC?n)a1{oBHeX++$ye22^DFqzrs;jrRhE$PB`^m_2jL{ zIlwQG|A_iw)V*~0bwNQPcyJH`ptcrDrW7G3@@W*5Xyhnr1Vp43J$)!s(dnsvS_lIU z575)c+XBl}_(y-bymxaeJ!((r&3)8>p z&3Hz(_pMd0=c~!Uh=?U+LeZl0W7DY?t#JDr9|mg$gn*J}5_hrdTThIs%dT(ui~S09VgaDU3iK7Dt-(}pdOf7FIr6%kf68BzE2QvXIu(t^Tnq+LRmvW&R@I*Ef z{f~2V4yLR+B%Gt;P313;cdP|!L9|zVkn8ZV^`Ie7(q3*KjkTHNbmksNmarM+ZR(^xszpf#Qq8KsyUSq_xh zxhpIDN}>1YKBAkOH_A6AH{z4#rP*cNoeXOQ@Y8^WuKaa63>+r&fv}IjVQFyKs!y@# zYEiUyvM**l5s>kgKp|SmO#PLatlb@#nquD_t6y2xIgl$o?$hcxPSV{g-MeifvwA@b zx$kGjoJj9DgsVu!k7WOFgw;BKZDy$pU44jbX6+VEXcKb96FUy?|2;ztc72NK<&~Tf z@Jo405VxVkYt6U-zyn-zrf3sjF3G7;EB-odMx=#}Xm3slqo0Byl2(4%W5JXdt=3zv zHJa3LKffc65z?C0EnCoZH#=>r2`9_U`C8R=Ohkaw>CoR>V>2IuIci_!Uzzwr(%Y4YXI7VWb+DM62&3JJAh;Dkjec>@Y|9hH2vQl%<& z)<(Uuy?5V#l2GJ>W$Qbw!nIzvJv5KI_2f8YI>8yGT3jM#tVo^Wlp9gxE!y9XB+YDh za;@6B|E!fZ8UbgPQNlWPI<-2l4Z8CJF5D`E3$@}Y2EM0VYa@w3Lf3xysl`IEX#3KpL`ke+X7)^-IRy=n8ycE)TvZg6AQ-wqOPQxc}q(sr;*RVtUoRb!g zUft-Gigv!7F;Y8dd}V5?ej^|Fe^8{i#dH1-;ryV~_}Eg6Wlb&gYnGAm617_QecIvX z_rGdDsH!VCHJAHk?0x@B@9p)6-+L>;m$V)fm&5g?yuOp{bZfvdJIRkwC45haRBRB; zy_6ooKl`gI)gbxYj~_THFCkHnpLZA39+utVzVW{KB>!1h%#k1GcywvJ2zd&0O&s!# zu^2O$7yNFai^2kYx_hnn&3zPiiN?yM}_(xq zD=d0k*X+X8>i5U&?10pE(z!b}HDcqHuT@nVyA8>7-e(hmkqv3mrt+^vPJ6H7B7kd% zVqsdHu>#Q^4T(kHcbNG7E&G2>p$Jp3Itg2O84PqX8&g^l@GP!ItMSbg=IQpEstC%{ z|BN$)KL?GqLxbjEXFK+l`!fQ3#+T#fd!n8eu$<4GC{kVMW^x`(p&_!V<~cFHhonfI zeS^_2x-DZ{-%Sq`i{1K2M1rwJoIECOXC__ZLMCDaXNU!j%R!9bq_76R zY`vn7_yKV^NM0hFr3YK@U3WB$GO6^w{`IXUu%}3ui@<9}{Q@9dVnGO)p-J^&J@DDY ziWKGt+mU>sNes9r=__X-!beLJY-JqpC*I41Jc4Q2cUjNZ=Eo$w1fW}`f>rWkgPCQw zYdxzK)6$DI!N5RgEP;`7_+(fY%F&3fY37_a9x^dMI8gPCfL35Cn?FeM2Kc#w2{>fn zRxQ7%Jv4#(*T+f}$XHi76~dQf<-ufn18bieuZZ0SP#Cm(>PjqNiH7imQ~`Z6M&$8F*aiI-4#7 z)o&htER0g{;Q@6tceobVxYkq99{B4Q$9Ypo?0&~G`|V^&lv`od)Q+>>lO8Yp=3ofXB-yQj$p`LFZytAk zZ;l758v&SC05V_y^6ARqcH|LF3wMbJ@vrs(0@VU`j-da@vm*T1C*{ce<&vN z$q0%4t0orC&sq_%FZh7SZ}lcg5+)Gc`ICB3_@khhUWFiL?09x{-nXfmWI6({>1+Mw ziocu)I6$u>K}EtJZNR}X@*3M)D+m2NpcHT{>fnMgi7o11M5+VlHXnzmU3n2cI?A*( z#U(Nz{~U@PMRcfrbb7XthtLy^Fs!2~snpy|M?lM6QYfk8$_y-}$~w0X6X)QIGNt8W z;G@qP@Bk##$WG_OA_As6eoUc&vBCf6Siq~NWh{*gs|Rc7;E(`Vhq;!AKfrX`nj8kG z#jWw`|X= z^@=bibD;ZAP#Xl&ciH$@cMjtVK*EdNZ1wE=;&Tj!mX%(aUCNC4pPuQRasxD2IN=gP z&EcK)`Hsy~2qtdW9`*HI3XaU*Hx5d!9=?43kvMJu44y1hi|0R9Tk1FWnctE{Zjy=y zUay0dyd0T(bG-V-s7_BTt93&nNX7`M{a4t!W9!u?ovcWo#xUc%NFxcB_luWDU?z1u z^tpUhuFNq{Z_$9*!}t%i+~ZfLv~9%KtUwUpUQdxG<=!c!7Nv8O_+|k5k2}I33D`^v z4KQ|Xc_PM(^w?Pd-||eF;f8m(cJb*c)AV5e>G9{s%y;KmO2JNUH6moxbP3<>M{5R}~N(!+Rs+cH1 zoo<;RTb=2;{W$T6(GJvE(~j;2^cr?BPrCh`sQ9F7*Ii^{=l7JBo|egMYV24pzb{N5 zRC9$kozT}9Zfm7}oP5?oW}qY2elAL5WUn_YK%w#&MdDMTVuY`--$u?TIh3LC&n5(T z;2(-_JCU$;s)jLg*@nzs=yEZ1AE8d$%c=>Lv;i&t%A?CknCH?iXkLk0h^D;Un-*9( z-#UqKtbyBe_;EFhUPFY6WWRhV>@Ct9U8c9by%UpW#%enL1vQAs%CFXRQx`Zst|b{F zRe|2$*z1`-VMfyTK)bksJ}UP5ov@n2G{@z>oE?i&#t&`}W)-~#Jkbxo@rJzrxPh6$ zT!|lWdL09fLn-`(tp_Uq8M2@W3B`&JOwppvz%qi8SJZ+D*A| z4_NiDLMa*@$6&tA6rJ(T;T15z%?nTh zFKh0XBHYja;n)iX7J$)>A_&t%j8W8A9NHfEy%cWDY8Ht`!pi-FC|G=H%1o*lg_J-tvZu(+g6dcEiq7wdj)Z{En1`c}!W`teV4q!(bV&i+){5Hsw zLGfvPhXy=lyz|LkPlb<{g197}#Z&nV-Jc)C1C_RJ;C31?K9B*XpkQ2mxFVmNmSG9g zEba+V3%h=Mbi2tlCi{)Z&UN=N%OFvwANde=ws{Hgh>p$|-cqW6NeNpRy+kK!9l%Cb z@~Ill_Ixg+5+;fxe2oB1?tS&QUUK2Falq!XVl#BWYH5bzJyaJ^G6q9fo-^D0vBW2BC zjAbv%zSGxrPB#8pWE_4wBB(d0z~wb=uFOB^5%eCb>Mf&z9+Xl zk?-T;thuuJxhFT>YUlY$00pSi8yt;EU>dtNU_XD@K<6ec9rT zC)+M2h$T;b#`l3SB?e3($2Sg=lQt&DCj7VLPe0i)B^MU*{^sH>u_gp58REa#9FariQbO zqi2G;g6F_X%-7_osF;BME{aBCM!p{=q5YG?d5-plK!i~vq3g5&a;Sg7sS1lU=UBv= zEb>afRWdDL;8oiS(yvL}XkYVRp|ihuj=E%*3F^H-nh!gu`k&qyb@t)6nH=rt@8^Jk z|FmD~#&3K7JJP>j5?HoZ3rCH5!th(H#}dBVe6OqNdd+R-pf;2&w&XWToGz_ViXBK7 z01i$zdb&yo(E7z60P7=BO!`ZcT5dx@$FgywJ>lC8DxiK;8I+2a7|$#7I~;0jAA;+iJ6B7LCvB4=V7 z*KU1v$4(O~32$IN+FGE%(x~bcO;aor!km_3&<1KxPl=_y*-1n{^1kA75NL6Eu1`Jd z>k;P^Sfpb+z^N%j8-Mbf#K9t>hMV#Id{E~A8n5hvx%xcywpYcil~dTckJp?%dL6|W zZ#oy--7g%5CA|Nl4Cj4TA!uC^lOF&Dos>rf0~=!3H3Ajlc=G5AHBAE(2dY9CGVtP7 z&4#t~;gi=a-1-}zHbWnP1rwn~Wb-jJSXoC8zxJ>hX05;8)^h}NwN_&|$K_-nB9|#)Qt}M_K0d>B)v`k-fdGC z_)9-MO3^*>Qf!;QX6zN=!JxIj>a~>>gT~z(>L1riKWjA}L0hnlNw-yR0@*Dip`#LZ zA#!-~!Kym6^w}&ag}g=sF~TUD`zaCe z^gld1qNTh#o&6wgG+(Jk^ptbQ*~IU(0-W-lWl?wgwZl9bXn;jN?G|}~g6ItZcD0Jb zOM=-Vv}RC5l!b?qde{4yIcOfxU|Y>w zhc(-zj`zU2uxhnwyd+?+u~ENU+V}CQb5U-1@VUnnn-3_FYqv(zCacBx##eU&>x(s6 zDH@Jm3_PVIucjGRLz+~S-5R87%ZXe)S;rok=L4L}WCym^kped`5s*kJ>g2e{Df_;( z!VgYLdJ|A65cdHIz-+LAJDwbuVYgcYGrU9*RKk*Mg$X~HiZ{BVYFdcdhi}h;6H?+m z`UNg<#N?@vwY{eY=Yc^)m56f!O=lc);Oixe;w2b9CwHXmN>-|E~ z(BOVguroL+v}AX)FpI9FmPqw$`v$XcC^ zjjQuIH&Rf~<^NFi-tk=j-T$~1${yKUQBqbSE8}IA5wep#B70`KCSVUBB6%! zan=?0feD7^voOv01P86|oo42p1#z?Lx3Bt-U8La<512$?H_Ks1U7j4Yx;}ggs!|LL zl*qs>N1FUvQ#qqcSDbw+QkL~bEDA75f>noA@*KmLFU#u zZc8l?YYlpbfhPW0+4q&TBVJ$T3)8frWL6I%?)>TMy3}6FCoky<8g32o`k6ir$QYp~ zd>Z~^bK~dmA-vUpz?0h9+}76Cb;FbP6)E!r!-qX;dd8w~b%wrv-NqgNqWmjUb0>zM z<=gUl3IWO^f*u-*M%Ulp-0;MWqS*V0fejVa9GEAF`o~}~e9*jhiZ}|RZwh-KPlmGE zidx-C-d_s{h>|nl2Nl?}cCoSv9NHf*w~cqlE-aQK+P=TMrt&fu+?PE{x~@-h$w{>z z!3fN$1?C0cXVt;{zT63e+_u8M{!x8wd?#=ELBNG#M*HlG_C~<(#y^c=p{v_~@E$`! z@~m;Z53Wcm@?VsQxFHuG8W?f6yCMenuGX8IU_232b0eIf>@(;u#gyw7bDx&n1jn@d zA!}RYy1sPa0bf-ws3I*aEFY$N;U4_8v~y4e;hU;c@nn;Q4uYqI7dqgh{ z#6vj|S2M-aWOC7`!-hARj=5=;Z2^o2oUMP(CCu1tE-Sr3rmT9gf!m2Y^L@zUX$3Gy z(yHt613})7P~#_cz)G0#-UWD+CM6Y2KZo8*wxXn3_bvHMA--6GCEP3$bZ&lRQaBQ!`+G5?*n*U-e=6?BCi zmazaM=y8~>aXY4|UAT`%*VX&5;DXAe_0BgCgruEY_p2oscpzlZXuRGxYtzGqi&2(I zaV`D5gahisVIKbPG8s+og!V8-RFNf@zN#c}9DSJI;2ZilGT0ej^_b9@R5LqafL%p= zCXKbumq7uxeOHR0fvUe#v=38BLzWl|^w4^X{FX#N6uf&M0k{*@>!UyLIVXcK^A2y` za1H{l1IG)`8>{$~IP6t|LM@;Y1C^lW zRar=s0ydzTohH0U5QPle)uJtE=KBbvV{xs8E%e|EoqT>J`>g=9y7y`Lp@M@JR%KEv zgd%D=rU7vGjGPP#{=;$@m!zz{?&q&t6<-z+!ataO%KjW}yrow2A8CueRl7pJ?Y;O+ z*_LT(L%SM1*?;>>8wQzo*hZ{2&Vp}AEA=CBKqSn(Pmn*C`Onk`dE&N2H1f#c!?$N4 z$|Yuh&1K5H{*8v%!x;&H&E$W@z;o>e`cO|jSoeGYl*Yb6y!Hng-6yt<+MfB6}< z0z_59HBBue1c1iP z$GFK4VFxN1@NW=!QT7z$`HH%_uC*Pll-0wE|0ZpDi_HFjiED2zHKblh<=qS`kI?*7 zzElG@9cnoU$ohR2tlKhN=&ebO>ez)EGF#U-gww)FE(nULEkOwy!{AL{miB`_zk2P_ z_Ij;-*}xOQo;ep<)rx)bp{Us%Ec91J44|iibPIuV5l^sLQF=4XfUe)arVIl*6T6Z! z^O8tJj{tJA)tVe#Kmoutq5`@|c~fez2igCqrINmR8|X@DaEboRzbCjE_xpvkVj{Fp z^m;v++oczoBmnp~Z31`@mj)K5Sp`rIVU6b~M8100ur{C@i5qtUJ!_}JLF#OO=_{+N z+o&GXhhJxr!+-uFlNr~)$r{rOW9QF1SMIAnJ{cKbN_$VoK|QA2=g~Ola;Qk4)nI#% zh*yFmv3Yig(oalpu(t*e{+PM-Edn1d{o`tVc^$oC8}jlevcfnAJL|#F6cwF)peU!g zt^VJg{Hm0x{MvU@)ml2C5x1{_-8ERFz?8eo0z66qlTQ1)+dJNP{=Tv+GsZ9uyl#*v zSWM7&Jj2B-;RK82^LU-AEQ8G^nc%>@ML@_+uoJGw>8J4D0gqxsa*gnK#o z)aEbFK=g6Ex9e(mq#Kh_J#)}z<>89gp7d;n$5N-gQrHKjUKoz^qwJ-eoGCmJ34!eg zt81GvMPipe=X9VMb9q#O|L$gKTz4^@`L-21J_usMIiA{;9`HU$q*zdupJ#lsqAzCq z?=UHE@zcHPP&4NUiS#ERiG$`X@ON-E;rbCwYQ)fct5|Dpo`&JfD1>ExFkvM-b5agX zwnx%aWCHVyuj8Yubf~h)L}3T=qlr*Q^|b-5uxVRlqduJqa5vHiD^@!UhF?)m zLrUFv-qKApgkK}7k|wT2t$GtY4L|9hNc>XF$AF?gcxr+h`dj}f$lm4Ga=S7*r@=#^ zlhhKXxtiQ3D5rFZLhqubo`<#ddzb*7SUnd8fWJ&ep~;KS2K0PMgOkerV&U18+opcz zcwo&Mm@cMmu0E1XZzMkW%iupV?M_pEF07*a1@sWmX_|cMmjHsnM6a_A+T*X3CVxPV zI-klu%a^AJW4Vk7cinUYD(nV*sBQWsv1-`7{y9kL8>>QA#M$>eD@tfri!&S=*li~t zJ(zwvd|CX2#ZnoLQcP4~34=dXmjy8zKz0T#-Q9}s1%cpg30~S9_cFP1UN`Q_<^}In zggpr>x7YEls>hW!lj`Lh3O?@4H=scm?~RRm32yD%&F%-1AORU*FJX6g#S5;xuX)7U z4Uz>n{x69UYMNxaKdzlvs1#7s-D6ICYQMTz_+0P@&F~h8Yvw^@^IiAJO{E9p2Wyow zG4(ooT@hN9ws=HU*GT=O98@0hnLGb9g^~CI8PB8rmt|ybkal6Cc}HSjXd`mxAAnER zH`Q&mCEi(hxhws##*-wmoWsId=MJ6T-1eUkgR3pJXRlzmnmS#>gu!pl?_oS`1E^@I zsOX}-n+$Q+XYiUXr9+Y&P zl2uX9WHT1=NTv0c?fZEci+AVB$>2i^Ji=}Bo#Vz|rH)4bS)ws=pLOjGa%OODlSlvg z)Vf=%)+ypaqj;aw*tiHm&=K3WUCk0%NXc=b?4*g#7baY->K&CHT7mA>6?g!R_qi@2 zaK_zN(RRDe)nD6klcTIX8(N8p%RiMIbEmQ;@0wnnxn^{>S+3U_GQp= zrzgqQZb_ZC4D^AY)8-K*l%(#|*sk~zvbngqQEZtbmiDI$)F6qHmHB5+*Y`LYtjXBz z3J68q&&4HR>FxzGTf`uy=q_UY=aJjRmN~a+r(jk(XdsMFhc@|o<9=VXpIYfEPEY5K zrdb+34E?>~EQ7LU2AsO4P@$4goGwcu81i@AR`j{%az5~wO*Fvo0AG!opdIfgobFb- zO*(ESL42t*8D^Gj#?yOe;t%5axKW#^f+3LYy+kewo*oD>xIvSJuYltYdejmF$yya_ zyq^yi2V>GY=07eLZpi}F>$X1g-)ip0Q2xqW*G==|x!htmgTlm6atSLwRwOkEJD~Fb z_-so|(UtbVwOiGSfD%3IqyjNz$jVF<7~{ALyy->b5y1-Gjh|Jk(RZPRVFkP_^9;qr z;lw0ajZOV>J1F#bw9+v1iV*`0IV~AOva#+Q0j%GDCqoBVQCIqF_3tmh;z8E60O&|Y z)wkife~^6ymG{9``dg2Jb-XkL8@~EMKvNiuGg|$L#Caj1%<7i|^$nIG1fOYjzaHwQ>6 zR`1rX)X7mz6!~B{LkQj(qb-%sWKRqNyUQE_p)I(TF-#{rVe#%5M9K&p-Smb~< zOTy&W7^rBTK9?Mx_GhXk@?9T^@48ciwGdU4E`2puLO9{Q7bfNAeWHu_IB;4%EUwJb zmwIJ!1D9+h$qJg{{?AUaz%va)ZwS#`q;z}!e-M6G!8vs%9X}kNw0$uQjM+Ps; zGqLh3zLlZ^AtQ3cQ6O?l?$cP`|iB5fWym=B*$v{j;sbQ(O@jeUAc%Snv|JmSnS zGfbMM%J!Qqd@4^b9ZmFu|18xE7dFyB(lWHEV@$3UiDw~FR!9m%q#%G`BS~>Z`QoOE zH^D#uIltgX%GZ3jZ}d)?MMG_WpJMb}M-tWS?fjc3ZZbUB+5r<-Wi#;HHpu@3e@~fFl}Qc+X4OlT@Sndq5(+q; z>-D#a>q0rJs(C4I^7cn{OUE?rWm-KFNS7W$bS_dm*fx};#(W5ql0CRey@lWVPg8dZ z>b4GQ=LkNT{jq%w@zNWedd`^$QPf=$=cc&0u#5^=-L546Dmvb2KuitMGnpE=@{v2k z;olUAiCZk5d%)n*2)!b=unh-`M%w2zYVb6zG^kg4>YqS|-a;3bi zXO8dB0R}P-~U)}|7vCjJl|9Q zPNgg?jQaf1LgikMKFzuLRkRcDJ_{?-dH*kmv+&LY;b-WC)xmNnZVJt|~T(Qccq~9qG{tS~Px)lowQ5fR5EgQKbX$0|G&N}R{em)sMXs`r; zU78ZF!tv~OkJ6vr7#N>wWzv4EDQk{(>LmTy7Onc^n00_1ZQ83Q12Nv{O$&Q@f`zQ~ z3dI4?P}9sJ4oGts=_zI0WdXjnIHzPzVig z3G7sXQ!TyR?=l29f{Dxs@YKcdT{E}O*`b4xby2eG_V>IId}6)$tWTK0BT3nbBM~#= z$`I^8O&o}3`y`&Cw}M>f6JbbMj3JO6<8R%Fo^o`%y<2^)&}vs}e^j=qL942N7M;7` z2ka=IibSM(&*GS#vaJ+~xg}&U@!|uBhP@U?C8~t+6?3k~f>@i;M_E6TUIYVzFqptl zGT~h_oA!TWOAgXNr?r4pr}JLb-j$g%o-z&Z^&bk+;^}B$Y?18uWmtX7-*j{MKabp} z4C!|TBdkMQj6vP`@mnFf%&)Jl};z*K>Sc;C$j{_fcGX z6znhOQ_I25>&wftrXhYz=lgMx=^Fz~L_F>T+-!wtU_qP%J-p!C2WK(2)By^oQ<0{Z zVN1-YvDFO3Ih1jWxpx)hynPKinS$A)*?4VTHCGr~=#+!krw4E`%%VO-vM)~)1;ty1 z9Ap5l4*D@N$m3c-XZCu{bmM5bSn1+p2Gg(oi!^4YU&_yo4$3e}5{hYA){*H5(q}q= zd3t{8x}CrSB3LHC7QQ`Lnj400{ZoGv81;yy%oOI_$6C)#5Cjk z)rVJKn-HH<+CSPyjN@VF-7g1sbRgA?$7kxz6rUIK#|`>P>l(P4W=H*oE*&!yd==u> ztEEB(kDv^uYMz-;vT1Rk7dGDMw{-a0;lLR-0V6XvI1v#sK!)EZtBauE92t`|(WtDq z?DjzSBfft?kkZIaL@CSteQjngsfg)#cwwU1z)~GDb?fYY}=tqw@K7b+ zclGqNcY9_0vy0Y!Fc!-Mbn^ZX5;BHD(?jJ=791$;l)^Fy;svDML6%s1SJ{N1{lAC9 zG)kD+ebVswTq_Nr2R`aJXh}nt&?xhPCWQ4zGKdW*LA%;TB7W5ZMvC1y`wv2IL}U&k zc;tD@K)PDP`_K3!nqTl;Y8O-dUF$brhi<)^Noe}-URY58l*o15XvVE;+TCU(p+*lw zIU^uo5uzRa?n-qeZ{)On1TVva+}3rZNi&A~1zB@&ii?nh7BxX30y!hqI3FF@o<7?? z&r`3J&EvO3U>ZdA06szRRWCGMl0jKPM3@=#aUf7YlkoO~X3@R8?uAY$a`mn(Hyapc zLQdJ1Df6O2w+o6I9QBJGk2Wr7!*D@YF8-~V% z{%?aJ*oOq2PI1?N>jl8bh6KSZ%;OPh3c!$bd7P?K09+OZa4sNsB85YkirZ2-H=Cv_ zaH<>!kNQSt12l50K1c-5YiUDvraROGEc+|#TT!VYisH>5{sO{bn|P)LGMmK{ZNb>& zU~qsVHxKCu)AI-bHV<@J4+HK7Y1!faX*t;+10(oGZo+S*#=HGL)fpl(?NGc-Uwd;+ z2BDVc#1~J1aJbAiS6xE;1ZP2G$RHE1KA?{ui1}|o2PxsS%7p9h?DY}QL>B&aTu2*3 zyw?y9DCqB>7XZBy{QX8+Zsfs-QO%8Wc6GUF$z&jYS^I+jb+U$9_}9_rFaIUuBz4x_ zT=%`cqCqdz^qg1^QmF^kMahgZr6r~~Ft#GGR0OrpKh9R$DIl7nE1<*Nr*#IwvX{?Wyx7LVQiOKU;9HEyyc z)bg`yVcfT`&W6c@{gIGuG+zgso?CKljLgk`@aJ(stRf=%*|i_~yg_Qgf2RK2g&O!K zn8)F|TYzcbF(A|a3;|Gx197}wg^EUu3VtR68r=EE=R1=!UuP?Wwxv*Ja#(A(g?f5) z9WCGp{X|cuHT?H(d?p!_(PK1Pc&j{-fgU2i42=#fBDnJK(LgB%o|&D=LGlf;caact z;T9YAH4+ueR4Z#686Db|hu$)f>k--(*=MOyY0%xIUjj~aJJ5v_vBkZ8O@iv_*7aJI z4fYq}V=Kv1Q)82vzJ|+)9?MOGqVFHdz}$IirY69*`v8>eByo`dCWh z6J(eTzXsx$lLWP^UQZY*l=iDZ7_1MCA3;P@QdYU@^#i^*J=u4=lW`_=LS6|4*GNgw z8lhq|!NdqfNFg*bAU))ym{M(a*cVZ*!MwW&^BDswGnyS^f$XH<*NnlPJidh}VdtOw zNQA18ZwJ+l%xGiQBx8pjK`4e~Kmgr$dE%5wDC@vi%DO24Ay|yy$=IJG9V9q}DsLYk zYh*Nh2M$8svrC4q-qxdrqL$HNz2{a{omeWeq<)(HMM4MUtP-ELWYU;FE1BNC^>br2 z1_DY0B!+oFt|v#whbeDt-aItIOL;MDSq@)tC!>4;7*mKiNvIVkZWBZ3o+12-z{6G3 zQLp=I>IQ#`*Gu=t4#8is(8RjN#IiFup&qhTv&X8k0^`0j!|v`cgNe3&X#*1Y9hYF^ z;kKPpP>A`21$vT*^#+LS0_84JWDx~Ya=t%KVyHqN0J6q7F^$=)JP4IX+9cBLl+SN@ zo>EGr|3*7(@olc#T&R%mog4aTo1dzwo@GD}%?DG0P{^^{>ynLT2a;wHYyfaTwu{6= z1jR2S$qW(eJ|JKKMTG&MoMiSYS_kex{e2IvLNb^0o|-wYR^-^3=mfcq%y9e zW@O3A%Wj^e*i<5ijg-V_^mWc}-tcEJO|;o!%~8NF@&aDMXtc9S>)~AzXfh~9j%KZN ztcAbhft)roU!x84DT=5Hy-gywuS0GbjCo8J7s!sPWDv zBnLr(EugH946U(k@Whr<^^pVZ_{8sNJK@8q!vV`Hog&o#W?OVPwtok^!%+z_pqUvz zt^@G}4|-tjd!BWkRD?`ayV*?oz*YRy|G+;NMBQTBT-C%1Qa7H|dZ@JsGn-4>&<5|M zh!)D)s$g`~n<8GzBnpPMf+17Oz<|2=H<-Sqk=QDeS}K?m(Tr@uIT*iXTK8U zCw$Ah7!DJHF+HOqg95~-NW_F)gtqfFWO~)k^4Dn@^W_Hwx*c@k zJRVEr2Lw0x3+n$fXKXW1t#3&)hExd_cqX*O*EZg$Jjs`gi)D(lM*B_rmyc-TAc$W;R(o-nY&I>={7$D1V6YllW7aJn z`J++_(Tt!E7y>SX8weDm#@#I_;esQf4>%!c2m;lU6bLhpJx(v< zKJOhJT(BDc0X{%OEmJ50+S8XsciR8#kwT}LnU}fr)S=)TIkX}wTCaKrUs6ayKFt9% zjSP>kv7Qn6z2M-F@V=RFbAFLv*5IPPP$Vf-!M362)uYEN1?1ke5*pwD{&qt%UQ-wi zAJ9967MTYfA5{bvi@xk56vV#^QE>Nz_Nn>(u>RmcE6M(HC#0_W)uV%9SzI9f-qqE` z6Gm4q>`n~8naI`27d`FKA0&{^8OftRIRCo>6Hb6hFnn(x9-p(_icF3!nz=L^%!M>l z&u@m05ws+XlO>*%sB_~FS#m3j71Uhq+JYhM$^h2lP=#hVe|}`yw!!AljwNUo<6 zZMFW?_mNzl7!q+a6K9b_5bLx{QDV9QOaP?^!S_*pg7snK;I?ImE}IGp$#8v7{y&@> zhN)VAM?^sZLJIuY(LJ|u_I3gWAVWw)HYc%kC2{HUn$wyhORKVg?$k;|EXRJYhbiEuQDeaJ+A=oge5~Q z;X>gKs^9lsSUxo4xc|2O#Qd1QN=OU5n0y`rZttt~;p&uejyp9yuN&wO-9eilIWAvi zdj6)2%2^kd02EgiHSf_s`Cr!s;g|2|O{0+8gY4eW{xoE&XC*6qQl$a1hyye9FB!VT>i8rw26=+2S!4S&Sxq%e zN1nVy&D_{$|HSs+LmnEFFeot*^%>WULI6WaPzj|)Zuv&nu? zG51#viV-9}!&c*Wr~-$S z))6tJ4@+Im+2P|7NTk%8E0e}fB4{*gHTmM9ve1#a)8@S~PG9!f%A?>}4)f}+;kR1JfpI1{A{?srfL(3|E%3F!j?Rp%}-*N4%P zhZ}_rBM1}gilC}8qr~aotWKfy?m&%uGx27G>5;;@GrtVW4^S$t(cfoxme*qJGO~Sf zg5<6=`zfK5rofz&rcUOE3)$#bflMBD;*t*tegW1shL6rT;8zb(;NUBM#;Vc^2j$L0 zjxF5rNStn5W?<l%cn6Wxdt8++X-YpzLuO35l=_KD5_xAWs&GUHb` ztsT_YGkw_L%YNvB4OtuPpcn1Uw{4&_^MPc-kG~C>K#rd&#R@S0Et!9e7;x}n2j$W0 zaok7!>~aDMf)y?T?EHY60?ImH^cqj->zs$P*L|_cDva4T`T=lc5aA9+g*M+iDNsu{ zW9obf4WHS)J3Ob?(cKc`m`+0k>?In9GZuF{r#!%)W~Jd}^~R<-#zSDf`~E$Z=Nhd6 z|KULSLLSDqD`Lp23YwYr?{&CwN5woF@ZyKtw_yG)Ss6zMX0Z3}fcqK*2h`;BbsXmj z%3;aZ*j~YlJfn3;qRDydS4e2bo+hJCyLhbj%o%hZ(FtKHuISAjBC=scT;N$1dAyB& zz*m-d4Ll7cMjbkwv!&RH{2UBVlWv)43X@>|hK4vlAG@Q0PMZ~G zVjwT56KIi$Sy#o>7-;6!Vqb5;aJ2i=^{Nf5cp_A&G4>n86f1>KFZ?r@99x#qlIcxV zoiI?IMB>dB#CqTg+imqRghW5>!vc^A&A!nMu&pSZf0#;(XaH9ITDUErbAo+Zier9~ zKJK;^WQIN;CD{=A#^@29Q{pm808IZp#J{$EC5dNF>Y6<2dr4lp2??^LYf|J1ddp2r z)sG69SeR`OGZ?9F@Up{32yK<^ffdSvX3hKcC|^|2b`;35hJF^x-| z2D4U;WSom2yuSK2C}CN=PtLXzvRY< z7mV=UxoYWe!KqYMl3e&e4bs&spKG@uzGwgsE`_5uh$|koX(+GuWCtappfCT`ZylLl;gnmqk1I-ct zJJgAlr*kTR7{F)+%d3`Uf^bO<8PSS}l${bmw11W6C_pNsERcFC2VM8E=f3N)ONS2N zygN*K5P=`V6JW%{%t45R`Ol1|Nib*9=I5)=L%=D5qr$h4+;d6>J=~PXzGM$If1zG3 zg=M*p=UI1*+ja-n@il@${hN3~uiwn1VD{{&h5)oB^g`~O*r!k-3IDTjmIM~SZaHmA zjcWT0FeEf{o(_*s1>O`MTPTaV2TTs0``piiMliJ_G5+A1ZyN0LgQ&VJ^|3J{$TvWY zVRVAdAJis_kVGkuTrQO7)OVK)URl^ybTsDU2L}&sp;8B?gj3sXm8>w)nn#N)QWEr_ z0$by5+HI*rX?MRu%ZS7#;l7j2l~!}8f(-W*7lRi3T4f%XV&{LY67qkZ_}#@tVpP5vezt)9rO8iMPfU<3P)p zNdNKp9x=TTF*q#|Zce5E5wybzBbeZf?iYkb;2nq-<3ggnG55dzdCm zX{+BmP%x=LKrN!Jgfvxgj>J9GZI&`n!GvzUZZOJAT|_sjFf5fNuB-H4_b*9^t9lg1)C4C5 zLg|6|ORv)4H9#nsxxY&Hk`Bkc9wz&hF@e7gnC{jr$8Da7k+la&l#83?=|)m}|CBt) zvO&lNxn#zpprj3D}h=p%NGi&HW{u3Ufjk3icuH~-kRa&mzkv0}U#szi*K zFu$jT4!@1R?tknAJg_F!b<0Y}Xy(uVNE3*?QkmxP(p<+VVC~5z-_q}8_8yv|&wyu}sce&~z?v2NE)eV{LyaKACu}HKZL9Yl| zu%$NJX3+J++4(Ft!Vf74DfYBB)B<=8$+dbF$xv+jJx_$dhrA>&_bCxq;^l`1Uh8X8 z5}STuSeBHC{ep=^03()%#z(+*ic_R!&M+&N6TspHL|+koAc~)p{OZLMo^5pG74jb_ zwXFeIV)o)2A>-wNdM>BTBnT7b7tIVEdbB_yy0>(Tr2s)L5j+yWH9>vPFGHI?&_y#S zR}+!3EdDn20GI=TvQr^B362Tn#z!oPa$s#I#L@Lgc#)V@`Xf$)htX0ZrksFn-D zk9L2ByTWp+H@QOCpu&h`ct{t)b{oMv(h^X^uMuY8&!kTySICiM)`(NS*ETeqxi)W! z!CD3v31Uc*qr=qkE-o@f$9N80q{l-*%7f2_U}YFtC3bfpi|y-FYqO z3p56<+rPC^je$y$vrT}HUj84lEV1y;V>AHfk8A$6up2_|OY+7E2 z2ZXi#_dUr4+9Ln%)PL;kZ!VZ^2szj={vL?q8_Qqxx&|jp%h&BN zTh7H3bU(gPWPB4Ciq(^mFDukHEX$6ZgMEKLl`{&=rGOL#cV3#Y`X4hpdk*8Bin_T7 z*=HZq^EY9rr3Z98I^Ye12a;@DVzW)Liqgvst$WFauzb*NV*-1zXL5_> zlnhLzv(ape02{MD-hZB}UE2baYea5e2SjNDe)W2PGf`91=P))kT(QO^#Mt}yIj{lUr$}xG&5SXX!HEL&UuMB>z3Eqb-FH5bdph@ zfQ7BhM*rPix3l^c1dsysWj7G69KzPbpC^d}<{JujX-Q&;KQJ%!cF&M0Xo9>OP~qZD zebghN8LyZv1nuTx&WBQ5U_nBZ7$rbaqFhf4I9WSoOheReVV>SHgsc56jkn8KQq8@W zWT2GPlBpDmN3~j-zl6G;w0bKZ@}+p|00oZSXjaAu{DR+J{(qML+TOGV?P-4%qCOPJ zFPm)GA$hHRXrIx)Aj>i2-y$@1A`R#Fmt5Yd-$nGbg=8xRze~b4_X>qb;>wXS0(fd8 z$ZcEy>@6sj_OqUL%ss)ojACkNd^D>8?nNX?AK=~{lNv&xUbz^3a6qb~u;&S62RHy? zZ}SU1>fKTEE*_rHxeD6)uXG>gAoiK$L z*r;Uk1IRTlJ+7WrIsU9A)EgH_e2b6v#&zSAih!w2%ZPEV8^@cGvd)Y zN)uJ@kFZdqrLUa=zQPg%PZ4)#HP~ZE2entDt{*}=f#bk__>kYopuZjx;=tbo7^^}k zP1~T>)m+zGqPgYqu$&sDSUGOXIqo-#7m56(LP~ia(!OdVU6Mr#a%^q)ym`OOW#>(z z&)<|;I0e&2L?xGBe4TNsjVxQ-!phPnz8h@{xhQt}lYbPT&)g~zgEsB!_z#LJ_Z9h% zLg~gMyDlYV9bZY*N;YOzki|W#YtupO%p`HwZBIS0v6#hdI3Pos5KU0cjzZ_tD94dz z?hrG0-vQ&pfbj^?d@_BXUP?fWYUaZaUyO|)O2srg&BL|)R@x&G=tqWjixaiez9%uRyBy*jR4|W6iAg*z)A-H#U;9()REN zzyLDWHko8#G@M7c*#Q_6TfgEVJt>RgG)*tugW`;s-JAmhIfd0`*AHqtN#~o8S?RL%Z^YA zM8@f6xOwI7T%mi!<>LhCmyzvJ1RK=R&|XZM>cS5N|J1n|V1oh7shiQv1+pCEx991~ zVQ6M(dVJ-4k!cLFbf6&08N@YUlOigf+Pwt}ZGsejN_;}0=(}WW0+4y*i5SE5MKwYy z!04?}nGSwCSk&-FXa~=~8jEE>;B#-qA1DMsqBjAnf}?Dzb@4QIjMr+39Dkc~C}$E{ zsb-))B*~@gV}*Bkb%<{ZybZ)I%~OJG#d+0X$P`T1g4U~;a_h)ZL>39?3`zI>gTBT3xjX+gRFa0xcTbldwSVU;87k`tF#PafGc2cOlW>^B`CItaz5A28E@ z2~8Q23*)>h_)#b+pj+dW$d%89@Z|%iLz~I%21w2?fxtC*r%o`ov}|H6j76&d>1rn@ z<(dk1uJ$tr`|7kXXHSly4l$}%^=aL2PSWU1B@7TWIOi);m`KxU4qccwjXQ!sfc>(ZEu&}ORfn-kYqbyP1D}2h1iel@x zs|O@YFMAg8Di^QaaEZE1WXBWWCO6>(B*p?lGL_MrTOtGJDZMJE6ULV(RYpeUTGH#y z8l#X#5pk`9|3>PU#P!6w4#I_K0mdc>=lHs1qyZO8D?++Gb%bG4bC(3NnnnJ?3do(h zT9Dkp#6=L`{;v(BFL%CuQ$ay?D&!$w111|3CfLfFM~^0=Q7j09AGyjHAe9^A6i#vw z!!|Yfz!W2T<&z||)b$3vE#j5ldZ~~oph|Uv7aK6o1Z3+YOJGb>5E{M)2o1WV+RINu z(;(FMhf_)1a%4(y%+-Yuh+l+E&H%8eDOUWAhUSYVkCJ#Hax&4aRk6%E{7_4i#9M-x zo0*pouAPNKDFu%!2uE2ER+ta;vZKMe8Ir+*CpVsQ=}tRUfj$8t)d9EV29iwfKWj(Y zKZ{#I+N`;sq3BO&h*-+8CC-BytfD(_9lW@Z;@L#`<;P1rjI8OF3%&v+3Wv9Hys(ta zq-5>~Pkixbh#IE82BDxZF;T&`L7+OS-rUA}2L&|CoVWCEBNwuA2K|-ZZxdlydWH-#q+wW~ zreKo%p5kb1U?=E~^Y6|6X6=vPr%!pcu2X(O3H&T|t+ciJcB5*I{4Wgszf#Tf`g2*h zgW|ZO)K(n09a~M}i9Yq!CB$5Lp3p#;eSl|{zP2NVvpqR7q^QHL8W?uW8{Z6eUg>$G`;Yi%L-ViKaC zqgTZO3|Qk+J!#>32feVFGc}(evUxAH0QFWSmc#{+wp&+6!MJ^FvglBc)|-^Bz~NHx zlk+?*gUJgZcK7Q_p{JF1aFw}9bJXB_gp6Ar>s74y+sc4feYpDR1#UQ=MgihUE}B`9 z69&o2`P2rh3D6bT_$c5KDZLjZ^#NWmA7?II0HjLN*=t4;+$nj94$J+oeb-I^z1 z{(7OYNe^Pb@-$#~cTvwwt@KHKlT}dp#0vzKrQgeYjm`muKW+6IB>65^InQL3u__n-Zt_ERbEc#z#V~ zRU8v8BEifq<(r>hhz0^`U|`B(_e_20c?cw0sHo_LeGm&^vJGgBgpf{vZHT}T^cwIw z^82n&Gjy_oqZE*5@_Xq--I?F*xMk(*H{AN0_4gw8S0}CY|8)7|MP9pDOl~F~c=9)m zcu0>U^e>v$+aCl3+mrzi#tmbXl1zC6XkOa784x`t{_>L@`=e$EM2iG|h5p;ceH@=Q z5D}uQ>qU*U?)xRXA_>{n6(0p*4Q)gFvJ5z#2oMD(_%**S()_Nx_kQ|}4hgE9c%)j! zyEAasuXW(00O;t3`--evg+yTwq@WN%@>mz;hc@DFRFuokL^(AjHC{EtjQxN!!Y(E~ zYuiNgr;e&{hPa_rqK&|i2wKT%4(8P#LWY1_6ju~Bvoeas01Jb?#|X<~0&UaWh?*`% ze|t@WM8M4+HV;DCE}(KoK)*@br>!1D^^ty}XD)IV+^`Io0kq37jzKt2FEP_x>%`E2 zw%dJWK>J~vrhm>d8!Ct}@P*OoWD&%NvmEX4pkO8 zyZxOoB$0tfjJHV9N`sh0WyRRsI0T8USL>mIj}-)}AEmcr?u2)Ciu&mjfvl_e(wg^Y zXVWMHpkje2VosODX82p)^0F?wD@r!S$I2|MQ$`M0~@+3@DX`A(u9#_scTBZY8=miTa3T6!g> zL0$?};H$GsFA(4Bo?qe<#I&xvUf{srXT5ihs2Z<4loz38jfhl!u_|8c*%7}wKi2!% zMW>JgRQ(LF$c5;>WuI6XhR|x@-4iR-N*?k9b0`@4u$%LU9F>g@))kX46pBw9VW!hL zBuE2|GQHT$4gs>|<-1OybjJWpAVh6kGM-Zp<+K;!vV^q2m{&i(CklC*^fdQ9+azJN zWUbxV;s@SrYYt~naU+|_waVAoBO+sfparBJ-15H&8baTw6qKHIde@dggzE7^>}5LI zi>Fw6CR;z9id3b2#JEC>R-Grg%@woQZi+L?1aQVdJ$Y5XC=WI%C{}vlLI`={NeHDy z#|i&G)w>jtF&&s?TiovI3M{Z&^t{&V@a(AM&s;G@0~d5WyBmc>fLzqW`3MN5+t#`O zr#ng&^4q8;eC|}AIR}B$0zv^HS4c`;{W0*Ne$WeM7L}%P;jbtDy<GMt7r* zt$o}hh9_)#+@sB(044q$OX4mIeca6C*5zeq{5Dq@TU?>*e64=*O5%3bOfsLj+4iT$ zjz7OmNA)E!aX23yYPlM*k21`LrBu`W7)dWpW7de$_chHjf0ivtDnX1T5lZVQrG~#P zg2r|#s$BAGqf6cDU8KWh1tf5hE3=Q-5VQY8g_0G%KXLup8vL6ri zIK{}@%w^*^aCr?#Ecl!IDI0CSGvK~8K@Es+q?BXRsx;es2Pk|(r~@; z@>=9y9;~xvo4|s?tZ{)}EVu+_c|khDkA;&4S}T`%g~ih6lPFv)j32Z(G5sA`n+v5Z&#W-l$T)`B;dsJSc58ES9;B&56{n{{wqeu=hkx;Ot&~*+_%lBe%z4v z8>m?G&o9pI7w0!-UKErbEigaap;=OOHN$2bhs~Wmv|=~iQ-r>M!1ZSeWebQaLJxLY z!;_--LN&Y%`+X|(gH{SsXNtt2aK+%*;t<)jZqRSOnZ`y}nsGa3p-bd9!C_juVT~@> z*CzE%c^(}rJ9_y#bx8`3i<$SVgl|~(b;-0?_4BxE@<#PM9fY909{_&_Kyudh96p7aXRbTp`(-CVL)|wiq@pS zh=7d#l})IUd)SdQqs1Wc9_n6QGsR)su67JO5;9%`ezlF@GZ#v3L9~37d?$&N(7(2= z39F1RIm{#8{bE(&wl18~hT5es*Lp|VNpL9MG<_!Y`Ybo^kH!3G@7aymlncUk_uy=N ze*@|@4$IZQv{9nGQNI$xz!$f!Az;yV$(7*ioT4UV`Qx>rB08D>A}1%ML1)U z^UI%kDJ;6W&&;rG_wnoO@MRph6U-H?wYt77Q`n!Celsnh2ODx*?cCyIzFLXng)y~umI;(nRoYM}1;3P>9JS#V zczF9iVl2E;-qOa<&wkJ6IGETTD{VPEQ6GIV|7$Uo7#C~D#g5Xd>E^Wul+$&>64Kh& zl=Y>h#8tEdJsScubadKJ!JK2=~a5d2-D6Epv3{y4uC zfs8Z#tr73pKc+^_!4qyf3t=zU?!!xpLuo6^euP%K($5sS-1jB+*@rq0NaN=iXtZjK z3MJ+>BEgDKnd4|28zl2OuV%R|OrXu^u=Ld1Puw@Om8$lsM*!j0<#QEP3f)Qkme1B! z0^h%tv|msfI;1YfTe#%mQAzkF2lSOfhPxZQN|#QC}lB=(VJ9= z<`(C!t9co#l1r43>nU2}znLYIsm2aH)>1YezhPV|Hrcb>Xu5J_fg*DTrZL9dt}X37 zPc6On+(h1pUa*eRO-2hn{`zvbyAsb^`#S-lMxg~dN#KXKNl9V$>*mboBW22$UV2iZ zMM1N-l{x(l&XSK}Zf(<_F^O{F**XsWd3yQnr^8D(PkN*_RytBxO|rSmtb(DEB#h_y zxvE@5kipe9b!2*dSzAHo@dnl}nSEb)pjeZGmoCJ(MVQaotcl;`CfQQbX_Z{7P7zXF z=WD1!BNOOtE8h`z$mPP5Qrk!?V^BMdA+gdzmmqE+qdP>4f7B~wGk@lD;Yv`8Jr!O{ zq`%k7f;*a3lo?!)K5bxV5#HIll9!kjagQNAMz&NrE;&7b(8e3y!_Y!&0(ED6i!m~! zlD$urzzZ@E#-}>qcH$RSqe@a!ShF~dMK7S9dpIor#ZRRcy)osxM9C>$EB6O6I}r_^ za=HAGy;s?-#y!>4a$Vl+uBSB9Ubz2yr*U=fy62Oi9Q`^L4ZHs`mM*WZc$kg~3@^41 zc{F$!QGbXfz3%@xJ-fK@N#It|Ap^=q-F&*km zS@ejomT!m7!J&g z5MlpzcO$1I^z-E)C*24_=d`q<{tupPO?Ffc0elLAE?J)LXgxEtK4Vx-O2aQ+l)^=C@vN%vW*`R(Sw<>v50HPw(R5|<{Fam5<-Y>48!8?GbGkp z=^vbMHnO6=iDB1tDobu(BMYSaoS7ZT)GrQ~EOT67F+4o-v-j-(Bk3x`vg(#7-Hnul zbhjXlbcfR2DUwnO(%sUbv?vWqOSgiQv`8aJ2uKJ5dguM_KOYr6vG>fH75nU|2Hx_* zJ(=v8AvCMGNO}sb63gRJJfih~l1Oy&<;R=Q9PisTIvyES(^38sfoG(dp}$Ibt67w= zJ0o4Tj?DBVQ?%ZzK<`9^rHsvbzb(iA)eCMzU)W;iGup4^1Qc znziDE^`iJzH?*eZDfg&)Keh>TKuwA;AiqaBT|~J2y=+8Z@Fc>|{fPb?Tf8k+gfBBT zpZM7y??HeS?B(pQ(dFvM@Q=`I296ilRLC?Dz3Sm(jpr1o*&4a@^KlZH4cTIq9SG_0p| zIGXxC{taFXk)#nX3(Jb*f{?#W_73A&AHR6(?v#StdO!Wvy4O5U%Yt~%(u2UK^$jzP z6J6$h(B&@+^o_CQqUL|J8l_VVIYy^(=F-`9KZ@&`=X-ub-~BMxGOYUa6u%eVn7q8c zIp@tWdf;R6R*Jo(Lj}}YS+~>aZy!hrc$Z}@sL>c?wIa=W6KK_6+sp@D3!=o~;OOAz zuwu!1(^Q!hK_P0_&{VK^*l9Lw1`Dimt=YQR9Z#7npuVxPxHPQuulX@66PfcT4 zrYY6Ag=+)PKwpCLVrN;5B-W_U5BLCR_)%i~Da8*)l{-3yAVME)h)hkDa;}3Km#+|zb z=~TC<5k)xdI62vR40S%xH;|p)qgWl0MW%%E_F8pYX4I1^DAYR+f2V)xExRDwbAEBaH7BV58(X?mD4W% ziu)ztcEhc}+&`R{A4n_Z>HmWlO|iht zWpRjz=ZZYWnGNc=wYZzx-~$ZFx*FG>4&zju3H{i)cCy-4nVpk;qMs;&#=6uc zgyGenqL%hs@F!bx-=|;t`NLb6%@2KGs84G8L7IS$e`2<;k7A8TMkYSoiVSbHV%z3# zji|IlX2YbySVn1BnQY}+5CKZkDkIXTUmA5d_KGY3=E zQMbNKiX;8L={zGhF9|@csw}atQlz>3<j^3DPHhy-huszEbg;g`k-RL17Ajc3ZsWrFGIgR_^*Taxf5HXG~tSPqCMtp{r8YR zmZwKQBP_{XmDSV88?4~!O1B(VD-)j_uPRdR*^TgwDywL)w>2HmH};al5JV{P#O2g| z4iz5T3*D5VXHU5*D?P-xDXY1wtX)_;OTwSyn))|+$$CtqwwBMT2vMg~(s#3VZ$5DI z<~26jqJb-mR6P|j!N*`yAw|oZn4IWcdo8iHvC5F~7am6aez*9w_tsmpmbyxI4%?4e z@9P3bX@0fSV_}mZI=l#w$ zzT6%n)BW?g3ZN&Ed^kBG;HRc1)D#-zG3gfCGbCZ3bdfwOGKZN)yjoai4CQj245*ne zZGXS6y@NJdi^Pu0-E&*xG{M7WKw7k^Axkazb;ee9i!^rz>RCdru5 zhd0S6fbmrEa%Yo{zA21^^;wkD;che({|EZInz-Rs_;`H{Uwi~V=wEZPMK>^Xr68*( zdD3oFSPbdnVOXgw($9xAma}M8En#wz;+CIg>83;rxH!^FYf66-P5vp3_QA0>yeLVU zhdeBW$hnm&yUzOF&-;XFT&V5o^z0DB6`w~kHW;Hb& zhq#QUqCU6lu9H(yatb@aw7H3MhQ@nknONe!sHyb<_eoCznHq8}#Ub$*q9WOu_{ET&8zeR1N$>eZMVv z6cpqdj7~a^E(4chgV1=R)erH*QgkV!LZQ*Y=cbNCdBe^aA}1 zFxWNtoei8FeXtREDWw^sbRKPn*x60jLTIuo6n9Zc@gA*E$5MTSdHnMu;}OmgPe5$> z=QaFy`H9u@IMqJwY|N3ph#iNiT^l#d3KfsiTi{&iz7A2IX6)i79^y(Dc{7zMyR(F3 z>q3zn-LKzycrACByEHKx5xVrcG zp2^U!GX43iZeXZhQ(if6_Qr3rEt2Q)XjOj`+wR5+*`&J-lpSTnCFcer+v?L~ zJx|hOu!Jo#R!6&aHxv2&OT+~Os-M3fd>3jS^D+gnBfCtd_5Xem&+ZK@b)$80FDLQp z*{9GmE4e-!xE>J$6b?2!<4s~|-=P~SNM!9}Bt8xE= z$SZ*&tY3H$Ww{ud(y)18XLsqEHn?s?Dc7%6oini!OYJ!CcF)W{ap__igM zGd%&wI`lb)Xj&v@jEc5ecTUd_!un6`O1JDMZ0PM0 zIng|LlE$UADpClCLs;16v;T}agp>oJGYh39iuP_$NLW}{{}m@MU(dzad*WBOMjpL# zDtERyT*9ZEs;@P==Z7X6s9~%x_WkgR?!KiIZzGMr83E>9OwIn?*!aTY)622(?-;Bk zcWq{7=GIIu%(G#o^i+`X;Dx2k$x}wh1K_80+GBvC6)0WM_-?R6vmbiA_t_)9%rFu& zUJ9w_5=<;y_~l}UP69-N_aE)GHn4LijmI(T5BGdX)9Vg0Nj|RsevH{_Vw0kMP1&&n&y z!|!an_fBZtL7kx*ylpgwApjHf-5;q5Eh9?amBlrB zvD%k0N*@SA^~X{aFthOzGXoecHycgUKBiI>DKkutL3_5uJ$|cel#|iEj#|*F{+0f! zQ*d2NKa%%nwc&JG+CNsXje53J{x%--@{wBp<)?LS-S_1=+?_!NVlM>PRUV?S6r@1p zJNM0{qAsrt0E+27x_Q>%)pNWRpm^>fc$YsktApB2aXCw+_!9URAR?7v9xiXs!wyTq zEBiCJ1La`cV(6VX-z+>^$$%3SSdDPv`DuU;fX;YB%+hUpMvl7~>xo0H3 zmQwPL$ue)t-vafDC8h{mn`Ogc;&mztbGvQr@26U_bkLIJo118hYARU00%)RS;nyEy z6zh;(phUDoiEu2%IhVuWCja6UVX02QBua=w%WS8jy+XhL@;F?t7sFPUl;8K827E2_ zy}_MFoE7r|CzuHb0tvmofZ-y#o<$w+IjWu!feSK;=Syc_zjR5zTb0P>iU6;~Q!QvSHT`fy*joa&HT-P%~d?S4QEeX@*` zi&N~<@*SnBX0gMRml;a9p((U@Ult~2_VujIv;;W9UmvRKAO{3X|EVG0meI$=rkeWl z=C1FU857yY3_xj^qv>FK!xQGR#ig;Vr;v7)bn+yMKyz9Zw%P-BdfbQsT*3yL_50}+jlBNBSxya)Og7f^W zs?3(`o0ytNkL6obT@?BE;2Av>2EmgjaM?bt_%+chp#{38*)c_L@w56A2@A&j&wk=B zs~+dc5CunBPpGbZUiW`!=1b)qZk~c1AGy<#^9q^LaSDwAck#oYwKtbj0v6^ls9is= z?A|ywD#s=0>j``Dr5-RpyT=b7RiaeUiz@MUsywZq87g5X!NoqfrZmQ#z@l2nNm&Ba z77OScNX|-Led;Co?9w-?xOcnj?u`D-#853RBdIO3fhRY|9uG{Gx?X-^DNpp$(FBV|?@A~rtgVexpAzaoyMlHd@E{TQ+3R>(06Lg{watv9O zkkU~-jU`bELfgLAi-!~k0UJY4sjW+G>8DT17Y_N|`nV+nNO6&d|D=QiH@UM#jrLke zk3}D5`G3COUZmtloVIhvCI~n4-!bfS@0;sE@V*T@(8||5L=jK~R1dnrD0zCKI;}y_ zJeFcwFbnR{@z02mw@N9ZBl@D861SW$f8Cs4y$VmF3aZ}q}@?>PU zCg*CYflPRj!kZHp52H{E4LP2~NoJj}yDDx9Yz)V}dmiuH5@F()7MXsp)!7Dj=)-3M~*=weGZ_6MW*4;Gla ziqis+Sp3+q#0F(d34z*JbCwg5PQUd|s}sWl6=s(1fk9-0L2}0CH&t&FYAk4ppzzx3 zZ#5ucIe#%(Syus-O7DTArvsSXb9Denz>;`X<)=ZF%JjlP)NCM)#f(WG3d|+cN~u z{Vs@J1FqtBMo9%wIXy3aPXd?ZEp*#YVAX9qf?UY~_(e_u`Cy=%de<2zC%;*8S~SCi zgyBObj9@WprQ)!EPuVTp|39wFAhYNLI6bYV$3NU=6v`s zUyCv{XQnfl4u=e&;C&nQMb-#_H=}vl;O+7F(xQGT;f6xl?N!g>hQ$1(lnv$RZAol( z<#Ckg-bYw+Rm_eZ1O16lJpVn-*1HlG;qR%9_bZInW-H34z(N!CI1tUGHHv=3kl?nZ zPX==m-D2xS_XFjwhvVW#jbXYYvn?n447Zu}HrJmYW10m9l4{LX50I?O6Gc3Jpz}cC z{y(>>>IcIcC!QcKz3jK^pPHSJ3ox`a3w}l@>|>`)UmC~SLi2gOWuLkfX917}mF?Xr zkrd?j)JU&hVwV>IPAC~UFKm2W-G3$ir?=3p zw4|jAk|oCJdP_2JO(=6>m-0KC=mKdwJfyA(xJVaBH7PKhDi3Xf-mptc#5XYXoluv{ z_=@8D=&XCD*C6vVx)M#vDXLO+@h)ThHW-60xgTB$lsbmN_jVoKhXb9h)Dv@E)I2z0 zL`(>hzas!W38Mg6J1%yy)r^-sAv-Cw_^jK7Ps;DqJlk#Es z?g^*RHZo*?6FSsaJxt`k@S(T&!Rc-Ua6q7v^}^%o**I}RCepboM@~rA4Ee~{I@ubi z6aAPTH4|^r>%BROl_(T9au|8`^O}hdUOs1Do{LnTL(pah2Gl~+lS9Bvfm|pXA4cD= zvNM7e*l3+Jk0(uE36c6`g(=59Kk?GQ8w z5%U&U!mvrcZyE`OgSFm|Jb7H%!ww6!;o75(iMNh3dU}&x=7fk1_jSoT_D6kb@vSVn zm59U~{StgvG}$^#bz59C(SQxNQ+d6)**di*sAgeIce+;=s9B#CQxLrqcpsJ%`q5E8 zmIcd`0g1HmU}?QM^`eSoD(V!d!h{Jw!Taci!iZNfqBP!nRESJ+xNV?-_5EK9PN4Kv zf+1j1L`49xWhxBz&5P7mQL%a78JSu2DsDJE$oK((8A*8(13?jy`MftuEJh_IaG4S@ zj*s^}Fg1)vay(Re8ppxOUYKP`k#3m5bZ;x8->%C2EsXa8?A6@z5{~X3qBJI}XbjQW zJ5g_H`iZ|lRtzcnz(@jCS%#f6luHe zROEY1fl8s)h zXz-=ub0o4DYInl*uA2CT2KeHetYxgUi{vr*q&j0cOexfagbsBT*g6z^W$D5sQK;?d z*ZJ|lDI#xbj$6dXq@c$C&$1sx01Yo1@iufUR~lw4xhAJdm!fDtHpw`AWzVM^m3Ebt zwemnB1I^{){d!h=?b{%2U481JlcIkOyhG$HvgdLO*srCv`g2= z;!?)NMYCwfhS@Uam}!=Aq+Twn6jR}NMmmGt3*HnV1i)6@z7T(AGroTYuTZ6-AiGpl zW1)@6hlKMtFAjK&y3eU9i%MmFe8-ZbS&GBz>DN3-NzdV&3DQqbuRk4GfIdl{P8L}y zm<`4d(tBe)X&3A{djdQnsM_mHlixnrmUO&){Mn=!>^X8abR`u{CN_cwdWP#dJNR!a zEBd~T<&fV8lB?nq=gvwECX_%%ru%vN@AT(pSI6E*@2q{JGTF^#Y#gwr^mhGwuva(fPlWcf2i6`)ObDs#TbP?^`Ud#X+Ro#_yCK zMSsim@!PLD`TmBaY!~gUQ(Ah3i)GM4E@#>GVtQ1PclC zef#Z!o~oX-IuP?>qqRsBo*=d%+%B~?Y4Pjj--z4w`-wrhheI)FU~Zadf4_F9=A>(w z+wN$E9f+yKm;fyAI8!A(MeSW3BNkILxHF5#-e?#L^al`}A*1>k5QyZr)q)v&UVQLs| z(A6IBJ4t&trT0UE9zE^!LG^beO3hq)=ES5Z@+7{Mcz{qO2W)TX2}|Yz!wFd;xv%2* zFMO8*HGYajk)z7Sr~rd{FMlaqKf0-~y+W?yxl4t!)ycHGK{Mopk#*fSBje4?DMVf$3^i8zmQ!R#FX?3U9DR$%4jL5w;@1?D6i z{9`bbb#?JE8%^p_;;7*g-+X8JbKyt2@I_bMoD_M?)e|I*Y2oQF{iLabr5b654`>R= zR4Y;>p}wK;L_f>pr}<8UWDk&26~R{Ttsi(axiL)!A<)XR&mzO4*t?>ak5jEw+-Aw=n@E@IK67WQep_&MRQFB%Y%!4Up0N`_trtd>I?S{G|4&iv7{CBsh;#MCCw}97Z7L^o;CCi674omdf00A1FxfpN z7_7hJy-KM67OmEhoZDuiu_Q#ur?b9r#<<~8=lMx3aI#2*2Q7>!w2H7byUj;H>)Qt` zY0EZ|**_+2^AdhigWh*I8w|C*W=%Eb`7x7i`nI0Y!B8d#zk&9&$=#dG_z5a0sGJFG zwfRMFtBi`h5Jdw#A`_o_%O;DG(PW47!773~bZ4guVyOxiniE!0-Zd=79(gKB*SS!S zW_`Smb7-*2X|+9i2U2tr|J}sh-?dh|vx*4O`m9qTprNnmwZ!D$yNn6fmn~1|fN_eu zUJqjxxWln^3waf=P|Fjp3$Cp*GuD}TOwxYT$MJ_BwzTM=5 ztfp~>Pb&)Pmo$KotB2DDn@!iRzJhIrbB~jsM3Vpm&n!O5?oK}{$F_x&5-g>#`4$&V z`w&%VG{w|}0fzgpK0MrE9x535t=zP(X2f4PSo5|p#{B&(%qWf~P-B=C?OC#$e@k2k z9*FL~ez|X8{16+^&tP2rlcKU>PCaTkjSj(r5SU33&=t&;erK&^zazpV2ksz>XC~r_ zv#wCXtSB+S0!ET0%*sKKY{O9sV?VKWfFZEuYd!I7RjFJ+?t`PD@AH_dP$de2#|;3T z4>9uOddQ__?~xnX0g-#3O;xj)Ucpt1?AH{;gQ5ec*jJk5j5Gi79>wr#u zm+Ma`sP=0%8{KM522N&ZU>b?N)&e(S;d^BX7{MsWX3`z=QfTl{gAbaby3*T+D;Zp4 zK&My5a#fB$K-#g>RKepB)}*oQ#QYw`N^-EhAI@du7sv*0p`t46=0v0xF8rTC#GR~4ydVAm5Tu3y!dK2(LdyEFhl*U=2=Y3X<-5JM! z2hW2+EVzEP*sHfF zl=ev%R?58C6MWXw+YH|GPY}%efk_gnAD>X=)Q+U|9lv}j1y^$(Slag%T|VorP~KdB z0Glmt`6hOJKwix1TTG{~i}+FEe@^?Du*7=G?On2|pr47S3oBJ&&=JCq0|8Dj@nxF0 zoCmzZq9%=lXGaoMiz_6W_+`~eX_s56h6{(P6gJYBX*m5|CO+n)o_N+ZFEVG&c0v1t*o{E+>&vNtUh?z0h|bL6lI7KOKUpmzK;Kmc#Sz*++y~}LjAz} z#>4-kmZ)hnaa-aW>`8j1n)&qJ3bG)Ds#PGM3Z)2woplv*y0ErT^O%j z!o^8~#y|~jb{RumYGA{FefI*jY1wnONx>}`=P5hBQ*V-Qy?0nb z%*y#4Ce<;Fa!_ zU84&I{)7M*Dgfyyd?NHFxv#u7oQ-ZsTG3uJqkl_tJ7rv^ySXx9DX2@2 zUlo>DjB#qe270vrO^2-IzZ%BFXo;3TYdN|KD#V0o5)F2#=)1>R6R*GDk4CgYqx-nvNL@HdUH7VgGDx_y_9cfLSym`4!cR53 z!I=&Ss^R{l6ObP+od2?B@8ViIF^cXYcP>j3x<8q6mb-sBR@3vk&UC_Hj-+C=9XNna zrxj|1cjt^jdHt7xf#DjA-qZJ{dxm=Ci?ak^fng>a@Pf%%DI4z>>t9l;!}mv>7vaMc zd1eF@uq-^JUUHI>kjPhte(mN<8tK%oAo{Y9qDN2nf5Fld&+6?G0fR62J3YNG^Odq5 zxFf9a@#nRJC0YBPWZPb%^Fjv_pu#G}htNxt(j`Y1)E0CjN&<`VZ)FK#Va><6e|S1C zZNerP=m4C|d)SD~(jr0`Cb`r9{Qd4H;424tB8#_N3NNykLS;lgcvje1L?`gkGc}6> z1<3Sx1Y=a$NDW$y6T(~T-{>2j`;Jp?gVC5txAy}xIIQ|A8}n2SV8`@~PvU0Dxfh2j zXJBK;u2%0^c~t?!m#)VUb;3|CBe^4*^AC;R4Lal!KVEqC7sH;FkLtxYkMCcR0%1I! z>-mI|;GU*=Y-p&IGci%WV`_R%T&>9X(CZ-)mi(_fx=>RGChb40SsyY^QL;XM86F^z z>?}u(=sZAh(GN4#O+GDyOb3GL1E2v+zWQr_Wf0uP?zdy0qoeyTes~b(7iJ{}&WY8N z%b38Mm%@TlPtWk09C)l(dX-9j@qA9L-K@gCJ|uK1##SvH_7MF8(pHuVS+P895Uc+? zn(iSrTru{KorZ1*G!5~`o_qc{)~u4Kj~BLepu})tBlhcJv$uvhhG9g1-tgo&G(Xd=q@WpG z!iKfySixr+oEe-?1L?qQv-VU?66Iw($ec=PDn#6a;~#PL8)srv<7^W(2yF|1bG`%N z5QRr?5?|AT7ypPc@|PJvV2R=b@|%H0LX%U_v3-0H9Msmu zjuH1VeT8DtdTbWOu2$t$8P>m8yqC)d>PXH;Zt`nw`~(I2KkB@ALW{Caxj$FjxlXWb zLJEC61JA8>BAsBTPbXffbXi;RCksKE2$(J!i#Ag5;*jhyK?-BAI`3mef5sP#grQMc zQpEcRK2ol!6bmr;R2oJSy=EnMNIWkbzyqy0(rtS!-UBf@WB*VUDz_=_Ec(yr7Tp)> zNBvugnjE3EjEG=?BMD18CR2?#1fdOqS820K2xu?$)33@z5m;|LqGZ{Uk=j3NDg#tD z7}hh^jResTT=2R(OYvR7bCllRgxx?>rW<5_u_Imod)6@R*XaN7R@P0FHv`O9B*-5u zI?~ZOXDE<&Qtx4T7QZfwE#dO*Qy5pVc@Ca2+tWp=VcubAlFB}`5nHwnUr^{{{;m4e zRz^Z!i_(zH1QDRleHkNR{}=kLmR?tu-QB(VgV7+6{Lo>Qz?~@}A%l7c&Te7xHcX*K z`hI>q$piRO;ZE#OJ@MPB^3=E`js<7HH<%Dn0EfR4sVdQ9$*8+{ZOiSK8 zz^h7qKQ-~SD_%wH3^YKXq$A^#Im#s%h$UT7G=e@Qj`)BXB@Y=cWlXI=N{PV1U$b0JJU{xj3!i1vT1I?8pd?kH#e#KHZB-qIA95-9oJn? zF=c;s{Rlz(UtF-NajGHgkg3Y(vP2}}3SKQhwGabl)(H@~rhsh4LvzD$hwlT(tN+h+6DGn8U2&KldYL zB)ju@y+$ux9@py(dju{S#n+7dB=EYXA}Tbr1_?KhoyqhU{q{_SOUPqRyUB zfDi#9z<`j3frkOPtty2Buz%SfC67l7CZ)b$aV;(_)~h&_EY9ifR{k>cXM3t8;kJ&_ zM$wnz6eo#>c{B`K5a&gYpPcp%mUFS>HrzCSps3rs=BuK5ugrx=h){isOFxXDmqxej z9{O>Wb^JMrW%v($-nwvTO{ZwP9mSHV816SERYeZ+{VO`m8oH7?JSs%3J9vu;61}1X z#T^gPmxHd9VrJeRC(*X*0TF|Wg=IAcoL*T5nH#+&d&7LZAzf({Pi=|eZVdF4v`DefJz|2A}O(TX_ zmZ#6qLrv_4Im3HWbQo0~>(q=p2pv@!v@YITEjWzZ>6d)}nZmzmq#Nqj*^DA!OQ#K= zx3CY07yT=%$Csks8_WpgK6*`)GduxtK#*aQ@}*xzj%gZ#uzKKlzVS6Y?}3H6Ea?b| z7w*c2%?`e3@X)9$j~5UAeih0 zKh9kEEmJ)2zA6p`f%ajkFLxpjeFzfN0ill(^HxZhQjQ}M5FN}ZO;p;~RYgyf^#723 zgTc=OH`KDTK10VfG?wOc){)WW)_t>WT}4?7X-&vFAP;4p3tgfevw;RzcR0nseeKye z`peabGS~XwwI=0aYuAJ#8OZz~g$*RUQa2`5le<1KlZs95-AlLyidIN!vCameuhMsT z%($^XRCUhCxq+>0#he42hn9AT226F-TM|fC2sy&j+Wv7U%;hr1s$STmgx^GC zZw!;(ZAA91Sq+T}1C^_urcD&QzK~}W*a0wDaT(K6sd*ORv9ct0Q&cBiJ9L6YWxLok zaB=Vx-C(Jcv|#A#OK<3bSi##(6JMrWPfx%!1oy9qM6X{btq5Vb z_-WBcwwQk;04t?OxeJCNHMyClq7#pA5Hld%OzhKAx$!beJ1-!`~P`L>>?xF25iR< z1##c+Y<)!s5Qd@5wI=_JtAeZk&+t7&)bNpUN=p_|ep}QtH05Pwhadtl24UGx2z?P5 zOwqbYF-=bvp_=M=p!HF!4Q1it5SSwt4?-qJzt03mY44#| zeCiFTl+;e@11IS*vveG56ZWw<6IF8w9l~x2Q^@U`c96KA`TNOn;kp2qr8-k*43!E( z0&76yx6>{a)f6j{su2l>fs%5(AL6K557BY1Cr`m=!T5%s5L}J1(@A;Nq!zC`WFhIP zDagRPw1j7JbMf<=gxA3pSX|GjoLWt_ZMzc~HHp>>!P^fZFtSf_%p*5uol-5tz`9ru z_@kN!);*cMT|_EJs-PVbmoCGJ@%@m^eUzo&gC^vGjND-S)?ye{xJue)tcW zh0I>4RWoJ%7bM;N@gb@1K_PhQ$%RXOdVCm_|f_!u@0ZX1Ufq3dP_Nce3*MwOIe;8B346T#9xYPINJ@?Kf-InMPs3EH=n=fShMt<-+bw4N{qh+X64<@hI#WUI zkg<)EV+iR3L!e$-ObE#kfW3&36Lt`$2~I*`>3>@OdI1CKY?qZ7=YuTVWe%iGX}K5; z@FG^_*2&md<7EizQ+5TBgGbq3+5p(3>vk*LmsO@9&V0@UwGSa+Zqu1%I_MqPd7xQM`l?wot&q_STpEL6LLBQsx+%1U)?!s&rw?;<7IIB4~93Xv-{7D zolvL{DFb0NmI|aHq0MELXQBTA&A~VS-O%dew%alkfN(fLR)BTICZspRGSw+Vk6mK0+u5XChZ0id-=67&$iuOPig8v-d;d2bHU32xFM}d!qt5BGeP{_N^ECbsNCUtI{}ad5o&y z?nez-9GEXRkcP)!5@Ca#vhykRn$?V&&2yS|Pm*Z&S5Vj-1CPlDf8UlR)fQ4Owzxku zm-l_cVDtGA`aA3w6A$!7vMBD+A&>kR*duJajzk`OFNcOcz1Dauw$aLJ~k;9{0UCFnVrB9cOQ3&oMDWfpD1v z%l#rKT7>DR_4?pb;2n!UvPi3f*_KzT6B(=)@TemNk;*wM3u}W#jBe*JaZBR>2-l&N zhuoOCzu>O3W;8r^MM-7Bqjhj{qw@-qQ=%a_enMD{RLI=SJ zB2?e+NV>Y8sHtlhXNU9&Or(+b|Aw$rMUr`n(Io7PV?Bx13TMH-H@($|k(cl!!? zfOkRHw9SI5}Lo_xrvkimBbTLgtKvsoPm`wjdtZ@LqfW3vR#G4~2|3GP!my!2T zI6YdA-ud;kM$Z`$Q^^kBO$ZCIP6x@+J%#r#4%FYMv$sfG1Q%T?ZdebE#e8|i+f;dR z&Q=rCM1!{5M~BM6%Nnlk+dDWK$NI{N9HQn&CugK^H)2!2?ED1EfNX5-D?{kSMU_Q7 z-VzA43lw!BQT!bWU@bOn;ICOicg0zhmfF`uhq{rkDN+e$R6bUl*qDk#_e=BaS2hZc3y|WWtvQ*`ZU7K*-cp5}l+VLJFqIL-&YR9_y~a#w}zD zo70C<+*ELhy+XGX@v8zS*GjHR51cHJ8V8e4_sU1yIGjXnj!*n}U|yT-dbQtPAF_h) z^+t{t+C38R-6SKLgFCnyx~`nth;y-jB!|0+FR zmq-&A14ZPyNPM57=YoA{;!08NQNhHM_e*#PVLqn!yYos9=?B!rDL@$48TLX9p~AOu1%q>6TF_Xea~FIPyy4SD*p@vzFrQjtdQG zuf=*n3C9Q^DER)xuA?3Cb2Cx)6HgP$+_m9%<}e7oR%OfO2IH*N;_LwI92#&p*|SE! zNJ74+c|{HdhrGPs4_qNl`G1K=f{po3`j96B!O${r89j%L0UMNTcWNVf$*3dn!z$q4 zceuao1T$0PbP##%yo6gVi{dh-=JBlA^!+iZVT>qd?VcQ`ar@BAPq|orKggsGTZ_ju zetI@O-Ctu-h|sU(jx0TWEtg!|5qco(86~i|2hvDJ5CqRmP7K05Kt_Yu4#qg!Y+(od~#ApL=2CDHo= zZGgK2p@8YcT8CM20qOv4!v-h|tY9)8U3qO#$MZk!OO-HQIgki~$s>ad5!8{PB* zje(#_lc#6Pi}>$uj>Z-cY4Q$1_nuv1V1J9Mc!#stP}jFrXO(Ltm##~RxQWx(=!M&l zRF@4SR1yxQP)gbY8S2kPuA8VqlTE)A?E)?Z@}h;yLA*X3SmJk>D+n?!S>-ezjoq!C?UL>pR7be=P0gb~ zwl_vQK$BD*D?TiQ>j67RT{BB$Jwkry*9E`z1-pkE|B3YR*WIg+coiuO=44qg8drR( zfLO5-xEFQaudMkv2=4BdlSH*Z2%vxFY^bo9IfvzxSsG_!c0BbGd3vY^6|&MrI2sCR z#Z?tF65}@s8_naPL)#;I3f~_!<#z zC2dW&J1CNs;B9GgGjIzpVI-MPEgU&?#N>7$kGMsQOC$Gbq>X&ErMwXJM;vRlv$~5Z zPkR%5^Bd09L5#Wwj>#TejA*Tqhd+er8Nta*%JsVk&}l!x-1Dpi*`x%L*}tKoO>{L? z5}Z1W>S0!-!4bG_*RF(+ys_g%oEzqVmm5=i70B@}R1`vzBf%DI@0sV&81R5x-}vfz zQdn8eq$BaLw!rpsoZ2pEev6;x^yo(di{;p@AKmIiXh(3QgM3$B#O~tloKFaA=#b$) zs$sIviRsoOtrmT;i9VQp=NS4NJi( z3G==V_ragVe&QhuE?90lVN?WY<$Q5gfc=y%4#>!UAfLUOWg7(VMQ7BbD`dF_F>7IZGP_CVyK_u)NGvj z*33yTxbG;tRmpW*iy|0uXcf#;L7-qiV&FXTLWJ8TdzwkAvw zsy7$sv5(7F;uUQpb}tn-&!^b4G~dSld{Tn+@HzQCk9tqUV*vkd@27qgCGmA^)tZ{> zL8xc2Kb24OjNsh2HF?#dCHKOwAN~}(y7URM0QMKf71z5~xEO`(a<^IK=aQqG;z0y%0VWsiA=)&zf@MC*A8j8lEBq3yz zN4yhY=xk~KIqdlDh!oBAX)aM>oHdS-2W`dvlhM4 zCNd`?R$xM`LcUCG8RLw{E84nO$pgSdDL%4YORn@hKE{Wqw01ZRhh-chBf&6F8~;C^ z&O4mT|83*;4%u6XhD~N6go;RZWRJ2H*?VV&>>?Cpuk5||CVMNCJ+nT~b$_4dc>d^* z@9*gF)8}*F@Aq|`*Ll9KBUGcl5q59)sG7>pI~}f;@di(R@)vBxUCG%-E0SdUfmqlE z<^zrjyo_x`;E;f07Tur`cSsbb6Aqrsp#$A_Ify{|GCqvX7cg+n)?)N2b)pB$98VX# zMENjn0luCZL9W>WDTspoE-#w5*%vUnS$WsNL)#%M4jVrNxEMj z`Lg!hGFcm@DnU+Lyd}jq;5E=>nh62DCU3A5{B#hm!GRvc?G<^e1sNInJID-l-|>6E z5KTkzxRa-nftV*>0s}W!6U~d)YuvTpP?%bRQ(fy@xtr@>GqX1-x#q7LOK8{c2BVjk zzEEbDlRFo6CKs0sbA!b-2@7x>JYinEdFi} z2*Kk@&oOibIisf*2~R|ww#lG8j;7Q%M?>I8zpkX5Hu#fElcM_JwR2c&f0Wcc2)LS` z!VKi=GH0MdLbLFm;{!I)pBd&q^_Nz2xw0ZEMw`WqeGOr z_OpWb1fQ{UZv+_?LDym2h1zij!dK?c=IFdGCl(cC*bYyyHml9P%RM69Lm{xUnTof= zY_8a%-!0i%rT{pMl@xB|DJq*Las~8o;P*1!!-ujFErIiS)BH^H@yXEw2N>o#M)*Nz zIJxVdX>i}!ahK@BpPePB9>t7|=X(hWAQ#X~t`ZWF(4hgru(!8`E43qls2U_O?exD8D@RAl-Xj-z$j2eJb3Z5-F=Z>S^?Vl_Fo6jZiINJ zgVRU0;fxLpOga_^FS+)Qyn;Eo2FxZ$5x~qWfDgZAq7tME3-aa9k}y@Dsdf+7@eXtC zt8X&ja~T}`_$zmkw#ZukRN2tS-#X#VY2$99h;`0`sjNh+MX+8g?8K`LJ{$S)@C@jS zZSiVnrsDGOOY6Px4%bNM!rC=x1&#xWLIn%Qtw_o}$6d>)?e;!uv0Y&>!WBOj`-S7u^h>Dmz>H0*A>(vqO$mKhxUV3XanmHP-L=*X@ZL-f2$!YErLSOGc5xaaebf6_iXdp2DZR^qg^uA>PY_F^sHV-EP5D`xv_=MNaNTd5Pi49T@&^#d=r3%zVP>l6t(G z$1rio&fDEBL#$8hji4caIh*G)x@Za9o!RB!Kcf~6Kj9n&)lR+wyG1(|^Fiu_p!+B7 z7+&vpkZw3I5SPzlQGtu7A^%*J3m3!hJr3CBCfrUH^ju%3P>!kh5h?9#R=Tcjj7f6^ zZ%{Va-UsYhQn(z5@-XRYFY3QAvap?9`S}biw#4)IBH+^rV;AFVL0T?ms)+L}9g60g zfPDr03u3qbP8%aegv(Y<)Y=SkKHyNN&_R|(6tdkFrtj`?7vvz6cnsB3Bhx1;`ITrn z(zGQw@3eQ8j|JkIKsgo>zTkLva}lH=h&Bt|Nf&5r9;9f}RYondtAQb9kIjMD0-ddH}NOLl{RQfo|g@kwv@i4A9#3{#%e?a5`ueHmvZOWiY<=B z%gW2hzvn}vXD$ANq{mC=#$js#A~Ot;69%cYoE9cz#wwseqAjH@`I)AA5Fn%gYl=n5 zZdR+TLUk(B1h|o-{z;#q+2H$fkG>|Yso+EAjIT`18wN8t8tjzt?a9PpiJW8Lksb?Q zrDmS@sY?I;Fh~N9C5Q-Fe5 z>V(HpT>z6%hsiGZAd};8zwuasAgSGVw5^v)ud)#9#;=-JNgw;v^ZK+4qYTrt~zr$J8j zj{Vt*3j7d>8}V``U-cA4t~1M7+H3`X%vRCn({d-ZY+#2sbF*J5P|@s~!_ ze`=aEmh1}T$Ag*#4@BTwRtne0J$?7**)w%ieX^<+UTyo0%rl-05L7^WGz6E|cxpO! zV`jw-HgVwuS1Vy0uA1meM(hPC_%L8tAX@Gb_0%lGYQqx2S{xfQE!!xI0~R8^FrN_4 z9!JN01(I#$3GdaLUN!F0Hz%$8^5EJP^kA3)FcKp?AD@8~2R9i408UH|_}#S&9RSVx zc4_kHl#Z~QaQ%kFGgcc5&raz=IfL#|ZVmW&evUH-12_QBFF&A7!DzOa(Iqyio51zp zhhy=}Q6eBm>3(xQN^=F6ac-2goc)IbNmY0SjqU9y1RAz;s$$>wD;+^}@8!z5XkQ8I}>vN8Jm~ z8EYxt(!r$*sfF{*KYtnD`;71$s-MJ~^E>yMMZ@b_NBmhtcXj!7Rb}xamUW-5@aZHN zM@(jSU!dF+d-;e&iAL7wpF$2fk$){$e)cA~I+npsgv63^tgKetW)WejjhXn-itr~8 z>Ux;#!GiKzz|)mkyGZVOg@xbygDgjgqq`)N_C-1i1^YuaVX{@!#Y*kC05>~y>E)?& zyg#m&iPJqt*qR87_(zK!2$aL~7K`Bj8r~P!1*ZgoV%Tna87ZilaNuL74V+${i`x-M5)1JE(K59igczRYx*Ce``KU38)Tsu z&{q9%G{UT{rz}CqUnJK1qLj~2C+fgy6^(b|-rQAbOfVG0$V;e!J-baRKlt^!ld4l~*=TR71x?L;hQg6?=z}2QvAXSFNatkqj z{7Jf~B%|w1?(@s8BLt8;9@t)3E8^e{p=_|eZ*A$PZt7g@(3miblL^Bg@B}O7F~dZ$ z)wv7db5~Y`LeMk>Mp|S^vhZt&>Qn?lISt^v=8h(E82*!u0sTZMrexUA&WO!H_9+}O z;Btuu`|nTMTL1tKo@u_fLg`6*D_q(@ky?|3sz|^Vos&EaC5Tt<6IUFl&N&zl&N54F zJ}}$)CfKp>-$ncpobA27;K%B;(HK)-ZX7c?Ic&GftNsX2^V;S#cI;WiRmGcv(w&I3 z7b`q~&?yCCeOv79_i8R!DIdIh7}B)%W4Ap^`>%E0p#pvXeXf%rG`V>UcUAuPVA*an$jFg@o9+)qOJ&(n(F2lFtRZa>R2>#J z92n|d31C#2_x=$aJYn+vjSIw{4~VJrpjqwTZ&(=YQzI+HK`n(DG|E8!+PTJoRM6C;^J@c(jZNK5Fw#cMO)z_4f7YkG4*zvvc~djbHi8r0xDewT@SrDU>)R`tT3VN$T-2{& zzWsRD2c{aO8yu-dGzeJlgO>@IL?1DeXXwNjJoAwZQ|S477Yj`|OS7`%^4r6+KkQQZ z$e`(^40~%hZ+-K}^jP|f8IXu!!bWD*(S{cMOj+Jz3_j*A`l9DiFD=F!@4%J`kV^eAwW89$WQ0=+Aj7}4J#1(zZc`1U zo(;6@Tr6^f`HxeziaVl@Kd0v!(fX*Cak>qBF^F~cXUjG#45BqTgoVZhAHa2k1b$&u zqEofi1K;BQE4;0H?jbPu)Q+qD3563xDGJin2BGlQEtjE?i z6(vPY-NkRNUXzJgmD&fjj^1m!ue(PKOkhguA~-Lm-@fN$ddR~Nqs_N;1bVrnCMtU=dkn&^ znDLu8=b5iH5{xUOwJePPQY#WVJMUJ3Ydx{VDShIFBCgY#|Dgdd_~E|5r@?1&{J7Zm zF?-V-5FlD=VjoP^gPRqg>(8^6Q$(z9LlvoFz%TRbJleqgIMASN%aw%y43$7kQ^J0KIf?|paN77Kw@6Nq%bsp;t_ls z+Tw2U6SoPay#7(pEB`fr;v3rV*S9Z^@B8*kBBH}hHCMH$s(FMbhA!_EQiRpgl{S2kdO?b7>u=kF7)`YBO`ti?Ad zc_0xm=#=ZS+Q9dg-r=`soYv63Fw~8mU4MqJM?Bk2RwB_l|Bk2$I65rcBK|_Jlh$aB zhC1yAc|X^5Zp*@{8+*)S)bky-D(1Wosmtlv0jv^v=MQd-(Dg4_1ytbsZu{<@uyaqW;8DIbXq`lx zGqBL%NkDyk!Gkk0X#6h^c*;LbMui_wK6xAkKN%!Ja)=BofYSHo%)btp^R_@=oD}N*gHid=SqifTZ0i&DAH#z_>z! zSxKov$Z{3vUGOeEAd}-!Y+S3p&mwH5>~+RgJMDsZvAHhnee*GA&#K`UzuoUQ*rM)? zxmpk7a7{HlRGqn(Uc_5A#?7qS`P9jZ2h-n%n-)2^Z+yoyi`iF)~2; z8^MX}I7w|u&%1f4o&@7v@No2VSfHK16zt+#8!u;rI1RCtn&P_k0E(AlzcXJD;?WPk zl-EvIB4ZC&#lTB7nPZjfa5Dbt+~W`nU}DY_2)!G~6N!UXSde|VPx>Sdc%@APKO=h% z=*esUeRvpHTz|I`|HhX7=Prt95WEqtKzf?N(Z2Y{DsMUcAo>J1f#xgsW4X*GO|NJR zXP#FJU^Fob_lTw+KjdPTID>~VE7l!uYyRTH!u*0zMJo~*8d%plKrKGxJ*f@zhGJt$ zux2<|^w5Sf5dDGw8D5EKyD&KxWUmI5Z8|RvixX5pMf)?ntjq#!Pv{lzA_W2$WevD9 z-~$Q)nUpMdNCB!L%<1FiqJB)eI8Id>Xd#MFd#VieP6S}5>$8k_PM2bG@w2B*vo627 z90#nhZM%1WCu`htge$N8i00kDmh4BZ*G^ObQPY9=vI-xb)cyc8r>yv4%SV>jwqKvr zpX)@X6*6{2>sqwNw+&I0b|W~y{51uB|xI|C;o-U zBRSgYK4y-Q?st2UFsiY&5odSA>h2lEf(t!HkAn3KQ@+trS?usYTJ7Ti$Jy6m=aLD0 zoFnUahuuy)L)#r!kxRHt5$i=UyE{y){w9?&*_JDp=z8e!aE156zJx@|{o=R7&q6g; zr`^{{5w7Lr1hj7mkbvxa&O=gED~R_V?)K#4Ow+zldFDkcYN_D@J*s)?k>XJE!-EI? z19Pp$;Aj>-TgaKXXUeEMWwIEuKEdaTEnbCtU#0m`DI0m33D{QwdezNBoOHs0w$8Jd=TCz zJ7w?~YE0216Kn|H@(2U_gfxFI1EzPNs`7)34Acb{771F9_&|(Rs$a|I5AgaWYJ} z)0(5c$giv~-gjEo=t816=T^T(>;Y)KtJCkUE(oEGn}62?G+yt3v!r{h$A2>@Dg*vD z9se6fus|hmujFH8w;Vs@(x?zd9s!bUJ2CPfs2@wAs-82Q**AAt?Kn!Kh6rfASP%Qj{V zo`G<@yIdQAM48~aVEr)$!J71xY-Hm|Eyc3=GpPG-G+f|AwfJmAQQLz8QX#}%f&_2Q zcpu;HMiz;Hj3#wf^Avi=)rPzdpgBI|Hhtf-cpnCs^3_2QT|J#gIndyEpd0+cc_eG& zNo3P1slbp(pN!;^i?2T|%qwV~g^9GtDgX0i?GW}^FudRZvEBz%xQv`~x<^TNI@B>> zVL)j)-2s|DU5+JOs~EwzsmWi5TX0g}`!7@Kt8~f><37x&;QQ3f>8TbpNDJX`bg7}a znZM!-lV@auk<7p}>=alP%E!QrL<4!NB6;fL?K?lve=uwpw2T@vOs_hY+wT8M!Dk`? z$0uxu2bHc|=}h^{bSp%^CtSBIV4cZsgVg@ZRln#LI7?wib@Vngf1vf7XPn|Ho$lnH z4SM)Des^h^9wcG*Ql~7i1pkPQAO0Ek{w4(7COj9lW<2Pct6LIN^4a1eQ@Ia*t!{%y ztQnvUtU_m>Cd^(Oty+ivt~$ND9kyo{llcfPB?z*>oI4Oh3w1{L68tUf+n6KjV8z;2Dco~q2a6^%R z--~Zd1X|0hN{$hi`y6Q<%juuX@T%mtqYdM)pxB8+IW=Y4u}FU^enuYL;T z)&H?SGk|!>46yO|n#{lbtgsu9PZ0ja5W@HL3nEForu9885^olz#Q!{vd@&xsOCvMmjvcC3b9!OD5AeqC;IcjjF zJp4O2J6)JNdN_J5Jq!_lCX#iUrbY>b&EsJYk578JWVqv@(dT^L57c@vkb|;gC;ba4 z_`Z=t4Dt^^WtP|UDwz0b2q%kI74SKUlTQk_|Ao^34$bfW92q1G!?707@9K$DWo~@D zSZ*}WvpDJ6<~L|mcy7zF^o$%S=u>Oo$+VwY7jJB*5k*245xzxq5nYAQJc&oH1hY^= zEAXZnzwGcz6nmNRP^0Y*-@g!$L;UM+yPVgxtxKhV(^ZmXA6rqmpW{t~_ z4xhIYYk%ZIKEZer(OI|Tq|84pK8E*34L7_6w!O7J!_F_SCvMP3T>&wlOO^VyZfQJd zpdTJiBT4!l9{d*ZW7OJq>*67F>{u|jM5gmF=G3!c{G6H2edGYkTpGJ4FaVUveDMN= zBj{&PE$Nd= zP!#|*I}-f{Y7-9VlB^Y0Id}loCF@U%(~pP z!GS`_lKe+2r7MJ3f_#o^${!`BO=I35Utav9!~1BO@YNOk`faz>rg~`D*UAnR!qwA% zV8HM=ih$WE*^z9oLPAZ_b?w)~t-*_XV#MG% zJ1s+3?0iZ9Y#5j4{ZZdNYKFcFA(v8RLRpXS^G}wm0f^kVM*3T zthd)vzbj-W0W12L6^DyQVGpMfk#8#9h_bg{H2=J)Z-w@O-s#n`3a|r>S0`K(r@R@! zPR(#*`-Q2^Rva*p5Rc8DaTga{_Gwy`ijE8$J%8Wk(GT1OrzbiXY2SLFBj1la7@<OCV&p|0eMm|rX z8k1$BENv5Ty2a|26x}OH`}J zsl$dT99Z?1UjGJeMUS+07K?1wSkhNRJhBc`)V>W!fayutC@E$F}F3Q-m$fl?SlAbRp;D!9Hav@ce@1xjo zh2RVqoe<`{wSi3RKN4hM50eanLu)uXz*08$<)8@mLKhj^ZQ5x1$ zof$c+_~ZMpC5zy~!%|t?{IB-ZT0k(+P+X2B|CExGg)RRo;m2~tB6xwn(olK2QvM+3 zpBE2cJ&+Iwyh#r-fL;Tp(ItqqBl}<;(?V#B4@R7@ARy#x-Mfv)=Pv7f#Ixe;hxhKp z+;jX*O?_^{Bxe*eX`5J*G1Q(5m;n!<3ajeyLv8mI0*X1ww?AlTz?!tr=PEeDLX<)` zZ{EBQ-=3IhRb@gcj+~xx5%JJRutt2r4}?;FUW2=beM5r=vEu z<}}$j%6?m-$khz2gAg5LP*(+7DJ~D@psgsQPzgU?YKdArq7m z7)W|gqs}kq8|aIG?|^WhK&A6`C5h0J!0rK|KB4Z)w$7J*tH@@HO>Q-_V2F_uZ8a4cQkqp~>^|wbkdf1KksTE{!mM*ErJc`qVz~YsL z&G^acXJE8Qe&om|8)Dun#`u~R*De*Y^yPgRf}Ny<@=CHkr4`y!%P_0;M3pG*k3SNy z8-NV+hYNpn#YEC(?`mM$^4x!Ji!;0@@IF4p7Xl-YVOP*Ms-HNp{G5*qRUuSA(i(D< zlp1kh)$)bg2Oj?BvG!d9S-LTe(V~MMod^NLxDVb_J&$Rk60zB`yd4w4^3fjlK?`xV zIeZU&*!@^;JXo)|&l~zUD3?f6l6MlMU|bLYF-pkjf36GT{b<8*Id;|sn`V0y2B0Ip znl|g~WYc$pNV}mhZK{E`D918K>hZZ3lr^nc9M`h1ZI@or9zJM1y$jZ{#0EP`z?>mt z1bHw8we3wqU)q$oB?|~aLj=YN>I?#{uxem~))|Co2-yb4Cv&*{!!|NBQ~};P&yX{t zvGU-lM34Me0brkb;dazOv#*=`A=XE5)ZAkjk@ zj1* z3r`8l4J*mLNH<<{lDz2L>rSal0%AP7~N zT310-XR@Vt5bN~0+qe8&#QX^%6}qwCQW3e8wY!V{80gG!6Nk9&lYu0Hkjlx1V@=6k z>q83(89&m)Q*3YvpfO&t0RWF2v~Biwt3=uHN6cUOUK)*7=7c~rX|TnBgbd@{wlSyR z%*r-9CpjnT^6yYjc7%Smb!XE7halxh1+TBa1}DPshJi=O>L)P14R$neB4J_3Zv$iv z3!p-Dt7E)2$gE3zML;=NF9<#+SpLxbKGJj1&`gC{UnUETmnNn^dF^H7#jIK&RR#t} z*sMsk;R-^?0m)xq#VEVS8e0YhpZ?p43-(+H3?a=lByaH|Yol^iY}o{Mt9l8}A>-i- zH#y$Ld9um0s;(QJzJJjz5Rd!;X66+`)Jt8w0uB>#gXAFN+~8 zq3$4=Zn$1a<1_R`tQBKF#+U=G2xBpGL5o6sU7N}MKn(&8Jt$z*itdzSOM-@QqF#YC zRoj0qwgG>ADzKw=VFB;=i3b~|~IPBc7x9ms?T zs2xN?LjVBsf+^|qQ60F)RG3X@z|Ja%hqziv3*jtgwbW)t1>RhRuI zuwUu`2=Y_Z_u(qA1qI<=X#@Z?AVU80D{XddM&0vf?^{w84Ct3VS!g4NNsjR9YC&#J z7bC{Pw_1`fk3J9>(I~}=B$3Yv@nDTXB5>Lw?{eUsgfHMqiuV)%w@tu34RygX=m4w{ zQ9Y}|-95M148+A4VK&8Ern~M9>3PlXzx)2B)r&FYB~?B!ezYE%B?m7YfXjSg1aH!M ztcJK?IU}^dfd?pH;VqlH!Hd$Et;V&tZ*wAmf%Jixp*((lbTqagypyGO!%_G0L3u_U zTbRW$yBm#_o;UX3T&@diCX&jO(-lg}frSAnhJhD${(2M3tJ;kSg3dxY5h}FmmphH8 z>UfLu5=EDgiD>6z>w1^k90SAlSJPA`je8D=$eqWe2Kqsf)9LM*c?Tw_u45;d6lOqL zHrns1!}~ZyvOM0`3ZXtp0v2|>N0~4iqcr)|nTGw>I2fH(|UPf_j7(kOHbU~vFW=#q=gW6wfM_COE*uA4!d_+~ppd&7h zP~F#cjlIjUZkCz04yz=Dv*M8^JhfHsqD?{#1XrXxonUHtAYeQbUKwm-;YH@^0mdpi z4JKW>#k;^cp_w*Gd@w~EirWz=Qfmy83p?O3RS zQD^h3W0ZVBiw2kV_0r-vT%djfNx;zDkcf>D6WQSUR2SuqUm>J1hRX1V4K+Y$f(1$k zC{#rT5$FP)ytm$O%(Kvc|uMJG2s zyj?h}U2u?79k@AmqmnV#0=~kkRL7%AUzoF+4x@Z?JNUk+Nu_f-D?{rE?|<}01wX$8 zEzCGk&m5Q4v}tu007LlS9|(gL1Ys|Od)JhDCDfUu%^p@iTBoN;x$IvD7?*JH>ejsF zhYI&SJ5}BlSJEff0^SQ!l6HO?1%Q$&a)ET2O9et~kwL$N9IRK!?+Bhgby|7XjQUN*ibF?QfY0geZ4u3Shbc4vt8Wi{$lHCEXiLBkr|Ix>5$h zQ|rxds4=GLj}lR-mI{{h=*Co>VNn2uRarBC(R7v$UIy5gh@;8Djbszb2MeIL_ySHD zh>t!i89_L@B1yM8dE!1d2+viy&3ln{!4uDL48|a&O=f4 zZt&SpwBVLNjNq{9AaPhrnGR)a;MX>gz+~Xbd`&RV2IPG6|!=IzYmA?DF@ z30zH^!w#H0lwi@g$ZcGzv)F(JNI`-p8`%?_b;umNCHblK=nT*Y$h8JsVFO^hw+<}` z;zfEip6SP65n{v!yZqHyhG2-SF0_x-7~k3xs5D_t z-``lJTs4{hD%)qCzmNU#JKD+=xnjW;ZSIbmKc6-EWSGo;@4CQfp2Vb@gmS|b9$}*O z2`%eA$io-(4KjQqB{sT+p>fZ5T=jC5v zn?)*j7@;(Q#*i59^>|mmJ(P^@3vz=)roi30ps>UDWUwGAMP5T8h6AkdV0Kj* z8z1vJAm+`zjSBN!*bZ^~2BV!COKbkLPz+%7RTZN<- z98`ckbcx=3{1<1d!5{?x(sA+Rc(7L`h;%OikHvK5#)nIo-#}o62#hNy)$@p5;FjZM zyvm~4HUY1@7KCH}8?E17A%lPEii`-{)|Hf3{dBLgfV>spY~}2DM1+9HS-*B&3sFHp zgOmO@y7FR9fKUVyN2i6B?!|=92sQM>tdPR66i|R=-Jse=#3vagqUusK!#{-~&JZYB zAsJ24Eqm#VIY*J+QM}l?^^2oeaTyO5Z$GrLs)LL>BpEl=+44%m&{ZN24oijxkLiYZr8 zG&Im1cC>~NpFMO*ou~B9fYuG)7GeMsyH8ef(8N^46W2g!Xs%X~2Htt~_fKex{nKL+ z%==GXY%1t$dKa*2{oHZjxncC$(4k5XOVl+J2&>RH%cv*@Q;L`I|L}vtxBjm%4Y0N0 z>?A!Ez<|NJtg&0n;O3VPP?(#^-Mq^$prXWYEYEiPtti%PQSgpBc6R_tjyVHf;J@j>JBzv3uDjw9MY(80sT zNUh=86O+ARa@vTGJm~PzKa{8{xj8!a6UEzWf3f=s2vYLA4LmUD!j>1uIoQ3?+6*G5 z{put8%zcV5OaLDob~rEoJ(ePL(qH6bKoAL zAlrD8x*C`F`N41l1=v+ZcR2n8aaBM*0?W}u$8aQP;vA!tT*l1H82y;0{l>gx&W5&_ zInSmj9;9%Wflvd++?GJdVi@3`qRMrC1Px?)>SWYH=UE;PCrTw{K>os= z*xzl=pw0}=7|F+E1t%7m<2T+Z-6St!FSimx>W!Q#?7@S}Os7wMS%Kes8Q`#k} zfxZH|M9Doe3Z8(cUSUbld3PjdP8T09u^>CXkwfTv#=$&7I)+d@;-r9ND>TLg1pzpy zHnrHzof8jaPln^LVxCkzxqklaV9VJtpRA(En<-LK)=x%|)4*z}Pq`l3EDUA>2TlPj zh)u&DC+ImLpBE09z-O`lF2ne0yOiYqP?fV*d<7@n*4!ts2$Lh5@*oDTccmd>u(H#; zwiQ`Fqb0*p3`Zn%nYlBY)NQ^C$D}dGwB&<1$T#{ z?1i{!q6{R>%qW{wZ0>Lz{v!h;3b~lY{C~z`cV5P3STwf6IuIsGJWJH_uk%`)&%aLH zhti7!IC<47G!}H(h1XOTB?`dJ$tEa;3pcu|x@I_}DUn(yF9+j?6Usmsn}-^ZM3C8l zw;Bh4EujAqvCYoMHW0?D^t6u>ya`fn2biV_RDjn5$Yog5m*|M{xX z5#$}}iRH}NZrfVoC6`JK!GwC5of^hf}}o{_Q*gn z4_|if7ZHzQK(UcnmEIKsAjRtem4_K)$ z?|>Xi!*qwVVYcpC?4`)3nP8q&#(@6G8v9m9k1F%(10og-bYeZRclq-kyyI_$)W`UX zJb95>0YZ_!dezSg`pDD1o(8>eXm4Ju&HoFnp>F-vxa$l-Qz%jmSh+>WVZ71X{&mY3 z7DMf9c7;53J^$2Qh#T*d#1YjsjZ&6=bro<@_;)P|q92A#Hz0-)h8j;z>rKSbCCwHg z_nTQiVU5Q9A5K%7yujOj(4f7BGo|S!l5|a!j#}_t6e$%s5Iu)=!4QrogKhwbu0Y+Q*QQND{XSg+8|~ICK77Pr zulfDren<~yF6=)1n^J>*l;)uJ;_35%vKdD>ydFHa{e`*^!JNddia4F+ynVA7WRvn= z+(X^XIB(6lhlc+PoarzyukI?LTXw zU@U}14c|vi>yHk2ei5f&0Fp1XtPs-Uyfwtl2`_M2Dt080peGQlVSSj40m@cp8|dnH zuf5fohGhJTmkAP0gUJT;*Z94ajQeT=(;iob$pd#?`B z?RqUu*FN1u;*2ROp#yK80<&vVus%3w<9GITPDt~>caJovUJ{Tt#RP9q1JAnOBj zD|0X;7z<&M{sl4y8=ye}*n?mjlLGSy{GmF_BBBYiwYeK2l$Q-T`3AkazAY8XB1x?& zN^A`l5J(^Obo^!^xtDrkg_pj@q^*^T<q0EbITRJ|+&iIJgQ*b{nKJe(1sk*h*yNf-Mj0;R&F9dXAnVnck5 zZCL}<#2A5R(TUOFUwSK$;VY<@%z=Icik`9(Fw^sJ?CCWUg=01dwhJOlPU-@$Ku{T2 zu&2y+mz0$RiDE8f%5ya*lNy}zj9wF& z!mF^3l=rCkdCGHRuuJmUO;F5);kPB7C0sofkm0%Kfl`KY1+`~xgM)+xH$T=5^|#Rj zjO=?3%Wf3NY(`syT}V7ZeI*obIr0vAReG7=3hS48l_!p_$)q@O{c6Vb8i(~6!h zc_MbcXY;)L@C?E4LOu1*q-WjpWc{p84?@VPvWc!O0TaPlSy` zHiF|8M}IP-1NV;T<9f*LUq}cBp(lSZ*nz?f@&?ohc6PU(Cm7pg-S>y_8*=bgz~C5A z#ZmGS&cFaFwi%XcTZr^DvYLB#F6H8jW)-#hAt}X^8C3uypA1HMa`2?HfXrtr7X;ma z`)eoiemgL&Kff0Nsf8^xw6u;Q!-ULQ=v_9KmZIFtKp@XCw??nPG zRYUZ4arLPiJf5H8#H|;Eu8I9|W*cM{K=O1`!&G4Hgt>q}aPCZh{a(1-ACxaUBZ2Rp zh-Joo_Zl!xklRNj={th*5%j+UlXDQ5VfxUPIg#y6M~=(kCXaX(Al%OutIs~^Ra zJx9Ho`DJgPkQ)CIzTj=ELf@Y|(dl3GLr7(Kexr(==N6yn>Ck&Cl;p7MZq*&n(f4H? zli{Ju5Zp>J)h(H{E;n^<=sSv^wH8j%XSqU#myX3(=Wi3v-wuB_%(^G0UMifCzJm7E zo%qc&cP6IB)TF!BZ-m}#-~C-{afGkUR^@i%iq`g*rje#AHJWxUo`gS(l4B$e>U3yh z1LF7}eX}X(@C}<^>Wo`?m0y|18+T=F!o8f%eZUJd`hLiS&qFSPFa-}oigUd>^RGLP z20v{oiY)fL33kZ76SZG{*G+tP9+P>&xki8R6$(v+Iq#irxXI4}`?vkLJPd77B2ws9 zZxs8dMuqzJ-Z~H;rTvuhkuhX#Z2!l(TjxabqxtB7fGi_MBi}Rm4aL-gl;!u zCr)8nl?#4mq7iu>hEMKlxJxVFRPOA&G;dIEGkWoL{N>YG_27*xalL^@7OO7D{Z2tN zu`=H@qb9u`RvMG}%BhZiq?u;_v3k-#g7WqD{zqKSI~$;&X&so4eMb3@A@A=_<{48* z)RsGg^W%N{wZ{VWb#Do-QybZ9J`EGZ-QDRvTU=kr8o3;>^Q7x~_4^7Hz9(Mp*~_@^rLNN2B=1b8h`<6w}p*64bclM54G*2cbs-TJgoms6j| zhMDw>DUagIade0-tmbt`geAR-*7^NCc$yEMYHRqF(rVcYaZ>(#WA|Ek$dFt&Q0Ohs zydR_Dwn?493p;P-qfZh6&XIqUhQiq0!fb=CYGdZ`U)2~Dy%oR~(cY1N-Qshon4GG8 z$y=X`7b8yefkIq;6h(JReblcr3BRDkmm|f0@bu_bI^EOs(rkLn4RpubHA8b_zF9|9 zWsYSTRhg6#HhnK&+AMK#8-FPh*ur|(ae_m2uJh(!KqvImuN?mWf*XE5u5&qq{zCXsF9Q#`Eo}hPASWV1LeXj)IQ4(s_90 z(o$zglC-30&0kbIuN^zGuye1jZRL*qb3AffjPPfs%|op` zqfMRLDUy!782iU|v#>BZ-eGZZ;oS{KE=ol{;v71w=wx^DTVf&(>u(9@rpya&lCLZV zcWBylOa+*cCgN#Jl*5lV_$U@~9O?D0z5JILzi=W>#LY9ejt50g@6FLjSejyuyRf3s z^WJfxAYsu*4>=4%ET2w3jqvL>rqGPb zD6g8k_S1X`kE;bwn=G0}QaN?UX*VGAhlHLrwiu^5qyO;K0(pUvin|@Qf6*O30v*TH~Y0ce1>Wd46tKO zR9O>_59ktyhFom3q;=3A#1cd{Z8M|9`pxv((|fw$OzNWYDlc z@>ZFvnjPG28#0R9wYcvbElL!X zmNk`plhbDU6mrto`HEZS2b|^B9~;Qv9uZA_P1T{+zhEvsUTLhEsCBKr;?gKDT!GA;DA=p`b{PEm!YB(`o zj$6jq1taMZ&8^MZPtKY5A3uGn;rDmgW97qYR9cA;rbD?yD`uF;!sQpIB8{T$;^En8 zf0dYqX55bYL{$x{$$(d*4^`60==xsr-@i^ObDiPEys0Ur%)77Mb-GmfZ9P$SFCDMq znLiWD@Q}T_N-wTQ`ZZfC^zK*J3FjkvhAOwmzaO&wcrGEYK73=iV|EUk(OE>d{ODMR)#y%rz=oX{9c|iTzL~tMhDR%B zcvW!A2>#ygZm8$Pr*rlt%*>)UljdAe%6GI6KEt!PsVHo87W3rgAIpxUlmz&3_XZG=RP7s~?9rc0kJ0j%u`0;YQ%|~tY{JgL& zC#)GRA`dr9DM`tCYMU2~Z`|_uTQbjT{o3F6<%Qz7l%|+4^m)`8BUOf6P|B9)vE;HMfd75*?Enl`e zRZ2N9TBiKj{kQHv;k-rviQwi8{d<97a;q=bL@Az#zV_my_=kgrN%t)9Y2m+8%`mG; z5qs`49Bb~pV$Uv)dqpn((h@?H0&lE!%BbME3@lLzC9Ei5f%~(6zFM4nT{|eNG@DRs z>&s&Ir!v*~ulJn|uqw}3J8gFC>=c}hNu^p~*^kS5`tPDYg(HI0-e%h=6R2Pk$9FrW zs@hLo|5 zwJ+08hqSgC|5;B_O^|TUV~E_f5b$3JF{nGEW~g-xkAAgd-Q3qtOTsl7!W}kFm&fq> zi5jEiy(8@Ud)_n>b&mzs_|^>Cu*|%-6BE!`)9oi1JWp8cn$unz^{D$8$<}VD9fDI7 zGylbAORAV>&ZVkd=o1%@#K&LY+P_8_%0d=m$Rjv1sWds=g;^+dY{5`ng2!9`&s}~< zdzrRM@I`?5^J%d3yVL*5+M^ZZfwFa{x!huBxld&QUY(us#o2FmuSR7b(hhmEDeVNG z7s?XMo3a8ccPak9 z(C6l{yCU{`?XDl|9UL^X!<-Ksm)w+3zr9OsV!Ax}HNYI}E83z>N*4BI$5qt(&+Xqf z7F53%Mk5Hduf~2Exojs56k>w9Q8d;I-(r~8cVL-iO3GtUgj4*g^7zrnYvmw{LNr6^ zmkfUQ&JS|Jt*>cTOHiyny?o`isdOUQ{}GRi$&R}0S}7TED_LM~_~G)FIzyvE#^;Q6v-p|n)qB}n-ly2G{9o$CV#N;gT(I0m{ z7kot*dUE*9&gOxl0w>Ixp=d=nGbrr;ZOEe4sA+_a%XxQV=3@HiBsuz4J#a3Q_ukmT zg_Awpzx-fBY|19mVx_-~VDVR=6-}ttY@GxwZ@BO7d_&y5dT>tSWIJ-JfAK?2e=5(* z?MTe%r*}TeSl*6l>{Tazqb7LM)V%0D=fX>y?9$_qr`H-~Ik!5-+vs;RWuy`v`?e1=mLP_|-CDhb6N9)8LaWg-k=2GqFu;ETU-Q)E> z=8mXVbuKxd6q55<57JHQpuqIq<#+PR!o=ZIrfe9Ts|6=FsNOxD){C0@g)>?q{JFf! zXtW{a?sNF|yQna~1FwLG4z4V;8&>X>lXux#1<_I?ZOb00!|!}XRglGP7(r{t z*8bP!LPX%g&NR)6Mw^6>k_z8{ea0Ow_0*NZ|DowBfTC`A|)yLoxS&dGcu#|zR0@&=Q-#6>MYUbPV71951Y=5 zR7}4DzuhDHzmLxUB`_2g)Z$ROJ?iZqaBlEtcQGtZJ2@ssaV}o@xf$gG^TFrwIeXL8 z?`f-VxY?_0M@@5%L!2%?TP)~3)V&>LkyBV+5G4t#E3K5V6- zN_)&260M_iOF+BYRv>lS*sAZNsL4}ENtV+2hz|Kv()kQ=qFocGD`l1ea}>ze(_ zc*=P@{7t`TW4iYI)Nu2#80>ZC`kEp;jb2eFZU~ZcM4=kOXF#m9wb{*_sZ@;4kq`Y& zPD>a3?Sq>sxq`-$Ohgucn!l;e{h@K{jv)2aNnHKtNm0OZJV{k+tf%ElST_r5n#I~{ z@+Css>yAa)YknBYI?|N4su)EQNZka@@V2b3MQc^U%U{u%4>TvhpzB`3`XitIgSk9& zm7Un|{52WDBN<6veyQuGYngH#AQR&t!*uQE@{kaBjOi+?Gi8ca^9Z)8tZpSt6$(jkdJ$8=p3k z{4vRWB*5KEP5Cmsq0&5cOUHp`y5x(BB{8Xw_oh*)`=2vvx~5>v$@Mg2(l)X!5<|ug z_9;up^%IL;_g%|~0Ibz%UY){yoQ%o zbmvF*C)DPEHBveqNnx)ppL>^7H<&Gd#V)QM{N(zHxMcMksd{4eDY-V%#m9~CYB#)X zm8esE?#n0VRIBF7d(PbM5kF)2UQZ*^b`?Y)N`*% zs1ECAQZ8;2JW|g!_&L`2+)*ts@17_dsv1I^nlw!G(5u#T@N40H%D2`yzyn0Et(H{R z`8>-nD)BNMPL9Ve&s0*?*~o}-x-%GA8ZA?$*|U$x;y{f}#-bpuy7|e0?w;V&IuFDb zKklmF1zhbGN8ldHHH;IU;q;^2R1v)yJq`~|*U(6k5187<%u_SsA5)n z+Th8K4-*eMJQjP)N_|3!kBR;t*VVr0wGE2%rh-X_{6D+O zP$#oy%tpqhV}LCSS5?yKRzq=?E{K*(4((oQ{>K_QlK((-as^3t9T&_4anf<-*Iy0K zNn%#Q)1RKNPTRfuS;u-)?p=Hrt%l@uKckUvcjawyitZJe7mPZMl>BBmu|>18VT0lb9u;LH3`M#&?(1)0A% zz`_i!eH2N_z@0>!vL9e~JVZ@P8Jpz^2kEob~6o{5-QSVp3 z{(MY3o8_^zQa=^2zEsm3mK`r3>aokP$v|piZ{5M*qbHI{NMW`*|DzkPAQxrN<2WKO zmNGC~#>(EY)ASl!6CFnKu$*`JsB=A6t#D=i$dwyR+-c#6C7EP*elRYg|IwAx!uc9! z5#7~Wd(ZQ4=$jnjKfEsR{b**9M^(nQh4uk}7{7~56n(13BtJ6f;WkJ;blUzBg~5tzKq(;Jha1WsCyV7@wB=kn-B zF{1k#C^rCstMT_KneOn;^$jbz`h|@uVVxYGkf1n6eHII*29QNqAG71Wa4e;Iyh#^n z3$xGU+oP$Ji;40^3TQU;rmYx><$|9gDw>G2Gwd1Fd(eTFE)6PHO@5BmtW>(xsP zBvbI-D8HSuhAoh^VMeljVhHCT+(sp+9*+wQV^X(%d>&7J6+jBZZuz{p%5a=&Tmd|z z4CzSSPR7WjVRmBUY<}Mw)5m0XOhp2CA!lm_P!VjDHJQ^?**j*x+L#V~oqLdQn;5T( z)w+Gj_(7ST@xz!up91GNzjo$~NdqX?)?md||D1<0{3ND>-{*>IHso4l!{tZ4$O?d; zrxs{INT&DVu$@{i(d$!PuZ^>}K-4hjQk{(c=`|h#$7hS$j|X;JZmw_o1uKR;!ba9 zM@A+^wl~fZEAdr&#?`@dF=tM6t#@QbjR^Ug5=|o6QOh*buTx8nak;(lrp#tKx_gNE zytM%%Jg-l|YR-`^o)~ERQc7?>%+P*?ry9-Kgfe;?b!!1WiHc02Q`Iuk4`U^jp;>yn zaN==>`p>CP4!m_drm?_i1O~4=|B(v7*4pO1gDdzaqk;SJy6@wkhELSZv0xf4+T@l^ zd~rh@VD-P1eNm~AO8sR|L)_MuU>bm71sc;82h|fZqnBbr@A@OcqNP%}B3L8cvo>~2 zc|YCrOg4BG8?qfhn@iwoOy7ddZT*VqH@Sq%f=-|;!_~)yJ)fhVv?j+FPPH`3qP7k9 zvwBP4i_VVKuXBwCTN#s4Bm(Y`bUUwb^R{sw!_2V=gu7=o-~97*eQck4dKdnN(}gcD zs`#uVH~4vwG{f?K3zDA#z;3@aLh=4V0|P>;$N#wsAAzG!((LNt=(|5E7Rt$bxwLt` zoi><%ThA8T2}`=!kznE+KFTRfJRate&;HFNlXBA8LjtDdOY(f8kqD(5c#R4r0`7`q zCBJ(c-=y#V{MXqKC^f+mq+~}sAX9}Ix{uCN%o%Z0rfNXz=jjq<1o?wu(y<_-B zy=?rh+gv2FmDUsPT3z(K#wR_=>91d+lnU-r*TV>cCTL93cteAkGGAvRvC~M~@+6x7 zSr(y#=#1b>Pv6FA%W4R4>t`p7)+?^&uVGlvVaZ#9FT~IoW`7|Cawdm?^+-E*B7pDf zM(1!h9&j;>(WW%`F=ZObW)?3mzFDssQ82X?Qa$6vFRz`Q)j=d^*cQAlTzM4+Uf%HS^WaC_g+UQ`Q+BzQ43=YOIC)O%C)V{SG#HMZ1Ube?rz zX^CNc(`V9+q9i>w^UdV$wKj74rG>3DFFs~xqzxZ-W!)M#6%9uOqo?JSi9eUQuykRt9T-JkTr!6N{ zTSfd2Z+`2JBPBu82V&pzt1GC3J_Lhw0nana>8>co?-Bglkq|29Q%@-*_PmA^87oc?p`L6~9LL}5!)%6_nQ0X6_#_fK^%np*Ih z>E=O^!qri&SEuYOw&tWaX-tI~M+M#RgtgQc^bODm0Y|6;WiitvH8MIMUH36zIi%jl z2ez|`PbdZTZ0s|pWGJwb$+Hs4Lybgqq5o}CHhrvr|7D~#;Ns5N(eUH`e1JjC=buBY zFEtWJg0-D?GWVR>sRAynP@GXoeK6gc{h$J=jEs&)lXBX7F#qJafq)x<*SS*7AwoYI zygZ(DCxriR6RMOMhdTOX`O3cv9VERn^n*}Q&louQQO9e0F=?k7)HF55u61SS{jM3T zW!K#f$61;ROelKG^DKGHMFP%4+8X~}ucO?!7U)S4ULjN9H5nxBvGq6&JdO7i?x7$* znvn4I^Z(nPH@%0wMaqimH6_GH-(hZN_c~9wzWE0GINws=L<&b)87t)iwq@4wTN>R_ zik2v)iv2oqD~G*>ndzwbwqUY4ipkACzp@PZ(-*E}$&Atq8ooSnU}`*W9zv~l`nl`6_`i)fs6M|I8EAQu)oTF$)Sy3tSOJ`q*t-a`fG3i7WCF z%&+eLz~&)kwj5N$96yTLzZxB8Bvwx%B8%**LI;mSp0}HBW)~Tmay3PmpupXj`~kMP z?T1yO9x}(dmr)0GfFiKWQp7e{PgTyM7<=SU9sQ_P#?#k}J*69-;L$%ky0KxxdC5gi z@K7@0Br!N@CF`%G+(%Ab!spn=hx>j4Z01GEjMxz#zE0s*g_R4EpX^NwD`CWYHe|(K z)y8N?Y7>q4ZB&{BN@$6jMF-pm^{MV_!u^tJ081u$q<-J$K29* zrr{Cf-`T0cWGQJpy<9ypTkY~yB_rk?3?A?P^lX&0_4KkIQ(w+SY1G`!I7!IJFXSKl z6u&(er;iwO@MArT5#R&Z2{NwDWdmHjal?2dTBd0Zyc0(MMD=b)=C_jV&o$4UEtz`L zzzcmo{);lYBsID7d;N>y)zRZYniw(~epKg=22aLoahDMi{NfECgS&nP2^0y$rhbnO zV5t(J*^apEZBs?)#|wFsTzf`i8-Gsx^yS{`2?GMvhAC5HmT%%W4-~Bh zIzkjhW5S!@>)UPE>~na3Xg2tyuf&(pF#YOEc?8o@PH~sQWQVD#*(w%gw6d$?a^b4aEvIxq9DD#-99hU zzRz5jQA{M%uF3TR1jGNCAW}0i2Hpzo{R2*2lSzd5E;ETDGnwK$da8tmQ3sLD<|f@g ze|{-=1puczGYZ#s^5gOHwb$2EVq;bV7p|VSLuI@XeOH$t>UEAj{q&$Zvfa2N;Ahr3t7l%(Q z{JKuhIG%)M3MtLlK1=;CUuu3o3d{oGfrLG=h?RZc^0SpVDfQJih@lP|s9eCbs3}=P zm4`#gNE{=WuSa

+lc^CsbspW_L_S$EKrt>g*;9Rh}*{JSa^LdbWEiuzaBUuVFK5 zOozE@ogT;?3Ey8-1QvHNEd>lDzH<{5ScG98;3~beXC(9Y*S{BGJvo#vU1rY??a;eo zChAAqRVY*>$xo{GD9$byLKo-#K2!!76X{s#EU4zeO`#73Azg-4N3q}@lfcvneg;eX5 z4Pf)#&^P>nIWo%*E`$LZX2`Lprz6Ju!)Dh>Z7|ZT11iMrT5^sGPE~am3>XmgEFQ^x zl$SA^3)m?_=ecq~iS1oYB&k(_Yq0-vH3hp|Qs;g^KL=q&f#i>*_vF8+UxLb}a*S_H z8~{uKPp&<0V&!z$JbSB>Dq%gRqogecjK&yv3aeDR{Tm1So8Kx<4@xRMyjzi~$<{`N zfbU_dVOe+NfHS}rF9jA#$)E#^={v5iTIj~=|vZy`NN8F24tf$^=%>gwKP;w%W9 zGG8BQ_uHQdMz;#xIXj!yV0x|b3(puiQGlEhq``um5EsWnzf7t;5PMLR|LL(Q3kNpx zljM`sH63?_&GlTfqnYoM`hbmXIOLoHrqTFM4DYOQ*0BiBR&InR6J#n+OXT`fd@bF0 z%4aE{hx-O6ao8BKa`4ZXw4UtXdC_i+p~W48q{3J=#)$CLTVOIHS|%0x?E~QDUuw5c zcPr0Z$~ij&x{{sfD4I+Kjs{g}Q8=N|rYyZ|Det-dn%|D=O-h_x=Kk7wqWp+br+E)? zl1!B=@bl`4f9fmj^66M}uFj$|`ix?Za-F9nRW~fRR`7kd5$D;1;$HoDNLvp@WH;^F zDNq=6E&jO3cN2c_W6R%1j6Y;UE6hTkSGEde&Dj@`RL#t4Q8@cmv9d(E^Aqy6Ei$eL z12P<){%*v8?8g9@8mm+=-^e-$mBvka?=oE83^~7eHuldeC>XKF`_`PRsAV{b2oV*1 z9+SaZL|)lLF6=7}GXmq7I6D7!AVqzwmpk(jT>^ZX`Ij`zGrS?3!q=yPvIxcl3C=+J z;Df#c_j+-H5_H+TM5H47<($B%)5XELBfeQPyU`Da()FRTnb8Z2OSxCc(`g+6xxWGz zHpvw58dsWjU(madV3YE?dws)AdSs%cfv^^i)Kx?;HyM1YZ1u3eH7u^9T#%p3VbJ7u z@l;j~J;SZV{^@_MK+sNNl;>K2rY9AVn6P`BynecKQbV`;J(Yw#5BuW>a8x@egjBF? zC?2t)=Ja>Mr`wG>>@Dx}7ylGa-sE0=8xlH*&Etda7pIX@uFPY5)iWi{~J;QncIKLyp4frl}g)k%- zf#S#z65p#1d-S9-SO}WcUz)v8{?Nm~-cR(B@_?C8@II z=x!UZ(9I_+Z4%<;w$k?vjFBEVAe?YPPdL1g7u0ySKCAusJGGC;W+@zaxZw{Z)`Iqs|kF%NNS zVG3ooRaMJ)qfpBZuj0ObCe)x!Lna&1$RuCOL4W#3O=!S0uSnx=fq{(U179RiFsng1 zE_78QPQ=>9IU9ch7p4BGTBPgz-^eGNU)ASn^=~kZ8mUMp+X|v;sEl{Dlo+Ys$wfGX5!@{P z{Pbj$Rw@Omb2DWv3~w(guRLeY%PPvyz{vp|iuk$@K!!b!zoGS?u>c}9TFw-TI)l@^T?!J>qU*Z9vp zRn?AdhZQvzapjcol-20Ns^o8(X5|sW3H=(UFPmaiaq)#Moymy*Z zey0`b@d(3PENp$3d@RT=hcWHY~c6q9*x~h17feK|SS5VrY=Pwf-lTa26e(8OH zNYypxa4>D|Fju_{6&3e=GDz@8`-&t-=3#c-`QXo0->a|^%d#rFX1BNybZAh$L6VQL zMNIKQ_oTi$WNo3eK^k4=I|Ec?7IEhCC#>;6iHgr|Li--{*ny~L?!pLcCmwQ0AA{^L z;ch@&^Q~MAQj_}D@ZICwx-$;&&Vk()kyJ>*^r4Nf<$TAK0Or>P92{~fHQ|lc{YH~6BZp>mp+=* z*P(*DY;Ic!ZPtlOmgAJ1xxQJq4QH1MmZ`Aqu-Wt!Zsu}OmKxvjrNiW`>*~ruY&Oc_ z6B}#B+7sFFfuE=MMQ__u;K!4HnU(vOT1`(sEVV+#zPjqZ9vPYG`r3G0dRBejC42GY zoUkWQJn^Aiym;F`DwxC{3uwu?=FVCdY8=1Q3OIeEHz!|9R_k|GEB(BBfAa&@O_GY5 zjjmQbx3I>QueF4)x>x9)`&trbAij4!WF;E2cu(jj7w^0htaDpJZ27=fAU#vw%1QRL ze&8lF7qUo?_(`nqXq&C)L7>MK6_t=alz9lxLP6Dsy^OO}Gm`^V1Hq0rs=nbvs=1?i z%4XBW8y0OjV6DNHtS#ZqPV0k?`f#(gfdqG|$tWx7yeC_pNx1X)_M5$BLD#a}`lmG@ z&XPi(4cl)8y9d2#u-w(<&)Mvp-Hj5$6_8dH*aV@KV zY5{p)nX9JMm<~OTmB4TY)`%tRRcv-zED*%vJ}~!ULLqa?q8*uAcs`TX-d6U;Nl))l zd`y%Rbi~hDn9{FMjt~uU8(vjJ*a z*H$|Mk&iu9`bQy1W3{G)W070hQDkNrV=P0Nbn)?PtjQ7c8uusH>@WV7qvTal(p5cI+CR=;frsbA)a|M2Ls>8)dyT1*B%@m- zxPo__HpKefL}6~uAT*G1sCJ#1j4W*jtidq)>hnR+?q`55 z@aG3=_Yur)nbdzHOna~J%QgCLI=HlJ0IzVZ<*#5PM0J`=4SyCYfQXYXJ<3L4o zO4JlT;gMYI^{opccvW}gQ}Mecx#<|g$-{Is@7EG)uSTv^MlJa36Nfxj*2qy zmfAdP7tIW{6@s5oM8)$8uA7zSSYu)p#{STo0N*Dmc+j7&R6KKlNN7 zayL+sLktLh`{%tD-yN?ZVbj^q(5ApgZ^arWJG+90d-8BN=Obyxf)t1CC!Dtzj8^DC zI2iWw+g>&R#B4Bl`r=^NYq3MLsC>$wk3jPtkR+q{N+sqHYSzT_M8x~qC^1o3zByQNskyI)%OtO((1J<~?yN1zUof;B zb=#c&LK{ZRz4rUQTO3)opV;C?)P&cusVb?{goBtPtKzuVl-mcV9)5zH9cn)&vPoQg z-t&_V1X*>ha7b_S^&A^2h5V21WL?A@nsf6$n^lIw6p;7ZZ6Pz8XO+Mq!LS9Vx25Ef z-=6zZ<*FA*0}&CR0SFgBVTl>tXOBZzCn@+=CVBG%QPsx{B#Sa}%m@NJxx%3%Xb9s0LD^|&C38{V@{SjhDpo~R)^oj(U*VTIqyrCivZip1 zr6zet)328u9vD1V85`H`D5#j9$e>dR^kqeYh=X%>a2WMMlCtV`(7iu$A?P~gK}q|q zLeZR1&?EVW=vXNe1>z`Xp53^*^Ke^d_SSbB)$AOKmu!lm0-k?cY<>lmGt|E;!tcF5 z?0Myfl&t3$BF(2HV@4i3F?ol+B_vUqyUySX^}Sg}L~t{Xyy`9H%Nap7m)7fdm~Uqr%k89Z5RQKo>SRl-^h+}TPK^~HSbz#; z$x?{iQlfNi-?xSZHEQ9w%=jfDi+s`Z*0*?Vx-jJsnsqgekZhotg@kv{w^jLyf=8))3lG|v_T8oB z@9_}DM{5d>enpE_vLv2*F~Jo9gU2`+x57epf=HoL!xilQRrw4_7H#|;R6;P%1sIvf zI+9cs+phm?@vp@m;bW)FHG{lN@V})*;%&;F-{BefAedB3Sfc=ldY$?FTa*)YprSJM zpY4qV6=Vwd>P)P2K~%zI3ck|x-1NrQ1sP9e@u%J^NN}Hph52GwYAQ|mpiWK&r)aMb z_pF`E!zG9c9kddiyG4nb`FO{;x6^L&)J?ZoE{$(8u zTZ5Edi~0Vo+S22gZ@R;2bk5?xR=}Cy}{S7aT5COBzl}P&daULN@RW6oVwOQtYTff zra`H#+Bq)7G7@U)7H7l+*^Z`1{r zCcm+t`KCdKu_K9thlVsH{>lJ*W9`pz?x$_VW1H2ZSziMhb`8mFUv2rb9E2soJufM- zmIqqO`eXZEbQ;1KVgrx5{h9)X1B(v&$ItPr3|R(F8@Fn1#yApJaqv#ktSTGd0_rl{ zX79W=B%$ApuBSD9v3u3o8!_GEvCcn$fyxt4C#O8D@DVZj7XNfUV{2)$-Ew24 zv2Rdo^}}{QxJ{V=rE^N)*0v{~rQePwHp-Ig(^#ySjt>ppi_dO$ zE53H)u<+lM%nsRhraL=uy|5hT^ObBI?n9|#WOdEfy{bkUT^cOO#dwVeryHpiMj3Po zmk`}W*(V2(-@eNv%WApY6xXb8xRgK2cNu0pO z?So7l(f96?VC?6w%pZDgy||-fi68wK9kt?|WpDtETmv<&G(+hTG3Gva_nPw^hGs7> z2IPxOKNH)Dzj8QQ!8U6l)E?#vroDhZc)41ut5HvXl+^C zM&-wE;$PuU)wE@LzxsV;EjA`^ia1(jE6G)bkj2L3#YoKg*NP{YioL!$viI?f0jCO} zkJncP(kFU9_@;|%rBmrSw@9kET*}0@Gf*v7PZMB7NAkAkSN%SEc>y*L8)qF2K0t}X zf-S`^L-e%Q*v1jWe@t6)4#X-SzbmY%Qz!`%=QCFBUriP8SyCKq6eWXsXHsn(%Se#O zw>f)mKU}NHeRH_U^K}!YFkUa5)yVb>i?yo4Ui)s(Kzk`lykG2zHYbfw>5w5i>R^u*)sW@cUcOu2TQ+}diG7tWBG?~ zO*%dT_7L1K$#|+%wb>hA zRO0KoH!3OgBK#6G5O>?&=AZk5300YWqfRtBXteG_HD+leHJlk1?)q0|Q#Vz+tclU? z#B#g}R-$@dqJd5^Pu9^yZwv;t)hml{R=5Qq55RN*D!AvbweFXY?H>j8qV-A^*>$&$ zkPpVA<`aX@vdHvQL%OWN_53bYVtXw!Dn;0|Of?#f0MA|%T&VEUu4&1hMj zF=pK%9tQI#cr}+cR`A{I34Nu$bbgydEw(PTNOcW3KOdQ#NI08h6Y;6ZZ)_pQ_ql#J zVI2Dn;%TCjRBISO0o zeAU;H^U?={hmGFY6kwQT=*t6ap8I3JBJ`eE)L>rEoQT0FHZ=3Z$*mo%t5mj|H>(*% zCwh9?W~K~l25B6d2lb<9EZ^lVIU zsCNVi6e_JMoF1GqR0@1T9w9qyMS)ZyPE2A>Mdp4bVq>cXd5LGMs71$qWQ2Tm3E=sq zxozlor{VW)eJxRs&-FEtE$_D9&WhHF7Qy)gCkaP6m%Kax`LcU@6UIdckKGgqdC-(C z;aivx^H}u9ANQU<4Tprr6SB#w*KfA6|4vVjW5gTA{#TaxPJ<8OKwWsx!B+VChtaaO zBRvRzCehY^pFXACpq4TDPwpBjL<|fXH;?8h$I4^}(n4?FRu;xS0q)l3VTWhnvnzp; z?VUFF2kc1ev-@Jlgzv$d#IN0}8KV3Bmaca)41R)|+#JKqlG&wSCdiFZp5Ct5>dkrJ z_+{CIyuK^HH(gy5>1!?ra0*c_Si^AV)%eir++aVZPV7s<80!b*yPk&MB4X))>H3E( z-7uo~Z(urQ{g${T2XDH5s!g5dV~ja}%VaWzj=hMa-tTC!g|}a!E*dapZ!WX~%XG23 zMF@FF@txgU726;m0Csgdl?Xt91LV8Z17+Z z|LewdTO94zzxrqX`xI+CQbR!=E7;{<^|7f9m{{RrqnN*Gcymt;ox+NTu(Bb~3uWs` zkF7|Z=+5HdLUY*gdviwtmQ45?1d;CW zr)NCxU6tp0b(c*v^5SE98dO8!`@(&!#VNSA0JbA#c`*M%IQb^uJp-;aL$VcZbv{=L zyJeLH-Uo>XB#$qf$y1IihK4)#&|#LuAYNz(H@+%F=Em?`i@*=m@2m|8pTWnsJ%-5zKM7 zN9HLDa>E)PzUnl215DM6O4ilrT0)_PAJaX=;KESrZ&K#VMM>7MHKwU0+9EY%6qL65 zzPp0Tf=oB}cz*DvpS4!hIC*F1IZ9=ZO7X56*XFweezI)eV?8ih(&H(v0^*L zu>#oP0Ult?T@`4fbrfR2n?f#46tDtp-^P=QZEqX2wX1q%c2iXw2Lm<24}%#dW2xPR zerGV9fm!g^zf8D2N(#Cnb^I-EW33aZw0@Zoi4G^tgMA#RW|8FOgS^XjyU6rw!)y}* zvUINAL!`K=(8iV*+ObavdQ!H$2~PC9O=OYGBhW#RmlLTICrtc$Lp;wz<|;$Q68{MA zGZ>7SL+>(tl&RvOdaO*eP9c>x|6+D`-F;>qoX>!TLfa{&ln~YoAPhm)0nC`FV8+y; zLZPQ6!lCaL&id9Q9b-yh>5XGN(>@|pWOE0jd=$@w-ui-tXq6%Ck=zC89N*XOuiw3p z!vUC?auTSw7*Jr|-rla9Q&$GMiallXT{0d3SP=6`ixE_~;Mjz1BPmVWJo0@W=oD~L z0#BCgGZe6KpZ@rzXn+lS4ZggdPx_VIQTXRRb5r>Z<%xG-i@B?=B?$>3-DzVRvQ(d0 z2!w(j_x#(6dY(M6lK)LSr6m%(g4Y1KNajhl+)*q=h`3wJPz9vP_d zH^{7?fU(uR-X{#4wy5(##A`bs`c-;Roy>2k z8X38RwIo$euXxF@^94j-WR}u_$1tORfRW@SVpT6m12ghA2vRaZEk4}8pWzqJJgX~w zSEN-E{Tb@X|1#)T7hglFguDfF&6`M3TxH`DYgw&P7JRSVrh=>)^u2_OT`n^Av@HE~ zob+`b@fTe=?l>qP%#-ynff1tl);z3lc>&%BrLzdesm@3CyOm$Z&U>Wn^0W=G)zOi& z-b(^lFk(1!zb_hi6-xpxvgOuD=e^PWmh8Hw>kHx>bRM{fP!A;f7czN)Fhlajg3>53 zld;7a7b^z-r$fA^z?=8E9o;W0yXd@GC!y!UsxQx+Pfk611A0?6a?b=Z{g8}T&E+i! z3kyaG*w=A^%{^`OT}B4y;QWA{Z29qTNjUO3?uDR?S3Q?MTY~jCCFA^_fBnRU>=&C` z!21o&G24PNTI~rDi+{(Vm47{t4DEn0Wx%%x(I!6c|XjK z*Qmemew&+o+V-En@~tV3@+AjbELCSL3Dep3uQMn^U>t@NR^%K!8#{m6cJbQ!{F*wt z|2oE$>^#IEKrlM4G5oZ-zK!q&UmgN(8*&>5gIn

ZDpBHXK+wkpwor7uOexljyP# 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\V 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

FmJIhVz;di74^J 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

RqBjnE$w&+4fP#k+bzF5^T6exUlOc=G)L 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 literal 0 HcmV?d00001 diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/Stakeholder.svg b/frontend/src/main/frontend/src/assets/icons/aboutPage/Stakeholder.svg new file mode 100644 index 000000000..af4ac4764 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/aboutPage/Stakeholder.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/Usability.svg b/frontend/src/main/frontend/src/assets/icons/aboutPage/Usability.svg new file mode 100644 index 000000000..98b62bc5d --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/aboutPage/Usability.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/White I Icon.svg b/frontend/src/main/frontend/src/assets/icons/aboutPage/White I Icon.svg new file mode 100644 index 000000000..422d09383 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/aboutPage/White I Icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/docker.png b/frontend/src/main/frontend/src/assets/icons/aboutPage/docker.png new file mode 100644 index 0000000000000000000000000000000000000000..88bd2d7db60fad595e08a1cae37a3ccdd05e0ab2 GIT binary patch literal 18968 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 z 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 literal 0 HcmV?d00001 diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/html-css.png b/frontend/src/main/frontend/src/assets/icons/aboutPage/html-css.png new file mode 100644 index 0000000000000000000000000000000000000000..cab123123ec2316e24c948ef5b6124531db3f68f GIT binary patch literal 99830 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 literal 0 HcmV?d00001 diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/java.png b/frontend/src/main/frontend/src/assets/icons/aboutPage/java.png new file mode 100644 index 0000000000000000000000000000000000000000..1bbf4966005395fc7e42ec5a0f7dad00241b740c GIT binary patch literal 37158 zcmdS9WmsKJ(l)wrcXxLuIBeYA-QC?axO;%$1b26LcXxsWmq3u#%KmgzX06_7h>JmUH zWa?mS1~BdYr~v^3V1R=`!Xf|w)C>TChynm$_67hXlD}^NLI9xuEMOmZVBjBTFmMR) zKLr93;;#Y;2?YfW1qBHM0}BfS1OKlD1Plxe0vrMc5)uXh4h9YZ3Gt&KA^k=4j|=?Y zPyfpI&!_i(017ln0%$ZC2nqlc1q2KQqyo zar&PE4gm%U1qy-;0DKUDLPJ3OAI1;z4<=+3RCHoyK|@wF3@AkwHcSo@(ogJIjtS&s zA1#7_fc8I;RnrXHeB@G;U{xhqUuT=43wlq_C-B{AyS&h%wJz*UJXCyMve?Ruu z`Lj{Um9yA?PF>VDC#JPJ9C^64tj$ac;;~&?CLEFdU&MhZTD9vkf!V%dueF+cR2ny_U8#kY zfmYwW_D5uaPDlo$RtP$ShUpr&Pr#HQeUQ^ePS01MVEjyq8 z2}PX6q2kW|#KnQzp_Vp9LbQfGbFt`?b|>fN*S~0@_I8vJ0%|3bN}2roM!C*8RK0_% zU0N&ox;_1FJZ>zn5I%H%e!YI2sPvFk;0_SIx5w)qLwCV0e)F=?8!4O8dcvxAl77}} zQ_F~p4L{;c8@Out5#KaxtCkwyw^y6ou;kbM_)j@a$G>N&jG846AlZVAdaw_I>e z2NY27fpH(!ZOivBa=v_Yb-_K8iPH_FOf$L^Kp@;pnZ3(4h!n_sWbR!&p# z`%CN_J;=8t|{t#V-I>Te92E=YWO>jF@f}6I~H2*uXU5Ljs9#3jkRglmJVAlLD06HvlKAfg#aNo{z$Uky8p|r809rSmFz&o3GH8J zELPuM{a+$>&sFootL0O9?0VV`joX&(?~DryrtWclS9nzl8-dP)TF0r?J2{@zlpSkc zd>kH0?|=l!B&$%~qLYMB{~zuSkLXQI`u~6q5_vYmLdwKR%3s2WkL3C0-?{5^ow>iW za8!Bj#qssVzV_(2V06oP>hkGhf+FcbKuFh6_DXTo#l$&N`>%OONYw4Ek3g*Z6@JY# zKp_?SUxAt=4H!NCs=B{SW4A40(hH(%kvXb!N(U7a;EgjlvTxWtz+v;4G1|{lY1dDO z*0|L8*FXROtZ$4*o_~2oGyjb|oWbh&{v=<|j@L7@?6Mb>HnLV37qN?UeC5i$Z`29{ zNi)jmd^v6>Yc-mIEM~w;m8MR&tc6OdXkN&i=)0Z2P&%Z1vGR|X_@3c1uj0O8hn{$5LH#oS)V$1Jb!E(!!*t=7gX!$TI)Gb zUhMMxhYtZ!mE~oWKMGD8`^1?hL2A+5S^o=-1dyZm21S~rTPyh8NPV5{z?pFTx@dxC%2;U5{e$|2O{ zKP2C2naKkH4zK0Dtv{H|?Pq$s6Y`Qv75-D`|8ny&!9vHk$5#2#4?GIXIaxoXuZZm7ms>zK6eZxUEqW78q<5|DUGIQ1S5s!juhVRU3#+ z=WYe8%nh+?n)+1UQoj6$~~@OSUSzFsn63nh~P|Lxqt zeeIDXvMqV}8UGvnJD}iFV2AmliO-J%qIiWPzUEIf{d@Uo=rd9@5iXU9*uY2-&_g7k z{}HUWPgB=dJ4cmQI2^0>m$gUR-)FLqb`p%ee+|im;;*U?rMi7+w$Md!5md11zr+9e z-{k@THeH^3#lnZC;tPiZcfZ#>$Fk$8HfCx(b~I+vc5;dQ+4--}Sa%o92WBkdKlCh} zh(7ssWrV652|BJ;*>qtnck{nV{iwTR_hPYZFkCbnsu_!h+KJEI37=u=G2n032OgPB zbPi;?Me_&5`wRXD_WwUt2Yf7&p+6SVAP}JMfcT7tn=9UejLuR{S)O$G2a!!IRCnym zZ8s=a)<@s1d;GPQ_y_*&J`A^UPvTp zG)fwr^cD{Wd=Jbs?wG&H5#5u1EXUKUE#j+;$kWTUM5 zHG)ny)Yy|I5!qMHxPRb9##SYj^fJ87Uo2r`23z@_VtOsJA9kd&KDm zZ}^0y`*}VGJC#uuGhJRbBX!fsfjh=Trq!)D)2MsDbr0A6bZ)~3By7$*B%AR9ucRj7 zxjv_~TCXZZb8;YlGiF@6U^b+1x%?}1Wz7OG$3YXxfvj-zQr>lk0C`x8>dI{lpOY!P zr9LU0V5~7r9pg+mQ=fKEdz5_wn}cb{^ns2_ENOA{HRyiKjlJjC1%ls-a(ZHKt&5X} z_0wrI>8IlqBH6drDIOz_mx`_6PcNRvxe317u9Wno>&pTvpTJvwnVj(8sqAU?dN&(B z!b=}tR6M=RT<=Et3tjsL#b%aTs;^2Wa+%Gkku>Hpm?*_& zw`eT1JNgpM#hIecBb|+j%}WiQ#H!@p8Bbt-663t|;yoG@(>Q&qJTQO|=dk1Un7coK z{_@#CCJnOKt|>OC9lZ_x)WT@O+|^=DHjKQsbsk1MxH46x;*0V-`IFRMo5{B8=m-tcKDD=x)pv(xQ_X!W*}YU&=*G#}6q9|J5>;$He~aHghXjaG z_ls3EH6eV&@Q8{dV9AwHt;!F{s7Ja`t}kwfXuf3%|F9Pa`;@z!Oj)qWV`_dCE$IVoh-d@(^Z=6>5G@%R^9AQE(OoYS6oRL+<1jhF?l zU(L(lqDjZC3l0=C(lC#Lmjl4 zkuE}GM5lua%bHkESH0;@Qn1Zg+cM|k2M(;7(gGB~d9&y8W;S7~>Se<0OW>)V5XTbD zWmUONysWJ2qWa3?br#RXy&3LxkWA6*2G)l8=2$W)`;NQw>W_UwwZkYHPgmWmjTEYn z%>&}$Rc-+L5ms2~jghcUBLphQ#nRBjHL1$SReALvI2tENoHb0KGA9?hPc_X&#uHxI zKIK{!bqz{eF0Zi{m3Ny@0V{)^4TxDdz}t_+(O#iUM;%kochaH_gxQ;$r}^4gFsDrt znWY{ee+K*SYbCq`B)07FvmzXsC2NRD;SIaE6Zo-B&&h)flE8G&K4`X}s#w&Fe8ENhXe?rtxy-_9`O=3C0V>BO&n48ULu8pzS!Eaz2~>BpPQP#Zsb7~)5F#Ew z`w#Dd(K~LALNKMB;C{@!gZS?s#MukgPe z7zxa}N2(YL*~1@bvai-pCboMX$nzhP#CppB@fWVIBi{r+NuC=2HhLsi6{FHtwsn?{ zTHHQpU|jrgM^jJe$^Gt8cETah;MDy|&LlmoFav|&ZpgocxTeX-fpt#ju<2(qk8cGH z7|dI6!w+txyrE2fz34?ww^ZczGz;N4W#>(Q>iDd=u`lA{dhp4N@ycN)YddlyEZ9o~ ze7mL@AYq&%3Gl_?%f>ttm0X<6AvD(c{rH}IJ74ZWUYonW_pfa+^URQ9w)u0MF`cx1 z4c22FJJXda&j1N|2MDd*WO=L<$W>?R9*ur-u)*ILug9Eh@Qn#_*$jz)g*_+qNxJxyz zVp8}Nb;jxeDAmsBrA019UrH&&AGXYP#$eEMX`c*6?W<{Wy1uXG$1!WYaHTT-lDz1@ zqYk|aB!ePk^NbyjCbS{4-rpnVn#H+5Vjc{U?K?JuA>0V>>h2Kg2sO1!-}6F2YGOs! zOcgciq$6`&zkj$BXYpS%CzGegq6uApRPg;~sy9eke* z9W#Sj#*@)~IOD9NWLrt4IY!D(NEeyq=Bu=#W7LuB2%i!=Zf)kEXe}+(lHpS`dd;Mq zt`xJp=&M5?No$9bm{>sckO)sqp^mW0I#E9uc zEJ6p8qm4SEQP2_XX^V~QS{AtLOhe9mYseamu5Fj!8&mE9Nm7iH`&IRsn|*025%XO#I@eND zo#)&v2V$P$X_RQSetivwVh@nn^ClGE670rfuHA|Y6ZB#rW4+}0SAF=u*%taFtbvX@ zZ@8EsbT;UzA(-(9Z;D7pldz`$&RTDOMjyMs|F+<>;YF@ssBw|mI`m93`bnE%@$**9 zy;Nn`b%K_?s8HtynXTVLB2o`4%EP4~|I4Vvju*1NRbu4~!)Oe5l72hl@=|Yv`#cy| zoCt~1YiF~g==~`yIG=hLvb1s#BF_R%!?ZPV1ch6=lrZYLKWl599>v^3D@NpgIieBQ zewZgFzsWf)z<*mQJ*~wx^EFTq4rFA&lbg!;Y zt?W#-DP)DSZlvpPc+KJvl0sjzdxY=L+`M#Z(^@zZ*;TaNh(_3dAoKC}<`EexBGo$m)Fk8+!q(>s`h%7-E*%8L zxY^)V9^3P0gdl`c7|4wlP~i{rS5hRe2x9j*k7 z2lq4R1O$3TvS!o2VAUTZ@4e2G%CV6P(Qi1JNSx%ob z2ukJb990`4cR&2YT(O(eyrlA!P;+aLve;%gR=>E<@q~``Stk$M3YK%00ZJI&j#@=X z%mcInN}}CnTD6UKpX=Uw<}K(ex~TwIMP=|D-9IO zGhgl6fQ}lUew=G-d-Cv{#7T0rGN7zi8KJQ^zqLe0wg=>mqzepwzYu-A2rwMQeFbk1 zf$sBNLM%4Z)=Jkd{O{oKIvR67bRH{kpJTJ;NZ^E6&LAGcB9T@h&efdNcT+B2m)L8_ zl!|TSeh$X24^V^fEfDyD97(gY;sg%ik|PB_>O zkysljFp%(x-=~yAhe}0T((44j4@zUuC>P1pn4}fYh+|PJ8nu6-eR|uREnn&oHr}r zCmbD|29+&dgnodPqQ)1WbcQC(Njy0K@`aZq+}_3sfhF2H+r??s^{)$!*^#KsVgQAt z*10=^fCd)m&K2OBqY3(K>-6W}(ulN7JYfiR`c1AMQ z%Dn=`UpG_f9TfiO;xdis)a#7TY@>ANn7Jzx{hbUrllKtvX%ERWh+kV^7p2>qzJ)k= zO&Q}UEV*8|TPPRvFKL$2azd87=S~HW;Wwy-Ug2|p;sk2q0aEW3G>bf(fZYo3s3NpJ zFlV>$nofk_mTZ-zUp?A4f=0Xw=jXlWq*rkWD$L=R;8Q6|BbF@YQhO9vlOax!G6qV~ z0+-@ZZDH{S_%o_IDk5+Ae7Jk}2zs|jhMWpb?lVo<%!A~~% zunshSv`LaJy80-Z6oc$&NIZph5oKP)u`M?jjd^vx)CqQv9(oeXM4|Huj1XpyvJi1} zo)sCPvc#91qztK#op$B~v0BzmFDY;x_atDDIhSB1h=Sk|9{$I^ovn*poKvmKEMjlq zjHYS{JWl#8-yN1}kz*)b#DL^3k*obeAN>@DOHEN@2)bHI7v9iu#?;u|-RPtSlwuh-##$F1X(+VsbVHX;{!|_>Bv;(|NKPQ5zZGOWxY7 zWe9mM0gc-fwl`4T7Cm(mb>17#ie;jiTYQ9a^&s=ZsvpK>h?A-tYy7BUT)jyUi3La0 zF-7ziE-9sziCVE6a9qyohW>F~O$L5C>cWWV)HmJAeFVk-{b>2)!t?zIAAjQWwpQ#+ zo>;4_2Ra&v5VNA-rd7iEzQ*uqAD%g1ag4K1oRCSPqq9At(%d)?w}b@c_k%3_=-`D# z*iH;@Az|BaFdF;`DcGFPWv6g{)|W^q2~^7>8ICS-h;Dzk_R)+k{zh=Rqt^t!#5+LL z;IAYO_KzeU8~+BJD;MG#Pww}dEo53V&cS;AroID)Y4Nek({{banMF#TeCZW^>8Gkd z!{P8K`@mlhMVQLk`M{fPpmS(t!x_?%A=VnG(VTpQ2J`6?e>h`TN8AFfn_|WMaB@j8 zH-mY@T=SRRI$5JNmc4L&osvz3x}qed&2CAdSJRYjgOZ zUQoj+MDD_iRtZ9rc!EOy9w%(0)qtHWp8}Z-cDG2jpT#1aK*{e;ZVLj7K8lt#4viw; z9THKW6Z;)Bg1`Sc^} zx^Tkrm%sLHOb!+J&`(y{{KlWcsBy8eRwx|Z$mu#LIY%2L@~SR%W;{zd^AMFaEPj7u zg4Te|ZgUcH-qze>-V8^kD{%p5%vcltw#^|nq04Bc8b>uWkjY9S`y+P3ViEm03SS(% z)~-VIbmU!|*XGQz9uxbZr#vDhYZgANffqo|P4JA!gFSXuE%{x5^wmMd5c?OaEB zcMf-PGpqR-bJ{0%d6c1OnB6W2s zWt%ygZV-$Rc{_(b3fAv-j6d3Csfh2$@Is(AmOll$y?85k)Q3*!w5WefA5N|oBw0Gc zmg|MhTx)nB47V716eeD&gV zbLqQ{@g3;f*#i_A__I{o274PmR}&9X=_8-b5y{l-FT-`)kU*28KfI*6+Ue4gZE^)^ zn+`YylWvNaJM~V$n2~;1hOdlJiD8I-)r(F+*@hJM%NqE!?Mwls76%NSmr_2OAJ4}d zv{{DucK}yS`a~5S1@bD+Ii-#*ay9u@0AXX?nG;#0_tFd*gMLDoG%zVQfq}oEVLbjY zXpHS;d~u#+Ikt8^CYz<&!gRVnjxT+02CKgj+K}-?>h|CIrKr2hlAXwL(jhC;ECx zlZVqI3+DKJSHd)6Q51}}4@})v%4BxLCCpmAJsc@%hD8%a9Yf zs2F*>3^=i8V@C&DW81eJT;qr@A&F;A@)YD|%AE$qb$pbK|6H($Pnh@p4ho9@&*OeU zx~o?OOYdHwh-<%1Dw=LWL{*6jFt{NhA)Zz0#d2O8;S2VUk4cJ1f~B{Q$wKBI%=aV2 zvj-Uv7c-i)DZ@!W`V4;X zN3+fhh*ICin_<2nlP3nuVg0?l0fiI*eaq!IA$$iq3w<%eszVLZ!v>d>1`COOgY2q~n84>foO zK873W#N7=gi@rjwNQMsG$Ib)wjP4G5jE5i}F3U_Nf%`-8k7VfxmC&RN&Mn;J>g7v> zcIY2U5Tv4!)aXJ=>vXN1VZs@(rA1=YbSc9mqFaO* zC^~YE-70H(b(b^0JsA*DNXpHeJ(C^u@LI$j-M!|HJW?tUpM@^ra9>KueOqopqe^f~ zwow{*jq2+zbejZDwBCMRPLsgKu^!HBp&AO0_i%i^{nW!3Ni$BHUV#BCdImP?Vm)3Z^pb;r85rw( zhZZ?evLtrIsZFyII5-$SB;tW$#$kiT+eifT=Ldqv{!z zSIjGYZmIs1CU5#ku!5?S_PTGN+@Wcs=s^d&sDg(ybNXO#o$q7XZa-wD7uuRUFI zg3d1r@8W7bvk*Al67!~c;X+9r-DtCL%+V(0C$M1D3rd$w37Qr0+q^`APl;BU(qCGZ z=jStbEzP;E^C)JMxpd^Qht8Q=G-dQY&B!f{sW&`Kqf@(~vaPN^N5XoG^H z6#pa@u8)KE!>mebC_yP0MIFxI(EMbPy@A+;ii$a>7vr=@AUdiCep0D#t@f*5a^^2;KfCS5-GM)6~L71--AIJAu0ZI->)Ttj+oGb1t|F zuS;P{9iMq+l`FQ9nmymA`!{MhI``rE$=@O(-6v`aXUjW9BRR@yTe#6 zOc6-YBbxAsfnSU~JT9od-)K}_^UENlKCMt?vd_*D6%2?bM{bG9xf-|BoL=!#+CEw zRPouGdG-mg-17Z|*abRPst{eW$E&+7O&aS%egz^&UEcnf2WOiAL?#Rg@c>mxMm-DC%M8=sZ)a z%VJGZJ^IDj^RG|rb63t*kNLIoNtf;)D~xo{=^yk9fgV03MMhHwqP~*H`TaVNPz}*e zzK12PZC|F?!ZF<|A)Q@ehd0aR!ze~#WDYK#+wz{cpu|A>9XGI zYrysM$AgSAo~1PZB*B6LeYI(lNOar0oX^lSO~W_7i$|m+8q!d3Cvj#`-Cm?fB>HeQ zGUe%wUey(O`ENY6R7t_&A_2}{*R=_)a|soa=~v>jM>xQ5vX09bsr-|y>;?VIEwo$LI_a!K=#EV!t5+3n1OPm^;zR!=4nf^sb^Gp6|- z9$D?^3U>1((<1Ar+OBEhf0o2{Y`tW%BL*_|%;Iic7Fe@vW@;SAuo|r8!kTKK9hw7o zA~jM2Mq zD%7R|AURK5Ayb&u&?6vOy9TKPw;M@Sw)(@=sm?-DqR( zcgbDnavEF}`T$s8r|Lk^$yok}WMZLg%dRGz*MJIa*)+ED29hzBXMh39m4 z$X0l3#0|Rvn@Vs=8?&2BD-IOwX@<(@*SwKKccUG5G~-Pti6=B$XS3&7jXUaP;#ye7 z;qWNjE}MuZP-IIMm1{I!CZr{BdBeBKut=MWPlKJo7~NgOZz^rcr{n?8D{&8|gH)fc zWHa?T@{gkqV|?!KVT*1Vlft#5PCp<~aybFo=QZGi9#Q^Pt%*>ANhO{m+rBWFQ2ku1 ze_`klQu4~qpu2i$5U%p05?@!WUnOA{Gp%m)=t1aNK}y%G!tS&eHDCP9|bw&~7+SXpjJkUPl?D&tAT0 znoxiD?4XHEtknwp8lLwZ0Qet2P;6}_sPMsJ+rW!sA64349(?h_{$5bESY41_1#{nA zRe*@Fuei0*+^E7>pOFEDT{x-~4uY+Ee*;elWoloScj{=yRkn*^JbwZG6$>;6TB;B z8i>N98jpU^U2Bp-N)h3$6(^o94&xo9koAc}>ip}k%7Y=OukQdxtppAP7gBL9mpz|! z_ygnSga)^b3|8%t1)sK-gt}ySuR@DnMb?6CuC0^?Ka^1G0V7Z(L3PM=QXq)JgIjYe zKg6Jjh5+25)a`? zwYWSqpj-0vqDeue1VhaDCWYxtc_(>R3LUswTUlzwaaRQdf8ya-Y1o zYi{m5vaHVFGkND7RPSsz>ZWiACesWyh%`;3t~Idgle2tBCY>el@X5MVVD{&`Iy-nK ziD)ehe#X7Ybj)+FpjtDb23##wfZU}X>(qTS z5UD>;MSV;#G)oQ+YP!!^NE(M4z`kopJg&x8OgfNiG~e=?wjTm-ZixfOsTBjOuqyhg z;b`$OsP)J--S2%DIN`A8hmFO(#SkyAHiS|uqlG~mMU%M^{_q$)Ke zYwBE>L#ps^{=v#@Nfq*4JP3htVqG5oiGgY>fbHj<#{cMwy|pFbaMBD_CrW?C4Fyjo zvc;vbd)XcJwj^bS(0JX^&g`)?km0mRMKN<cfqtDu zh>2JdmDeVF#zPm^I_3<*(>z{Vqr-iXm5O;_*v~vO{Ib7w3fN{A(xWP{taW+ zHapqHd!y1(kn48Vrw^X$H;eIBDqpr-^IW9kL#?ten@#nVaY4qX3UXN-BzIT8U zYTXB3hkqu^(Rs-}GNI_USqNbF80GekM3?8qP?y*b_r&QmlgOG5Z5e(-VKmLyH0Ik{ zf(7xt%dzjFl90mUS14mHuVr^>46|U+m&_Rg*(EK>c_z`TZSjX$XUfxW;M97pUrbbV z1wwfnTBf;{Vyh35Vgtlna+VD|+ifp0uq8r{g1+(%Z?FF5m@_Bvd)lE47HOy^SD)=e zBxrxBmmj~G4Z8;euWau_e9)oj`9*%$4M%Yovwh`8vz);>UFoyvEthk{l!nFUUIBwr zz&puYowU3s<8hN%n^$0o19&5?aG!EXT6;74QDbFdyC1CSG3Bp?v|#;GPgK10XeuCA zk!fb#v5oT%U^fq2^Gy!4TsO21J6`ArLecQ3w2J9WL>X{AjDT_24YPzyeQr-wGho;+u!Ts0Bz509EL`L$7APp z|1WEgA&!OCBJ$`|GohQxl{K22c#Aw};`Q}<4hNBjsLhr$<50cX>Nm^eUMN(y*XkS&@1O7tG4I>j2QvjcJfO)M@+D^&e-X}TI-|55>QlNgQ?P4 z=N-VRptB2P*y`6Qe$L{>xI!lLY4DSs$}|W;xC+eF#O9c7)whn{D!Y#NuEn09FNsOA z+}4Zl(M5v#ZPT@+_oVbRKskMzxx~$g|C^IGiR8>^do+{rNeOHqV_ki+NdAz$x}HXX z8h_DSrzlBol=O(@Tti%1wQ@-LTmiQRQ$Q%Thj>ULL%!14HYkV~7?#Suusywk>a}&+qT^K% zCt0B8qw7fbdHWUf)7Aj;uPj)eXEAa^mZfN{OI7#2q6n$43Z&m#uM~;*5Q7)Hnlc%N z=lB^@;zP^Y*?lJ3;#kLaOr+dgLWgGu6rytCHJEu!Q`z;Wxfuc$r0`z2F}}apReSpG zwl~gB;fc}W<6s*)8$}Ly2Z$udi`l5CaobTfL>zRAhgt1!dy@rrAjv?;=Ky~b}FVBx&5j5$+?--D5WHPMx`t%wWDo7IUU&gxjfV)Bm9JG!}RPttpsN7 zGs!(jNQBw$*W^;TXSc_dd;)}~znF&}Nn*Rsoz>C=oALN0$r*G=u$kuJ>0-CL1U2n4 z%DU@gos>Ps#(cKSGUEh&;}&=sH7s>WNhoE=8`OPdnaFwV+B45hsKsGxdxJW?d46zr zJY{Cyd{cj#s_W`Dqcp28NEJT&!Yhkb8~vXayZFBf8T1hEM&`YqXNnvH$HxPYHK!LSjPO>@># z4I62;X=)*W5xBzJU)MJ@f&Z2!r7>CVk;4mzZqnuy2xd`*IQQ3Q(8hBbdOdoU-XV2ac1kFK+N1n>u zK6nREmofs6w{*u_w?5%(a@^y6_7BG-5q~T`F4A(7M<^HSz3Wkc*h;JS+EM>~*bC3! z04mN#$aZoWusN1>*V3b-H(-&YZ)1&wBQ#AN#7rhx<>R#tbyHy6H9pk{--%k@;@y?M zG1IRYw_9V^kmq#RfT%rFAHM#Q@~HT1@Wy`LY)g02L3oG};%BOq-M`im~YkPtM~hFUJQ|f@R=%&izlA?X5eLW;?v6K}9tX zRZFn%KYk>d2o-((PIGTQ0C|78zjj;7T|jX0MCbB5v-re3er%hl%D$l4P9~DnEVSio z%;L{2(K*?|vx*o*A@;&62ijv-E=8SDvQDLaPXq(6I2-Y;scK$TOkf#g-L+PepDi7B zHQ5)33a}^Ja|k1fb7+qYF@h(q3r%@KspU(JhEJOWKV*TnG+is^EH~O31C7+h(@n=q zVb}wN0(;gc?w1Q@Dp`YgdOfDk^KfaPY6$?6I8->pzY0-Onzcr8#-$N%RldL#z;bZ&Lp>)^xA>n=z?Cr%iOi zg3Zv10T1!coPt-a0^{~N_D5oy4f=WupV-*t%AvDcf6kphyXoz|y!6xW?oo|pk$d6p zdZhZAs_^qrKVJjWMunbJM|!I_sduo;!S>@Luz1%`6WKbM^&t- zaz$dCuWu*6`3xf?%NL|_D_M_3>r$=9kENe~i~Lz$!8gSv0*lQgHI-|Tl(Ze*Q*aR{^*L!ex%wJM|U%j;))Qk`{_)EX&aISQJ$%GL(B5Z{O7CG3W3n;)<#y%f%oB+1C@>(QJ#2Tg z&`elY^bq;I8A@`njUWp0=0+zt%uU|#YL??3C7h_!sB){l*PN*4CmBkYrkn+Q@U$3v z`7`Zm95`5;K`QYc!-VE@ro^%2evg3$*IQW?7LnDBdUSl_BVFGgJ9ihGysBvWg!RDj zCU4b@@9}x&yt=rX)xKrSqHKtMwuJp0a3J>g{x2Aa0LeRGCLh-cKi>c)_>M_I_N%_} zm&Wm20PkDA+|$j4itE-i%EeQJPvpQa_Naz~Z~l4vsMETLjgyl64>=d;z8LAtJ?XE) zjy`-~gUqxy!yZ^V%S5Hp5HZHOlwBT*w4kY=XHxbXokx-#1ymj$c5)YyCgYF&z;HX>K7 z_&SU)9NJ_V+Ft%~aMBC@ZFD+U=?VR36L@ft+yk2(TXYAdkRH{`xK!s5Td=Y;U5JoZ zRooCO#+!yP6@sos`a9VH63uMgzaXt1j_K?(DWu3_;X?MK=L^Q9KXaH;A@V?K1j=3B z!tIBgX;jzm>1_9h2rpvAZr#6<6(h+UAXqs_NgdmBDN;iq<7lf^U?)3yIphJ5=^=-a zo%(lOxy+N>X6r786qURwUa+RI+V(k_ zJ(B~CA7|H&T#>E4^Kh^v{eFx9b{nKzZ^+u6;^@t1$gdY}%ZW$qJa*EI3Ui|KV^_wD zFTaTm)neFNl?(v6uMu5y!i}qM6oVKx@P_3pNeu}tHpE%I$)RVv*+XoLNMYg8n_EQk z%PDsL9OHM&J~1EsXxRZ+^WZJH2df~r%xwunmK$=~F%5v#lvJ34*zwZ=#7{iFUm$6V z?y@q(O;sz@R58!lFA9C)spyh7+~-n!WVr}Ij&EDAP~g@tk5d$^HWBRnp9?rXH5(80 z8n*F#Af<&5-H1Ecc~ZU7J?v+4xj+p*0c^3Fme^RDZ!uQ{=z^WMw#Fj}6jQrW>WDuAS0BR$Qx;IwBX4)$0PxYbIV)uM}Wu zR6(W_h0!Xh8$S&q`4ND5#w}6T!(4ktJmm4svxY-wf*lm2Z?o`Xt~e-?Lw$CKuK<{> z)_!CAY~G=heI4(l%LmmJqLPOu1+|=QN$9hf#tt~KTPw{MT_ydou5LY#%&aV>B8&gY zlW0=Wr|$DTCy&zqL)~A6$FU?^pm0lSF*7q;%*@Qp%wRFIT1*x*SYWZm%*@QpvY0Kh zEb_0tXXebg-#=%b?#r#0%8C_LnVp$c9Tl}AQWGcZ=hzOOG8Hgv&|@Qy6NUO4C-kHt z1tog>A3)^Sv-x0{XlE)o`Pb1M3gZd_PQ}5B+W987Tg&|8^=k4#yE#d@Ce>?Y3QSb5 z?{xACXtMT_y_V!qUUGJEebSRX&TBMd{A$g1=<|-+2}cYVH7vx-whGl~zm-!-95GT> z6{IBN{N`j570b#R(3#x{p#{j~Gq*znJ~QtL=MEpsvd>vsnPLkO7Vl~Eind6Zi^Ar6 zJ~*B}C3m6iA4}}ti>UL(yUcgV)_n$jwakCwMjm3<&7hnr3M$8BG##s|y~u%g?hAHB zjKHf8Yf1Y}T|E&$8GF0B32om<>cHH^N!Bl&<3CW3?f||93twhg*tus`zQ!F2CZmM z0c9aDZ2R-YVJ{&Z!d_vwGlpi4dKjWYB<*t(g|WBsOE`7dp%0g^!wiX~^4f)P1N*Z_!CPRczeK74Vx%$lXg0@9)QrnuX)wNgW<3k9Bms zT=6JcozXph?#aM$Nx784qVhr>-Um`#EBji4AAe8leEKmC$!jxQLUn;mPS=-_jmqXF zu|=|wVRuVGDH&w*@f{^kMbngOO)vx++|G^xrP}H(9-MpLbDBn5VIT#W5yj1MgBdtg zWMq}%7(n}loddqZdrzzPcOoH#qwajL1xh+oy%Ky zRGnPWBJR>g?|b9KQ27O(>exOe(lOTwM&778CYb9$)*rw-F3`pWY1BK~Dw}^keN<{6 z+g6JDtBk1i3cWHlijYJtHS+M+>1d+4)OR9gsAymUTasAg&XA$2>Q3L~2U}2Hzjak?ZVH++(jd=fLRxjN+=ZJg;Xv9ZSZh$J1bUq6pQD_arvI9>0cQd$R-_1b zg|^ZK07&SeMmtgHDW!Y}CBc5;*Yx$o$GX(!1QePH+Qp0eUBrX2HmB2#P~&CJ z=D_x?;(~9|t9p;3ML4Oz0^2F*8ze6lcmn<7k?hvF?2k{nv)xU_$gIZVfgY$yvFMo% zaUG}i=q^?4Nwq;cU)04$7Pn#a4b~3vcM`oFeiCpg#&Xe__$kkRSN%fyePf=PsZX_7 zqGa+etE<_MxmaX)mwMJN>mIU?!sq)P%^luu^ZEf=ixL|l3ybW5cTK&#p`5{Tnb8q6 zAv*OuZN>l|KSpjg8*ZywFUMzE`dKNsevZt1G+b2Y@}4jYU?|*2tskEXbKPN({SC8G zk;B`W)a=;n$xgno2Wd&qxJ2Tg3YipW+R>tSDAr3T6 zB!uc~BoHC2wJz;4s?c@%(aQe>Tl&d9=orl2FEIIHnU6-X8bU>`W|rP9TE@jAlvKeG zbE;zP(@I~a?b;DB*@Iynv&rfyp-k>9wkf#uoj)n>*Y{aQ6X}JHf{Q#`G?`Szcty_C zP^;=>4Oq7Dldx+oH&KZ~6q?6Ud2Dedk;ZlmVXtbcuOdNC!Q`o^EFqD*!~@{73ES#- znBUa6aeiY&eT8uM(uf9qUS;xrJ(in& zmK4!703#{#dTS(R$osm@T!-^c#7q(#ETJ%*#oF+?Pe!1VmamQS5xv}Q$Z|L$^*B85 z(#R^+tw4*;h&P(WG4vT?Q@xVany9kuJ~vX;N8P2bbMm3!rb$b-;2S4X;z`k)TH5gW zkdzs!0@_bH>uqxZc{ z{fn-Bi!*i?x;TaL*>-3aM!WLl`l9G8`O-sNHXb$sV7yAM*E5VD(e*_-7e8dQclbGv z=y99Ja`Uu-uc=^4a{wEDl?F|?3<`0H?Sqt*do3@Yp(?pYQX~0M@Cr6TCS%tk@^VRvOil{i_=S*L9p0bWWr29j0 zLRtC}e3KKE1r@S5-eqP#VJJ|boAs%~Go_EloMq1NEn9z$w3bpaSrWS0=69v)V)IBc zmnjL)JPp`_>4Kirg~daC|1jf3U~SL12Y}S_UYzKjuBt^Zm%T02(A*_-X-oXs$C|zp z8{`Cn`e`TE0p%A{2+${-$KnfnazACSn_raw}g{Xk4A zefI0xias0ydO1k;6oIAXF5u(d0)l5{fIw> z@>(eO5NkSOA8cGX74CZ$nW`d7x5BWGfwIv^YtUDgI)%qbwo9hRSNulnVGSfMn!JE5 zt11s4mbx$Gqf!dGs4hKK8=_DR*^RmY<--a=Stb?g1UmBaF7_3}Zdk7e25us#yHa8x*4bxCuVHY#L-}XC;zDKpZmO{tmTN$?c_&D) zZ2ELGr^v91tEotwWfjX5LegTM7c|pAG~`ys)ds{GMT=b|=5QH3 zCZtVc1E*9^YA7vz^#=uI=*uC00P09tn**lhg?hPt z>{dJ1nVXNHGRL~0*sxejPusAM{Lx*?ebIVp=vI!R(&@2x*g*WF1T)x;_*L1ri)MEP zrW$^`Re~=m7rB^DK}|>E{MGZ(mj?4xal#16KjV?sS0HV(gY|Yp(C&+^Nn1V4>fY^I zL|;VOWMEPwY>`i1_&oEkJxu~SH{?L94}FoD+Gd0XO#@Dg!`)m?vb21}I<%xu<|&Zn zrnR0nupVZwU#fA-%rG7a17i>vOacTs68g5rYd%9-Lwm*xPWrOw6e(ZARv9V4nAYFk zn5-YgLnsBS(x9C;5Fc1L&7vJ!x;?AfR_8uUK2+1`&*(x+t(Z8QEjXw|Pv0}i+tf*; zEj24%^ORli_NZ^Ry~9%t4Ya_O#!BJU+DEft1`>grY}87`BdJ&OiRIVkqg)Idzox2k zRL^|SkvNkRX##I%ANEdpOW*O3sCqURY9amcmQp-&Y@x7`JLjtdLkAmgIkg|&cna(m zItWbOzSDg2?M^v|VLyD8WqbV7vfEdf^L(49WOr;x>;3f|K(FNAhmje<7@86aEM!c9o&&!AR{G`m4p9{`>w4f)d zoMiPpONK3HjP}v~032A5$hQi2hs4*v29jV6(dH{F1vy?SGh&jc+Tj6HlS;d+hZ`7^ z#$Jccffect4bZxQC3&@en6@7t({-OefGSWW#uf1;N;+mCVWy>d75;i{$a3YfvX5$( zjnPZ-AHae>*K%8K(?{=GRXOeG3SC$ezvMU0<@>0m#mhby6GJ{08w;GX+!TKeuC46K z3HUx0XthND2jB*U*Ds_CZ2<8O$8}unB0v{(xZEme@Hz2R@%6qquuty1GUTDS{s|qf zUvP0VWV>nLQWKt_L9+tcN2lX$5l@rG#i|R(`ADUvd`?!%vr6cfRz~Vkv3HcAsuu8} zFzj5itaxQZH%y0oyG2D2a4Op8U;YH$Wj-@2Z&8V!?>;NETTOea-y?hQtVM8N&D6y7 z2Y}JtuEw;SGVuq{&-Awg5aOSY;*#0Cg7f&ry0RXO$awgU7YXaBk-S+IiV0#cnJ@Y5}Uexp9P=?AbRnPo}O+m|BPZx6ex3 znrpZEv;m<84@265Z(ip$a_ZMiIRWutEoueti?&B+7a2WWrE5j7boG>S{qbB<6AxOA z4hTK&4lbT|fzs*CxB*B4Ww64kL+s1z*Dfy`B)2V&WuI5Hvc;tmJMxwkaQ%MV$M&=C zJ(ACq4gE8)0vMOmX#0q&jHBZ8&)OCG7D|{ZgIJ1+fZjHmA&I{W1 zSX=je-=}FG>wGC7rapa7O=H`MTaJ(18wSZZufmoiSLO9y^VwbUJqh(~?Kkc%=e>No zE!qoMOsxHIc?+gcAp;bg@8h~EM6|-rq2fFW{s5MsC6*g-H&*bO^_9!gedXMX;wL*8 z>-|zVpBM(Wb}i?7s7iXVZv0*Yp#N^6`TW>?OtbUKN`KZ|>1Ah8rmQh8ZXp}EHIUmT zeF@*Io$unfVS9%UNMC^`CMt}CbwiS{p!`8YE_hHiqMPamJZRqVkee+>Tv=n92~ zSg^QDC&bStRYY!cm}_=#?e_PO@D6(+u;+Pfm4wy||F#-NFjPBg!ku~7nqMDd>M$by`^OIN zZwr+EFuvom%hMJ-e1Fu_aa};#cx^ab>uc$GLdGxXXkAguO10#83yU}G$^wOP*_~)8(O8vheF3NUrhyg6>tBl36IJ}gvQkg9 z_U@fEx{F@}*QX%18^RvT8lahF2Qi7aJ6Z1s=uy9ZqA5zcWp}Ym$K5_!TO~bv*v=#^+NU`4J~!sZ>n&)>sl> z#c#XcG^mAH=r`BuZ%uq!g|E%*_RhyexcFH&G(4B+u6cT)yEm$``-L)a^72-nFxNMH z8%J;|&py{e#-(UV*+po3gNrL9vEFOZbL}F)kH|56dZF$&VF;r2W5FgdB6lvmfktCk(tD~J(C*o$a_Z1Q1$sqrPognikhzYaohp(Li zQuCk?L=#~NQU>djlq=wZ>&kJ#FBM6oSA(ymX1C10O-tox$86&Fr-JK`i_fWD7X}3t zx83awK5OyucpV)GG>c4Lt)0PN#qh_CIux?z7jFAi{n9sv>imTa8G3N>Y9BI`$2GSL zKAY*t<+={0S$%a&(`UiCwAt~|M+as%CB{PvW;<1I`JXTK^JI51$BH=wIH`G`7cT~r zwGARl8s&{lZbg(7W8a-sw@&;QSwfz07l7`8(=VhuxF>;I)e~R4=l}+ED1>xeU0p1- z;3Rd?c`UnWH!J9u`bteCGDa|Sv~4{v$~9O1OSOt(SGIN)!}tEXTIiRux|%&ncCb}& zJj!py=rA7O&))RW`CIXEXKu8?yI1D{nUuI#gQpK!eMrNH1KMRTnymuoSf2rZ z0PI5+&{fv!!*UDP#&Sl|zinSW@+Q?Kz9jH4sulbK33M>SI_~v ztOY&{)!D$^YL?TFu{(U$qMmOZDW-deGkUkNcYE9a0_L-_Rj!TfBWSf=YgP3!E7^;- z6nBi=-lcoma}~_+wk%9X?@w#M-t%m;DcCgiQ0jZ}Tut3@*4EwVK&*@W#?HVIESL)7 zhe+1>vD0J@`HASv#zFBRAMbveW--LwF+P6aK$I0GP1w=l_sd z^k4d{7*J^cD*uPQX)ia)e-Qsu1Qrh11^wSJP#Xg9511(bKWG6fk%0dY7yJhlfJ-9q zkHqibq5lbnJi&naTMmbUnanH)U?g$i!6Nw|O`tmXKhCBR_1RtS0o_4a;dBfC4-7ub zy!-b-0YsJhhZyupvgl*?j}77#EbVBVu#)Ay0zh^%MT**|q3s-TsrEA1i2}01ALa z2*N0l%(%TQ|3m?R{PEMczjEc%gTO;cNLTU$XzShmaKh{})48f5>M4mjAPj{|_CcgDoXa5KI zzZL&KQ%3$Dx(dn%U8RWqH!MAh?3g!3HuRa|_&yz)Gj?bWo=bEhJV}<`13GW1E=0uF z`|k_E>B{9?AbVy8Zmb8(WEA z-@%TFaH>#+$8jP50UR-=P-09;FRl}q&J)QB0Jw zZ{hYTOi>Q!lrckQOd{dbmltNmO`{Qhu5R!^1iTT_>VQ(~S_vvoInWJM%+-h3JQ*u$ zQ;VeG6Wbmvrt^)EU4Zxxn&+OzgWecS>{Va}OAx1;x4%eE#&&gzup{k@Cc!N^X0u|e zNX0fW3w}7fkvw{qO=Uztt0k4pX~CTsGs8ocT_>c90U(!b!9W#uydfR0G$$B%0D6Ei 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

h(Wbz|rGd*SK#2faTq|>w66&54}PAS2LsQ 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 literal 0 HcmV?d00001 diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/microprofile.png b/frontend/src/main/frontend/src/assets/icons/aboutPage/microprofile.png new file mode 100644 index 0000000000000000000000000000000000000000..72b3645aa8de6d7ec4a3584e9c88b75f4c538405 GIT binary patch literal 30972 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 QwtzhE>FVdQ&MBb@04iI{1^@s6 literal 0 HcmV?d00001 diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/open-liberty.png b/frontend/src/main/frontend/src/assets/icons/aboutPage/open-liberty.png new file mode 100644 index 0000000000000000000000000000000000000000..0178ae11ee90efe403f6cd9976b0fe695274c818 GIT binary patch literal 58946 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%0D{-jzB>O#D!I47?G+Br9Q@^Q^UW7 z{&gF}J45d&&0DrEEExsv?_MHFZa`E>`Y0J_)$NnJDK$BEJ(=QpIN7G=U^ z%Q+AknR7`MzkT~FVb7ku^5?|jX<9YQa>L@qM0_B@5y3zh-@F^H*TOp+!p*mIsc!r| zxp>05@GZ=i>}my%6I!j1^?DtFIv~Il5Qp5P3nSIj(QkiLvdkUf^RM=Y)+=UP(gqSc zvgQN9@MNzgVE)LF!%BH{ARIcRxZ>}A5+RWSzFp)sD)Lf{td##`|A>T1yeT1he`=kI zTeb4ob4uDks&qwQ6XBz2Yjpo`LaW1V;7vLL{|^N4B}1N?sYH#Vit2#S4j%X>tXVS< zKGXWGP11!~;!Z_0=rBv_2?>r7N~g5n#KR($S?shVH`d#*s2N4;kmZ($7gn$ul_b}u z1OvnmuUpd{dV0F4&I+-hk(_5q&+hF5(f%VGMz;7ic`v9 z%Pnpy4Tfd+EHocB$dT!(#n9?lTs9!JB8wARk!X8cjz9qj*c4KPCQealQl7nIT0v@C zc>T>GC0>B+@Dd~Cf&MFtbYw&!83V2x7zfamQAiVoUm1S2pu`cp9(}qLI_Km01FmaoX`pc+naI(YK;JdgmR2^He(j$rf}l;sqlh~0xxaf zX*uoSFtc>(NXtZ{tz|w@mKylSBs|4qLUssPkR7@->SQ5o3=YfhTN3*FS1Dnq7L#s@ z`SH-Zv4R;=Udp2Ej&6T#4LTXUo}Emd>lMY76TJ`op3{w<}p_vyyZwp{1livoIj{l?Af0 z;Aibj?MkM0mP=?;!_Cif1R4?nhzJP_(n?z_lS4y8VQ_FuIC(}^P)TTz)u{Ac=*ui` zprkPLYAk;T*)iork4Bz3bo?FHTp1QDxGgMRyfAchcF5N(rWvxtoO11Gl;VWeC?nzh za0GHd01`_?ma0QSgVa9w@Z<2l{*E4H1+^3US+bSb3KHXYhz%kn42r~$bLV!3uCA^y zf8P9XQ`e1Q&YX6U9TJ@g(UOa@5H@ZZ#kyvs>&n_Xp=F`s`y7F3jDR`TO2MC|l}1+O zDW8t*9ksTkh+*+;>N+^D17EO+%Zfd(`TeQO7(f{ zgA_@#u2bwB2$6a?4`~gZ9e!$!Qd~l7l#%d$I088!kVuGWrje0|2ZA%bnDk)~8Pi3! ztYwknI5`HAimO4fZbQ_w#X97MVOGxy;qg1i(;g()D8&h_QAWc1;Rxh_K$6Ok!XP95 zARQwf+%HJzqp73x{~|UdIP_>pXz0dtymm=06Is!j_&a-ooNggKLZjj|6G`viSE0(` zk|tG!6WXNU@`D|L#zr6!8swDq83Mzz0;)1GjPGSv3)_|c(Z2EHbTr36den&zTO`Ud z307CY`E@K#XmteNn|1^ofqW5gLdzFVugwu~1nP)@6Iva?_of{IM<8DWoY3;c(`$1C z9DzC_;DlC3@V#kAz!At70VlM4@$}jp0Y{*Y2sokD5qxjj5pV?ZMZgIyUp&1wN5B!N nBLYrnbp+p=b_5)Od=dBy8J)ESEt*2m00000NkvXXu0mjfBaa5E literal 0 HcmV?d00001 diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/product-owners.svg b/frontend/src/main/frontend/src/assets/icons/aboutPage/product-owners.svg new file mode 100644 index 000000000..0228558b7 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/aboutPage/product-owners.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/project-lead.svg b/frontend/src/main/frontend/src/assets/icons/aboutPage/project-lead.svg new file mode 100644 index 000000000..e07ad37f4 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/aboutPage/project-lead.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/react.png b/frontend/src/main/frontend/src/assets/icons/aboutPage/react.png new file mode 100644 index 0000000000000000000000000000000000000000..b5702ea9aee92c737d0fec3d85248d875e74b748 GIT binary patch literal 27290 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 literal 0 HcmV?d00001 diff --git a/frontend/src/main/frontend/src/assets/icons/aboutPage/selenium.png b/frontend/src/main/frontend/src/assets/icons/aboutPage/selenium.png new file mode 100644 index 0000000000000000000000000000000000000000..17e3f1ee69ce634b07f76244c3e18b135dd2ff18 GIT binary patch literal 63358 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 P7X)B#ed^iCOTYaWFzXJX literal 0 HcmV?d00001 diff --git a/frontend/src/main/frontend/src/assets/icons/logo/CPR logo final-01.svg b/frontend/src/main/frontend/src/assets/icons/logo/CPR logo final-01.svg new file mode 100644 index 000000000..3d43aeae9 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/logo/CPR logo final-01.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + diff --git a/frontend/src/main/frontend/src/assets/icons/logo/CPR logo final-02.svg b/frontend/src/main/frontend/src/assets/icons/logo/CPR logo final-02.svg new file mode 100644 index 000000000..d3266d45c --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/logo/CPR logo final-02.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + diff --git a/frontend/src/main/frontend/src/assets/icons/logo/CPR logo final-03.svg b/frontend/src/main/frontend/src/assets/icons/logo/CPR logo final-03.svg new file mode 100644 index 000000000..e9298f27a --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/logo/CPR logo final-03.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + diff --git a/frontend/src/main/frontend/src/assets/icons/navigation/active/Admin.svg b/frontend/src/main/frontend/src/assets/icons/navigation/active/Admin.svg new file mode 100644 index 000000000..a3b20a27a --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/navigation/active/Admin.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/src/main/frontend/src/assets/icons/navigation/active/Arrow_Active.svg b/frontend/src/main/frontend/src/assets/icons/navigation/active/Arrow_Active.svg new file mode 100644 index 000000000..d7efd5cbf --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/navigation/active/Arrow_Active.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/main/frontend/src/assets/icons/navigation/active/Bulk Download.svg b/frontend/src/main/frontend/src/assets/icons/navigation/active/Bulk Download.svg new file mode 100644 index 000000000..8c4a61ca6 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/navigation/active/Bulk Download.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/src/main/frontend/src/assets/icons/navigation/active/Courses.svg b/frontend/src/main/frontend/src/assets/icons/navigation/active/Courses.svg new file mode 100644 index 000000000..571cb3486 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/navigation/active/Courses.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/frontend/src/main/frontend/src/assets/icons/navigation/active/Home.svg b/frontend/src/main/frontend/src/assets/icons/navigation/active/Home.svg new file mode 100644 index 000000000..72cd2e524 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/navigation/active/Home.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/main/frontend/src/assets/icons/navigation/default/Admin.svg b/frontend/src/main/frontend/src/assets/icons/navigation/default/Admin.svg new file mode 100644 index 000000000..4d9f5b500 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/navigation/default/Admin.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/src/main/frontend/src/assets/icons/navigation/default/Arrow_Default.svg b/frontend/src/main/frontend/src/assets/icons/navigation/default/Arrow_Default.svg new file mode 100644 index 000000000..495e7dbf7 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/navigation/default/Arrow_Default.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/main/frontend/src/assets/icons/navigation/default/Bulk Download.svg b/frontend/src/main/frontend/src/assets/icons/navigation/default/Bulk Download.svg new file mode 100644 index 000000000..9017f78e9 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/navigation/default/Bulk Download.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/src/main/frontend/src/assets/icons/navigation/default/Courses.svg b/frontend/src/main/frontend/src/assets/icons/navigation/default/Courses.svg new file mode 100644 index 000000000..871625c76 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/navigation/default/Courses.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/frontend/src/main/frontend/src/assets/icons/navigation/default/Home.svg b/frontend/src/main/frontend/src/assets/icons/navigation/default/Home.svg new file mode 100644 index 000000000..a31759802 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/navigation/default/Home.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/main/frontend/src/assets/icons/navigation/default/Minus_Default.svg b/frontend/src/main/frontend/src/assets/icons/navigation/default/Minus_Default.svg new file mode 100644 index 000000000..f35b935a0 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/navigation/default/Minus_Default.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/src/main/frontend/src/assets/icons/navigation/default/Plus_Default.svg b/frontend/src/main/frontend/src/assets/icons/navigation/default/Plus_Default.svg new file mode 100644 index 000000000..edbd8b530 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/navigation/default/Plus_Default.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/main/frontend/src/assets/icons/navigation/default/white_bulk_download.svg b/frontend/src/main/frontend/src/assets/icons/navigation/default/white_bulk_download.svg new file mode 100644 index 000000000..18dc0d6e5 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/icons/navigation/default/white_bulk_download.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/src/main/frontend/src/assets/loading.gif b/frontend/src/main/frontend/src/assets/loading.gif new file mode 100755 index 0000000000000000000000000000000000000000..4301102d388d81223c1a69f051220a4bd8178231 GIT binary patch literal 40957 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%0AJ5_1O&yUnDdu5+s*)|Wxw`cEN09dVas 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

@(YFv43kR-T^It44$c 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 P&?Vqncwd}qdT{>-iX + +Requesting Assistance.

Mark Abbe
This is my js code: +import { useEffect, useState } from 'react'; +import '../TeacherPages/styles/ProfessorCourseStyle.css'; +import SidebarComponent from '../../components/SidebarComponent'; +import { useParams } from 'react-router-dom'; +import { useDispatch, useSelector } from 'react-redux'; +import { getCourseDetailsAsync } from '../../redux/features/courseSlice'; +import GradeAssBarComponent from '../../components/GradeAssBarComponent'; +import ProfessorAllSubmissionsComponent from '../../components/ProfessorComponents/AssignmentPage/ProfessorAllSubmissionsComponent'; +import ProfessorEditAssignmentComponent from '../../components/ProfessorComponents/AssignmentPage/ProfessorEditAssignmentComponent'; +import { getAssignmentDetailsAsync } from '../../redux/features/assignmentSlice'; +import Loader from '../../components/LoaderComponenets/Loader'; +import uuid from 'react-uuid'; +import UserList from './UserList'; + +function AdminInterface() { + const [userList, setUserList] = useState([ + { id: uuid(), name: 'John Doe', role: 'Admin' }, + { id: uuid(), name: 'Jane Smith', role: 'Teacher' }, + { id: uuid(), name: 'Bob Johnson', role: 'Student' }, + // Add more users here + ]); + + return ( + <div className='admin-container'> + <div className='sidebar'> + <h1>Admin</h1> + </div> + <div className='user-roles'> + <h2>User Roles</h2> + <button className='add-user-button'>Add User +</button> + <UserList userList={userList} /> + </div> + </div> + ); +} + +export default AdminInterface; + +And: +import React from 'react'; + +function UserList({ userList }) { + return ( + <div className='user-list'> + <div className='user-item header'> + <div>Name</div> + <div>Laker Net ID</div> + <div>Role</div> + </div> + {userList.map((user) => ( + <div key={user.id} className='user-item'> + <div>{user.name}</div> + <div>{user.netID}</div> + <div>{user.role}</div> + </div> + ))} + </div> + ); + } + +export default UserList; + +And this is my css: +.admin-container{ + margin: auto; + display: flex; + align-items: center; + justify-content: center; + height: 100vh; + width: 80%; +} + +.sidebar{ + position: relative; + border-top-left-radius: 10px; + border-bottom-left-radius: 10px; + flex: 1; + height: 75%; + background-color: #d4eefc; +} + +.user-roles{ + position: relative; + flex: 3; + height: 75%; + border-top-right-radius: 10px; + border-bottom-right-radius: 10px; + background-color: #fafdff; +} + +.user-roles h2 { + position: absolute; + top: 40px; + left: 40px; + margin: 0; +} + +.sidebar h1 { + position: absolute; + top: 40px; + left: 40px; + margin: 0; +} + +.add-user-button { + position: absolute; + top: 40px; + right: 40px; + background-color: #28A745; + color: #fff; + border-radius: 5px; + padding: 10px 40px; + font-size: 1.2em; +} + +.user-list { + position: absolute; + top: 80px; /* Adjust the top value to match your design */ + left: 0; + right: 0; + bottom: 0; + overflow-y: scroll; + height: calc(100% - 80px); + padding: 80px 40px; + margin: 0 auto; + max-width: 1200px; /* or any desired value */ + max-height: 1200px; +} + +.user-item { + display: flex; + align-items: center; + justify-content: space-between; + padding: 10px; + border-bottom: 1px solid #ddd; +} + +.header { + background-color: #4a7dfc; + color: white; +}
Mark Abbe
I added more users to the list, and the list now runs off the page of the user-roles div. I want the list to fit in the div: +import { useEffect, useState } from 'react'; +import '../TeacherPages/styles/ProfessorCourseStyle.css'; +import SidebarComponent from '../../components/SidebarComponent'; +import { useParams } from 'react-router-dom'; +import { useDispatch, useSelector } from 'react-redux'; +import { getCourseDetailsAsync } from '../../redux/features/courseSlice'; +import GradeAssBarComponent from '../../components/GradeAssBarComponent'; +import ProfessorAllSubmissionsComponent from '../../components/ProfessorComponents/AssignmentPage/ProfessorAllSubmissionsComponent'; +import ProfessorEditAssignmentComponent from '../../components/ProfessorComponents/AssignmentPage/ProfessorEditAssignmentComponent'; +import { getAssignmentDetailsAsync } from '../../redux/features/assignmentSlice'; +import Loader from '../../components/LoaderComponenets/Loader'; +import uuid from 'react-uuid'; +import UserList from './UserList'; + +function AdminInterface() { + const [userList, setUserList] = useState([ + { id: uuid(), name: 'John Doe', role: 'Admin' }, + { id: uuid(), name: 'Jane Smith', role: 'Teacher' }, + { id: uuid(), name: 'Bob Johnson', role: 'Student' }, + { id: uuid(), name: 'Bob Johnson', role: 'Student' }, + { id: uuid(), name: 'Bob Johnson', role: 'Student' }, + { id: uuid(), name: 'Bob Johnson', role: 'Student' }, + { id: uuid(), name: 'Bob Johnson', role: 'Student' }, + { id: uuid(), name: 'Bob Johnson', role: 'Student' }, + { id: uuid(), name: 'Bob Johnson', role: 'Student' }, + { id: uuid(), name: 'Bob Johnson', role: 'Student' }, + { id: uuid(), name: 'Bob Johnson', role: 'Student' }, + { id: uuid(), name: 'Bob Johnson', role: 'Student' }, + { id: uuid(), name: 'Bob Johnson', role: 'Student' }, + // Add more users here + ]); + + return ( + <div className='admin-container'> + <div className='sidebar'> + <h1>Admin</h1> + </div> + <div className='user-roles'> + <h2>User Roles</h2> + <button className='add-user-button'>Add User +</button> + <UserList userList={userList} /> + </div> + </div> + ); +} + +export default AdminInterface; +
ChatGPT Feb 13 Version. + Free Research Preview. Our goal is to make AI systems more natural and +safe to interact with. Your feedback will help us improve.
\ No newline at end of file diff --git a/frontend/src/main/frontend/src/assets/rr_files/14-c10b8a9e6cb760e9.js b/frontend/src/main/frontend/src/assets/rr_files/14-c10b8a9e6cb760e9.js new file mode 100755 index 000000000..3b32a943a --- /dev/null +++ b/frontend/src/main/frontend/src/assets/rr_files/14-c10b8a9e6cb760e9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[14],{86885:function(e,n,t){t.d(n,{Z:function(){return g}});var r=t(61706),a=t(45813),s=t(35250),o=t(61432),i=t(70079),c=t(48240),l=t(12762),u=t(98943),d=t(33264),f=t(66285),p=t(74516),v=t(35e3),m=t(69858),h=t(77507);function g(e){var n=e.isOpen,t=e.onClose,g=(0,i.useRef)(null),x=(0,l.WS)(),b=(0,i.useState)(!1),y=b[0],w=b[1],j=(0,o.useRouter)(),P=(0,i.useCallback)(function(){x(u.s6.closeAccountPaymentModal),t()},[t,x]),k=(0,i.useCallback)((0,r.Z)(function(){var e;return(0,a.__generator)(this,function(n){switch(n.label){case 0:w(!0),x(u.s6.clickAccountPaymentCheckout),n.label=1;case 1:return n.trys.push([1,3,4,5]),[4,d.ZP.submitCheckoutForm()];case 2:return e=n.sent(),j.push(e.url),[3,5];case 3:return n.sent(),p.m.warning("The payments page encountered an error. Please try again. If the problem continues, please email support@openai.com.",{hasCloseButton:!0}),[3,5];case 4:return w(!1),[7];case 5:return[2]}})}),[j,x,w]),Z=(0,i.useCallback)((0,r.Z)(function(){var e;return(0,a.__generator)(this,function(n){switch(n.label){case 0:w(!0),x(u.s6.clickAccountCustomerPortal),n.label=1;case 1:return n.trys.push([1,3,4,5]),[4,d.ZP.fetchCustomerPortalUrl()];case 2:return e=n.sent(),j.push(e.url),[3,5];case 3:return n.sent(),p.m.warning("The account management page encountered an error. Please try again. If the problem continues, please email support@openai.com.",{hasCloseButton:!0}),[3,5];case 4:return w(!1),[7];case 5:return[2]}})}),[j,x,w]),S=(0,f.mA)(function(e){var n;return null===(n=e.accountPlan)||void 0===n?void 0:n.hasCustomerObject});return(0,s.jsxs)(v.x,{isOpen:n,onClose:t,focusRef:g,children:[(0,s.jsxs)("div",{className:"flex w-full flex-row items-center justify-between border-b py-3 px-4 dark:border-gray-700",children:[(0,s.jsx)("span",{className:"text-base font-semibold sm:text-base",children:"Your Account"}),(0,s.jsx)("button",{className:"text-gray-700 opacity-50 transition hover:opacity-75 dark:text-white",onClick:P,children:(0,s.jsx)(c.q5L,{className:"h-6 w-6"})})]}),(0,s.jsxs)("div",{className:"grid sm:grid-cols-2",children:[(0,s.jsx)("div",{className:"relative order-2 col-span-1 border-t border-r-0 dark:border-gray-700 sm:order-1 sm:border-t-0 sm:border-r",children:(0,s.jsx)(m.Oi,{rowElements:[(0,s.jsx)(m.Cu,{text:"Free Plan"},"row-free-plan-name"),(0,s.jsx)(m.hi,{variant:"disabled",disabled:!0,text:h.S.free.callToAction.active},"row-free-plan-button"),(0,s.jsx)(m.G,{variant:"secondary",text:h.S.free.demandAccess},"row-free-plan-demand"),(0,s.jsx)(m.G,{variant:"secondary",text:h.S.free.responseSpeed},"row-free-plan-speed"),(0,s.jsx)(m.G,{className:"sm:pb-2",variant:"secondary",text:h.S.free.modelFeatures},"row-free-plan-updates"),]})}),(0,s.jsx)("div",{className:"relative order-1 col-span-1 sm:order-2",children:(0,s.jsx)(m.Oi,{rowElements:[(0,s.jsx)(m.Cu,{text:h.S.plus.name,children:(0,s.jsx)("span",{className:"font-semibold text-gray-500",children:h.S.plus.costInDollars})},"row-plus-plan-title"),(0,s.jsx)(m.hi,{variant:"primary",disabled:y,isLoading:y,ref:g,onClick:k,text:h.S.plus.callToAction.inactivePayment},"row-plus-plan-button"),(0,s.jsx)(m.G,{variant:"primary",text:h.S.plus.demandAccess},"row-plus-plan-demand"),(0,s.jsx)(m.G,{variant:"primary",text:h.S.plus.responseSpeed},"row-plus-plan-speed"),(0,s.jsx)(m.G,{className:"sm:pb-2",variant:"primary",text:h.S.plus.modelFeatures},"row-plus-plan-updates"),S&&(0,s.jsx)(m.nR,{className:"sm:pb-1",isLoading:y,text:h.S.manageSubscription.callToAction,onClick:Z},"row-plus-plan-manage"),]})})]})]})}},35e3:function(e,n,t){t.d(n,{x:function(){return c}});var r=t(14806),a=t(35250),s=t(34303),o=t(73925);function i(){var e=(0,r.Z)(["flex grow items-center justify-center bg-white dark:bg-gray-900 rounded-md flex flex-col items-start overflow-hidden border shadow-md dark:border-gray-700"]);return i=function(){return e},e}var c=function(e){var n=e.children,t=e.isOpen,r=e.onClose,s=e.focusRef;return(0,a.jsx)(o.Z,{size:"fullscreen",isOpen:t,onModalClose:r,type:"success",title:"",className:"bg-transparent dark:bg-transparent",initialFocusRef:s,children:(0,a.jsx)("div",{className:"flex h-full flex-col items-center justify-start",children:(0,a.jsx)("div",{className:"relative",children:(0,a.jsx)(l,{children:n})})})})},l=s.Z.div(i())},69858:function(e,n,t){t.d(n,{Cu:function(){return v},G:function(){return g},Oi:function(){return p},hi:function(){return h},nR:function(){return x}});var r=t(14806),a=t(35250),s=t(19841),o=t(48240),i=t(34303),c=t(39690),l=t(79876);function u(){var e=(0,r.Z)(["p-4 flex flex-col gap-3 bg-white z-20 relative dark:bg-gray-900"]);return u=function(){return e},e}function d(){var e=(0,r.Z)(["gap-2 flex flex-row justify-start items-center text-sm"]);return d=function(){return e},e}function f(){var e=(0,r.Z)(["text-xl font-semibold justify-between items-center flex"]);return f=function(){return e},e}var p=function(e){var n=e.rowElements;return(0,a.jsx)(b,{children:n.map(function(e){return e})})},v=function(e){var n=e.className,t=e.text,r=e.children;return(0,a.jsxs)(w,{className:n,children:[(0,a.jsx)("span",{children:t}),r]})},m={"primary-disabled":"border-none bg-gray-200 py-3 font-semibold hover:bg-gray-200",primary:"border-none py-3 font-semibold",disabled:"dark:text-gray-white border-none bg-gray-300 py-3 font-semibold text-gray-800 hover:bg-gray-300 dark:bg-gray-500 dark:opacity-100"},h=function(e){var n=e.isLoading,t=e.disabled,r=e.onClick,i=(e.className,e.variant),u=void 0===i?"primary":i,d=e.text,f=e.ref;return(0,a.jsxs)(c.z,{disabled:void 0!==t&&t,onClick:r,openNewTab:!0,ref:f,as:"button",className:(0,s.Z)(m[u]),children:[(0,a.jsx)("span",{className:(0,s.Z)({"text-gray-700":"primary-disabled"===u,"text-white":"primary"===u}),children:d}),void 0!==n&&n&&(0,a.jsx)(l.ZP,{className:"animate-spin",icon:o.dAq})]})},g=function(e){var n=e.variant,t=void 0===n?"primary":n,r=e.className,i=e.text;return(0,a.jsxs)(y,{className:r,children:[(0,a.jsx)(l.ZP,{icon:o._rq,className:(0,s.Z)("h-5 w-5",{"text-green-700":"primary"==t,"text-gray-400":"secondary"==t})}),(0,a.jsx)("span",{children:i})]})},x=function(e){var n=e.className,t=e.text,r=e.isLoading,s=e.onClick;return(0,a.jsx)(y,{className:n,children:(0,a.jsxs)("button",{onClick:s,className:"flex flex-row items-center space-x-1 underline",children:[(0,a.jsx)("span",{children:t}),r&&(0,a.jsx)(l.ZP,{className:"animate-spin",icon:o.dAq})]})})},b=i.Z.div(u()),y=i.Z.div(d()),w=i.Z.div(f())},77507:function(e,n,t){t.d(n,{S:function(){return r}});var r={free:{name:"Free Plan",callToAction:{active:"Your Current Plan",inactive:"Your Current Plan"},costInDollars:"",demandAccess:"Available when demand is low",responseSpeed:"Standard response speed",modelFeatures:"Regular model updates"},plus:{name:"ChatGPT Plus",callToAction:{active:"Your current plan",inactive:"I'm Interested",inactivePayment:"Upgrade plan"},costInDollars:"USD $20/mo",demandAccess:"Available even when demand is high",responseSpeed:"Faster response speed",modelFeatures:"Priority access to new features"},manageSubscription:{callToAction:"Manage my subscription"}}},85087:function(e,n,t){t.d(n,{Z:function(){return l}});var r=t(87762),a=t(70079),s=t(82018),o=t(33264),i=t(66285),c=t(27252);function l(){var e=(0,s.kP)(),n=e.session,t=e.loading,l=(0,i.mA)(function(e){return e.hasBeenSet}),u=(0,c.g)(function(e){return e.updateFlagValue}),d=(0,r.a)(["account-status"],function(){return o.ZP.getAccountStatus(null==n?void 0:n.accessToken)},{enabled:!t&&Boolean(null==n?void 0:n.accessToken),onError:function(){console.error("Unable to load account")},onSuccess:function(e){var n;v(e),u("highlightPlusUpgrade",!(null===(n=e.account_plan)||void 0===n?void 0:n.is_paid_subscription_active))}}),f=d.data,p=d.isLoading,v=(0,i.mA)(function(e){return{accountPlan:e.accountPlan,updateAccountPlanWithResponse:e.updateAccountPlanWithResponse}}).updateAccountPlanWithResponse;return(0,a.useMemo)(function(){return{accountStatusResponse:f,isLoading:!l&&p}},[f,l,p])}},49690:function(e,n,t){t.d(n,{Z:function(){return u}});var r=t(27215),a=t(70079),s=t(12762),o=t(98943),i=t(82018),c=t(33264),l=t(66285);function u(e,n,t,u,d){var f=!(arguments.length>5)||void 0===arguments[5]||arguments[5],p=(0,l.mA)(function(e){return e.features}),v=(0,i.kP)().session,m=(0,s.WS)(t);(0,a.useEffect)(function(){f&&(p&&n.id&&s.ZP.setUser(n,p,u,d),m(o.s6.pageLoad))},[p,n.id,f]),(0,a.useEffect)(function(){if(f){var e,t,a,s,o;n.id&&(null==v?void 0:null===(e=v.user)||void 0===e?void 0:e.id)&&n.id!==(null==v?void 0:null===(t=v.user)||void 0===t?void 0:t.id)&&c.ZP.setLog("Mismatched user ids: ".concat(null==v?void 0:null===(a=v.user)||void 0===a?void 0:a.id," -> ").concat(n.id)),(null==v?void 0:v.accessToken)?c.ZP.setAccessToken(v.accessToken):!v||(null==v?void 0:v.error)||(null===r.default||void 0===r.default||r.default.captureMessage("Missing access token for User: ".concat(null==v?void 0:null===(s=v.user)||void 0===s?void 0:s.id," (").concat(null==v?void 0:v.accessToken,")")),c.ZP.setLog("Missing access token for User: ".concat(null==v?void 0:null===(o=v.user)||void 0===o?void 0:o.id," (").concat(null==v?void 0:v.accessToken,")"))),(null==v?void 0:v.error)==="RefreshAccessTokenError"&&(null===r.default||void 0===r.default||r.default.captureException(v.error),c.ZP.setLog("Refresh access token error: ".concat(JSON.stringify(v.error))),window._oaiHandleSessionExpired("page load",v.error))}},[f,v,n.id]),(0,a.useEffect)(function(){document.title=e},[e])}},66285:function(e,n,t){t.d(n,{hz:function(){return u},mA:function(){return c},nR:function(){return l}});var r=t(31501),a=t(61079),s=t(70079),o=t(59268),i={lastUpdated:Date.now(),hasBeenSet:!1},c=(0,o.ZP)()(function(e){return(0,a.Z)((0,r.Z)({},i),{updateAccountPlanWithResponse:function(n){var t,r,a,s,o;e({accountPlan:{hasPaidSubscription:(null==n?void 0:null===(t=n.account_plan)||void 0===t?void 0:t.is_paid_subscription_active)||!1,subscriptionPlan:(null==n?void 0:null===(r=n.account_plan)||void 0===r?void 0:r.subscription_plan)||"chatgptplusfreeplan",accountUserRole:(null==n?void 0:null===(a=n.account_plan)||void 0===a?void 0:a.account_user_role)||"account-owner",wasPaidCustomer:(null==n?void 0:null===(s=n.account_plan)||void 0===s?void 0:s.was_paid_customer)||!1,hasCustomerObject:(null==n?void 0:null===(o=n.account_plan)||void 0===o?void 0:o.has_customer_object)||!1},features:(null==n?void 0:n.features)||[],hasBeenSet:!0})}})}),l=function(){return c(function(e){var n;return null===(n=e.accountPlan)||void 0===n?void 0:n.hasPaidSubscription})},u=function(){var e=c(function(e){return e.features});return(0,s.useMemo)(function(){return new Set(e)},[e])}},27252:function(e,n,t){t.d(n,{g:function(){return c}});var r=t(33861),a=t(31501),s=t(61079),o=t(59268),i={flags:{isUserInCanPayGroup:!1,highlightPlusUpgrade:!1,failwhaleBypassEnabled:!1}},c=(0,o.ZP)()(function(e,n){return(0,s.Z)((0,a.Z)({},i),{updateFlagValue:function(t,o){var i=n().flags;e({flags:(0,s.Z)((0,a.Z)({},i),(0,r.Z)({},t,o))})}})})},82018:function(e,n,t){t.d(n,{kP:function(){return f},w7:function(){return l}});var r=t(61706),a=t(31501),s=t(45813),o=t(87762),i=t(44928),c=t(61432);function l(e){(0,i.signOut)((0,a.Z)({callbackUrl:window.location.origin+"/api/auth/logout"},e))}function u(){return d.apply(this,arguments)}function d(){return(d=(0,r.Z)(function(){var e,n;return(0,s.__generator)(this,function(e){switch(e.label){case 0:return[4,fetch("/api/auth/session")];case 1:return[4,e.sent().json()];case 2:if(Object.keys(n=e.sent()).length)return[2,n];return[2,null]}})})).apply(this,arguments)}function f(e){var n=e||{},t=n.required,r=n.redirectTo,a=n.queryConfig,s=(0,c.useRouter)(),i=(0,o.a)(["session"],u,{onSettled:function(e,n){(null==a?void 0:a.onSettled)&&(null==a||a.onSettled(e,n)),!e&&t&&s.push(r)}});return{session:(null==i?void 0:i.data)||null,loading:(null==i?void 0:i.status)==="loading"}}}}]); \ No newline at end of file diff --git a/frontend/src/main/frontend/src/assets/rr_files/174-bd28069f281ef76f.js b/frontend/src/main/frontend/src/assets/rr_files/174-bd28069f281ef76f.js new file mode 100755 index 000000000..693862175 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/rr_files/174-bd28069f281ef76f.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[174],{63561:function(e,t){"use strict";t.Z=function(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}},68561:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(63561).Z,o=i(95781).Z,a=i(89478).Z;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,i,l=e.src,c=e.sizes,h=e.unoptimized,p=void 0!==h&&h,w=e.priority,k=void 0!==w&&w,E=e.loading,I=e.lazyRoot,R=e.lazyBoundary,_=e.className,L=e.quality,q=e.width,C=e.height,O=e.style,N=e.objectFit,P=e.objectPosition,W=e.onLoadingComplete,B=e.placeholder,M=void 0===B?"empty":B,Z=e.blurDataURL,D=s(e,["src","sizes","unoptimized","priority","loading","lazyRoot","lazyBoundary","className","quality","width","height","style","objectFit","objectPosition","onLoadingComplete","placeholder","blurDataURL"]),U=d.useContext(m.ImageConfigContext),V=d.useMemo(function(){var e=y||U||f.imageConfigDefault,t=a(e.deviceSizes).concat(a(e.imageSizes)).sort(function(e,t){return e-t}),i=e.deviceSizes.sort(function(e,t){return e-t});return r({},e,{allSizes:t,deviceSizes:i})},[U]),F=c?"responsive":"intrinsic";"layout"in D&&(D.layout&&(F=D.layout),delete D.layout);var H=x;if("loader"in D){if(D.loader){var G=D.loader;H=function(e){e.config;var t=s(e,["config"]);return G(t)}}delete D.loader}var T="";if(function(e){var t;return"object"==typeof e&&(z(e)||void 0!==e.src)}(l)){var J=z(l)?l.default:l;if(!J.src)throw Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ".concat(JSON.stringify(J)));if(Z=Z||J.blurDataURL,T=J.src,(!F||"fill"!==F)&&(C=C||J.height,q=q||J.width,!J.height||!J.width))throw Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ".concat(JSON.stringify(J)))}l="string"==typeof l?l:T;var Q=!k&&("lazy"===E||void 0===E);(l.startsWith("data:")||l.startsWith("blob:"))&&(p=!0,Q=!1),b.has(l)&&(Q=!1),V.unoptimized&&(p=!0);var K=o(d.useState(!1),2),X=K[0],Y=K[1],$=o(g.useIntersection({rootRef:void 0===I?null:I,rootMargin:R||"200px",disabled:!Q}),3),ee=$[0],et=$[1],ei=$[2],en=!Q||et,eo={boxSizing:"border-box",display:"block",overflow:"hidden",width:"initial",height:"initial",background:"none",opacity:1,border:0,margin:0,padding:0},ea={boxSizing:"border-box",display:"block",width:"initial",height:"initial",background:"none",opacity:1,border:0,margin:0,padding:0},er=!1,el=A(q),ec=A(C),es=A(L),ed=Object.assign({},O,{position:"absolute",top:0,left:0,bottom:0,right:0,boxSizing:"border-box",padding:0,border:"none",margin:"auto",display:"block",width:0,height:0,minWidth:"100%",maxWidth:"100%",minHeight:"100%",maxHeight:"100%",objectFit:N,objectPosition:P}),eu="blur"!==M||X?{}:{backgroundSize:N||"cover",backgroundPosition:P||"0% 0%",filter:"blur(20px)",backgroundImage:'url("'.concat(Z,'")')};if("fill"===F)eo.display="block",eo.position="absolute",eo.top=0,eo.left=0,eo.bottom=0,eo.right=0;else if(void 0!==el&&void 0!==ec){var ef=ec/el,eg=isNaN(ef)?"100%":"".concat(100*ef,"%");"responsive"===F?(eo.display="block",eo.position="relative",er=!0,ea.paddingTop=eg):"intrinsic"===F?(eo.display="inline-block",eo.position="relative",eo.maxWidth="100%",er=!0,ea.maxWidth="100%",t="data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27".concat(el,"%27%20height=%27").concat(ec,"%27/%3e")):"fixed"===F&&(eo.display="inline-block",eo.position="relative",eo.width=el,eo.height=ec)}var em={src:v,srcSet:void 0,sizes:void 0};en&&(em=S({config:V,src:l,unoptimized:p,layout:F,width:el,quality:es,sizes:c,loader:H}));var eh=l,ep="imagesizes";ep="imageSizes";var ey=(n(i={},"imageSrcSet",em.srcSet),n(i,ep,em.sizes),n(i,"crossOrigin",D.crossOrigin),i),eb=d.default.useLayoutEffect,ev=d.useRef(W),ew=d.useRef(l);d.useEffect(function(){ev.current=W},[W]),eb(function(){ew.current!==l&&(ei(),ew.current=l)},[ei,l]);var ez=r({isLazy:Q,imgAttributes:em,heightInt:ec,widthInt:el,qualityInt:es,layout:F,className:_,imgStyle:ed,blurStyle:eu,loading:E,config:V,unoptimized:p,placeholder:M,loader:H,srcString:eh,onLoadingCompleteRef:ev,setBlurComplete:Y,setIntersection:ee,isVisible:en,noscriptSizes:c},D);return d.default.createElement(d.default.Fragment,null,d.default.createElement("span",{style:eo},er?d.default.createElement("span",{style:ea},t?d.default.createElement("img",{style:{display:"block",maxWidth:"100%",width:"initial",height:"initial",background:"none",opacity:1,border:0,margin:0,padding:0},alt:"","aria-hidden":!0,src:t}):null):null,d.default.createElement(j,Object.assign({},ez))),k?d.default.createElement(u.default,null,d.default.createElement("link",Object.assign({key:"__nimg-"+em.src+em.srcSet+em.sizes,rel:"preload",as:"image",href:em.srcSet?void 0:em.src},ey))):null)};var r=i(17858).Z,l=i(16922).Z,c=i(86905).Z,s=i(31080).Z,d=c(i(70079)),u=l(i(76109)),f=i(60239),g=i(26790),m=i(94136);i(13279);var h=i(5189);function p(e){return"/"===e[0]?e.slice(1):e}var y={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1},b=new Set,v="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",w=new Map([["default",function(e){var t=e.config,i=e.src,n=e.width,o=e.quality;return i.endsWith(".svg")&&!t.dangerouslyAllowSVG?i:"".concat(h.normalizePathTrailingSlash(t.path),"?url=").concat(encodeURIComponent(i),"&w=").concat(n,"&q=").concat(o||75)}],["imgix",function(e){var t=e.config,i=e.src,n=e.width,o=e.quality,a=new URL("".concat(t.path).concat(p(i))),r=a.searchParams;return r.set("auto",r.getAll("auto").join(",")||"format"),r.set("fit",r.get("fit")||"max"),r.set("w",r.get("w")||n.toString()),o&&r.set("q",o.toString()),a.href}],["cloudinary",function(e){var t,i=e.config,n=e.src,o=e.width,a=["f_auto","c_limit","w_"+o,"q_"+(e.quality||"auto")].join(",")+"/";return"".concat(i.path).concat(a).concat(p(n))}],["akamai",function(e){var t=e.config,i=e.src,n=e.width;return"".concat(t.path).concat(p(i),"?imwidth=").concat(n)}],["custom",function(e){var t=e.src;throw Error('Image with src "'.concat(t,'" is missing "loader" prop.')+"\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader")}],]);function z(e){return void 0!==e.default}function S(e){var t=e.config,i=e.src,n=e.unoptimized,o=e.layout,r=e.width,l=e.quality,c=e.sizes,s=e.loader;if(n)return{src:i,srcSet:void 0,sizes:void 0};var d=function(e,t,i,n){var o=e.deviceSizes,r=e.allSizes;if(n&&("fill"===i||"responsive"===i)){for(var l=/(^|\s)(1?\d?\d)vw/g,c=[];s=l.exec(n);s)c.push(parseInt(s[2]));if(c.length){var s,d,u=.01*(d=Math).min.apply(d,a(c));return{widths:r.filter(function(e){return e>=o[0]*u}),kind:"w"}}return{widths:r,kind:"w"}}return"number"!=typeof t||"fill"===i||"responsive"===i?{widths:o,kind:"w"}:{widths:a(new Set([t,2*t].map(function(e){return r.find(function(t){return t>=e})||r[r.length-1]}))),kind:"x"}}(t,r,o,c),u=d.widths,f=d.kind,g=u.length-1;return{sizes:c||"w"!==f?c:"100vw",srcSet:u.map(function(e,n){return"".concat(s({config:t,src:i,quality:l,width:e})," ").concat("w"===f?e:n+1).concat(f)}).join(", "),src:s({config:t,src:i,quality:l,width:u[g]})}}function A(e){return"number"==typeof e?e:"string"==typeof e?parseInt(e,10):void 0}function x(e){var t,i=(null==(t=e.config)?void 0:t.loader)||"default",n=w.get(i);if(n)return n(e);throw Error('Unknown "loader" found in "next.config.js". Expected: '.concat(f.VALID_LOADERS.join(", "),". Received: ").concat(i))}function k(e,t,i,n,o,a){e&&e.src!==v&&e["data-loaded-src"]!==t&&(e["data-loaded-src"]=t,("decode"in e?e.decode():Promise.resolve()).catch(function(){}).then(function(){if(e.parentNode&&(b.add(t),"blur"===n&&a(!0),null==o?void 0:o.current)){var i=e.naturalWidth,r=e.naturalHeight;o.current({naturalWidth:i,naturalHeight:r})}}))}var j=function(e){var t=e.imgAttributes,i=(e.heightInt,e.widthInt),n=e.qualityInt,o=e.layout,a=e.className,l=e.imgStyle,c=e.blurStyle,u=e.isLazy,f=e.placeholder,g=e.loading,m=e.srcString,h=e.config,p=e.unoptimized,y=e.loader,b=e.onLoadingCompleteRef,v=e.setBlurComplete,w=e.setIntersection,z=e.onLoad,A=e.onError,x=(e.isVisible,e.noscriptSizes),j=s(e,["imgAttributes","heightInt","widthInt","qualityInt","layout","className","imgStyle","blurStyle","isLazy","placeholder","loading","srcString","config","unoptimized","loader","onLoadingCompleteRef","setBlurComplete","setIntersection","onLoad","onError","isVisible","noscriptSizes"]);return g=u?"lazy":g,d.default.createElement(d.default.Fragment,null,d.default.createElement("img",Object.assign({},j,t,{decoding:"async","data-nimg":o,className:a,style:r({},l,c),ref:d.useCallback(function(e){w(e),(null==e?void 0:e.complete)&&k(e,m,o,f,b,v)},[w,m,o,f,b,v,]),onLoad:function(e){k(e.currentTarget,m,o,f,b,v),z&&z(e)},onError:function(e){"blur"===f&&v(!0),A&&A(e)}})),(u||"blur"===f)&&d.default.createElement("noscript",null,d.default.createElement("img",Object.assign({},j,S({config:h,src:m,unoptimized:p,layout:o,width:i,quality:n,sizes:x,loader:y}),{decoding:"async","data-nimg":o,style:l,className:a,loading:g}))))};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},96424:function(e,t,i){e.exports=i(68561)}}]); \ No newline at end of file diff --git a/frontend/src/main/frontend/src/assets/rr_files/1f110208-44a6f43ddc5e9011.js b/frontend/src/main/frontend/src/assets/rr_files/1f110208-44a6f43ddc5e9011.js new file mode 100755 index 000000000..58c11b641 --- /dev/null +++ b/frontend/src/main/frontend/src/assets/rr_files/1f110208-44a6f43ddc5e9011.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[960],{75927:function(e,t,r){r.d(t,{Z:function(){return um}});class a{constructor(e,t,r){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=t,this.end=r}static range(e,t){return t?e&&e.loc&&t.loc&&e.loc.lexer===t.loc.lexer?new a(e.loc.lexer,e.loc.start,t.loc.end):null:e&&e.loc}}class n{constructor(e,t){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=t}range(e,t){return new n(t,a.range(this,e))}}class i{constructor(e,t){this.position=void 0;var r="KaTeX parse error: "+e,a=t&&t.loc;if(a&&a.start<=a.end){var n,s,o,l=a.lexer.input;n=a.start;var h=a.end;n===l.length?r+=" at end of input: ":r+=" at position "+(n+1)+": ";var m=l.slice(n,h).replace(/[^]/g,"$&̲");s=n>15?"…"+l.slice(n-15,n):l.slice(0,n),o=h+15":">","<":"<",'"':""","'":"'"},c=/[&><"']/g,p=function e(t){return"ordgroup"===t.type||"color"===t.type?1===t.body.length?e(t.body[0]):t:"font"===t.type?e(t.body):t},u=function(e){var t=p(e);return"mathord"===t.type||"textord"===t.type||"atom"===t.type},d=function(e){if(!e)throw Error("Expected non-null, but got "+String(e));return e},g=function(e){var t=/^\s*([^\\/#]*?)(?::|�*58|�*3a)/i.exec(e);return null!=t?t[1]:"_relative"},f={contains:s,deflt:o,escape:function(e){return String(e).replace(c,e=>m[e])},hyphenate:h,getBaseElem:p,isCharacterBox:u,protocolFromUrl:g},v={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:e=>"#"+e},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:e=>Math.max(0,e),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:e=>Math.max(0,e),cli:"-e, --max-expand ",cliProcessor:e=>"Infinity"===e?1/0:parseInt(e)},globalGroup:{type:"boolean",cli:!1}};function b(e){if(e.default)return e.default;var t=e.type,r=Array.isArray(t)?t[0]:t;if("string"!=typeof r)return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class y{constructor(e){for(var t in this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{},v)if(v.hasOwnProperty(t)){var r=v[t];this[t]=void 0!==e[t]?r.processor?r.processor(e[t]):e[t]:b(r)}}reportNonstrict(e,t,r){var a=this.strict;if("function"==typeof a&&(a=a(e,t,r)),a&&"ignore"!==a){if(!0===a||"error"===a)throw new i("LaTeX-incompatible input and strict mode is set to 'error': "+(t+" [")+e+"]",r);"warn"===a?"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(t+" [")+e+"]"):"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+a+"': "+t+" [")+e+"]")}}useStrictBehavior(e,t,r){var a=this.strict;if("function"==typeof a)try{a=a(e,t,r)}catch(n){a="error"}return!!a&&"ignore"!==a&&(!0===a||"error"===a||("warn"===a?("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(t+" [")+e+"]"),!1):("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+a+"': "+t+" [")+e+"]"),!1)))}isTrusted(e){return e.url&&!e.protocol&&(e.protocol=f.protocolFromUrl(e.url)),Boolean("function"==typeof this.trust?this.trust(e):this.trust)}}class x{constructor(e,t,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=r}sup(){return w[k[this.id]]}sub(){return w[S[this.id]]}fracNum(){return w[M[this.id]]}fracDen(){return w[z[this.id]]}cramp(){return w[A[this.id]]}text(){return w[T[this.id]]}isTight(){return this.size>=2}}var w=[new x(0,0,!1),new x(1,0,!0),new x(2,1,!1),new x(3,1,!0),new x(4,2,!1),new x(5,2,!0),new x(6,3,!1),new x(7,3,!0)],k=[4,5,4,5,6,7,6,7],S=[5,5,5,5,7,7,7,7],M=[2,3,4,5,6,7,6,7],z=[3,3,5,5,7,7,7,7],A=[1,1,3,3,5,5,7,7],T=[0,1,2,3,2,3,2,3],B={DISPLAY:w[0],TEXT:w[2],SCRIPT:w[4],SCRIPTSCRIPT:w[6]},q=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}],C=[];function N(e){for(var t=0;t=C[t]&&e<=C[t+1])return!0;return!1}q.forEach(e=>e.blocks.forEach(e=>C.push(...e)));var I=function(e,t,r){t*=1e3;var a,n,i,s,o,l,h,m,c,p,u,d,g,f="";switch(e){case"sqrtMain":f="M95,"+(622+t+80)+"\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl"+t/2.075+" -"+t+"\nc5.3,-9.3,12,-14,20,-14\nH400000v"+(40+t)+"H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM"+(834+t)+" 80h400000v"+(40+t)+"h-400000z";break;case"sqrtSize1":f="M263,"+(601+t+80)+"c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl"+t/2.084+" -"+t+"\nc4.7,-7.3,11,-11,19,-11\nH40000v"+(40+t)+"H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM"+(1001+t)+" 80h400000v"+(40+t)+"h-400000z";break;case"sqrtSize2":f="M983 "+(10+t+80)+"\nl"+t/3.13+" -"+t+"\nc4,-6.7,10,-10,18,-10 H400000v"+(40+t)+"\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM"+(1001+t)+" 80h400000v"+(40+t)+"h-400000z";break;case"sqrtSize3":f="M424,"+(2398+t+80)+"\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\nl"+t/4.223+" -"+t+"c4,-6.7,10,-10,18,-10 H400000\nv"+(40+t)+"H1014.6\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\nc-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2z M"+(1001+t)+" 80\nh400000v"+(40+t)+"h-400000z";break;case"sqrtSize4":f="M473,"+(2713+t+80)+"\nc339.3,-1799.3,509.3,-2700,510,-2702 l"+t/5.298+" -"+t+"\nc3.3,-7.3,9.3,-11,18,-11 H400000v"+(40+t)+"H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM"+(1001+t)+" 80h400000v"+(40+t)+"H1017.7z";break;case"sqrtTall":f="M702 "+(t+80)+"H400000"+(40+t)+"\nH742v"+(r-54-80-t)+"l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\n219 661 l218 661zM702 80H400000v"+(40+t)+"H742z"}return f},R=function(e,t){switch(e){case"⎜":return"M291 0 H417 V"+t+" H291z M291 0 H417 V"+t+" H291z";case"∣":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z";case"∥":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z"+("M367 0 H410 V"+t+" H367z M367 0 H410 V")+t+" H367z";case"⎟":return"M457 0 H583 V"+t+" H457z M457 0 H583 V"+t+" H457z";case"⎢":return"M319 0 H403 V"+t+" H319z M319 0 H403 V"+t+" H319z";case"⎥":return"M263 0 H347 V"+t+" H263z M263 0 H347 V"+t+" H263z";case"⎪":return"M384 0 H504 V"+t+" H384z M384 0 H504 V"+t+" H384z";case"⏐":return"M312 0 H355 V"+t+" H312z M312 0 H355 V"+t+" H312z";case"‖":return"M257 0 H300 V"+t+" H257z M257 0 H300 V"+t+" H257z"+("M478 0 H521 V"+t+" H478z M478 0 H521 V")+t+" H478z";default:return""}},O={doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",oiintSize1:"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",oiintSize2:"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",oiiintSize1:"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",oiiintSize2:"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widecheck1:"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",widecheck2:"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck3:"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck4:"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",baraboveleftarrow:"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",rightarrowabovebar:"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"};class H{constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return f.contains(this.classes,e)}toNode(){for(var e=document.createDocumentFragment(),t=0;te.toText();return this.children.map(e).join("")}}var E={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-.00099,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-.00099,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-.00099,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-.00099,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},L={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},D={Å:"A",Ð:"D",Þ:"o",å:"a",ð:"d",þ:"o",А:"A",Б:"B",В:"B",Г:"F",Д:"A",Е:"E",Ж:"K",З:"3",И:"N",Й:"N",К:"K",Л:"N",М:"M",Н:"H",О:"O",П:"N",Р:"P",С:"C",Т:"T",У:"y",Ф:"O",Х:"X",Ц:"U",Ч:"h",Ш:"W",Щ:"W",Ъ:"B",Ы:"X",Ь:"B",Э:"3",Ю:"X",Я:"R",а:"a",б:"b",в:"a",г:"r",д:"y",е:"e",ж:"m",з:"e",и:"n",й:"n",к:"n",л:"n",м:"m",н:"n",о:"o",п:"n",р:"p",с:"c",т:"o",у:"y",ф:"b",х:"x",ц:"n",ч:"n",ш:"w",щ:"w",ъ:"a",ы:"m",ь:"a",э:"e",ю:"m",я:"r"};function P(e,t){E[e]=t}function F(e,t,r){if(!E[t])throw Error("Font metrics not found for font: "+t+".");var a=e.charCodeAt(0),n=E[t][a];if(!n&&e[0]in D&&(a=D[e[0]].charCodeAt(0),n=E[t][a]),!n&&"text"===r&&N(a)&&(n=E[t][77]),n)return{depth:n[0],height:n[1],italic:n[2],skew:n[3],width:n[4]}}var V={},G=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],U=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],Y=function(e,t){return t.size<2?e:G[e-1][t.size-1]};class X{constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||X.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=U[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var t={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return new X(t)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:Y(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:U[e-1]})}havingBaseStyle(e){e=e||this.style.text();var t=Y(X.BASESIZE,e);return this.size===t&&this.textSize===X.BASESIZE&&this.style===e?this:this.extend({style:e,size:t})}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==X.BASESIZE?["sizing","reset-size"+this.size,"size"+X.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=function(e){var t;if(!V[t=e>=5?0:e>=3?1:2]){var r=V[t]={cssEmPerMu:L.quad[t]/18};for(var a in L)L.hasOwnProperty(a)&&(r[a]=L[a][t])}return V[t]}(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}X.BASESIZE=6;var W={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375},_={ex:!0,em:!0,mu:!0},j=function(e){return"string"!=typeof e&&(e=e.unit),e in W||e in _||"ex"===e},$=function(e,t){var r,a;if(e.unit in W)r=W[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if("mu"===e.unit)r=t.fontMetrics().cssEmPerMu;else{if(a=t.style.isTight()?t.havingStyle(t.style.text()):t,"ex"===e.unit)r=a.fontMetrics().xHeight;else if("em"===e.unit)r=a.fontMetrics().quad;else throw new i("Invalid unit: '"+e.unit+"'");a!==t&&(r*=a.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*r,t.maxSize)},Z=function(e){return+e.toFixed(4)+"em"},K=function(e){return e.filter(e=>e).join(" ")},J=function(e,t,r){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=r||{},t){t.style.isTight()&&this.classes.push("mtight");var a=t.getColor();a&&(this.style.color=a)}},Q=function(e){var t=document.createElement(e);for(var r in t.className=K(this.classes),this.style)this.style.hasOwnProperty(r)&&(t.style[r]=this.style[r]);for(var a in this.attributes)this.attributes.hasOwnProperty(a)&&t.setAttribute(a,this.attributes[a]);for(var n=0;n")};class et{constructor(e,t,r,a){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,J.call(this,e,r,a),this.children=t||[]}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return f.contains(this.classes,e)}toNode(){return Q.call(this,"span")}toMarkup(){return ee.call(this,"span")}}class er{constructor(e,t,r,a){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,J.call(this,t,a),this.children=r||[],this.setAttribute("href",e)}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return f.contains(this.classes,e)}toNode(){return Q.call(this,"a")}toMarkup(){return ee.call(this,"a")}}class ea{constructor(e,t,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=["mord"],this.style=r}hasClass(e){return f.contains(this.classes,e)}toNode(){var e=document.createElement("img");for(var t in e.src=this.src,e.alt=this.alt,e.className="mord",this.style)this.style.hasOwnProperty(t)&&(e.style[t]=this.style[t]);return e}toMarkup(){var e=""+this.alt+"=n[0]&&e<=n[1])return r.name}return null}(this.text.charCodeAt(0));l&&this.classes.push(l+"_fallback"),/[îïíì]/.test(this.text)&&(this.text=en[this.text])}hasClass(e){return f.contains(this.classes,e)}toNode(){var e=document.createTextNode(this.text),t=null;for(var r in this.italic>0&&((t=document.createElement("span")).style.marginRight=Z(this.italic)),this.classes.length>0&&((t=t||document.createElement("span")).className=K(this.classes)),this.style)this.style.hasOwnProperty(r)&&((t=t||document.createElement("span")).style[r]=this.style[r]);return t?(t.appendChild(e),t):e}toMarkup(){var e=!1,t="0&&(r+="margin-right:"+this.italic+"em;"),this.style)this.style.hasOwnProperty(a)&&(r+=f.hyphenate(a)+":"+this.style[a]+";");r&&(e=!0,t+=' style="'+f.escape(r)+'"');var n=f.escape(this.text);return e?(t+=">",t+=n,t+=""):n}}class es{constructor(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}toNode(){var e=document.createElementNS("http://www.w3.org/2000/svg","svg");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);for(var r=0;r"}}class eo{constructor(e,t){this.pathName=void 0,this.alternate=void 0,this.pathName=e,this.alternate=t}toNode(){var e=document.createElementNS("http://www.w3.org/2000/svg","path");return this.alternate?e.setAttribute("d",this.alternate):e.setAttribute("d",O[this.pathName]),e}toMarkup(){return this.alternate?"":""}}class el{constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e=document.createElementNS("http://www.w3.org/2000/svg","line");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);return e}toMarkup(){var e=""}}function eh(e){if(e instanceof ei)return e;throw Error("Expected symbolNode but got "+String(e)+".")}var em={bin:1,close:1,inner:1,open:1,punct:1,rel:1},ec={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},ep={math:{},text:{}};function eu(e,t,r,a,n,i){ep[e][n]={font:t,group:r,replace:a},i&&a&&(ep[e][a]=ep[e][n])}var ed="math",eg="text",ef="main",ev="accent-token",eb="close",ey="inner",ex="mathord",ew="op-token",ek="open",eS="punct",eM="spacing",ez="textord";eu(ed,ef,"rel","≡","\\equiv",!0),eu(ed,ef,"rel","≺","\\prec",!0),eu(ed,ef,"rel","≻","\\succ",!0),eu(ed,ef,"rel","∼","\\sim",!0),eu(ed,ef,"rel","⊥","\\perp"),eu(ed,ef,"rel","⪯","\\preceq",!0),eu(ed,ef,"rel","⪰","\\succeq",!0),eu(ed,ef,"rel","≃","\\simeq",!0),eu(ed,ef,"rel","∣","\\mid",!0),eu(ed,ef,"rel","≪","\\ll",!0),eu(ed,ef,"rel","≫","\\gg",!0),eu(ed,ef,"rel","≍","\\asymp",!0),eu(ed,ef,"rel","∥","\\parallel"),eu(ed,ef,"rel","⋈","\\bowtie",!0),eu(ed,ef,"rel","⌣","\\smile",!0),eu(ed,ef,"rel","⊑","\\sqsubseteq",!0),eu(ed,ef,"rel","⊒","\\sqsupseteq",!0),eu(ed,ef,"rel","≐","\\doteq",!0),eu(ed,ef,"rel","⌢","\\frown",!0),eu(ed,ef,"rel","∋","\\ni",!0),eu(ed,ef,"rel","∝","\\propto",!0),eu(ed,ef,"rel","⊢","\\vdash",!0),eu(ed,ef,"rel","⊣","\\dashv",!0),eu(ed,ef,"rel","∋","\\owns"),eu(ed,ef,eS,".","\\ldotp"),eu(ed,ef,eS,"⋅","\\cdotp"),eu(ed,ef,ez,"#","\\#"),eu(eg,ef,ez,"#","\\#"),eu(ed,ef,ez,"&","\\&"),eu(eg,ef,ez,"&","\\&"),eu(ed,ef,ez,"ℵ","\\aleph",!0),eu(ed,ef,ez,"∀","\\forall",!0),eu(ed,ef,ez,"ℏ","\\hbar",!0),eu(ed,ef,ez,"∃","\\exists",!0),eu(ed,ef,ez,"∇","\\nabla",!0),eu(ed,ef,ez,"♭","\\flat",!0),eu(ed,ef,ez,"ℓ","\\ell",!0),eu(ed,ef,ez,"♮","\\natural",!0),eu(ed,ef,ez,"♣","\\clubsuit",!0),eu(ed,ef,ez,"℘","\\wp",!0),eu(ed,ef,ez,"♯","\\sharp",!0),eu(ed,ef,ez,"♢","\\diamondsuit",!0),eu(ed,ef,ez,"ℜ","\\Re",!0),eu(ed,ef,ez,"♡","\\heartsuit",!0),eu(ed,ef,ez,"ℑ","\\Im",!0),eu(ed,ef,ez,"♠","\\spadesuit",!0),eu(ed,ef,ez,"\xa7","\\S",!0),eu(eg,ef,ez,"\xa7","\\S"),eu(ed,ef,ez,"\xb6","\\P",!0),eu(eg,ef,ez,"\xb6","\\P"),eu(ed,ef,ez,"†","\\dag"),eu(eg,ef,ez,"†","\\dag"),eu(eg,ef,ez,"†","\\textdagger"),eu(ed,ef,ez,"‡","\\ddag"),eu(eg,ef,ez,"‡","\\ddag"),eu(eg,ef,ez,"‡","\\textdaggerdbl"),eu(ed,ef,eb,"⎱","\\rmoustache",!0),eu(ed,ef,ek,"⎰","\\lmoustache",!0),eu(ed,ef,eb,"⟯","\\rgroup",!0),eu(ed,ef,ek,"⟮","\\lgroup",!0),eu(ed,ef,"bin","∓","\\mp",!0),eu(ed,ef,"bin","⊖","\\ominus",!0),eu(ed,ef,"bin","⊎","\\uplus",!0),eu(ed,ef,"bin","⊓","\\sqcap",!0),eu(ed,ef,"bin","∗","\\ast"),eu(ed,ef,"bin","⊔","\\sqcup",!0),eu(ed,ef,"bin","◯","\\bigcirc",!0),eu(ed,ef,"bin","∙","\\bullet",!0),eu(ed,ef,"bin","‡","\\ddagger"),eu(ed,ef,"bin","≀","\\wr",!0),eu(ed,ef,"bin","⨿","\\amalg"),eu(ed,ef,"bin","&","\\And"),eu(ed,ef,"rel","⟵","\\longleftarrow",!0),eu(ed,ef,"rel","⇐","\\Leftarrow",!0),eu(ed,ef,"rel","⟸","\\Longleftarrow",!0),eu(ed,ef,"rel","⟶","\\longrightarrow",!0),eu(ed,ef,"rel","⇒","\\Rightarrow",!0),eu(ed,ef,"rel","⟹","\\Longrightarrow",!0),eu(ed,ef,"rel","↔","\\leftrightarrow",!0),eu(ed,ef,"rel","⟷","\\longleftrightarrow",!0),eu(ed,ef,"rel","⇔","\\Leftrightarrow",!0),eu(ed,ef,"rel","⟺","\\Longleftrightarrow",!0),eu(ed,ef,"rel","↦","\\mapsto",!0),eu(ed,ef,"rel","⟼","\\longmapsto",!0),eu(ed,ef,"rel","↗","\\nearrow",!0),eu(ed,ef,"rel","↩","\\hookleftarrow",!0),eu(ed,ef,"rel","↪","\\hookrightarrow",!0),eu(ed,ef,"rel","↘","\\searrow",!0),eu(ed,ef,"rel","↼","\\leftharpoonup",!0),eu(ed,ef,"rel","⇀","\\rightharpoonup",!0),eu(ed,ef,"rel","↙","\\swarrow",!0),eu(ed,ef,"rel","↽","\\leftharpoondown",!0),eu(ed,ef,"rel","⇁","\\rightharpoondown",!0),eu(ed,ef,"rel","↖","\\nwarrow",!0),eu(ed,ef,"rel","⇌","\\rightleftharpoons",!0),eu(ed,"ams","rel","≮","\\nless",!0),eu(ed,"ams","rel","","\\@nleqslant"),eu(ed,"ams","rel","","\\@nleqq"),eu(ed,"ams","rel","⪇","\\lneq",!0),eu(ed,"ams","rel","≨","\\lneqq",!0),eu(ed,"ams","rel","","\\@lvertneqq"),eu(ed,"ams","rel","⋦","\\lnsim",!0),eu(ed,"ams","rel","⪉","\\lnapprox",!0),eu(ed,"ams","rel","⊀","\\nprec",!0),eu(ed,"ams","rel","⋠","\\npreceq",!0),eu(ed,"ams","rel","⋨","\\precnsim",!0),eu(ed,"ams","rel","⪹","\\precnapprox",!0),eu(ed,"ams","rel","≁","\\nsim",!0),eu(ed,"ams","rel","","\\@nshortmid"),eu(ed,"ams","rel","∤","\\nmid",!0),eu(ed,"ams","rel","⊬","\\nvdash",!0),eu(ed,"ams","rel","⊭","\\nvDash",!0),eu(ed,"ams","rel","⋪","\\ntriangleleft"),eu(ed,"ams","rel","⋬","\\ntrianglelefteq",!0),eu(ed,"ams","rel","⊊","\\subsetneq",!0),eu(ed,"ams","rel","","\\@varsubsetneq"),eu(ed,"ams","rel","⫋","\\subsetneqq",!0),eu(ed,"ams","rel","","\\@varsubsetneqq"),eu(ed,"ams","rel","≯","\\ngtr",!0),eu(ed,"ams","rel","","\\@ngeqslant"),eu(ed,"ams","rel","","\\@ngeqq"),eu(ed,"ams","rel","⪈","\\gneq",!0),eu(ed,"ams","rel","≩","\\gneqq",!0),eu(ed,"ams","rel","","\\@gvertneqq"),eu(ed,"ams","rel","⋧","\\gnsim",!0),eu(ed,"ams","rel","⪊","\\gnapprox",!0),eu(ed,"ams","rel","⊁","\\nsucc",!0),eu(ed,"ams","rel","⋡","\\nsucceq",!0),eu(ed,"ams","rel","⋩","\\succnsim",!0),eu(ed,"ams","rel","⪺","\\succnapprox",!0),eu(ed,"ams","rel","≆","\\ncong",!0),eu(ed,"ams","rel","","\\@nshortparallel"),eu(ed,"ams","rel","∦","\\nparallel",!0),eu(ed,"ams","rel","⊯","\\nVDash",!0),eu(ed,"ams","rel","⋫","\\ntriangleright"),eu(ed,"ams","rel","⋭","\\ntrianglerighteq",!0),eu(ed,"ams","rel","","\\@nsupseteqq"),eu(ed,"ams","rel","⊋","\\supsetneq",!0),eu(ed,"ams","rel","","\\@varsupsetneq"),eu(ed,"ams","rel","⫌","\\supsetneqq",!0),eu(ed,"ams","rel","","\\@varsupsetneqq"),eu(ed,"ams","rel","⊮","\\nVdash",!0),eu(ed,"ams","rel","⪵","\\precneqq",!0),eu(ed,"ams","rel","⪶","\\succneqq",!0),eu(ed,"ams","rel","","\\@nsubseteqq"),eu(ed,"ams","bin","⊴","\\unlhd"),eu(ed,"ams","bin","⊵","\\unrhd"),eu(ed,"ams","rel","↚","\\nleftarrow",!0),eu(ed,"ams","rel","↛","\\nrightarrow",!0),eu(ed,"ams","rel","⇍","\\nLeftarrow",!0),eu(ed,"ams","rel","⇏","\\nRightarrow",!0),eu(ed,"ams","rel","↮","\\nleftrightarrow",!0),eu(ed,"ams","rel","⇎","\\nLeftrightarrow",!0),eu(ed,"ams","rel","△","\\vartriangle"),eu(ed,"ams",ez,"ℏ","\\hslash"),eu(ed,"ams",ez,"▽","\\triangledown"),eu(ed,"ams",ez,"◊","\\lozenge"),eu(ed,"ams",ez,"Ⓢ","\\circledS"),eu(ed,"ams",ez,"\xae","\\circledR"),eu(eg,"ams",ez,"\xae","\\circledR"),eu(ed,"ams",ez,"∡","\\measuredangle",!0),eu(ed,"ams",ez,"∄","\\nexists"),eu(ed,"ams",ez,"℧","\\mho"),eu(ed,"ams",ez,"Ⅎ","\\Finv",!0),eu(ed,"ams",ez,"⅁","\\Game",!0),eu(ed,"ams",ez,"‵","\\backprime"),eu(ed,"ams",ez,"▲","\\blacktriangle"),eu(ed,"ams",ez,"▼","\\blacktriangledown"),eu(ed,"ams",ez,"■","\\blacksquare"),eu(ed,"ams",ez,"⧫","\\blacklozenge"),eu(ed,"ams",ez,"★","\\bigstar"),eu(ed,"ams",ez,"∢","\\sphericalangle",!0),eu(ed,"ams",ez,"∁","\\complement",!0),eu(ed,"ams",ez,"\xf0","\\eth",!0),eu(eg,ef,ez,"\xf0","\xf0"),eu(ed,"ams",ez,"╱","\\diagup"),eu(ed,"ams",ez,"╲","\\diagdown"),eu(ed,"ams",ez,"□","\\square"),eu(ed,"ams",ez,"□","\\Box"),eu(ed,"ams",ez,"◊","\\Diamond"),eu(ed,"ams",ez,"\xa5","\\yen",!0),eu(eg,"ams",ez,"\xa5","\\yen",!0),eu(ed,"ams",ez,"✓","\\checkmark",!0),eu(eg,"ams",ez,"✓","\\checkmark"),eu(ed,"ams",ez,"ℶ","\\beth",!0),eu(ed,"ams",ez,"ℸ","\\daleth",!0),eu(ed,"ams",ez,"ℷ","\\gimel",!0),eu(ed,"ams",ez,"ϝ","\\digamma",!0),eu(ed,"ams",ez,"ϰ","\\varkappa"),eu(ed,"ams",ek,"┌","\\@ulcorner",!0),eu(ed,"ams",eb,"┐","\\@urcorner",!0),eu(ed,"ams",ek,"└","\\@llcorner",!0),eu(ed,"ams",eb,"┘","\\@lrcorner",!0),eu(ed,"ams","rel","≦","\\leqq",!0),eu(ed,"ams","rel","⩽","\\leqslant",!0),eu(ed,"ams","rel","⪕","\\eqslantless",!0),eu(ed,"ams","rel","≲","\\lesssim",!0),eu(ed,"ams","rel","⪅","\\lessapprox",!0),eu(ed,"ams","rel","≊","\\approxeq",!0),eu(ed,"ams","bin","⋖","\\lessdot"),eu(ed,"ams","rel","⋘","\\lll",!0),eu(ed,"ams","rel","≶","\\lessgtr",!0),eu(ed,"ams","rel","⋚","\\lesseqgtr",!0),eu(ed,"ams","rel","⪋","\\lesseqqgtr",!0),eu(ed,"ams","rel","≑","\\doteqdot"),eu(ed,"ams","rel","≓","\\risingdotseq",!0),eu(ed,"ams","rel","≒","\\fallingdotseq",!0),eu(ed,"ams","rel","∽","\\backsim",!0),eu(ed,"ams","rel","⋍","\\backsimeq",!0),eu(ed,"ams","rel","⫅","\\subseteqq",!0),eu(ed,"ams","rel","⋐","\\Subset",!0),eu(ed,"ams","rel","⊏","\\sqsubset",!0),eu(ed,"ams","rel","≼","\\preccurlyeq",!0),eu(ed,"ams","rel","⋞","\\curlyeqprec",!0),eu(ed,"ams","rel","≾","\\precsim",!0),eu(ed,"ams","rel","⪷","\\precapprox",!0),eu(ed,"ams","rel","⊲","\\vartriangleleft"),eu(ed,"ams","rel","⊴","\\trianglelefteq"),eu(ed,"ams","rel","⊨","\\vDash",!0),eu(ed,"ams","rel","⊪","\\Vvdash",!0),eu(ed,"ams","rel","⌣","\\smallsmile"),eu(ed,"ams","rel","⌢","\\smallfrown"),eu(ed,"ams","rel","≏","\\bumpeq",!0),eu(ed,"ams","rel","≎","\\Bumpeq",!0),eu(ed,"ams","rel","≧","\\geqq",!0),eu(ed,"ams","rel","⩾","\\geqslant",!0),eu(ed,"ams","rel","⪖","\\eqslantgtr",!0),eu(ed,"ams","rel","≳","\\gtrsim",!0),eu(ed,"ams","rel","⪆","\\gtrapprox",!0),eu(ed,"ams","bin","⋗","\\gtrdot"),eu(ed,"ams","rel","⋙","\\ggg",!0),eu(ed,"ams","rel","≷","\\gtrless",!0),eu(ed,"ams","rel","⋛","\\gtreqless",!0),eu(ed,"ams","rel","⪌","\\gtreqqless",!0),eu(ed,"ams","rel","≖","\\eqcirc",!0),eu(ed,"ams","rel","≗","\\circeq",!0),eu(ed,"ams","rel","≜","\\triangleq",!0),eu(ed,"ams","rel","∼","\\thicksim"),eu(ed,"ams","rel","≈","\\thickapprox"),eu(ed,"ams","rel","⫆","\\supseteqq",!0),eu(ed,"ams","rel","⋑","\\Supset",!0),eu(ed,"ams","rel","⊐","\\sqsupset",!0),eu(ed,"ams","rel","≽","\\succcurlyeq",!0),eu(ed,"ams","rel","⋟","\\curlyeqsucc",!0),eu(ed,"ams","rel","≿","\\succsim",!0),eu(ed,"ams","rel","⪸","\\succapprox",!0),eu(ed,"ams","rel","⊳","\\vartriangleright"),eu(ed,"ams","rel","⊵","\\trianglerighteq"),eu(ed,"ams","rel","⊩","\\Vdash",!0),eu(ed,"ams","rel","∣","\\shortmid"),eu(ed,"ams","rel","∥","\\shortparallel"),eu(ed,"ams","rel","≬","\\between",!0),eu(ed,"ams","rel","⋔","\\pitchfork",!0),eu(ed,"ams","rel","∝","\\varpropto"),eu(ed,"ams","rel","◀","\\blacktriangleleft"),eu(ed,"ams","rel","∴","\\therefore",!0),eu(ed,"ams","rel","∍","\\backepsilon"),eu(ed,"ams","rel","▶","\\blacktriangleright"),eu(ed,"ams","rel","∵","\\because",!0),eu(ed,"ams","rel","⋘","\\llless"),eu(ed,"ams","rel","⋙","\\gggtr"),eu(ed,"ams","bin","⊲","\\lhd"),eu(ed,"ams","bin","⊳","\\rhd"),eu(ed,"ams","rel","≂","\\eqsim",!0),eu(ed,ef,"rel","⋈","\\Join"),eu(ed,"ams","rel","≑","\\Doteq",!0),eu(ed,"ams","bin","∔","\\dotplus",!0),eu(ed,"ams","bin","∖","\\smallsetminus"),eu(ed,"ams","bin","⋒","\\Cap",!0),eu(ed,"ams","bin","⋓","\\Cup",!0),eu(ed,"ams","bin","⩞","\\doublebarwedge",!0),eu(ed,"ams","bin","⊟","\\boxminus",!0),eu(ed,"ams","bin","⊞","\\boxplus",!0),eu(ed,"ams","bin","⋇","\\divideontimes",!0),eu(ed,"ams","bin","⋉","\\ltimes",!0),eu(ed,"ams","bin","⋊","\\rtimes",!0),eu(ed,"ams","bin","⋋","\\leftthreetimes",!0),eu(ed,"ams","bin","⋌","\\rightthreetimes",!0),eu(ed,"ams","bin","⋏","\\curlywedge",!0),eu(ed,"ams","bin","⋎","\\curlyvee",!0),eu(ed,"ams","bin","⊝","\\circleddash",!0),eu(ed,"ams","bin","⊛","\\circledast",!0),eu(ed,"ams","bin","⋅","\\centerdot"),eu(ed,"ams","bin","⊺","\\intercal",!0),eu(ed,"ams","bin","⋒","\\doublecap"),eu(ed,"ams","bin","⋓","\\doublecup"),eu(ed,"ams","bin","⊠","\\boxtimes",!0),eu(ed,"ams","rel","⇢","\\dashrightarrow",!0),eu(ed,"ams","rel","⇠","\\dashleftarrow",!0),eu(ed,"ams","rel","⇇","\\leftleftarrows",!0),eu(ed,"ams","rel","⇆","\\leftrightarrows",!0),eu(ed,"ams","rel","⇚","\\Lleftarrow",!0),eu(ed,"ams","rel","↞","\\twoheadleftarrow",!0),eu(ed,"ams","rel","↢","\\leftarrowtail",!0),eu(ed,"ams","rel","↫","\\looparrowleft",!0),eu(ed,"ams","rel","⇋","\\leftrightharpoons",!0),eu(ed,"ams","rel","↶","\\curvearrowleft",!0),eu(ed,"ams","rel","↺","\\circlearrowleft",!0),eu(ed,"ams","rel","↰","\\Lsh",!0),eu(ed,"ams","rel","⇈","\\upuparrows",!0),eu(ed,"ams","rel","↿","\\upharpoonleft",!0),eu(ed,"ams","rel","⇃","\\downharpoonleft",!0),eu(ed,ef,"rel","⊶","\\origof",!0),eu(ed,ef,"rel","⊷","\\imageof",!0),eu(ed,"ams","rel","⊸","\\multimap",!0),eu(ed,"ams","rel","↭","\\leftrightsquigarrow",!0),eu(ed,"ams","rel","⇉","\\rightrightarrows",!0),eu(ed,"ams","rel","⇄","\\rightleftarrows",!0),eu(ed,"ams","rel","↠","\\twoheadrightarrow",!0),eu(ed,"ams","rel","↣","\\rightarrowtail",!0),eu(ed,"ams","rel","↬","\\looparrowright",!0),eu(ed,"ams","rel","↷","\\curvearrowright",!0),eu(ed,"ams","rel","↻","\\circlearrowright",!0),eu(ed,"ams","rel","↱","\\Rsh",!0),eu(ed,"ams","rel","⇊","\\downdownarrows",!0),eu(ed,"ams","rel","↾","\\upharpoonright",!0),eu(ed,"ams","rel","⇂","\\downharpoonright",!0),eu(ed,"ams","rel","⇝","\\rightsquigarrow",!0),eu(ed,"ams","rel","⇝","\\leadsto"),eu(ed,"ams","rel","⇛","\\Rrightarrow",!0),eu(ed,"ams","rel","↾","\\restriction"),eu(ed,ef,ez,"‘","`"),eu(ed,ef,ez,"$","\\$"),eu(eg,ef,ez,"$","\\$"),eu(eg,ef,ez,"$","\\textdollar"),eu(ed,ef,ez,"%","\\%"),eu(eg,ef,ez,"%","\\%"),eu(ed,ef,ez,"_","\\_"),eu(eg,ef,ez,"_","\\_"),eu(eg,ef,ez,"_","\\textunderscore"),eu(ed,ef,ez,"∠","\\angle",!0),eu(ed,ef,ez,"∞","\\infty",!0),eu(ed,ef,ez,"′","\\prime"),eu(ed,ef,ez,"△","\\triangle"),eu(ed,ef,ez,"Γ","\\Gamma",!0),eu(ed,ef,ez,"Δ","\\Delta",!0),eu(ed,ef,ez,"Θ","\\Theta",!0),eu(ed,ef,ez,"Λ","\\Lambda",!0),eu(ed,ef,ez,"Ξ","\\Xi",!0),eu(ed,ef,ez,"Π","\\Pi",!0),eu(ed,ef,ez,"Σ","\\Sigma",!0),eu(ed,ef,ez,"Υ","\\Upsilon",!0),eu(ed,ef,ez,"Φ","\\Phi",!0),eu(ed,ef,ez,"Ψ","\\Psi",!0),eu(ed,ef,ez,"Ω","\\Omega",!0),eu(ed,ef,ez,"A","Α"),eu(ed,ef,ez,"B","Β"),eu(ed,ef,ez,"E","Ε"),eu(ed,ef,ez,"Z","Ζ"),eu(ed,ef,ez,"H","Η"),eu(ed,ef,ez,"I","Ι"),eu(ed,ef,ez,"K","Κ"),eu(ed,ef,ez,"M","Μ"),eu(ed,ef,ez,"N","Ν"),eu(ed,ef,ez,"O","Ο"),eu(ed,ef,ez,"P","Ρ"),eu(ed,ef,ez,"T","Τ"),eu(ed,ef,ez,"X","Χ"),eu(ed,ef,ez,"\xac","\\neg",!0),eu(ed,ef,ez,"\xac","\\lnot"),eu(ed,ef,ez,"⊤","\\top"),eu(ed,ef,ez,"⊥","\\bot"),eu(ed,ef,ez,"∅","\\emptyset"),eu(ed,"ams",ez,"∅","\\varnothing"),eu(ed,ef,ex,"α","\\alpha",!0),eu(ed,ef,ex,"β","\\beta",!0),eu(ed,ef,ex,"γ","\\gamma",!0),eu(ed,ef,ex,"δ","\\delta",!0),eu(ed,ef,ex,"ϵ","\\epsilon",!0),eu(ed,ef,ex,"ζ","\\zeta",!0),eu(ed,ef,ex,"η","\\eta",!0),eu(ed,ef,ex,"θ","\\theta",!0),eu(ed,ef,ex,"ι","\\iota",!0),eu(ed,ef,ex,"κ","\\kappa",!0),eu(ed,ef,ex,"λ","\\lambda",!0),eu(ed,ef,ex,"μ","\\mu",!0),eu(ed,ef,ex,"ν","\\nu",!0),eu(ed,ef,ex,"ξ","\\xi",!0),eu(ed,ef,ex,"ο","\\omicron",!0),eu(ed,ef,ex,"π","\\pi",!0),eu(ed,ef,ex,"ρ","\\rho",!0),eu(ed,ef,ex,"σ","\\sigma",!0),eu(ed,ef,ex,"τ","\\tau",!0),eu(ed,ef,ex,"υ","\\upsilon",!0),eu(ed,ef,ex,"ϕ","\\phi",!0),eu(ed,ef,ex,"χ","\\chi",!0),eu(ed,ef,ex,"ψ","\\psi",!0),eu(ed,ef,ex,"ω","\\omega",!0),eu(ed,ef,ex,"ε","\\varepsilon",!0),eu(ed,ef,ex,"ϑ","\\vartheta",!0),eu(ed,ef,ex,"ϖ","\\varpi",!0),eu(ed,ef,ex,"ϱ","\\varrho",!0),eu(ed,ef,ex,"ς","\\varsigma",!0),eu(ed,ef,ex,"φ","\\varphi",!0),eu(ed,ef,"bin","∗","*",!0),eu(ed,ef,"bin","+","+"),eu(ed,ef,"bin","−","-",!0),eu(ed,ef,"bin","⋅","\\cdot",!0),eu(ed,ef,"bin","∘","\\circ",!0),eu(ed,ef,"bin","\xf7","\\div",!0),eu(ed,ef,"bin","\xb1","\\pm",!0),eu(ed,ef,"bin","\xd7","\\times",!0),eu(ed,ef,"bin","∩","\\cap",!0),eu(ed,ef,"bin","∪","\\cup",!0),eu(ed,ef,"bin","∖","\\setminus",!0),eu(ed,ef,"bin","∧","\\land"),eu(ed,ef,"bin","∨","\\lor"),eu(ed,ef,"bin","∧","\\wedge",!0),eu(ed,ef,"bin","∨","\\vee",!0),eu(ed,ef,ez,"√","\\surd"),eu(ed,ef,ek,"⟨","\\langle",!0),eu(ed,ef,ek,"∣","\\lvert"),eu(ed,ef,ek,"∥","\\lVert"),eu(ed,ef,eb,"?","?"),eu(ed,ef,eb,"!","!"),eu(ed,ef,eb,"⟩","\\rangle",!0),eu(ed,ef,eb,"∣","\\rvert"),eu(ed,ef,eb,"∥","\\rVert"),eu(ed,ef,"rel","=","="),eu(ed,ef,"rel",":",":"),eu(ed,ef,"rel","≈","\\approx",!0),eu(ed,ef,"rel","≅","\\cong",!0),eu(ed,ef,"rel","≥","\\ge"),eu(ed,ef,"rel","≥","\\geq",!0),eu(ed,ef,"rel","←","\\gets"),eu(ed,ef,"rel",">","\\gt",!0),eu(ed,ef,"rel","∈","\\in",!0),eu(ed,ef,"rel","","\\@not"),eu(ed,ef,"rel","⊂","\\subset",!0),eu(ed,ef,"rel","⊃","\\supset",!0),eu(ed,ef,"rel","⊆","\\subseteq",!0),eu(ed,ef,"rel","⊇","\\supseteq",!0),eu(ed,"ams","rel","⊈","\\nsubseteq",!0),eu(ed,"ams","rel","⊉","\\nsupseteq",!0),eu(ed,ef,"rel","⊨","\\models"),eu(ed,ef,"rel","←","\\leftarrow",!0),eu(ed,ef,"rel","≤","\\le"),eu(ed,ef,"rel","≤","\\leq",!0),eu(ed,ef,"rel","<","\\lt",!0),eu(ed,ef,"rel","→","\\rightarrow",!0),eu(ed,ef,"rel","→","\\to"),eu(ed,"ams","rel","≱","\\ngeq",!0),eu(ed,"ams","rel","≰","\\nleq",!0),eu(ed,ef,eM,"\xa0","\\ "),eu(ed,ef,eM,"\xa0","\\space"),eu(ed,ef,eM,"\xa0","\\nobreakspace"),eu(eg,ef,eM,"\xa0","\\ "),eu(eg,ef,eM,"\xa0"," "),eu(eg,ef,eM,"\xa0","\\space"),eu(eg,ef,eM,"\xa0","\\nobreakspace"),eu(ed,ef,eM,null,"\\nobreak"),eu(ed,ef,eM,null,"\\allowbreak"),eu(ed,ef,eS,",",","),eu(ed,ef,eS,";",";"),eu(ed,"ams","bin","⊼","\\barwedge",!0),eu(ed,"ams","bin","⊻","\\veebar",!0),eu(ed,ef,"bin","⊙","\\odot",!0),eu(ed,ef,"bin","⊕","\\oplus",!0),eu(ed,ef,"bin","⊗","\\otimes",!0),eu(ed,ef,ez,"∂","\\partial",!0),eu(ed,ef,"bin","⊘","\\oslash",!0),eu(ed,"ams","bin","⊚","\\circledcirc",!0),eu(ed,"ams","bin","⊡","\\boxdot",!0),eu(ed,ef,"bin","△","\\bigtriangleup"),eu(ed,ef,"bin","▽","\\bigtriangledown"),eu(ed,ef,"bin","†","\\dagger"),eu(ed,ef,"bin","⋄","\\diamond"),eu(ed,ef,"bin","⋆","\\star"),eu(ed,ef,"bin","◃","\\triangleleft"),eu(ed,ef,"bin","▹","\\triangleright"),eu(ed,ef,ek,"{","\\{"),eu(eg,ef,ez,"{","\\{"),eu(eg,ef,ez,"{","\\textbraceleft"),eu(ed,ef,eb,"}","\\}"),eu(eg,ef,ez,"}","\\}"),eu(eg,ef,ez,"}","\\textbraceright"),eu(ed,ef,ek,"{","\\lbrace"),eu(ed,ef,eb,"}","\\rbrace"),eu(ed,ef,ek,"[","\\lbrack",!0),eu(eg,ef,ez,"[","\\lbrack",!0),eu(ed,ef,eb,"]","\\rbrack",!0),eu(eg,ef,ez,"]","\\rbrack",!0),eu(ed,ef,ek,"(","\\lparen",!0),eu(ed,ef,eb,")","\\rparen",!0),eu(eg,ef,ez,"<","\\textless",!0),eu(eg,ef,ez,">","\\textgreater",!0),eu(ed,ef,ek,"⌊","\\lfloor",!0),eu(ed,ef,eb,"⌋","\\rfloor",!0),eu(ed,ef,ek,"⌈","\\lceil",!0),eu(ed,ef,eb,"⌉","\\rceil",!0),eu(ed,ef,ez,"\\","\\backslash"),eu(ed,ef,ez,"∣","|"),eu(ed,ef,ez,"∣","\\vert"),eu(eg,ef,ez,"|","\\textbar",!0),eu(ed,ef,ez,"∥","\\|"),eu(ed,ef,ez,"∥","\\Vert"),eu(eg,ef,ez,"∥","\\textbardbl"),eu(eg,ef,ez,"~","\\textasciitilde"),eu(eg,ef,ez,"\\","\\textbackslash"),eu(eg,ef,ez,"^","\\textasciicircum"),eu(ed,ef,"rel","↑","\\uparrow",!0),eu(ed,ef,"rel","⇑","\\Uparrow",!0),eu(ed,ef,"rel","↓","\\downarrow",!0),eu(ed,ef,"rel","⇓","\\Downarrow",!0),eu(ed,ef,"rel","↕","\\updownarrow",!0),eu(ed,ef,"rel","⇕","\\Updownarrow",!0),eu(ed,ef,ew,"∐","\\coprod"),eu(ed,ef,ew,"⋁","\\bigvee"),eu(ed,ef,ew,"⋀","\\bigwedge"),eu(ed,ef,ew,"⨄","\\biguplus"),eu(ed,ef,ew,"⋂","\\bigcap"),eu(ed,ef,ew,"⋃","\\bigcup"),eu(ed,ef,ew,"∫","\\int"),eu(ed,ef,ew,"∫","\\intop"),eu(ed,ef,ew,"∬","\\iint"),eu(ed,ef,ew,"∭","\\iiint"),eu(ed,ef,ew,"∏","\\prod"),eu(ed,ef,ew,"∑","\\sum"),eu(ed,ef,ew,"⨂","\\bigotimes"),eu(ed,ef,ew,"⨁","\\bigoplus"),eu(ed,ef,ew,"⨀","\\bigodot"),eu(ed,ef,ew,"∮","\\oint"),eu(ed,ef,ew,"∯","\\oiint"),eu(ed,ef,ew,"∰","\\oiiint"),eu(ed,ef,ew,"⨆","\\bigsqcup"),eu(ed,ef,ew,"∫","\\smallint"),eu(eg,ef,ey,"…","\\textellipsis"),eu(ed,ef,ey,"…","\\mathellipsis"),eu(eg,ef,ey,"…","\\ldots",!0),eu(ed,ef,ey,"…","\\ldots",!0),eu(ed,ef,ey,"⋯","\\@cdots",!0),eu(ed,ef,ey,"⋱","\\ddots",!0),eu(ed,ef,ez,"⋮","\\varvdots"),eu(ed,ef,ev,"ˊ","\\acute"),eu(ed,ef,ev,"ˋ","\\grave"),eu(ed,ef,ev,"\xa8","\\ddot"),eu(ed,ef,ev,"~","\\tilde"),eu(ed,ef,ev,"ˉ","\\bar"),eu(ed,ef,ev,"˘","\\breve"),eu(ed,ef,ev,"ˇ","\\check"),eu(ed,ef,ev,"^","\\hat"),eu(ed,ef,ev,"⃗","\\vec"),eu(ed,ef,ev,"˙","\\dot"),eu(ed,ef,ev,"˚","\\mathring"),eu(ed,ef,ex,"","\\@imath"),eu(ed,ef,ex,"","\\@jmath"),eu(ed,ef,ez,"ı","ı"),eu(ed,ef,ez,"ȷ","ȷ"),eu(eg,ef,ez,"ı","\\i",!0),eu(eg,ef,ez,"ȷ","\\j",!0),eu(eg,ef,ez,"\xdf","\\ss",!0),eu(eg,ef,ez,"\xe6","\\ae",!0),eu(eg,ef,ez,"œ","\\oe",!0),eu(eg,ef,ez,"\xf8","\\o",!0),eu(eg,ef,ez,"\xc6","\\AE",!0),eu(eg,ef,ez,"Œ","\\OE",!0),eu(eg,ef,ez,"\xd8","\\O",!0),eu(eg,ef,ev,"ˊ","\\'"),eu(eg,ef,ev,"ˋ","\\`"),eu(eg,ef,ev,"ˆ","\\^"),eu(eg,ef,ev,"˜","\\~"),eu(eg,ef,ev,"ˉ","\\="),eu(eg,ef,ev,"˘","\\u"),eu(eg,ef,ev,"˙","\\."),eu(eg,ef,ev,"\xb8","\\c"),eu(eg,ef,ev,"˚","\\r"),eu(eg,ef,ev,"ˇ","\\v"),eu(eg,ef,ev,"\xa8",'\\"'),eu(eg,ef,ev,"˝","\\H"),eu(eg,ef,ev,"◯","\\textcircled");var eA={"--":!0,"---":!0,"``":!0,"''":!0};eu(eg,ef,ez,"–","--",!0),eu(eg,ef,ez,"–","\\textendash"),eu(eg,ef,ez,"—","---",!0),eu(eg,ef,ez,"—","\\textemdash"),eu(eg,ef,ez,"‘","`",!0),eu(eg,ef,ez,"‘","\\textquoteleft"),eu(eg,ef,ez,"’","'",!0),eu(eg,ef,ez,"’","\\textquoteright"),eu(eg,ef,ez,"“","``",!0),eu(eg,ef,ez,"“","\\textquotedblleft"),eu(eg,ef,ez,"”","''",!0),eu(eg,ef,ez,"”","\\textquotedblright"),eu(ed,ef,ez,"\xb0","\\degree",!0),eu(eg,ef,ez,"\xb0","\\degree"),eu(eg,ef,ez,"\xb0","\\textdegree",!0),eu(ed,ef,ez,"\xa3","\\pounds"),eu(ed,ef,ez,"\xa3","\\mathsterling",!0),eu(eg,ef,ez,"\xa3","\\pounds"),eu(eg,ef,ez,"\xa3","\\textsterling",!0),eu(ed,"ams",ez,"✠","\\maltese"),eu(eg,"ams",ez,"✠","\\maltese");for(var eT='0123456789/@."',eB=0;eB{if(K(e.classes)!==K(t.classes)||e.skew!==t.skew||e.maxFontSize!==t.maxFontSize)return!1;if(1===e.classes.length){var r=e.classes[0];if("mbin"===r||"mord"===r)return!1}for(var a in e.style)if(e.style.hasOwnProperty(a)&&e.style[a]!==t.style[a])return!1;for(var n in t.style)if(t.style.hasOwnProperty(n)&&e.style[n]!==t.style[n])return!1;return!0},eJ=e=>{for(var t=0;tt&&(t=i.height),i.depth>r&&(r=i.depth),i.maxFontSize>a&&(a=i.maxFontSize)}e.height=t,e.depth=r,e.maxFontSize=a},e0=function(e,t,r,a){var n=new et(e,t,r,a);return eQ(n),n},e1=(e,t,r,a)=>new et(e,t,r,a),e4=function(e,t,r){var a=e0([e],[],t);return a.height=Math.max(r||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),a.style.borderBottomWidth=Z(a.height),a.maxFontSize=1,a},e5=function(e,t,r,a){var n=new er(e,t,r,a);return eQ(n),n},e6=function(e){var t=new H(e);return eQ(t),t},e7=function(e,t){return e instanceof H?e0([],[e],t):e},e3=function(e){if("individualShift"===e.positionType){for(var t,r=e.children,a=[r[0]],n=-r[0].shift-r[0].elem.depth,i=n,s=1;s{var r=e0(["mspace"],[],t),a=$(e,t);return r.style.marginRight=Z(a),r},e9=function(e,t,r){var a="";switch(e){case"amsrm":a="AMS";break;case"textrm":a="Main";break;case"textsf":a="SansSerif";break;case"texttt":a="Typewriter";break;default:a=e}return a+"-"+("textbf"===t&&"textit"===r?"BoldItalic":"textbf"===t?"Bold":"textit"===t?"Italic":"Regular")},te={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},tt={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},tr=function(e,t){var[r,a,n]=tt[e],i=new eo(r),s=new es([i],{width:Z(a),height:Z(n),style:"width:"+Z(a),viewBox:"0 0 "+1e3*a+" "+1e3*n,preserveAspectRatio:"xMinYMin"}),o=e1(["overlay"],[s],t);return o.height=n,o.style.height=Z(n),o.style.width=Z(a),o},ta={fontMap:te,makeSymbol:ej,mathsym:e$,makeSpan:e0,makeSvgSpan:e1,makeLineSpan:e4,makeAnchor:e5,makeFragment:e6,wrapFragment:e7,makeVList:e8,makeOrd:eZ,makeGlue:e2,staticSvg:tr,svgData:tt,tryCombineChars:eJ},tn={number:3,unit:"mu"},ti={number:4,unit:"mu"},ts={number:5,unit:"mu"},to={mord:{mop:tn,mbin:ti,mrel:ts,minner:tn},mop:{mord:tn,mop:tn,mrel:ts,minner:tn},mbin:{mord:ti,mop:ti,mopen:ti,minner:ti},mrel:{mord:ts,mop:ts,mopen:ts,minner:ts},mopen:{},mclose:{mop:tn,mbin:ti,mrel:ts,minner:tn},mpunct:{mord:tn,mop:tn,mrel:ts,mopen:tn,mclose:tn,mpunct:tn,minner:tn},minner:{mord:tn,mop:tn,mbin:ti,mrel:ts,mopen:tn,mpunct:tn,minner:tn}},tl={mord:{mop:tn},mop:{mord:tn,mop:tn},mbin:{},mrel:{},mopen:{},mclose:{mop:tn},mpunct:{},minner:{mop:tn}},th={},tm={},tc={};function tp(e){for(var{type:t,names:r,props:a,handler:n,htmlBuilder:i,mathmlBuilder:s}=e,o={type:t,numArgs:a.numArgs,argTypes:a.argTypes,allowedInArgument:!!a.allowedInArgument,allowedInText:!!a.allowedInText,allowedInMath:void 0===a.allowedInMath||a.allowedInMath,numOptionalArgs:a.numOptionalArgs||0,infix:!!a.infix,primitive:!!a.primitive,handler:n},l=0;l{var r=t.classes[0],a=e.classes[0];"mbin"===r&&f.contains(tb,a)?t.classes[0]="mord":"mbin"===a&&f.contains(tv,r)&&(e.classes[0]="mord")},{node:m},c,p),tk(n,(e,t)=>{var r=tz(t),a=tz(e),n=r&&a?e.hasClass("mtight")?tl[r][a]:to[r][a]:null;if(n)return ta.makeGlue(n,l)},{node:m},c,p),n},tk=function e(t,r,a,n,i){n&&t.push(n);for(var s=0;s{t.splice(o+1,0,e),s++})}n&&t.pop()},tS=function(e){return e instanceof H||e instanceof er||e instanceof et&&e.hasClass("enclosing")?e:null},tM=function e(t,r){var a=tS(t);if(a){var n=a.children;if(n.length){if("right"===r)return e(n[n.length-1],"right");if("left"===r)return e(n[0],"left")}}return t},tz=function(e,t){return e?(t&&(e=tM(e,t)),tx[e.classes[0]]||null):null},tA=function(e,t){var r=["nulldelimiter"].concat(e.baseSizingClasses());return tf(t.concat(r))},tT=function(e,t,r){if(!e)return tf();if(tm[e.type]){var a=tm[e.type](e,t);if(r&&t.size!==r.size){a=tf(t.sizingClasses(r),[a],t);var n=t.sizeMultiplier/r.sizeMultiplier;a.height*=n,a.depth*=n}return a}throw new i("Got group of unknown type: '"+e.type+"'")};function tB(e,t){var r=tf(["base"],e,t),a=tf(["strut"]);return a.style.height=Z(r.height+r.depth),r.depth&&(a.style.verticalAlign=Z(-r.depth)),r.children.unshift(a),r}function tq(e,t){var r,a,n=null;1===e.length&&"tag"===e[0].type&&(n=e[0].tag,e=e[0].body);var i=tw(e,t,"root");2===i.length&&i[1].hasClass("tag")&&(r=i.pop());for(var s=[],o=[],l=0;l0&&(s.push(tB(o,t)),o=[]),s.push(i[l]));o.length>0&&s.push(tB(o,t)),n?((a=tB(tw(n,t,!0))).classes=["tag"],s.push(a)):r&&s.push(r);var m=tf(["katex-html"],s);if(m.setAttribute("aria-hidden","true"),a){var c=a.children[0];c.style.height=Z(m.height+m.depth),m.depth&&(c.style.verticalAlign=Z(-m.depth))}return m}function tC(e){return new H(e)}class tN{constructor(e,t,r){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=r||[]}setAttribute(e,t){this.attributes[e]=t}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);this.classes.length>0&&(e.className=K(this.classes));for(var r=0;r0&&(e+=' class ="'+f.escape(K(this.classes))+'"'),e+=">";for(var r=0;r")}toText(){return this.children.map(e=>e.toText()).join("")}}class tI{constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return f.escape(this.toText())}toText(){return this.text}}var tR={MathNode:tN,TextNode:tI,SpaceNode:class{constructor(e){this.width=void 0,this.character=void 0,this.width=e,e>=.05555&&e<=.05556?this.character=" ":e>=.1666&&e<=.1667?this.character=" ":e>=.2222&&e<=.2223?this.character=" ":e>=.2777&&e<=.2778?this.character="  ":e>=-.05556&&e<=-.05555?this.character=" ⁣":e>=-.1667&&e<=-.1666?this.character=" ⁣":e>=-.2223&&e<=-.2222?this.character=" ⁣":e>=-.2778&&e<=-.2777?this.character=" ⁣":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",Z(this.width)),e}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}},newDocumentFragment:tC},tO=function(e,t,r){return ep[t][e]&&ep[t][e].replace&&55349!==e.charCodeAt(0)&&!(eA.hasOwnProperty(e)&&r&&(r.fontFamily&&"tt"===r.fontFamily.substr(4,2)||r.font&&"tt"===r.font.substr(4,2)))&&(e=ep[t][e].replace),new tR.TextNode(e)},tH=function(e){return 1===e.length?e[0]:new tR.MathNode("mrow",e)},tE=function(e,t){if("texttt"===t.fontFamily)return"monospace";if("textsf"===t.fontFamily)return"textit"===t.fontShape&&"textbf"===t.fontWeight?"sans-serif-bold-italic":"textit"===t.fontShape?"sans-serif-italic":"textbf"===t.fontWeight?"bold-sans-serif":"sans-serif";if("textit"===t.fontShape&&"textbf"===t.fontWeight)return"bold-italic";if("textit"===t.fontShape)return"italic";if("textbf"===t.fontWeight)return"bold";var r=t.font;if(!r||"mathnormal"===r)return null;var a=e.mode;if("mathit"===r)return"italic";if("boldsymbol"===r)return"textord"===e.type?"bold":"bold-italic";if("mathbf"===r)return"bold";if("mathbb"===r)return"double-struck";if("mathfrak"===r)return"fraktur";else if("mathscr"===r||"mathcal"===r)return"script";else if("mathsf"===r)return"sans-serif";else if("mathtt"===r)return"monospace";var n=e.text;return f.contains(["\\imath","\\jmath"],n)?null:(ep[a][n]&&ep[a][n].replace&&(n=ep[a][n].replace),F(n,ta.fontMap[r].fontName,a))?ta.fontMap[r].variant:null},tL=function(e,t,r){if(1===e.length){var a,n=tP(e[0],t);return r&&n instanceof tN&&"mo"===n.type&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n]}for(var i=[],s=0;s0&&(m.text=m.text.slice(0,1)+"̸"+m.text.slice(1),i.pop())}}}i.push(o),a=o}return i},tD=function(e,t,r){return tH(tL(e,t,r))},tP=function(e,t){if(!e)return new tR.MathNode("mrow");if(tc[e.type])return tc[e.type](e,t);throw new i("Got group of unknown type: '"+e.type+"'")};function tF(e,t,r,a,n){var i,s=tL(e,r);i=1===s.length&&s[0]instanceof tN&&f.contains(["mrow","mtable"],s[0].type)?s[0]:new tR.MathNode("mrow",s);var o=new tR.MathNode("annotation",[new tR.TextNode(t)]);o.setAttribute("encoding","application/x-tex");var l=new tR.MathNode("semantics",[i,o]),h=new tR.MathNode("math",[l]);return h.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),a&&h.setAttribute("display","block"),ta.makeSpan([n?"katex":"katex-mathml"],[h])}var tV=function(e){return new X({style:e.displayMode?B.DISPLAY:B.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},tG=function(e,t){if(t.displayMode){var r=["katex-display"];t.leqno&&r.push("leqno"),t.fleqn&&r.push("fleqn"),e=ta.makeSpan(r,[e])}return e},tU=function(e,t,r){var a,n=tV(r);if("mathml"===r.output)return tF(e,t,n,r.displayMode,!0);if("html"===r.output){var i=tq(e,n);a=ta.makeSpan(["katex"],[i])}else{var s=tF(e,t,n,r.displayMode,!1),o=tq(e,n);a=ta.makeSpan(["katex"],[s,o])}return tG(a,r)},tY=function(e,t,r){var a=tV(r),n=tq(e,a),i=ta.makeSpan(["katex"],[n]);return tG(i,r)},tX={widehat:"^",widecheck:"ˇ",widetilde:"~",utilde:"~",overleftarrow:"←",underleftarrow:"←",xleftarrow:"←",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"⏟",overbrace:"⏞",overgroup:"⏠",undergroup:"⏡",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"⇐",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"⇁",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌",xleftequilibrium:"⇋","\\cdrightarrow":"→","\\cdleftarrow":"←","\\cdlongequal":"="},tW=function(e){var t=new tR.MathNode("mo",[new tR.TextNode(tX[e.replace(/^\\/,"")])]);return t.setAttribute("stretchy","true"),t},t_={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},tj=function(e,t){var{span:r,minWidth:a,height:n}=function(){var r,a=4e5,n=e.label.substr(1);if(f.contains(["widehat","widecheck","widetilde","utilde"],n)){var i,s,o,l,h="ordgroup"===(l=e.base).type?l.body.length:1;if(h>5)"widehat"===n||"widecheck"===n?(i=420,a=2364,o=.42,s=n+"4"):(i=312,a=2340,o=.34,s="tilde4");else{var m=[1,1,2,2,3,3][h];"widehat"===n||"widecheck"===n?(a=[0,1062,2364,2364,2364][m],i=[0,239,300,360,420][m],o=[0,.24,.3,.3,.36,.42][m],s=n+m):(a=[0,600,1033,2339,2340][m],i=[0,260,286,306,312][m],o=[0,.26,.286,.3,.306,.34][m],s="tilde"+m)}var c=new eo(s),p=new es([c],{width:"100%",height:Z(o),viewBox:"0 0 "+a+" "+i,preserveAspectRatio:"none"});return{span:ta.makeSvgSpan([],[p],t),minWidth:0,height:o}}var u,d,g=[],v=t_[n],[b,y,x]=v,w=x/1e3,k=b.length;if(1===k){u=["hide-tail"],d=[v[3]]}else if(2===k)u=["halfarrow-left","halfarrow-right"],d=["xMinYMin","xMaxYMin"];else if(3===k)u=["brace-left","brace-center","brace-right"],d=["xMinYMin","xMidYMin","xMaxYMin"];else throw Error("Correct katexImagesData or update code here to support\n "+k+" children.");for(var S=0;S0&&(r.style.minWidth=Z(a)),r},t$=function(e,t,r,a,n){var i,s=e.height+e.depth+r+a;if(/fbox|color|angl/.test(t)){if(i=ta.makeSpan(["stretchy",t],[],n),"fbox"===t){var o=n.color&&n.getColor();o&&(i.style.borderColor=o)}}else{var l=[];/^[bx]cancel$/.test(t)&&l.push(new el({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&l.push(new el({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var h=new es(l,{width:"100%",height:Z(s)});i=ta.makeSvgSpan([],[h],n)}return i.height=s,i.style.height=Z(s),i},tZ={encloseSpan:t$,mathMLnode:tW,svgSpan:tj};function tK(e,t){if(!e||e.type!==t)throw Error("Expected node of type "+t+", but got "+(e?"node of type "+e.type:String(e)));return e}function tJ(e){var t=tQ(e);if(!t)throw Error("Expected node of symbol group type, but got "+(e?"node of type "+e.type:String(e)));return t}function tQ(e){return e&&("atom"===e.type||ec.hasOwnProperty(e.type))?e:null}var t0=(e,t)=>{e&&"supsub"===e.type?(h=(m=tK(e.base,"accent")).base,e.base=h,c=function(e){if(e instanceof et)return e;throw Error("Expected span but got "+String(e)+".")}(tT(e,t)),e.base=m):h=(m=tK(e,"accent")).base;var r=tT(h,t.havingCrampedStyle()),a=m.isShifty&&f.isCharacterBox(h),n=0;if(a){var i=f.getBaseElem(h),s=tT(i,t.havingCrampedStyle());n=eh(s).skew}var o="\\c"===m.label,l=o?r.height+r.depth:Math.min(r.height,t.fontMetrics().xHeight);if(m.isStretchy)p=tZ.svgSpan(m,t),p=ta.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"elem",elem:p,wrapperClasses:["svg-align"],wrapperStyle:n>0?{width:"calc(100% - "+Z(2*n)+")",marginLeft:Z(2*n)}:void 0}]},t);else{"\\vec"===m.label?(u=ta.staticSvg("vec",t),d=ta.svgData.vec[1]):((u=eh(u=ta.makeOrd({mode:m.mode,text:m.label},t,"textord"))).italic=0,d=u.width,o&&(l+=u.depth)),p=ta.makeSpan(["accent-body"],[u]);var h,m,c,p,u,d,g="\\textcircled"===m.label;g&&(p.classes.push("accent-full"),l=r.height);var v=n;g||(v-=d/2),p.style.left=Z(v),"\\textcircled"===m.label&&(p.style.top=".2em"),p=ta.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:-l},{type:"elem",elem:p}]},t)}var b=ta.makeSpan(["mord","accent"],[p],t);return c?(c.children[0]=b,c.height=Math.max(b.height,c.height),c.classes[0]="mord",c):b},t1=(e,t)=>{var r=e.isStretchy?tZ.mathMLnode(e.label):new tR.MathNode("mo",[tO(e.label,e.mode)]),a=new tR.MathNode("mover",[tP(e.base,t),r]);return a.setAttribute("accent","true"),a},t4=RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(e=>"\\"+e).join("|"));tp({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler(e,t){var r=td(t[0]),a=!t4.test(e.funcName),n=!a||"\\widehat"===e.funcName||"\\widetilde"===e.funcName||"\\widecheck"===e.funcName;return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:a,isShifty:n,base:r}},htmlBuilder:t0,mathmlBuilder:t1}),tp({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler(e,t){var r=t[0],a=e.parser.mode;return"math"===a&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),a="text"),{type:"accent",mode:a,label:e.funcName,isStretchy:!1,isShifty:!0,base:r}},htmlBuilder:t0,mathmlBuilder:t1}),tp({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:a}=e,n=t[0];return{type:"accentUnder",mode:r.mode,label:a,base:n}},htmlBuilder(e,t){var r=tT(e.base,t),a=tZ.svgSpan(e,t),n="\\utilde"===e.label?.12:0,i=ta.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:a,wrapperClasses:["svg-align"]},{type:"kern",size:n},{type:"elem",elem:r}]},t);return ta.makeSpan(["mord","accentunder"],[i],t)},mathmlBuilder(e,t){var r=tZ.mathMLnode(e.label),a=new tR.MathNode("munder",[tP(e.base,t),r]);return a.setAttribute("accentunder","true"),a}});var t5=e=>{var t=new tR.MathNode("mpadded",e?[e]:[]);return t.setAttribute("width","+0.6em"),t.setAttribute("lspace","0.3em"),t};tp({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,r){var{parser:a,funcName:n}=e;return{type:"xArrow",mode:a.mode,label:n,body:t[0],below:r[0]}},htmlBuilder(e,t){var r,a,n=t.style,i=t.havingStyle(n.sup()),s=ta.wrapFragment(tT(e.body,i,t),t),o="\\x"===e.label.slice(0,2)?"x":"cd";s.classes.push(o+"-arrow-pad"),e.below&&(i=t.havingStyle(n.sub()),(r=ta.wrapFragment(tT(e.below,i,t),t)).classes.push(o+"-arrow-pad"));var l=tZ.svgSpan(e,t),h=-t.fontMetrics().axisHeight+.5*l.height,m=-t.fontMetrics().axisHeight-.5*l.height-.111;if((s.depth>.25||"\\xleftequilibrium"===e.label)&&(m-=s.depth),r){var c=-t.fontMetrics().axisHeight+r.height+.5*l.height+.111;a=ta.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:m},{type:"elem",elem:l,shift:h},{type:"elem",elem:r,shift:c}]},t)}else a=ta.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:m},{type:"elem",elem:l,shift:h}]},t);return a.children[0].children[0].children[1].classes.push("svg-align"),ta.makeSpan(["mrel","x-arrow"],[a],t)},mathmlBuilder(e,t){var r,a=tZ.mathMLnode(e.label);if(a.setAttribute("minsize","x"===e.label.charAt(0)?"1.75em":"3.0em"),e.body){var n=t5(tP(e.body,t));if(e.below){var i=t5(tP(e.below,t));r=new tR.MathNode("munderover",[a,i,n])}else r=new tR.MathNode("mover",[a,n])}else if(e.below){var s=t5(tP(e.below,t));r=new tR.MathNode("munder",[a,s])}else r=t5(),r=new tR.MathNode("mover",[a,r]);return r}});var t6={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},t7=()=>({type:"styling",body:[],mode:"math",style:"display"}),t3=e=>"textord"===e.type&&"@"===e.text,t8=(e,t)=>("mathord"===e.type||"atom"===e.type)&&e.text===t;function t2(e,t,r){var a=t6[e];switch(a){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(a,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":var n=r.callFunction("\\\\cdleft",[t[0]],[]),i=r.callFunction("\\Big",[{type:"atom",text:a,mode:"math",family:"rel"}],[]),s=r.callFunction("\\\\cdright",[t[1]],[]);return r.callFunction("\\\\cdparent",[{type:"ordgroup",mode:"math",body:[n,i,s]}],[]);case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":return r.callFunction("\\Big",[{type:"textord",text:"\\Vert",mode:"math"}],[]);default:return{type:"textord",text:" ",mode:"math"}}}tp({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:a}=e;return{type:"cdlabel",mode:r.mode,side:a.slice(4),label:t[0]}},htmlBuilder(e,t){var r=t.havingStyle(t.style.sup()),a=ta.wrapFragment(tT(e.label,r,t),t);return a.classes.push("cd-label-"+e.side),a.style.bottom=Z(.8-a.depth),a.height=0,a.depth=0,a},mathmlBuilder(e,t){var r=new tR.MathNode("mrow",[tP(e.label,t)]);return(r=new tR.MathNode("mpadded",[r])).setAttribute("width","0"),"left"===e.side&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),(r=new tR.MathNode("mstyle",[r])).setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}}),tp({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(e,t){var{parser:r}=e;return{type:"cdlabelparent",mode:r.mode,fragment:t[0]}},htmlBuilder(e,t){var r=ta.wrapFragment(tT(e.fragment,t),t);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder:(e,t)=>new tR.MathNode("mrow",[tP(e.fragment,t)])}),tp({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(e,t){for(var r,{parser:a}=e,n=tK(t[0],"ordgroup").body,s="",o=0;o=1114111)throw new i("\\@char with invalid code point "+s);return h<=65535?r=String.fromCharCode(h):(h-=65536,r=String.fromCharCode((h>>10)+55296,(1023&h)+56320)),{type:"textord",mode:a.mode,text:r}}});var t9=(e,t)=>{var r=tw(e.body,t.withColor(e.color),!1);return ta.makeFragment(r)},re=(e,t)=>{var r=tL(e.body,t.withColor(e.color)),a=new tR.MathNode("mstyle",r);return a.setAttribute("mathcolor",e.color),a};tp({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(e,t){var{parser:r}=e,a=tK(t[0],"color-token").color,n=t[1];return{type:"color",mode:r.mode,color:a,body:tg(n)}},htmlBuilder:t9,mathmlBuilder:re}),tp({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(e,t){var{parser:r,breakOnTokenText:a}=e,n=tK(t[0],"color-token").color;r.gullet.macros.set("\\current@color",n);var i=r.parseExpression(!0,a);return{type:"color",mode:r.mode,color:n,body:i}},htmlBuilder:t9,mathmlBuilder:re}),tp({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:1,argTypes:["size"],allowedInText:!0},handler(e,t,r){var{parser:a}=e,n=r[0],i=!a.settings.displayMode||!a.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:a.mode,newLine:i,size:n&&tK(n,"size").value}},htmlBuilder(e,t){var r=ta.makeSpan(["mspace"],[],t);return e.newLine&&(r.classes.push("newline"),e.size&&(r.style.marginTop=Z($(e.size,t)))),r},mathmlBuilder(e,t){var r=new tR.MathNode("mspace");return e.newLine&&(r.setAttribute("linebreak","newline"),e.size&&r.setAttribute("height",Z($(e.size,t)))),r}});var rt={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},rr=e=>{var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new i("Expected a control sequence",e);return t},ra=e=>{var t=e.gullet.popToken();return"="===t.text&&" "===(t=e.gullet.popToken()).text&&(t=e.gullet.popToken()),t},rn=(e,t,r,a)=>{var n=e.gullet.macros.get(r.text);null==n&&(r.noexpand=!0,n={tokens:[r],numArgs:0,unexpandable:!e.gullet.isExpandable(r.text)}),e.gullet.macros.set(t,n,a)};tp({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(e){var{parser:t,funcName:r}=e;t.consumeSpaces();var a=t.fetch();if(rt[a.text])return("\\global"===r||"\\\\globallong"===r)&&(a.text=rt[a.text]),tK(t.parseFunction(),"internal");throw new i("Invalid token after macro prefix",a)}}),tp({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var t,{parser:r,funcName:a}=e,n=r.gullet.popToken(),s=n.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(s))throw new i("Expected a control sequence",n);for(var o=0,l=[[]];"{"!==r.gullet.future().text;)if("#"===(n=r.gullet.popToken()).text){if("{"===r.gullet.future().text){t=r.gullet.future(),l[o].push("{");break}if(n=r.gullet.popToken(),!/^[1-9]$/.test(n.text))throw new i('Invalid argument number "'+n.text+'"');if(parseInt(n.text)!==o+1)throw new i('Argument number "'+n.text+'" out of order');o++,l.push([])}else if("EOF"===n.text)throw new i("Expected a macro definition");else l[o].push(n.text);var{tokens:h}=r.gullet.consumeArg();return t&&h.unshift(t),("\\edef"===a||"\\xdef"===a)&&(h=r.gullet.expandTokens(h)).reverse(),r.gullet.macros.set(s,{tokens:h,numArgs:o,delimiters:l},a===rt[a]),{type:"internal",mode:r.mode}}}),tp({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:r}=e,a=rr(t.gullet.popToken());t.gullet.consumeSpaces();var n=ra(t);return rn(t,a,n,"\\\\globallet"===r),{type:"internal",mode:t.mode}}}),tp({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:r}=e,a=rr(t.gullet.popToken()),n=t.gullet.popToken(),i=t.gullet.popToken();return rn(t,a,i,"\\\\globalfuture"===r),t.gullet.pushToken(i),t.gullet.pushToken(n),{type:"internal",mode:t.mode}}});var ri=function(e,t,r){var a=F(ep.math[e]&&ep.math[e].replace||e,t,r);if(!a)throw Error("Unsupported symbol "+e+" and font size "+t+".");return a},rs=function(e,t,r,a){var n=r.havingBaseStyle(t),i=ta.makeSpan(a.concat(n.sizingClasses(r)),[e],r),s=n.sizeMultiplier/r.sizeMultiplier;return i.height*=s,i.depth*=s,i.maxFontSize=n.sizeMultiplier,i},ro=function(e,t,r){var a=t.havingBaseStyle(r),n=(1-t.sizeMultiplier/a.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=Z(n),e.height-=n,e.depth+=n},rl=function(e,t,r,a,n,i){var s=ta.makeSymbol(e,"Main-Regular",n,a),o=rs(s,t,a,i);return r&&ro(o,a,t),o},rh=function(e,t,r,a,n,i){var s,o,l,h,m=ta.makeSymbol(e,"Size"+t+"-Regular",n,a),c=rs(ta.makeSpan(["delimsizing","size"+t],[m],a),B.TEXT,a,i);return r&&ro(c,a,B.TEXT),c},rm=function(e,t,r){var a;return{type:"elem",elem:ta.makeSpan(["delimsizinginner","Size1-Regular"===t?"delim-size1":"delim-size4"],[ta.makeSpan([],[ta.makeSymbol(e,t,r)])])}},rc=function(e,t,r){var a=E["Size4-Regular"][e.charCodeAt(0)]?E["Size4-Regular"][e.charCodeAt(0)][4]:E["Size1-Regular"][e.charCodeAt(0)][4],n=new eo("inner",R(e,Math.round(1e3*t))),i=new es([n],{width:Z(a),height:Z(t),style:"width:"+Z(a),viewBox:"0 0 "+1e3*a+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"}),s=ta.makeSvgSpan([],[i],r);return s.height=t,s.style.height=Z(t),s.style.width=Z(a),{type:"elem",elem:s}},rp={type:"kern",size:-.008},ru=["|","\\lvert","\\rvert","\\vert"],rd=["\\|","\\lVert","\\rVert","\\Vert"],rg=function(e,t,r,a,n,i){s=l=h=e,o=null;var s,o,l,h,m="Size1-Regular";"\\uparrow"===e?l=h="⏐":"\\Uparrow"===e?l=h="‖":"\\downarrow"===e?s=l="⏐":"\\Downarrow"===e?s=l="‖":"\\updownarrow"===e?(s="\\uparrow",l="⏐",h="\\downarrow"):"\\Updownarrow"===e?(s="\\Uparrow",l="‖",h="\\Downarrow"):f.contains(ru,e)?l="∣":f.contains(rd,e)?l="∥":"["===e||"\\lbrack"===e?(s="⎡",l="⎢",h="⎣",m="Size4-Regular"):"]"===e||"\\rbrack"===e?(s="⎤",l="⎥",h="⎦",m="Size4-Regular"):"\\lfloor"===e||"⌊"===e?(l=s="⎢",h="⎣",m="Size4-Regular"):"\\lceil"===e||"⌈"===e?(s="⎡",l=h="⎢",m="Size4-Regular"):"\\rfloor"===e||"⌋"===e?(l=s="⎥",h="⎦",m="Size4-Regular"):"\\rceil"===e||"⌉"===e?(s="⎤",l=h="⎥",m="Size4-Regular"):"("===e||"\\lparen"===e?(s="⎛",l="⎜",h="⎝",m="Size4-Regular"):")"===e||"\\rparen"===e?(s="⎞",l="⎟",h="⎠",m="Size4-Regular"):"\\{"===e||"\\lbrace"===e?(s="⎧",o="⎨",h="⎩",l="⎪",m="Size4-Regular"):"\\}"===e||"\\rbrace"===e?(s="⎫",o="⎬",h="⎭",l="⎪",m="Size4-Regular"):"\\lgroup"===e||"⟮"===e?(s="⎧",h="⎩",l="⎪",m="Size4-Regular"):"\\rgroup"===e||"⟯"===e?(s="⎫",h="⎭",l="⎪",m="Size4-Regular"):"\\lmoustache"===e||"⎰"===e?(s="⎧",h="⎭",l="⎪",m="Size4-Regular"):("\\rmoustache"===e||"⎱"===e)&&(s="⎫",h="⎩",l="⎪",m="Size4-Regular");var c=ri(s,m,n),p=c.height+c.depth,u=ri(l,m,n),d=u.height+u.depth,g=ri(h,m,n),v=g.height+g.depth,b=0,y=1;if(null!==o){var x=ri(o,m,n);b=x.height+x.depth,y=2}var w=p+v+b,k=Math.max(0,Math.ceil((t-w)/(y*d))),S=w+k*y*d,M=a.fontMetrics().axisHeight;r&&(M*=a.sizeMultiplier);var z=[];if(z.push(rm(h,m,n)),z.push(rp),null===o)z.push(rc(l,S-p-v+.016,a));else{var A=(S-p-v-b)/2+.016;z.push(rc(l,A,a)),z.push(rp),z.push(rm(o,m,n)),z.push(rp),z.push(rc(l,A,a))}z.push(rp),z.push(rm(s,m,n));var T=a.havingBaseStyle(B.TEXT),q=ta.makeVList({positionType:"bottom",positionData:S/2-M,children:z},T);return rs(ta.makeSpan(["delimsizing","mult"],[q],T),B.TEXT,a,i)},rf=function(e,t,r,a,n){var i=I(e,a,r),s=new eo(e,i),o=new es([s],{width:"400em",height:Z(t),viewBox:"0 0 400000 "+r,preserveAspectRatio:"xMinYMin slice"});return ta.makeSvgSpan(["hide-tail"],[o],n)},rv=function(e,t){var r,a,n=t.havingBaseSizing(),i=rT("\\surd",e*n.sizeMultiplier,rz,n),s=n.sizeMultiplier,o=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),l=0,h=0,m=0;return"small"===i.type?(m=1e3+1e3*o+80,e<1?s=1:e<1.4&&(s=.7),l=(1+o+.08)/s,h=(1+o)/s,(r=rf("sqrtMain",l,m,o,t)).style.minWidth="0.853em",a=.833/s):"large"===i.type?(m=1080*rw[i.size],h=(rw[i.size]+o)/s,l=(rw[i.size]+o+.08)/s,(r=rf("sqrtSize"+i.size,l,m,o,t)).style.minWidth="1.02em",a=1/s):(l=e+o+.08,h=e+o,(r=rf("sqrtTall",l,m=Math.floor(1e3*e+o)+80,o,t)).style.minWidth="0.742em",a=1.056),r.height=h,r.style.height=Z(l),{span:r,advanceWidth:a,ruleWidth:(t.fontMetrics().sqrtRuleThickness+o)*s}},rb=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"],ry=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"],rx=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],rw=[0,1.2,1.8,2.4,3],rk=function(e,t,r,a,n){if("<"===e||"\\lt"===e||"⟨"===e?e="\\langle":(">"===e||"\\gt"===e||"⟩"===e)&&(e="\\rangle"),f.contains(rb,e)||f.contains(rx,e))return rh(e,t,!1,r,a,n);if(f.contains(ry,e))return rg(e,rw[t],!1,r,a,n);throw new i("Illegal delimiter: '"+e+"'")},rS=[{type:"small",style:B.SCRIPTSCRIPT},{type:"small",style:B.SCRIPT},{type:"small",style:B.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],rM=[{type:"small",style:B.SCRIPTSCRIPT},{type:"small",style:B.SCRIPT},{type:"small",style:B.TEXT},{type:"stack"}],rz=[{type:"small",style:B.SCRIPTSCRIPT},{type:"small",style:B.SCRIPT},{type:"small",style:B.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],rA=function(e){if("small"===e.type)return"Main-Regular";if("large"===e.type)return"Size"+e.size+"-Regular";if("stack"===e.type)return"Size4-Regular";throw Error("Add support for delim type '"+e.type+"' here.")},rT=function(e,t,r,a){for(var n=Math.min(2,3-a.style.size),i=n;it)return r[i]}return r[r.length-1]},rB=function(e,t,r,a,n,i){"<"===e||"\\lt"===e||"⟨"===e?e="\\langle":(">"===e||"\\gt"===e||"⟩"===e)&&(e="\\rangle"),s=f.contains(rx,e)?rS:f.contains(rb,e)?rz:rM;var s,o=rT(e,t,s,a);return"small"===o.type?rl(e,o.style,r,a,n,i):"large"===o.type?rh(e,o.size,r,a,n,i):rg(e,t,r,a,n,i)},rq=function(e,t,r,a,n,i){var s=a.fontMetrics().axisHeight*a.sizeMultiplier,o=5/a.fontMetrics().ptPerEm,l=Math.max(t-s,r+s);return rB(e,Math.max(l/500*901,2*l-o),!0,a,n,i)},rC={sqrtImage:rv,sizedDelim:rk,sizeToMaxHeight:rw,customSizedDelim:rB,leftRightDelim:rq},rN={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},rI=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function rR(e,t){var r=tQ(e);if(r&&f.contains(rI,r.text))return r;if(r)throw new i("Invalid delimiter '"+r.text+"' after '"+t.funcName+"'",e);throw new i("Invalid delimiter type '"+e.type+"'",e)}function rO(e){if(!e.body)throw Error("Bug: The leftright ParseNode wasn't fully parsed.")}tp({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler(e,t){var r=rR(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:rN[e.funcName].size,mclass:rN[e.funcName].mclass,delim:r.text}},htmlBuilder:(e,t)=>"."===e.delim?ta.makeSpan([e.mclass]):rC.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass]),mathmlBuilder(e){var t=[];"."!==e.delim&&t.push(tO(e.delim,e.mode));var r=new tR.MathNode("mo",t);"mopen"===e.mclass||"mclose"===e.mclass?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var a=Z(rC.sizeToMaxHeight[e.size]);return r.setAttribute("minsize",a),r.setAttribute("maxsize",a),r}}),tp({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler(e,t){var r=e.parser.gullet.macros.get("\\current@color");if(r&&"string"!=typeof r)throw new i("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:rR(t[0],e).text,color:r}}}),tp({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler(e,t){var r=rR(t[0],e),a=e.parser;++a.leftrightDepth;var n=a.parseExpression(!1);--a.leftrightDepth,a.expect("\\right",!1);var i=tK(a.parseFunction(),"leftright-right");return{type:"leftright",mode:a.mode,body:n,left:r.text,right:i.delim,rightColor:i.color}},htmlBuilder(e,t){rO(e);for(var r,a,n=tw(e.body,t,!0,["mopen","mclose"]),i=0,s=0,o=!1,l=0;l{var r,a,n=ta.wrapFragment(tT(e.body,t),t),i=e.label.substr(1),s=t.sizeMultiplier,o=0,l=f.isCharacterBox(e.body);if("sout"===i)(r=ta.makeSpan(["stretchy","sout"])).height=t.fontMetrics().defaultRuleThickness/s,o=-.5*t.fontMetrics().xHeight;else if("phase"===i){var h=$({number:.6,unit:"pt"},t),m=$({number:.35,unit:"ex"},t);s/=t.havingBaseSizing().sizeMultiplier;var c=n.height+n.depth+h+m;n.style.paddingLeft=Z(c/2+h);var p,u=Math.floor(1e3*c*s),d=new es([new eo("phase","M400000 "+u+" H0 L"+u/2+" 0 l65 45 L145 "+(u-80)+" H400000z")],{width:"400em",height:Z(u/1e3),viewBox:"0 0 400000 "+u,preserveAspectRatio:"xMinYMin slice"});(r=ta.makeSvgSpan(["hide-tail"],[d],t)).style.height=Z(c),o=n.depth+h+m}else{/cancel/.test(i)?l||n.classes.push("cancel-pad"):"angl"===i?n.classes.push("anglpad"):n.classes.push("boxpad");var g=0,v=0,b=0;/box/.test(i)?(b=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness),v=g=t.fontMetrics().fboxsep+("colorbox"===i?0:b)):"angl"===i?(g=4*(b=Math.max(t.fontMetrics().defaultRuleThickness,t.minRuleThickness)),v=Math.max(0,.25-n.depth)):v=g=l?.2:0,r=tZ.encloseSpan(n,i,g,v,t),/fbox|boxed|fcolorbox/.test(i)?(r.style.borderStyle="solid",r.style.borderWidth=Z(b)):"angl"===i&&.049!==b&&(r.style.borderTopWidth=Z(b),r.style.borderRightWidth=Z(b)),o=n.depth+v,e.backgroundColor&&(r.style.backgroundColor=e.backgroundColor,e.borderColor&&(r.style.borderColor=e.borderColor))}if(e.backgroundColor)a=ta.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:o},{type:"elem",elem:n,shift:0}]},t);else{var y=/cancel|phase/.test(i)?["svg-align"]:[];a=ta.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:0},{type:"elem",elem:r,shift:o,wrapperClasses:y}]},t)}return(/cancel/.test(i)&&(a.height=n.height,a.depth=n.depth),/cancel/.test(i)&&!l)?ta.makeSpan(["mord","cancel-lap"],[a],t):ta.makeSpan(["mord"],[a],t)},rE=(e,t)=>{var r=0,a=new tR.MathNode(e.label.indexOf("colorbox")>-1?"mpadded":"menclose",[tP(e.body,t)]);switch(e.label){case"\\cancel":a.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":a.setAttribute("notation","downdiagonalstrike");break;case"\\phase":a.setAttribute("notation","phasorangle");break;case"\\sout":a.setAttribute("notation","horizontalstrike");break;case"\\fbox":a.setAttribute("notation","box");break;case"\\angl":a.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,a.setAttribute("width","+"+2*r+"pt"),a.setAttribute("height","+"+2*r+"pt"),a.setAttribute("lspace",r+"pt"),a.setAttribute("voffset",r+"pt"),"\\fcolorbox"===e.label){var n=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);a.setAttribute("style","border: "+n+"em solid "+String(e.borderColor))}break;case"\\xcancel":a.setAttribute("notation","updiagonalstrike downdiagonalstrike")}return e.backgroundColor&&a.setAttribute("mathbackground",e.backgroundColor),a};tp({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(e,t,r){var{parser:a,funcName:n}=e,i=tK(t[0],"color-token").color,s=t[1];return{type:"enclose",mode:a.mode,label:n,backgroundColor:i,body:s}},htmlBuilder:rH,mathmlBuilder:rE}),tp({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(e,t,r){var{parser:a,funcName:n}=e,i=tK(t[0],"color-token").color,s=tK(t[1],"color-token").color,o=t[2];return{type:"enclose",mode:a.mode,label:n,backgroundColor:s,borderColor:i,body:o}},htmlBuilder:rH,mathmlBuilder:rE}),tp({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(e,t){var{parser:r}=e;return{type:"enclose",mode:r.mode,label:"\\fbox",body:t[0]}}}),tp({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:a}=e,n=t[0];return{type:"enclose",mode:r.mode,label:a,body:n}},htmlBuilder:rH,mathmlBuilder:rE}),tp({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(e,t){var{parser:r}=e;return{type:"enclose",mode:r.mode,label:"\\angl",body:t[0]}}});var rL={};function rD(e){for(var{type:t,names:r,props:a,handler:n,htmlBuilder:i,mathmlBuilder:s}=e,o={type:t,numArgs:a.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:n},l=0;l{if(!e.parser.settings.displayMode)throw new i("{"+e.envName+"} can be used only in display mode.")};function rU(e){if(-1===e.indexOf("ed"))return -1===e.indexOf("*")}function rY(e,t,r){var{hskipBeforeAndAfter:a,addJot:s,cols:o,arraystretch:l,colSeparationType:h,autoTag:m,singleRow:c,emptySingleRow:p,maxNumCols:u,leqno:d}=t;if(e.gullet.beginGroup(),c||e.gullet.macros.set("\\cr","\\\\\\relax"),!l){var g=e.gullet.expandMacroAsText("\\arraystretch");if(null==g)l=1;else if(!(l=parseFloat(g))||l<0)throw new i("Invalid \\arraystretch: "+g)}e.gullet.beginGroup();var f=[],v=[f],b=[],y=[],x=null!=m?[]:void 0;function w(){m&&e.gullet.macros.set("\\@eqnsw","1",!0)}function k(){x&&(e.gullet.macros.get("\\df@tag")?(x.push(e.subparse([new n("\\df@tag")])),e.gullet.macros.set("\\df@tag",void 0,!0)):x.push(Boolean(m)&&"1"===e.gullet.macros.get("\\@eqnsw")))}for(w(),y.push(rV(e));;){var S=e.parseExpression(!1,c?"\\end":"\\\\");e.gullet.endGroup(),e.gullet.beginGroup(),S={type:"ordgroup",mode:e.mode,body:S},r&&(S={type:"styling",mode:e.mode,style:r,body:[S]}),f.push(S);var M=e.fetch().text;if("&"===M){if(u&&f.length===u){if(c||h)throw new i("Too many tab characters: &",e.nextToken);e.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}e.consume()}else if("\\end"===M){k(),1===f.length&&"styling"===S.type&&0===S.body[0].body.length&&(v.length>1||!p)&&v.pop(),y.length0&&(w+=.25),c.push({pos:w,isDashed:e[t]})}for(k(l[0]),r=0;r0&&(z<(C+=x)&&(z=C),C=0),e.addJot&&(z+=v),A.height=M,A.depth=z,w+=M,A.pos=w,w+=z+C,m[r]=A,k(l[r+1])}var N=w/2+t.fontMetrics().axisHeight,I=e.cols||[],R=[],O=[];if(e.tags&&e.tags.some(e=>e))for(r=0;r=h)){var Y=void 0;(a>0||e.hskipBeforeAndAfter)&&0!==(Y=f.deflt(P.pregap,d))&&((n=ta.makeSpan(["arraycolsep"],[])).style.width=Z(Y),R.push(n));var X=[];for(r=0;r0){for(var K=ta.makeLineSpan("hline",t,p),J=ta.makeLineSpan("hdashline",t,p),Q=[{type:"elem",elem:m,shift:0}];c.length>0;){var ee=c.pop(),et=ee.pos-N;ee.isDashed?Q.push({type:"elem",elem:J,shift:et}):Q.push({type:"elem",elem:K,shift:et})}m=ta.makeVList({positionType:"individualShift",children:Q},t)}if(0===O.length)return ta.makeSpan(["mord"],[m],t);var er=ta.makeVList({positionType:"individualShift",children:O},t);return er=ta.makeSpan(["tag"],[er],t),ta.makeFragment([m,er])},rK={c:"center ",l:"left ",r:"right "},rJ=function(e,t){for(var r=[],a=new tR.MathNode("mtd",[],["mtr-glue"]),n=new tR.MathNode("mtd",[],["mml-eqn-num"]),i=0;i0){var u=e.cols,d="",g=!1,f=0,v=u.length;"separator"===u[0].type&&(c+="top ",f=1),"separator"===u[u.length-1].type&&(c+="bottom ",v-=1);for(var b=f;b0?"left ":"",c+=S[S.length-1].length>0?"right ":"";for(var M=1;M-1?"alignat":"align",s="split"===e.envName,o=rY(e.parser,{cols:a,addJot:!0,autoTag:s?void 0:rU(e.envName),emptySingleRow:!0,colSeparationType:n,maxNumCols:s?2:void 0,leqno:e.parser.settings.leqno},"display"),l=0,h={type:"ordgroup",mode:e.mode,body:[]};if(t[0]&&"ordgroup"===t[0].type){for(var m="",c=0;c0&&u&&(f=1),a[d]={type:"align",align:g,pregap:f,postgap:0}}return o.colSeparationType=u?"align":"alignat",o};rD({type:"array",names:["array","darray"],props:{numArgs:1},handler(e,t){var r=(tQ(t[0])?[t[0]]:tK(t[0],"ordgroup").body).map(function(e){var t=tJ(e).text;if(-1!=="lcr".indexOf(t))return{type:"align",align:t};if("|"===t)return{type:"separator",separator:"|"};if(":"===t)return{type:"separator",separator:":"};throw new i("Unknown column alignment: "+t,e)}),a={cols:r,hskipBeforeAndAfter:!0,maxNumCols:r.length};return rY(e.parser,a,rX(e.envName))},htmlBuilder:rZ,mathmlBuilder:rJ}),rD({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(e){var t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")],r="c",a={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if("*"===e.envName.charAt(e.envName.length-1)){var n=e.parser;if(n.consumeSpaces(),"["===n.fetch().text){if(n.consume(),n.consumeSpaces(),r=n.fetch().text,-1==="lcr".indexOf(r))throw new i("Expected l or c or r",n.nextToken);n.consume(),n.consumeSpaces(),n.expect("]"),n.consume(),a.cols=[{type:"align",align:r}]}}var s=rY(e.parser,a,rX(e.envName)),o=Math.max(0,...s.body.map(e=>e.length));return s.cols=Array(o).fill({type:"align",align:r}),t?{type:"leftright",mode:e.mode,body:[s],left:t[0],right:t[1],rightColor:void 0}:s},htmlBuilder:rZ,mathmlBuilder:rJ}),rD({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(e){var t=rY(e.parser,{arraystretch:.5},"script");return t.colSeparationType="small",t},htmlBuilder:rZ,mathmlBuilder:rJ}),rD({type:"array",names:["subarray"],props:{numArgs:1},handler(e,t){var r=(tQ(t[0])?[t[0]]:tK(t[0],"ordgroup").body).map(function(e){var t=tJ(e).text;if(-1!=="lc".indexOf(t))return{type:"align",align:t};throw new i("Unknown column alignment: "+t,e)});if(r.length>1)throw new i("{subarray} can contain only one column");var a={cols:r,hskipBeforeAndAfter:!1,arraystretch:.5};if((a=rY(e.parser,a,"script")).body.length>0&&a.body[0].length>1)throw new i("{subarray} can contain only one column");return a},htmlBuilder:rZ,mathmlBuilder:rJ}),rD({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(e){var t=rY(e.parser,{arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},rX(e.envName));return{type:"leftright",mode:e.mode,body:[t],left:e.envName.indexOf("r")>-1?".":"\\{",right:e.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:rZ,mathmlBuilder:rJ}),rD({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:rQ,htmlBuilder:rZ,mathmlBuilder:rJ}),rD({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(e){f.contains(["gather","gather*"],e.envName)&&rG(e);var t={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:rU(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return rY(e.parser,t,"display")},htmlBuilder:rZ,mathmlBuilder:rJ}),rD({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:rQ,htmlBuilder:rZ,mathmlBuilder:rJ}),rD({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(e){rG(e);var t={autoTag:rU(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return rY(e.parser,t,"display")},htmlBuilder:rZ,mathmlBuilder:rJ}),rD({type:"array",names:["CD"],props:{numArgs:0},handler:e=>(rG(e),function(e){var t=[];for(e.gullet.beginGroup(),e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,"\\\\")),e.gullet.endGroup(),e.gullet.beginGroup();var r=e.fetch().text;if("&"===r||"\\\\"===r)e.consume();else if("\\end"===r){0===t[t.length-1].length&&t.pop();break}else throw new i("Expected \\\\ or \\cr or \\end",e.nextToken)}for(var a=[],n=[a],s=0;s-1);else if("<>AV".indexOf(m)>-1)for(var p=0;p<2;p++){for(var u=!0,d=h+1;dAV=|." after @',o[h]);var g={type:"styling",body:[t2(m,c,e)],mode:"math",style:"display"};a.push(g),l=t7()}else l.body.push(o[h]);s%2==0?a.push(l):a.shift(),a=[],n.push(a)}e.gullet.endGroup(),e.gullet.endGroup();var f=Array(n[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:n,arraystretch:1,addJot:!0,rowGaps:[null],cols:f,colSeparationType:"CD",hLinesBeforeRow:Array(n.length+1).fill([])}}(e.parser)),htmlBuilder:rZ,mathmlBuilder:rJ}),rP["\\nonumber"]="\\gdef\\@eqnsw{0}",rP["\\notag"]="\\nonumber",tp({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(e,t){throw new i(e.funcName+" valid only within array environment")}}),tp({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(e,t){var{parser:r,funcName:a}=e,n=t[0];if("ordgroup"!==n.type)throw new i("Invalid environment name",n);for(var s="",o=0;o{var t="ordgroup"===e.type&&e.body.length?e.body[0]:e;return"atom"===t.type&&("bin"===t.family||"rel"===t.family)?"m"+t.family:"mord"};tp({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(e,t){var{parser:r}=e;return{type:"mclass",mode:r.mode,mclass:r5(t[0]),body:tg(t[1]),isCharacterBox:f.isCharacterBox(t[1])}}}),tp({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(e,t){var r,{parser:a,funcName:n}=e,i=t[1],s=t[0];r="\\stackrel"!==n?r5(i):"mrel";var o={type:"op",mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:"\\stackrel"!==n,body:tg(i)},l={type:"supsub",mode:s.mode,base:o,sup:"\\underset"===n?null:s,sub:"\\underset"===n?s:null};return{type:"mclass",mode:a.mode,mclass:r,body:[l],isCharacterBox:f.isCharacterBox(l)}},htmlBuilder:r1,mathmlBuilder:r4});var r6=(e,t)=>{var r=e.font,a=t.withFont(r);return tT(e.body,a)},r7=(e,t)=>{var r=e.font,a=t.withFont(r);return tP(e.body,a)},r3={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};tp({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler(e,t){var{parser:r,funcName:a}=e,n=td(t[0]),i=a;return i in r3&&(i=r3[i]),{type:"font",mode:r.mode,font:i.slice(1),body:n}},htmlBuilder:r6,mathmlBuilder:r7}),tp({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler(e,t){var{parser:r}=e,a=t[0],n=f.isCharacterBox(a);return{type:"mclass",mode:r.mode,mclass:r5(a),body:[{type:"font",mode:r.mode,font:"boldsymbol",body:a}],isCharacterBox:n}}}),tp({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler(e,t){var{parser:r,funcName:a,breakOnTokenText:n}=e,{mode:i}=r,s=r.parseExpression(!0,n);return{type:"font",mode:i,font:"math"+a.slice(1),body:{type:"ordgroup",mode:r.mode,body:s}}},htmlBuilder:r6,mathmlBuilder:r7});var r8=(e,t)=>{var r=t;return"display"===e?r=r.id>=B.SCRIPT.id?r.text():B.DISPLAY:"text"===e&&r.size===B.DISPLAY.size?r=B.TEXT:"script"===e?r=B.SCRIPT:"scriptscript"===e&&(r=B.SCRIPTSCRIPT),r},r2=(e,t)=>{var r,a,n,i,s,o,l,h,m,c,p,u=r8(e.size,t.style),d=u.fracNum(),g=u.fracDen();r=t.havingStyle(d);var f=tT(e.numer,r,t);if(e.continued){var v=8.5/t.fontMetrics().ptPerEm,b=3.5/t.fontMetrics().ptPerEm;f.height=f.height0?3*i:7*i,l=t.fontMetrics().denom1):(n>0?(s=t.fontMetrics().num2,o=i):(s=t.fontMetrics().num3,o=3*i),l=t.fontMetrics().denom2),a){var x=t.fontMetrics().axisHeight;s-f.depth-(x+.5*n){var r=new tR.MathNode("mfrac",[tP(e.numer,t),tP(e.denom,t)]);if(e.hasBarLine){if(e.barSize){var a=$(e.barSize,t);r.setAttribute("linethickness",Z(a))}}else r.setAttribute("linethickness","0px");var n=r8(e.size,t.style);if(n.size!==t.style.size){r=new tR.MathNode("mstyle",[r]);var i=n.size===B.DISPLAY.size?"true":"false";r.setAttribute("displaystyle",i),r.setAttribute("scriptlevel","0")}if(null!=e.leftDelim||null!=e.rightDelim){var s=[];if(null!=e.leftDelim){var o=new tR.MathNode("mo",[new tR.TextNode(e.leftDelim.replace("\\",""))]);o.setAttribute("fence","true"),s.push(o)}if(s.push(r),null!=e.rightDelim){var l=new tR.MathNode("mo",[new tR.TextNode(e.rightDelim.replace("\\",""))]);l.setAttribute("fence","true"),s.push(l)}return tH(s)}return r};tp({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler(e,t){var r,{parser:a,funcName:n}=e,i=t[0],s=t[1],o=null,l=null,h="auto";switch(n){case"\\dfrac":case"\\frac":case"\\tfrac":r=!0;break;case"\\\\atopfrac":r=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":r=!1,o="(",l=")";break;case"\\\\bracefrac":r=!1,o="\\{",l="\\}";break;case"\\\\brackfrac":r=!1,o="[",l="]";break;default:throw Error("Unrecognized genfrac command")}switch(n){case"\\dfrac":case"\\dbinom":h="display";break;case"\\tfrac":case"\\tbinom":h="text"}return{type:"genfrac",mode:a.mode,continued:!1,numer:i,denom:s,hasBarLine:r,leftDelim:o,rightDelim:l,size:h,barSize:null}},htmlBuilder:r2,mathmlBuilder:r9}),tp({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler(e,t){var{parser:r,funcName:a}=e,n=t[0],i=t[1];return{type:"genfrac",mode:r.mode,continued:!0,numer:n,denom:i,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}}),tp({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(e){var t,{parser:r,funcName:a,token:n}=e;switch(a){case"\\over":t="\\frac";break;case"\\choose":t="\\binom";break;case"\\atop":t="\\\\atopfrac";break;case"\\brace":t="\\\\bracefrac";break;case"\\brack":t="\\\\brackfrac";break;default:throw Error("Unrecognized infix genfrac command")}return{type:"infix",mode:r.mode,replaceWith:t,token:n}}});var ae=["display","text","script","scriptscript"],at=function(e){var t=null;return e.length>0&&(t="."===(t=e)?null:t),t};tp({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(e,t){var r,{parser:a}=e,n=t[4],i=t[5],s=td(t[0]),o="atom"===s.type&&"open"===s.family?at(s.text):null,l=td(t[1]),h="atom"===l.type&&"close"===l.family?at(l.text):null,m=tK(t[2],"size"),c=null;r=!!m.isBlank||(c=m.value).number>0;var p="auto",u=t[3];if("ordgroup"===u.type){if(u.body.length>0){var d=tK(u.body[0],"textord");p=ae[Number(d.text)]}}else u=tK(u,"textord"),p=ae[Number(u.text)];return{type:"genfrac",mode:a.mode,numer:n,denom:i,continued:!1,hasBarLine:r,barSize:c,leftDelim:o,rightDelim:h,size:p}},htmlBuilder:r2,mathmlBuilder:r9}),tp({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(e,t){var{parser:r,funcName:a,token:n}=e;return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:tK(t[0],"size").value,token:n}}}),tp({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler(e,t){var{parser:r,funcName:a}=e,n=t[0],i=d(tK(t[1],"infix").size),s=t[2],o=i.number>0;return{type:"genfrac",mode:r.mode,numer:n,denom:s,continued:!1,hasBarLine:o,barSize:i,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:r2,mathmlBuilder:r9});var ar=(e,t)=>{var r,a,n,i=t.style;"supsub"===e.type?(r=e.sup?tT(e.sup,t.havingStyle(i.sup()),t):tT(e.sub,t.havingStyle(i.sub()),t),a=tK(e.base,"horizBrace")):a=tK(e,"horizBrace");var s=tT(a.base,t.havingBaseStyle(B.DISPLAY)),o=tZ.svgSpan(a,t);if(a.isOver?(n=ta.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:o}]},t)).children[0].children[0].children[1].classes.push("svg-align"):(n=ta.makeVList({positionType:"bottom",positionData:s.depth+.1+o.height,children:[{type:"elem",elem:o},{type:"kern",size:.1},{type:"elem",elem:s}]},t)).children[0].children[0].children[0].classes.push("svg-align"),r){var l=ta.makeSpan(["mord",a.isOver?"mover":"munder"],[n],t);n=a.isOver?ta.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:r}]},t):ta.makeVList({positionType:"bottom",positionData:l.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:l}]},t)}return ta.makeSpan(["mord",a.isOver?"mover":"munder"],[n],t)};tp({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(e,t){var{parser:r,funcName:a}=e;return{type:"horizBrace",mode:r.mode,label:a,isOver:/^\\over/.test(a),base:t[0]}},htmlBuilder:ar,mathmlBuilder(e,t){var r=tZ.mathMLnode(e.label);return new tR.MathNode(e.isOver?"mover":"munder",[tP(e.base,t),r])}}),tp({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler(e,t){var{parser:r}=e,a=t[1],n=tK(t[0],"url").url;return r.settings.isTrusted({command:"\\href",url:n})?{type:"href",mode:r.mode,href:n,body:tg(a)}:r.formatUnsupportedCmd("\\href")},htmlBuilder(e,t){var r=tw(e.body,t,!1);return ta.makeAnchor(e.href,[],r,t)},mathmlBuilder(e,t){var r=tD(e.body,t);return r instanceof tN||(r=new tN("mrow",[r])),r.setAttribute("href",e.href),r}}),tp({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler(e,t){var{parser:r}=e,a=tK(t[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:a}))return r.formatUnsupportedCmd("\\url");for(var n=[],i=0;inew tR.MathNode("mrow",tL(e.body,t))}),tp({type:"html",names:["\\htmlClass","\\htmlId","\\htmlStyle","\\htmlData"],props:{numArgs:2,argTypes:["raw","original"],allowedInText:!0},handler(e,t){var r,{parser:a,funcName:n,token:s}=e,o=tK(t[0],"raw").string,l=t[1];a.settings.strict&&a.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var h={};switch(n){case"\\htmlClass":h.class=o,r={command:"\\htmlClass",class:o};break;case"\\htmlId":h.id=o,r={command:"\\htmlId",id:o};break;case"\\htmlStyle":h.style=o,r={command:"\\htmlStyle",style:o};break;case"\\htmlData":for(var m=o.split(","),c=0;ctD(e.body,t)}),tp({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler(e,t){var{parser:r}=e;return{type:"htmlmathml",mode:r.mode,html:tg(t[0]),mathml:tg(t[1])}},htmlBuilder(e,t){var r=tw(e.html,t,!1);return ta.makeFragment(r)},mathmlBuilder:(e,t)=>tD(e.mathml,t)});var aa=function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var t=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!t)throw new i("Invalid size: '"+e+"' in \\includegraphics");var r={number:+(t[1]+t[2]),unit:t[3]};if(!j(r))throw new i("Invalid unit: '"+r.unit+"' in \\includegraphics.");return r};tp({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler(e,t,r){var{parser:a}=e,n={number:0,unit:"em"},s={number:.9,unit:"em"},o={number:0,unit:"em"},l="";if(r[0])for(var h=tK(r[0],"raw").string.split(","),m=0;m0&&(a=$(e.totalheight,t)-r);var n=0;e.width.number>0&&(n=$(e.width,t));var i={height:Z(r+a)};n>0&&(i.width=Z(n)),a>0&&(i.verticalAlign=Z(-a));var s=new ea(e.src,e.alt,i);return s.height=r,s.depth=a,s},mathmlBuilder(e,t){var r=new tR.MathNode("mglyph",[]);r.setAttribute("alt",e.alt);var a=$(e.height,t),n=0;if(e.totalheight.number>0&&(n=$(e.totalheight,t)-a,r.setAttribute("valign",Z(-n))),r.setAttribute("height",Z(a+n)),e.width.number>0){var i=$(e.width,t);r.setAttribute("width",Z(i))}return r.setAttribute("src",e.src),r}}),tp({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(e,t){var{parser:r,funcName:a}=e,n=tK(t[0],"size");if(r.settings.strict){var i="m"===a[1],s="mu"===n.value.unit;i?(s||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" supports only mu units, not "+n.value.unit+" units"),"math"!==r.mode&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" works only in math mode")):s&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:n.value}},htmlBuilder:(e,t)=>ta.makeGlue(e.dimension,t),mathmlBuilder(e,t){var r=$(e.dimension,t);return new tR.SpaceNode(r)}}),tp({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:r,funcName:a}=e,n=t[0];return{type:"lap",mode:r.mode,alignment:a.slice(5),body:n}},htmlBuilder(e,t){"clap"===e.alignment?(r=ta.makeSpan([],[tT(e.body,t)]),r=ta.makeSpan(["inner"],[r],t)):r=ta.makeSpan(["inner"],[tT(e.body,t)]);var r,a=ta.makeSpan(["fix"],[]),n=ta.makeSpan([e.alignment],[r,a],t),i=ta.makeSpan(["strut"]);return i.style.height=Z(n.height+n.depth),n.depth&&(i.style.verticalAlign=Z(-n.depth)),n.children.unshift(i),n=ta.makeSpan(["thinbox"],[n],t),ta.makeSpan(["mord","vbox"],[n],t)},mathmlBuilder(e,t){var r=new tR.MathNode("mpadded",[tP(e.body,t)]);if("rlap"!==e.alignment){var a="llap"===e.alignment?"-1":"-0.5";r.setAttribute("lspace",a+"width")}return r.setAttribute("width","0px"),r}}),tp({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){var{funcName:r,parser:a}=e,n=a.mode;a.switchMode("math");var i="\\("===r?"\\)":"$",s=a.parseExpression(!1,i);return a.expect(i),a.switchMode(n),{type:"styling",mode:a.mode,style:"text",body:s}}}),tp({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){throw new i("Mismatched "+e.funcName)}});var an=(e,t)=>{switch(t.style.size){case B.DISPLAY.size:return e.display;case B.TEXT.size:return e.text;case B.SCRIPT.size:return e.script;case B.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};tp({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler(e,t){var{parser:r}=e;return{type:"mathchoice",mode:r.mode,display:tg(t[0]),text:tg(t[1]),script:tg(t[2]),scriptscript:tg(t[3])}},htmlBuilder(e,t){var r=an(e,t),a=tw(r,t,!1);return ta.makeFragment(a)},mathmlBuilder(e,t){var r=an(e,t);return tD(r,t)}});var ai=(e,t,r,a,n,i,s)=>{e=ta.makeSpan([],[e]);var o,l,h,m=r&&f.isCharacterBox(r);if(t){var c=tT(t,a.havingStyle(n.sup()),a);l={elem:c,kern:Math.max(a.fontMetrics().bigOpSpacing1,a.fontMetrics().bigOpSpacing3-c.depth)}}if(r){var p=tT(r,a.havingStyle(n.sub()),a);o={elem:p,kern:Math.max(a.fontMetrics().bigOpSpacing2,a.fontMetrics().bigOpSpacing4-p.height)}}if(l&&o){var u=a.fontMetrics().bigOpSpacing5+o.elem.height+o.elem.depth+o.kern+e.depth+s;h=ta.makeVList({positionType:"bottom",positionData:u,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:o.elem,marginLeft:Z(-i)},{type:"kern",size:o.kern},{type:"elem",elem:e},{type:"kern",size:l.kern},{type:"elem",elem:l.elem,marginLeft:Z(i)},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}else if(o){var d=e.height-s;h=ta.makeVList({positionType:"top",positionData:d,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:o.elem,marginLeft:Z(-i)},{type:"kern",size:o.kern},{type:"elem",elem:e}]},a)}else{if(!l)return e;var g=e.depth+s;h=ta.makeVList({positionType:"bottom",positionData:g,children:[{type:"elem",elem:e},{type:"kern",size:l.kern},{type:"elem",elem:l.elem,marginLeft:Z(i)},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}var v=[h];if(o&&0!==i&&!m){var b=ta.makeSpan(["mspace"],[],a);b.style.marginRight=Z(i),v.unshift(b)}return ta.makeSpan(["mop","op-limits"],v,a)},as=["\\smallint"],ao=(e,t)=>{var r,a,n,i,s=!1;"supsub"===e.type?(r=e.sup,a=e.sub,n=tK(e.base,"op"),s=!0):n=tK(e,"op");var o=t.style,l=!1;if(o.size===B.DISPLAY.size&&n.symbol&&!f.contains(as,n.name)&&(l=!0),n.symbol){var h=l?"Size2-Regular":"Size1-Regular",m="";if(("\\oiint"===n.name||"\\oiiint"===n.name)&&(m=n.name.substr(1),n.name="oiint"===m?"\\iint":"\\iiint"),i=ta.makeSymbol(n.name,h,"math",t,["mop","op-symbol",l?"large-op":"small-op"]),m.length>0){var c=i.italic,p=ta.staticSvg(m+"Size"+(l?"2":"1"),t);i=ta.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:0},{type:"elem",elem:p,shift:l?.08:0}]},t),n.name="\\"+m,i.classes.unshift("mop"),i.italic=c}}else if(n.body){var u=tw(n.body,t,!0);1===u.length&&u[0]instanceof ei?(i=u[0]).classes[0]="mop":i=ta.makeSpan(["mop"],u,t)}else{for(var d=[],g=1;g{var r;if(e.symbol)r=new tN("mo",[tO(e.name,e.mode)]),f.contains(as,e.name)&&r.setAttribute("largeop","false");else if(e.body)r=new tN("mo",tL(e.body,t));else{r=new tN("mi",[new tI(e.name.slice(1))]);var a=new tN("mo",[tO("⁡","text")]);r=e.parentIsSupSub?new tN("mrow",[r,a]):tC([r,a])}return r},ah={"∏":"\\prod","∐":"\\coprod","∑":"\\sum","⋀":"\\bigwedge","⋁":"\\bigvee","⋂":"\\bigcap","⋃":"\\bigcup","⨀":"\\bigodot","⨁":"\\bigoplus","⨂":"\\bigotimes","⨄":"\\biguplus","⨆":"\\bigsqcup"};tp({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","∏","∐","∑","⋀","⋁","⋂","⋃","⨀","⨁","⨂","⨄","⨆"],props:{numArgs:0},handler(e,t){var{parser:r,funcName:a}=e,n=a;return 1===n.length&&(n=ah[n]),{type:"op",mode:r.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:ao,mathmlBuilder:al}),tp({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler(e,t){var{parser:r}=e,a=t[0];return{type:"op",mode:r.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:tg(a)}},htmlBuilder:ao,mathmlBuilder:al});var am={"∫":"\\int","∬":"\\iint","∭":"\\iiint","∮":"\\oint","∯":"\\oiint","∰":"\\oiiint"};tp({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e;return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:ao,mathmlBuilder:al}),tp({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e;return{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:ao,mathmlBuilder:al}),tp({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","∫","∬","∭","∮","∯","∰"],props:{numArgs:0},handler(e){var{parser:t,funcName:r}=e,a=r;return 1===a.length&&(a=am[a]),{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:a}},htmlBuilder:ao,mathmlBuilder:al});var ac,ap,au=(e,t)=>{var r,a,n,i,s=!1;if("supsub"===e.type?(r=e.sup,a=e.sub,n=tK(e.base,"operatorname"),s=!0):n=tK(e,"operatorname"),n.body.length>0){for(var o=tw(n.body.map(e=>{var t=e.text;return"string"==typeof t?{type:"textord",mode:e.mode,text:t}:e}),t.withFont("mathrm"),!0),l=0;l{for(var r=tL(e.body,t.withFont("mathrm")),a=!0,n=0;ne.toText()).join("");r=[new tR.TextNode(o)]}var l=new tR.MathNode("mi",r);l.setAttribute("mathvariant","normal");var h=new tR.MathNode("mo",[tO("⁡","text")]);return e.parentIsSupSub?new tR.MathNode("mrow",[l,h]):tR.newDocumentFragment([l,h])};function ag(e,t,r){for(var a=tw(e,t,!1),n=t.sizeMultiplier/r.sizeMultiplier,i=0;ie.semisimple?ta.makeFragment(tw(e.body,t,!1)):ta.makeSpan(["mord"],tw(e.body,t,!0),t),mathmlBuilder:(e,t)=>tD(e.body,t,!0)}),tp({type:"overline",names:["\\overline"],props:{numArgs:1},handler(e,t){var{parser:r}=e,a=t[0];return{type:"overline",mode:r.mode,body:a}},htmlBuilder(e,t){var r=tT(e.body,t.havingCrampedStyle()),a=ta.makeLineSpan("overline-line",t),n=t.fontMetrics().defaultRuleThickness,i=ta.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:3*n},{type:"elem",elem:a},{type:"kern",size:n}]},t);return ta.makeSpan(["mord","overline"],[i],t)},mathmlBuilder(e,t){var r=new tR.MathNode("mo",[new tR.TextNode("‾")]);r.setAttribute("stretchy","true");var a=new tR.MathNode("mover",[tP(e.body,t),r]);return a.setAttribute("accent","true"),a}}),tp({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:r}=e,a=t[0];return{type:"phantom",mode:r.mode,body:tg(a)}},htmlBuilder(e,t){var r=tw(e.body,t.withPhantom(),!1);return ta.makeFragment(r)},mathmlBuilder(e,t){var r=tL(e.body,t);return new tR.MathNode("mphantom",r)}}),tp({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:r}=e,a=t[0];return{type:"hphantom",mode:r.mode,body:a}},htmlBuilder(e,t){var r=ta.makeSpan([],[tT(e.body,t.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(var a=0;a=0?o.setAttribute("height",Z(n)):(o.setAttribute("height",Z(n)),o.setAttribute("depth",Z(-n))),o.setAttribute("voffset",Z(n)),o}});var af=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],av=(e,t)=>{var r=t.havingSize(e.size);return ag(e.body,r,t)};tp({type:"sizing",names:af,props:{numArgs:0,allowedInText:!0},handler(e,t){var{breakOnTokenText:r,funcName:a,parser:n}=e,i=n.parseExpression(!1,r);return{type:"sizing",mode:n.mode,size:af.indexOf(a)+1,body:i}},htmlBuilder:av,mathmlBuilder(e,t){var r=t.havingSize(e.size),a=tL(e.body,r),n=new tR.MathNode("mstyle",a);return n.setAttribute("mathsize",Z(r.sizeMultiplier)),n}}),tp({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler(e,t,r){var{parser:a}=e,n=!1,i=!1,s=r[0]&&tK(r[0],"ordgroup");if(s)for(var o="",l=0;lr.height+r.depth+i&&(i=(i+m-r.height-r.depth)/2);var c=o.height-r.height-i-l;r.style.paddingLeft=Z(h);var p=ta.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+c)},{type:"elem",elem:o},{type:"kern",size:l}]},t);if(!e.index)return ta.makeSpan(["mord","sqrt"],[p],t);var u=t.havingStyle(B.SCRIPTSCRIPT),d=tT(e.index,u,t),g=.6*(p.height-p.depth),f=ta.makeVList({positionType:"shift",positionData:-g,children:[{type:"elem",elem:d}]},t),v=ta.makeSpan(["root"],[f]);return ta.makeSpan(["mord","sqrt"],[v,p],t)},mathmlBuilder(e,t){var{body:r,index:a}=e;return a?new tR.MathNode("mroot",[tP(r,t),tP(a,t)]):new tR.MathNode("msqrt",[tP(r,t)])}});var ab={display:B.DISPLAY,text:B.TEXT,script:B.SCRIPT,scriptscript:B.SCRIPTSCRIPT};tp({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e,t){var{breakOnTokenText:r,funcName:a,parser:n}=e,i=n.parseExpression(!0,r),s=a.slice(1,a.length-5);return{type:"styling",mode:n.mode,style:s,body:i}},htmlBuilder(e,t){var r=ab[e.style],a=t.havingStyle(r).withFont("");return ag(e.body,a,t)},mathmlBuilder(e,t){var r=ab[e.style],a=t.havingStyle(r),n=tL(e.body,a),i=new tR.MathNode("mstyle",n),s={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[e.style];return i.setAttribute("scriptlevel",s[0]),i.setAttribute("displaystyle",s[1]),i}});var ay=function(e,t){var r=e.base;return r?"op"===r.type?r.limits&&(t.style.size===B.DISPLAY.size||r.alwaysHandleSupSub)?ao:null:"operatorname"===r.type?r.alwaysHandleSupSub&&(t.style.size===B.DISPLAY.size||r.limits)?au:null:"accent"===r.type?f.isCharacterBox(r.base)?t0:null:"horizBrace"!==r.type?null:!e.sub===r.isOver?ar:null:null};tu({type:"supsub",htmlBuilder(e,t){var r,a,n,i,s=ay(e,t);if(s)return s(e,t);var{base:o,sup:l,sub:h}=e,m=tT(o,t),c=t.fontMetrics(),p=0,u=0,d=o&&f.isCharacterBox(o);if(l){var g=t.havingStyle(t.style.sup());r=tT(l,g,t),d||(p=m.height-g.fontMetrics().supDrop*g.sizeMultiplier/t.sizeMultiplier)}if(h){var v=t.havingStyle(t.style.sub());a=tT(h,v,t),d||(u=m.depth+v.fontMetrics().subDrop*v.sizeMultiplier/t.sizeMultiplier)}n=t.style===B.DISPLAY?c.sup1:t.style.cramped?c.sup3:c.sup2;var b=t.sizeMultiplier,y=Z(.5/c.ptPerEm/b),x=null;if(a){var w=e.base&&"op"===e.base.type&&e.base.name&&("\\oiint"===e.base.name||"\\oiiint"===e.base.name);(m instanceof ei||w)&&(x=Z(-m.italic))}if(r&&a){p=Math.max(p,n,r.depth+.25*c.xHeight),u=Math.max(u,c.sub2);var k=4*c.defaultRuleThickness;if(p-r.depth-(a.height-u)0&&(p+=S,u-=S)}var M=[{type:"elem",elem:a,shift:u,marginRight:y,marginLeft:x},{type:"elem",elem:r,shift:-p,marginRight:y}];i=ta.makeVList({positionType:"individualShift",children:M},t)}else if(a){u=Math.max(u,c.sub1,a.height-.8*c.xHeight);var z=[{type:"elem",elem:a,marginLeft:x,marginRight:y}];i=ta.makeVList({positionType:"shift",positionData:u,children:z},t)}else if(r)p=Math.max(p,n,r.depth+.25*c.xHeight),i=ta.makeVList({positionType:"shift",positionData:-p,children:[{type:"elem",elem:r,marginRight:y}]},t);else throw Error("supsub must have either sup or sub.");var A=tz(m,"right")||"mord";return ta.makeSpan([A],[m,ta.makeSpan(["msupsub"],[i])],t)},mathmlBuilder(e,t){var r,a,n,i=!1;e.base&&"horizBrace"===e.base.type&&!!e.sup===e.base.isOver&&(i=!0,r=e.base.isOver),e.base&&("op"===e.base.type||"operatorname"===e.base.type)&&(e.base.parentIsSupSub=!0);var s=[tP(e.base,t)];if(e.sub&&s.push(tP(e.sub,t)),e.sup&&s.push(tP(e.sup,t)),i)n=r?"mover":"munder";else if(e.sub){if(e.sup){var o=e.base;n=o&&"op"===o.type&&o.limits&&t.style===B.DISPLAY?"munderover":o&&"operatorname"===o.type&&o.alwaysHandleSupSub&&(t.style===B.DISPLAY||o.limits)?"munderover":"msubsup"}else{var l=e.base;n=l&&"op"===l.type&&l.limits&&(t.style===B.DISPLAY||l.alwaysHandleSupSub)?"munder":l&&"operatorname"===l.type&&l.alwaysHandleSupSub&&(l.limits||t.style===B.DISPLAY)?"munder":"msub"}}else{var h=e.base;n=h&&"op"===h.type&&h.limits&&(t.style===B.DISPLAY||h.alwaysHandleSupSub)?"mover":h&&"operatorname"===h.type&&h.alwaysHandleSupSub&&(h.limits||t.style===B.DISPLAY)?"mover":"msup"}return new tR.MathNode(n,s)}}),tu({type:"atom",htmlBuilder:(e,t)=>ta.mathsym(e.text,e.mode,t,["m"+e.family]),mathmlBuilder(e,t){var r=new tR.MathNode("mo",[tO(e.text,e.mode)]);if("bin"===e.family){var a=tE(e,t);"bold-italic"===a&&r.setAttribute("mathvariant",a)}else"punct"===e.family?r.setAttribute("separator","true"):("open"===e.family||"close"===e.family)&&r.setAttribute("stretchy","false");return r}});var ax={mi:"italic",mn:"normal",mtext:"normal"};tu({type:"mathord",htmlBuilder:(e,t)=>ta.makeOrd(e,t,"mathord"),mathmlBuilder(e,t){var r=new tR.MathNode("mi",[tO(e.text,e.mode,t)]),a=tE(e,t)||"italic";return a!==ax[r.type]&&r.setAttribute("mathvariant",a),r}}),tu({type:"textord",htmlBuilder:(e,t)=>ta.makeOrd(e,t,"textord"),mathmlBuilder(e,t){var r,a=tO(e.text,e.mode,t),n=tE(e,t)||"normal";return r="text"===e.mode?new tR.MathNode("mtext",[a]):/[0-9]/.test(e.text)?new tR.MathNode("mn",[a]):"\\prime"===e.text?new tR.MathNode("mo",[a]):new tR.MathNode("mi",[a]),n!==ax[r.type]&&r.setAttribute("mathvariant",n),r}});var aw={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},ak={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};tu({type:"spacing",htmlBuilder(e,t){if(ak.hasOwnProperty(e.text)){var r=ak[e.text].className||"";if("text"!==e.mode)return ta.makeSpan(["mspace",r],[ta.mathsym(e.text,e.mode,t)],t);var a=ta.makeOrd(e,t,"textord");return a.classes.push(r),a}if(aw.hasOwnProperty(e.text))return ta.makeSpan(["mspace",aw[e.text]],[],t);throw new i('Unknown type of space "'+e.text+'"')},mathmlBuilder(e,t){var r;if(ak.hasOwnProperty(e.text))r=new tR.MathNode("mtext",[new tR.TextNode("\xa0")]);else if(aw.hasOwnProperty(e.text))return new tR.MathNode("mspace");else throw new i('Unknown type of space "'+e.text+'"');return r}});var aS=()=>{var e=new tR.MathNode("mtd",[]);return e.setAttribute("width","50%"),e};tu({type:"tag",mathmlBuilder(e,t){var r=new tR.MathNode("mtable",[new tR.MathNode("mtr",[aS(),new tR.MathNode("mtd",[tD(e.body,t)]),aS(),new tR.MathNode("mtd",[tD(e.tag,t)])])]);return r.setAttribute("width","100%"),r}});var aM={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},az={"\\textbf":"textbf","\\textmd":"textmd"},aA={"\\textit":"textit","\\textup":"textup"},aT=(e,t)=>{var r=e.font;return r?aM[r]?t.withTextFontFamily(aM[r]):az[r]?t.withTextFontWeight(az[r]):t.withTextFontShape(aA[r]):t};tp({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(e,t){var{parser:r,funcName:a}=e,n=t[0];return{type:"text",mode:r.mode,body:tg(n),font:a}},htmlBuilder(e,t){var r=aT(e,t),a=tw(e.body,r,!0);return ta.makeSpan(["mord","text"],a,r)},mathmlBuilder(e,t){var r=aT(e,t);return tD(e.body,r)}}),tp({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:r}=e;return{type:"underline",mode:r.mode,body:t[0]}},htmlBuilder(e,t){var r=tT(e.body,t),a=ta.makeLineSpan("underline-line",t),n=t.fontMetrics().defaultRuleThickness,i=ta.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:n},{type:"elem",elem:a},{type:"kern",size:3*n},{type:"elem",elem:r}]},t);return ta.makeSpan(["mord","underline"],[i],t)},mathmlBuilder(e,t){var r=new tR.MathNode("mo",[new tR.TextNode("‾")]);r.setAttribute("stretchy","true");var a=new tR.MathNode("munder",[tP(e.body,t),r]);return a.setAttribute("accentunder","true"),a}}),tp({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(e,t){var{parser:r}=e;return{type:"vcenter",mode:r.mode,body:t[0]}},htmlBuilder(e,t){var r=tT(e.body,t),a=t.fontMetrics().axisHeight,n=.5*(r.height-a-(r.depth+a));return ta.makeVList({positionType:"shift",positionData:n,children:[{type:"elem",elem:r}]},t)},mathmlBuilder:(e,t)=>new tR.MathNode("mpadded",[tP(e.body,t)],["vcenter"])}),tp({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(e,t,r){throw new i("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(e,t){for(var r=aB(e),a=[],n=t.havingStyle(t.style.text()),i=0;ie.body.replace(/ /g,e.star?"␣":"\xa0"),aq="[ \r\n ]",aC="[̀-ͯ]",aN=RegExp(aC+"+$"),aI="("+aq+"+)|\\\\(\n|[ \r ]+\n?)[ \r ]*|([!-\\[\\]-‧‪-퟿豈-￿]"+aC+"*|[\uD800-\uDBFF][\uDC00-\uDFFF]"+aC+"*|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5|(\\\\[a-zA-Z@]+)"+aq+"*|\\\\[^\uD800-\uDFFF])";class aR{constructor(e,t){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=t,this.tokenRegex=RegExp(aI,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,t){this.catcodes[e]=t}lex(){var e=this.input,t=this.tokenRegex.lastIndex;if(t===e.length)return new n("EOF",new a(this,t,t));var r=this.tokenRegex.exec(e);if(null===r||r.index!==t)throw new i("Unexpected character: '"+e[t]+"'",new n(e[t],new a(this,t,t+1)));var s=r[6]||r[3]||(r[2]?"\\ ":" ");if(14===this.catcodes[s]){var o=e.indexOf("\n",this.tokenRegex.lastIndex);return -1===o?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=o+1,this.lex()}return new n(s,new a(this,t,this.tokenRegex.lastIndex))}}class aO{constructor(e,t){void 0===e&&(e={}),void 0===t&&(t={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=t,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(0===this.undefStack.length)throw new i("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var t in e)e.hasOwnProperty(t)&&(null==e[t]?delete this.current[t]:this.current[t]=e[t])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]}set(e,t,r){if(void 0===r&&(r=!1),r){for(var a=0;a0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{var n=this.undefStack[this.undefStack.length-1];n&&!n.hasOwnProperty(e)&&(n[e]=this.current[e])}null==t?delete this.current[e]:this.current[e]=t}}aH="\\noexpand",aE=function(e){var t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}},rP[aH]=aE,aL="\\expandafter",aD=function(e){var t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}},rP[aL]=aD,aP="\\@firstoftwo",aF=function(e){return{tokens:e.consumeArgs(2)[0],numArgs:0}},rP[aP]=aF,aV="\\@secondoftwo",aG=function(e){return{tokens:e.consumeArgs(2)[1],numArgs:0}},rP[aV]=aG,aU="\\@ifnextchar",aY=function(e){var t=e.consumeArgs(3);e.consumeSpaces();var r=e.future();return 1===t[0].length&&t[0][0].text===r.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}},rP[aU]=aY,aW="\\@ifnextchar *{\\@firstoftwo{#1}}",rP[aX="\\@ifstar"]=aW,a_="\\TextOrMath",aj=function(e){var t=e.consumeArgs(2);return"text"===e.mode?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}},rP[a_]=aj;var aH,aE,aL,aD,aP,aF,aV,aG,aU,aY,aX,aW,a_,aj,a$,aZ,aK={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};aZ=function(e){var t,r,a=e.popToken(),n="";if("'"===a.text)t=8,a=e.popToken();else if('"'===a.text)t=16,a=e.popToken();else if("`"===a.text){if("\\"===(a=e.popToken()).text[0])n=a.text.charCodeAt(1);else if("EOF"===a.text)throw new i("\\char` missing argument");else n=a.text.charCodeAt(0)}else t=10;if(t){if(null==(n=aK[a.text])||n>=t)throw new i("Invalid base-"+t+" digit "+a.text);for(;null!=(r=aK[e.future().text])&&r{var a=e.consumeArg().tokens;if(1!==a.length)throw new i("\\newcommand's first argument must be a macro name");var n=a[0].text,s=e.isDefined(n);if(s&&!t)throw new i("\\newcommand{"+n+"} attempting to redefine "+n+"; use \\renewcommand");if(!s&&!r)throw new i("\\renewcommand{"+n+"} when command "+n+" does not yet exist; use \\newcommand");var o=0;if(1===(a=e.consumeArg().tokens).length&&"["===a[0].text){for(var l="",h=e.expandNextToken();"]"!==h.text&&"EOF"!==h.text;)l+=h.text,h=e.expandNextToken();if(!l.match(/^\s*[0-9]+\s*$/))throw new i("Invalid number of arguments: "+l);o=parseInt(l),a=e.consumeArg().tokens}return e.macros.set(n,{tokens:a,numArgs:o}),""};aQ=e=>iY(e,!1,!0),rP["\\newcommand"]=aQ,a1=e=>iY(e,!0,!1),rP["\\renewcommand"]=a1,a5=e=>iY(e,!0,!0),rP["\\providecommand"]=a5,a7=e=>{var t=e.consumeArgs(1)[0];return console.log(t.reverse().map(e=>e.text).join("")),""},rP["\\message"]=a7,a8=e=>{var t=e.consumeArgs(1)[0];return console.error(t.reverse().map(e=>e.text).join("")),""},rP["\\errmessage"]=a8,a9=e=>{var t=e.popToken(),r=t.text;return console.log(t,e.macros.get(r),th[r],ep.math[r],ep.text[r]),""},rP["\\show"]=a9,rP["\\bgroup"]="{",rP["\\egroup"]="}",rP["~"]="\\nobreakspace",rP["\\lq"]="`",rP["\\rq"]="'",rP["\\aa"]="\\r a",rP["\\AA"]="\\r A",rP["\\textcopyright"]="\\html@mathml{\\textcircled{c}}{\\char`\xa9}",rP["\\copyright"]="\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}",rP["\\textregistered"]="\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xae}",rP["ℬ"]="\\mathscr{B}",rP["ℰ"]="\\mathscr{E}",rP["ℱ"]="\\mathscr{F}",rP["ℋ"]="\\mathscr{H}",rP["ℐ"]="\\mathscr{I}",rP["ℒ"]="\\mathscr{L}",rP["ℳ"]="\\mathscr{M}",rP["ℛ"]="\\mathscr{R}",rP["ℭ"]="\\mathfrak{C}",rP["ℌ"]="\\mathfrak{H}",rP["ℨ"]="\\mathfrak{Z}",rP["\\Bbbk"]="\\Bbb{k}",rP["\xb7"]="\\cdotp",rP["\\llap"]="\\mathllap{\\textrm{#1}}",rP["\\rlap"]="\\mathrlap{\\textrm{#1}}",rP["\\clap"]="\\mathclap{\\textrm{#1}}",rP["\\mathstrut"]="\\vphantom{(}",rP["\\underbar"]="\\underline{\\text{#1}}",rP["\\not"]='\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}',rP["\\neq"]="\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}",rP["\\ne"]="\\neq",rP["≠"]="\\neq",rP["\\notin"]="\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}",rP["∉"]="\\notin",rP["≘"]="\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}",rP["≙"]="\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}",rP["≚"]="\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}",rP["≛"]="\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}",rP["≝"]="\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}",rP["≞"]="\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}",rP["≟"]="\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}",rP["⟂"]="\\perp",rP["‼"]="\\mathclose{!\\mkern-0.8mu!}",rP["∌"]="\\notni",rP["⌜"]="\\ulcorner",rP["⌝"]="\\urcorner",rP["⌞"]="\\llcorner",rP["⌟"]="\\lrcorner",rP["\xa9"]="\\copyright",rP["\xae"]="\\textregistered",rP["️"]="\\textregistered",rP["\\ulcorner"]='\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}',rP["\\urcorner"]='\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}',rP["\\llcorner"]='\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}',rP["\\lrcorner"]='\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}',rP["\\vdots"]="\\mathord{\\varvdots\\rule{0pt}{15pt}}",rP["⋮"]="\\vdots",rP["\\varGamma"]="\\mathit{\\Gamma}",rP["\\varDelta"]="\\mathit{\\Delta}",rP["\\varTheta"]="\\mathit{\\Theta}",rP["\\varLambda"]="\\mathit{\\Lambda}",rP["\\varXi"]="\\mathit{\\Xi}",rP["\\varPi"]="\\mathit{\\Pi}",rP["\\varSigma"]="\\mathit{\\Sigma}",rP["\\varUpsilon"]="\\mathit{\\Upsilon}",rP["\\varPhi"]="\\mathit{\\Phi}",rP["\\varPsi"]="\\mathit{\\Psi}",rP["\\varOmega"]="\\mathit{\\Omega}",rP["\\substack"]="\\begin{subarray}{c}#1\\end{subarray}",rP["\\colon"]="\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax",rP["\\boxed"]="\\fbox{$\\displaystyle{#1}$}",rP["\\iff"]="\\DOTSB\\;\\Longleftrightarrow\\;",rP["\\implies"]="\\DOTSB\\;\\Longrightarrow\\;",rP["\\impliedby"]="\\DOTSB\\;\\Longleftarrow\\;";var iX,iW,i_={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};iW=function(e){var t="\\dotso",r=e.expandAfterFuture().text;return r in i_?t=i_[r]:"\\not"===r.substr(0,4)?t="\\dotsb":r in ep.math&&f.contains(["bin","rel"],ep.math[r].group)&&(t="\\dotsb"),t},rP["\\dots"]=iW;var ij,i$,iZ,iK,iJ,iQ,i0,i1,i4,i5,i6,i7,i3,i8,i2,i9,se,st,sr,sa,sn,si,ss,so,sl,sh,sm,sc,sp,su,sd,sg,sf,sv,sb,sy,sx,sw,sk,sS,sM,sz,sA,sT,sB,sq,sC,sN,sI,sR,sO,sH,sE,sL,sD,sP,sF,sV,sG,sU,sY,sX,sW,s_={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};i$=function(e){return e.future().text in s_?"\\ldots\\,":"\\ldots"},rP["\\dotso"]=i$,iK=function(e){var t=e.future().text;return t in s_&&","!==t?"\\ldots\\,":"\\ldots"},rP["\\dotsc"]=iK,iQ=function(e){return e.future().text in s_?"\\@cdots\\,":"\\@cdots"},rP["\\cdots"]=iQ,rP["\\dotsb"]="\\cdots",rP["\\dotsm"]="\\cdots",rP["\\dotsi"]="\\!\\cdots",rP["\\dotsx"]="\\ldots\\,",rP["\\DOTSI"]="\\relax",rP["\\DOTSB"]="\\relax",rP["\\DOTSX"]="\\relax",rP["\\tmspace"]="\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax",rP["\\,"]="\\tmspace+{3mu}{.1667em}",rP["\\thinspace"]="\\,",rP["\\>"]="\\mskip{4mu}",rP["\\:"]="\\tmspace+{4mu}{.2222em}",rP["\\medspace"]="\\:",rP["\\;"]="\\tmspace+{5mu}{.2777em}",rP["\\thickspace"]="\\;",rP["\\!"]="\\tmspace-{3mu}{.1667em}",rP["\\negthinspace"]="\\!",rP["\\negmedspace"]="\\tmspace-{4mu}{.2222em}",rP["\\negthickspace"]="\\tmspace-{5mu}{.277em}",rP["\\enspace"]="\\kern.5em ",rP["\\enskip"]="\\hskip.5em\\relax",rP["\\quad"]="\\hskip1em\\relax",rP["\\qquad"]="\\hskip2em\\relax",rP["\\tag"]="\\@ifstar\\tag@literal\\tag@paren",rP["\\tag@paren"]="\\tag@literal{({#1})}",sI=e=>{if(e.macros.get("\\df@tag"))throw new i("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"},rP["\\tag@literal"]=sI,rP["\\bmod"]="\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}",rP["\\pod"]="\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)",rP["\\pmod"]="\\pod{{\\rm mod}\\mkern6mu#1}",rP["\\mod"]="\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1",rP["\\pmb"]="\\html@mathml{\\@binrel{#1}{\\mathrlap{#1}\\kern0.5px#1}}{\\mathbf{#1}}",rP["\\newline"]="\\\\\\relax",rP["\\TeX"]="\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}";var sj,s$,sZ,sK,sJ,sQ,s0,s1,s4,s5,s6,s7,s3,s8,s2,s9,oe,ot,or,oa,on,oi,os,oo,ol,oh,om,oc,op,ou,od,og,of,ov,ob,oy,ox,ow,ok,oS,oM,oz,oA,oT,oB,oq,oC,oN,oI,oR,oO,oH,oE,oL,oD,oP,oF,oV,oG,oU,oY,oX,oW,o_,oj,o$,oZ,oK,oJ,oQ,o0,o1,o4,o5,o6,o7,o3,o8,o2,o9,le,lt,lr,la,ln,li,ls,lo,ll,lh,lm,lc,lp,lu,ld,lg,lf,lv,lb,ly,lx,lw,lk,lS,lM,lz,lA,lT,lB,lq,lC,lN,lI,lR,lO,lH,lE,lL,lD,lP,lF,lV,lG,lU,lY,lX,lW,l_,lj,l$,lZ,lK,lJ,lQ,l0,l1,l4,l5,l6,l7,l3,l8,l2,l9,he,ht,hr,ha,hn,hi,hs,ho,hl,hh,hm,hc,hp,hu,hd,hg,hf,hv,hb,hy,hx,hw,hk,hS,hM,hz,hA,hT,hB,hq,hC,hN,hI,hR,hO,hH,hE,hL,hD,hP,hF,hV,hG,hU,hY,hX,hW,h_,hj,h$,hZ,hK,hJ,hQ,h0,h1,h4,h5,h6,h7,h3,h8,h2,h9,me,mt,mr,ma,mn,mi,ms,mo,ml,mh,mm,mc,mp,mu,md,mg,mf,mv,mb,my,mx,mw,mk,mS,mM,mz,mA,mT,mB,mq,mC,mN,mI,mR,mO,mH,mE,mL,mD,mP,mF,mV,mG,mU,mY,mX,mW,m_,mj,m$,mZ,mK,mJ,mQ,m0,m1,m4,m5,m6,m7,m3,m8,m2,m9,ce=Z(E["Main-Regular"][84][1]-.7*E["Main-Regular"][65][1]);s$="\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{"+ce+"}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}",rP["\\LaTeX"]=s$,sK="\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{"+ce+"}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}",rP["\\KaTeX"]=sK,rP["\\hspace"]="\\@ifstar\\@hspacer\\@hspace",rP["\\@hspace"]="\\hskip #1\\relax",rP["\\@hspacer"]="\\rule{0pt}{0pt}\\hskip #1\\relax",rP["\\ordinarycolon"]=":",rP["\\vcentcolon"]="\\mathrel{\\mathop\\ordinarycolon}",rP["\\dblcolon"]='\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}',rP["\\coloneqq"]='\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}',rP["\\Coloneqq"]='\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}',rP["\\coloneq"]='\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}',rP["\\Coloneq"]='\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}',rP["\\eqqcolon"]='\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}',rP["\\Eqqcolon"]='\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}',rP["\\eqcolon"]='\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}',rP["\\Eqcolon"]='\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}',rP["\\colonapprox"]='\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}',rP["\\Colonapprox"]='\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}',rP["\\colonsim"]='\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}',rP["\\Colonsim"]='\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}',rP["∷"]="\\dblcolon",rP["∹"]="\\eqcolon",rP["≔"]="\\coloneqq",rP["≕"]="\\eqqcolon",rP["⩴"]="\\Coloneqq",rP["\\ratio"]="\\vcentcolon",rP["\\coloncolon"]="\\dblcolon",rP["\\colonequals"]="\\coloneqq",rP["\\coloncolonequals"]="\\Coloneqq",rP["\\equalscolon"]="\\eqqcolon",rP["\\equalscoloncolon"]="\\Eqqcolon",rP["\\colonminus"]="\\coloneq",rP["\\coloncolonminus"]="\\Coloneq",rP["\\minuscolon"]="\\eqcolon",rP["\\minuscoloncolon"]="\\Eqcolon",rP["\\coloncolonapprox"]="\\Colonapprox",rP["\\coloncolonsim"]="\\Colonsim",rP["\\simcolon"]="\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}",rP["\\simcoloncolon"]="\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}",rP["\\approxcolon"]="\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}",rP["\\approxcoloncolon"]="\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}",rP["\\notni"]="\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}",rP["\\limsup"]="\\DOTSB\\operatorname*{lim\\,sup}",rP["\\liminf"]="\\DOTSB\\operatorname*{lim\\,inf}",rP["\\injlim"]="\\DOTSB\\operatorname*{inj\\,lim}",rP["\\projlim"]="\\DOTSB\\operatorname*{proj\\,lim}",rP["\\varlimsup"]="\\DOTSB\\operatorname*{\\overline{lim}}",rP["\\varliminf"]="\\DOTSB\\operatorname*{\\underline{lim}}",rP["\\varinjlim"]="\\DOTSB\\operatorname*{\\underrightarrow{lim}}",rP["\\varprojlim"]="\\DOTSB\\operatorname*{\\underleftarrow{lim}}",rP["\\gvertneqq"]="\\html@mathml{\\@gvertneqq}{≩}",rP["\\lvertneqq"]="\\html@mathml{\\@lvertneqq}{≨}",rP["\\ngeqq"]="\\html@mathml{\\@ngeqq}{≱}",rP["\\ngeqslant"]="\\html@mathml{\\@ngeqslant}{≱}",rP["\\nleqq"]="\\html@mathml{\\@nleqq}{≰}",rP["\\nleqslant"]="\\html@mathml{\\@nleqslant}{≰}",rP["\\nshortmid"]="\\html@mathml{\\@nshortmid}{∤}",rP["\\nshortparallel"]="\\html@mathml{\\@nshortparallel}{∦}",rP["\\nsubseteqq"]="\\html@mathml{\\@nsubseteqq}{⊈}",rP["\\nsupseteqq"]="\\html@mathml{\\@nsupseteqq}{⊉}",rP["\\varsubsetneq"]="\\html@mathml{\\@varsubsetneq}{⊊}",rP["\\varsubsetneqq"]="\\html@mathml{\\@varsubsetneqq}{⫋}",rP["\\varsupsetneq"]="\\html@mathml{\\@varsupsetneq}{⊋}",rP["\\varsupsetneqq"]="\\html@mathml{\\@varsupsetneqq}{⫌}",rP["\\imath"]="\\html@mathml{\\@imath}{ı}",rP["\\jmath"]="\\html@mathml{\\@jmath}{ȷ}",rP["\\llbracket"]="\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}",rP["\\rrbracket"]="\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}",rP["⟦"]="\\llbracket",rP["⟧"]="\\rrbracket",rP["\\lBrace"]="\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}",rP["\\rBrace"]="\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}",rP["⦃"]="\\lBrace",rP["⦄"]="\\rBrace",rP["\\minuso"]="\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}",rP["⦵"]="\\minuso",rP["\\darr"]="\\downarrow",rP["\\dArr"]="\\Downarrow",rP["\\Darr"]="\\Downarrow",rP["\\lang"]="\\langle",rP["\\rang"]="\\rangle",rP["\\uarr"]="\\uparrow",rP["\\uArr"]="\\Uparrow",rP["\\Uarr"]="\\Uparrow",rP["\\N"]="\\mathbb{N}",rP["\\R"]="\\mathbb{R}",rP["\\Z"]="\\mathbb{Z}",rP["\\alef"]="\\aleph",rP["\\alefsym"]="\\aleph",rP["\\Alpha"]="\\mathrm{A}",rP["\\Beta"]="\\mathrm{B}",rP["\\bull"]="\\bullet",rP["\\Chi"]="\\mathrm{X}",rP["\\clubs"]="\\clubsuit",rP["\\cnums"]="\\mathbb{C}",rP["\\Complex"]="\\mathbb{C}",rP["\\Dagger"]="\\ddagger",rP["\\diamonds"]="\\diamondsuit",rP["\\empty"]="\\emptyset",rP["\\Epsilon"]="\\mathrm{E}",rP["\\Eta"]="\\mathrm{H}",rP["\\exist"]="\\exists",rP["\\harr"]="\\leftrightarrow",rP["\\hArr"]="\\Leftrightarrow",rP["\\Harr"]="\\Leftrightarrow",rP["\\hearts"]="\\heartsuit",rP["\\image"]="\\Im",rP["\\infin"]="\\infty",rP["\\Iota"]="\\mathrm{I}",rP["\\isin"]="\\in",rP["\\Kappa"]="\\mathrm{K}",rP["\\larr"]="\\leftarrow",rP["\\lArr"]="\\Leftarrow",rP["\\Larr"]="\\Leftarrow",rP["\\lrarr"]="\\leftrightarrow",rP["\\lrArr"]="\\Leftrightarrow",rP["\\Lrarr"]="\\Leftrightarrow",rP["\\Mu"]="\\mathrm{M}",rP["\\natnums"]="\\mathbb{N}",rP["\\Nu"]="\\mathrm{N}",rP["\\Omicron"]="\\mathrm{O}",rP["\\plusmn"]="\\pm",rP["\\rarr"]="\\rightarrow",rP["\\rArr"]="\\Rightarrow",rP["\\Rarr"]="\\Rightarrow",rP["\\real"]="\\Re",rP["\\reals"]="\\mathbb{R}",rP["\\Reals"]="\\mathbb{R}",rP["\\Rho"]="\\mathrm{P}",rP["\\sdot"]="\\cdot",rP["\\sect"]="\\S",rP["\\spades"]="\\spadesuit",rP["\\sub"]="\\subset",rP["\\sube"]="\\subseteq",rP["\\supe"]="\\supseteq",rP["\\Tau"]="\\mathrm{T}",rP["\\thetasym"]="\\vartheta",rP["\\weierp"]="\\wp",rP["\\Zeta"]="\\mathrm{Z}",rP["\\argmin"]="\\DOTSB\\operatorname*{arg\\,min}",rP["\\argmax"]="\\DOTSB\\operatorname*{arg\\,max}",rP["\\plim"]="\\DOTSB\\mathop{\\operatorname{plim}}\\limits",rP["\\bra"]="\\mathinner{\\langle{#1}|}",rP["\\ket"]="\\mathinner{|{#1}\\rangle}",rP["\\braket"]="\\mathinner{\\langle{#1}\\rangle}",rP["\\Bra"]="\\left\\langle#1\\right|",rP["\\Ket"]="\\left|#1\\right\\rangle";var ct,cr,ca,cn,ci,cs,co,cl,ch,cm,cc,cp,cu,cd,cg,cf,cv,cb,cy,cx,cw,ck,cS,cM,cz,cA,cT,cB,cq,cC,cN,cI,cR,cO,cH,cE,cL,cD,cP,cF,cV,cG,cU,cY,cX,cW,c_,cj,c$,cZ,cK,cJ,cQ,c0,c1,c4,c5,c6,c7,c3,c8,c2,c9,pe,pt,pr,pa,pn,pi,ps,po,pl,ph,pm,pc,pp,pu,pd,pg,pf,pv,pb,py,px,pw,pk,pS,pM,pz,pA,pT,pB,pq,pC,pN,pI,pR,pO,pH,pE,pL,pD,pP,pF,pV,pG,pU,pY,pX,pW,p_,pj,p$,pZ,pK,pJ,pQ,p0,p1,p4,p5,p6,p7,p3,p8=e=>t=>{var r=t.consumeArg().tokens,a=t.consumeArg().tokens,n=t.consumeArg().tokens,i=t.consumeArg().tokens,s=t.macros.get("|"),o=t.macros.get("\\|");t.macros.beginGroup();var l=t=>r=>{e&&(r.macros.set("|",s),n.length&&r.macros.set("\\|",o));var i=t;return!t&&n.length&&"|"===r.future().text&&(r.popToken(),i=!0),{tokens:i?n:a,numArgs:0}};t.macros.set("|",l(!1)),n.length&&t.macros.set("\\|",l(!0));var h=t.consumeArg().tokens,m=t.expandTokens([...i,...h,...r]);return t.macros.endGroup(),{tokens:m.reverse(),numArgs:0}};cr=p8(!1),rP["\\bra@ket"]=cr,cn=p8(!0),rP["\\bra@set"]=cn,rP["\\Braket"]="\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}",rP["\\Set"]="\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}",rP["\\set"]="\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}",rP["\\angln"]="{\\angl n}",rP["\\blue"]="\\textcolor{##6495ed}{#1}",rP["\\orange"]="\\textcolor{##ffa500}{#1}",rP["\\pink"]="\\textcolor{##ff00af}{#1}",rP["\\red"]="\\textcolor{##df0030}{#1}",rP["\\green"]="\\textcolor{##28ae7b}{#1}",rP["\\gray"]="\\textcolor{gray}{#1}",rP["\\purple"]="\\textcolor{##9d38bd}{#1}",rP["\\blueA"]="\\textcolor{##ccfaff}{#1}",rP["\\blueB"]="\\textcolor{##80f6ff}{#1}",rP["\\blueC"]="\\textcolor{##63d9ea}{#1}",rP["\\blueD"]="\\textcolor{##11accd}{#1}",rP["\\blueE"]="\\textcolor{##0c7f99}{#1}",rP["\\tealA"]="\\textcolor{##94fff5}{#1}",rP["\\tealB"]="\\textcolor{##26edd5}{#1}",rP["\\tealC"]="\\textcolor{##01d1c1}{#1}",rP["\\tealD"]="\\textcolor{##01a995}{#1}",rP["\\tealE"]="\\textcolor{##208170}{#1}",rP["\\greenA"]="\\textcolor{##b6ffb0}{#1}",rP["\\greenB"]="\\textcolor{##8af281}{#1}",rP["\\greenC"]="\\textcolor{##74cf70}{#1}",rP["\\greenD"]="\\textcolor{##1fab54}{#1}",rP["\\greenE"]="\\textcolor{##0d923f}{#1}",rP["\\goldA"]="\\textcolor{##ffd0a9}{#1}",rP["\\goldB"]="\\textcolor{##ffbb71}{#1}",rP["\\goldC"]="\\textcolor{##ff9c39}{#1}",rP["\\goldD"]="\\textcolor{##e07d10}{#1}",rP["\\goldE"]="\\textcolor{##a75a05}{#1}",rP["\\redA"]="\\textcolor{##fca9a9}{#1}",rP["\\redB"]="\\textcolor{##ff8482}{#1}",rP["\\redC"]="\\textcolor{##f9685d}{#1}",rP["\\redD"]="\\textcolor{##e84d39}{#1}",rP["\\redE"]="\\textcolor{##bc2612}{#1}",rP["\\maroonA"]="\\textcolor{##ffbde0}{#1}",rP["\\maroonB"]="\\textcolor{##ff92c6}{#1}",rP["\\maroonC"]="\\textcolor{##ed5fa6}{#1}",rP["\\maroonD"]="\\textcolor{##ca337c}{#1}",rP["\\maroonE"]="\\textcolor{##9e034e}{#1}",rP["\\purpleA"]="\\textcolor{##ddd7ff}{#1}",rP["\\purpleB"]="\\textcolor{##c6b9fc}{#1}",rP["\\purpleC"]="\\textcolor{##aa87ff}{#1}",rP["\\purpleD"]="\\textcolor{##7854ab}{#1}",rP["\\purpleE"]="\\textcolor{##543b78}{#1}",rP["\\mintA"]="\\textcolor{##f5f9e8}{#1}",rP["\\mintB"]="\\textcolor{##edf2df}{#1}",rP["\\mintC"]="\\textcolor{##e0e5cc}{#1}",rP["\\grayA"]="\\textcolor{##f6f7f7}{#1}",rP["\\grayB"]="\\textcolor{##f0f1f2}{#1}",rP["\\grayC"]="\\textcolor{##e3e5e6}{#1}",rP["\\grayD"]="\\textcolor{##d6d8da}{#1}",rP["\\grayE"]="\\textcolor{##babec2}{#1}",rP["\\grayF"]="\\textcolor{##888d93}{#1}",rP["\\grayG"]="\\textcolor{##626569}{#1}",rP["\\grayH"]="\\textcolor{##3b3e40}{#1}",rP["\\grayI"]="\\textcolor{##21242c}{#1}",rP["\\kaBlue"]="\\textcolor{##314453}{#1}",rP["\\kaGreen"]="\\textcolor{##71B307}{#1}";var p2={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0};class p9{constructor(e,t,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new aO(rP,t.macros),this.mode=r,this.stack=[]}feed(e){this.lexer=new aR(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var t,r,a;if(e){if(this.consumeSpaces(),"["!==this.future().text)return null;t=this.popToken(),{tokens:a,end:r}=this.consumeArg(["]"])}else({tokens:a,start:t,end:r}=this.consumeArg());return this.pushToken(new n("EOF",r.loc)),this.pushTokens(a),t.range(r,"")}consumeSpaces(){for(;;)if(" "===this.future().text)this.stack.pop();else break}consumeArg(e){var t,r=[],a=e&&e.length>0;a||this.consumeSpaces();var n=this.future(),s=0,o=0;do{if(t=this.popToken(),r.push(t),"{"===t.text)++s;else if("}"===t.text){if(-1==--s)throw new i("Extra }",t)}else if("EOF"===t.text)throw new i("Unexpected end of input in a macro argument, expected '"+(e&&a?e[o]:"}")+"'",t);if(e&&a){if((0===s||1===s&&"{"===e[o])&&t.text===e[o]){if(++o===e.length){r.splice(-o,o);break}}else o=0}}while(0!==s||a);return"{"===n.text&&"}"===r[r.length-1].text&&(r.pop(),r.shift()),r.reverse(),{tokens:r,start:n,end:t}}consumeArgs(e,t){if(t){if(t.length!==e+1)throw new i("The length of delimiters doesn't match the number of args!");for(var r=t[0],a=0;athis.settings.maxExpand)throw new i("Too many expansions: infinite loop or need to increase maxExpand setting");var n=a.tokens,s=this.consumeArgs(a.numArgs,a.delimiters);if(a.numArgs){n=n.slice();for(var o=n.length-1;o>=0;--o){var l=n[o];if("#"===l.text){if(0===o)throw new i("Incomplete placeholder at end of macro body",l);if("#"===(l=n[--o]).text)n.splice(o+1,1);else if(/^[1-9]$/.test(l.text))n.splice(o,2,...s[+l.text-1]);else throw new i("Not a valid argument number",l)}}}return this.pushTokens(n),n}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;){var e=this.expandOnce();if(e instanceof n)return e.treatAsRelax&&(e.text="\\relax"),this.stack.pop()}throw Error()}expandMacro(e){return this.macros.has(e)?this.expandTokens([new n(e)]):void 0}expandTokens(e){var t=[],r=this.stack.length;for(this.pushTokens(e);this.stack.length>r;){var a=this.expandOnce(!0);a instanceof n&&(a.treatAsRelax&&(a.noexpand=!1,a.treatAsRelax=!1),t.push(this.stack.pop()))}return t}expandMacroAsText(e){var t=this.expandMacro(e);return t?t.map(e=>e.text).join(""):t}_getExpansion(e){var t=this.macros.get(e);if(null==t)return t;if(1===e.length){var r=this.lexer.catcodes[e];if(null!=r&&13!==r)return}var a="function"==typeof t?t(this):t;if("string"==typeof a){var n=0;if(-1!==a.indexOf("#"))for(var i=a.replace(/##/g,"");-1!==i.indexOf("#"+(n+1));)++n;for(var s=new aR(a,this.settings),o=[],l=s.lex();"EOF"!==l.text;)o.push(l),l=s.lex();return o.reverse(),{tokens:o,numArgs:n}}return a}isDefined(e){return this.macros.has(e)||th.hasOwnProperty(e)||ep.math.hasOwnProperty(e)||ep.text.hasOwnProperty(e)||p2.hasOwnProperty(e)}isExpandable(e){var t=this.macros.get(e);return null!=t?"string"==typeof t||"function"==typeof t||!t.unexpandable:th.hasOwnProperty(e)&&!th[e].primitive}}var ue=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,ut=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9",ₐ:"a",ₑ:"e",ₕ:"h",ᵢ:"i",ⱼ:"j",ₖ:"k",ₗ:"l",ₘ:"m",ₙ:"n",ₒ:"o",ₚ:"p",ᵣ:"r",ₛ:"s",ₜ:"t",ᵤ:"u",ᵥ:"v",ₓ:"x",ᵦ:"β",ᵧ:"γ",ᵨ:"ρ",ᵩ:"ϕ",ᵪ:"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","\xb9":"1","\xb2":"2","\xb3":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9",ᴬ:"A",ᴮ:"B",ᴰ:"D",ᴱ:"E",ᴳ:"G",ᴴ:"H",ᴵ:"I",ᴶ:"J",ᴷ:"K",ᴸ:"L",ᴹ:"M",ᴺ:"N",ᴼ:"O",ᴾ:"P",ᴿ:"R",ᵀ:"T",ᵁ:"U",ⱽ:"V",ᵂ:"W",ᵃ:"a",ᵇ:"b",ᶜ:"c",ᵈ:"d",ᵉ:"e",ᶠ:"f",ᵍ:"g",ʰ:"h",ⁱ:"i",ʲ:"j",ᵏ:"k",ˡ:"l",ᵐ:"m",ⁿ:"n",ᵒ:"o",ᵖ:"p",ʳ:"r",ˢ:"s",ᵗ:"t",ᵘ:"u",ᵛ:"v",ʷ:"w",ˣ:"x",ʸ:"y",ᶻ:"z",ᵝ:"β",ᵞ:"γ",ᵟ:"δ",ᵠ:"ϕ",ᵡ:"χ",ᶿ:"θ"}),ur={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},ua={á:"á",à:"à",ä:"ä",ǟ:"ǟ",ã:"ã",ā:"ā",ă:"ă",ắ:"ắ",ằ:"ằ",ẵ:"ẵ",ǎ:"ǎ",â:"â",ấ:"ấ",ầ:"ầ",ẫ:"ẫ",ȧ:"ȧ",ǡ:"ǡ",å:"å",ǻ:"ǻ",ḃ:"ḃ",ć:"ć",ḉ:"ḉ",č:"č",ĉ:"ĉ",ċ:"ċ",ç:"ç",ď:"ď",ḋ:"ḋ",ḑ:"ḑ",é:"é",è:"è",ë:"ë",ẽ:"ẽ",ē:"ē",ḗ:"ḗ",ḕ:"ḕ",ĕ:"ĕ",ḝ:"ḝ",ě:"ě",ê:"ê",ế:"ế",ề:"ề",ễ:"ễ",ė:"ė",ȩ:"ȩ",ḟ:"ḟ",ǵ:"ǵ",ḡ:"ḡ",ğ:"ğ",ǧ:"ǧ",ĝ:"ĝ",ġ:"ġ",ģ:"ģ",ḧ:"ḧ",ȟ:"ȟ",ĥ:"ĥ",ḣ:"ḣ",ḩ:"ḩ",í:"í",ì:"ì",ï:"ï",ḯ:"ḯ",ĩ:"ĩ",ī:"ī",ĭ:"ĭ",ǐ:"ǐ",î:"î",ǰ:"ǰ",ĵ:"ĵ",ḱ:"ḱ",ǩ:"ǩ",ķ:"ķ",ĺ:"ĺ",ľ:"ľ",ļ:"ļ",ḿ:"ḿ",ṁ:"ṁ",ń:"ń",ǹ:"ǹ",ñ:"ñ",ň:"ň",ṅ:"ṅ",ņ:"ņ",ó:"ó",ò:"ò",ö:"ö",ȫ:"ȫ",õ:"õ",ṍ:"ṍ",ṏ:"ṏ",ȭ:"ȭ",ō:"ō",ṓ:"ṓ",ṑ:"ṑ",ŏ:"ŏ",ǒ:"ǒ",ô:"ô",ố:"ố",ồ:"ồ",ỗ:"ỗ",ȯ:"ȯ",ȱ:"ȱ",ő:"ő",ṕ:"ṕ",ṗ:"ṗ",ŕ:"ŕ",ř:"ř",ṙ:"ṙ",ŗ:"ŗ",ś:"ś",ṥ:"ṥ",š:"š",ṧ:"ṧ",ŝ:"ŝ",ṡ:"ṡ",ş:"ş",ẗ:"ẗ",ť:"ť",ṫ:"ṫ",ţ:"ţ",ú:"ú",ù:"ù",ü:"ü",ǘ:"ǘ",ǜ:"ǜ",ǖ:"ǖ",ǚ:"ǚ",ũ:"ũ",ṹ:"ṹ",ū:"ū",ṻ:"ṻ",ŭ:"ŭ",ǔ:"ǔ",û:"û",ů:"ů",ű:"ű",ṽ:"ṽ",ẃ:"ẃ",ẁ:"ẁ",ẅ:"ẅ",ŵ:"ŵ",ẇ:"ẇ",ẘ:"ẘ",ẍ:"ẍ",ẋ:"ẋ",ý:"ý",ỳ:"ỳ",ÿ:"ÿ",ỹ:"ỹ",ȳ:"ȳ",ŷ:"ŷ",ẏ:"ẏ",ẙ:"ẙ",ź:"ź",ž:"ž",ẑ:"ẑ",ż:"ż",Á:"Á",À:"À",Ä:"Ä",Ǟ:"Ǟ",Ã:"Ã",Ā:"Ā",Ă:"Ă",Ắ:"Ắ",Ằ:"Ằ",Ẵ:"Ẵ",Ǎ:"Ǎ",Â:"Â",Ấ:"Ấ",Ầ:"Ầ",Ẫ:"Ẫ",Ȧ:"Ȧ",Ǡ:"Ǡ",Å:"Å",Ǻ:"Ǻ",Ḃ:"Ḃ",Ć:"Ć",Ḉ:"Ḉ",Č:"Č",Ĉ:"Ĉ",Ċ:"Ċ",Ç:"Ç",Ď:"Ď",Ḋ:"Ḋ",Ḑ:"Ḑ",É:"É",È:"È",Ë:"Ë",Ẽ:"Ẽ",Ē:"Ē",Ḗ:"Ḗ",Ḕ:"Ḕ",Ĕ:"Ĕ",Ḝ:"Ḝ",Ě:"Ě",Ê:"Ê",Ế:"Ế",Ề:"Ề",Ễ:"Ễ",Ė:"Ė",Ȩ:"Ȩ",Ḟ:"Ḟ",Ǵ:"Ǵ",Ḡ:"Ḡ",Ğ:"Ğ",Ǧ:"Ǧ",Ĝ:"Ĝ",Ġ:"Ġ",Ģ:"Ģ",Ḧ:"Ḧ",Ȟ:"Ȟ",Ĥ:"Ĥ",Ḣ:"Ḣ",Ḩ:"Ḩ",Í:"Í",Ì:"Ì",Ï:"Ï",Ḯ:"Ḯ",Ĩ:"Ĩ",Ī:"Ī",Ĭ:"Ĭ",Ǐ:"Ǐ",Î:"Î",İ:"İ",Ĵ:"Ĵ",Ḱ:"Ḱ",Ǩ:"Ǩ",Ķ:"Ķ",Ĺ:"Ĺ",Ľ:"Ľ",Ļ:"Ļ",Ḿ:"Ḿ",Ṁ:"Ṁ",Ń:"Ń",Ǹ:"Ǹ",Ñ:"Ñ",Ň:"Ň",Ṅ:"Ṅ",Ņ:"Ņ",Ó:"Ó",Ò:"Ò",Ö:"Ö",Ȫ:"Ȫ",Õ:"Õ",Ṍ:"Ṍ",Ṏ:"Ṏ",Ȭ:"Ȭ",Ō:"Ō",Ṓ:"Ṓ",Ṑ:"Ṑ",Ŏ:"Ŏ",Ǒ:"Ǒ",Ô:"Ô",Ố:"Ố",Ồ:"Ồ",Ỗ:"Ỗ",Ȯ:"Ȯ",Ȱ:"Ȱ",Ő:"Ő",Ṕ:"Ṕ",Ṗ:"Ṗ",Ŕ:"Ŕ",Ř:"Ř",Ṙ:"Ṙ",Ŗ:"Ŗ",Ś:"Ś",Ṥ:"Ṥ",Š:"Š",Ṧ:"Ṧ",Ŝ:"Ŝ",Ṡ:"Ṡ",Ş:"Ş",Ť:"Ť",Ṫ:"Ṫ",Ţ:"Ţ",Ú:"Ú",Ù:"Ù",Ü:"Ü",Ǘ:"Ǘ",Ǜ:"Ǜ",Ǖ:"Ǖ",Ǚ:"Ǚ",Ũ:"Ũ",Ṹ:"Ṹ",Ū:"Ū",Ṻ:"Ṻ",Ŭ:"Ŭ",Ǔ:"Ǔ",Û:"Û",Ů:"Ů",Ű:"Ű",Ṽ:"Ṽ",Ẃ:"Ẃ",Ẁ:"Ẁ",Ẅ:"Ẅ",Ŵ:"Ŵ",Ẇ:"Ẇ",Ẍ:"Ẍ",Ẋ:"Ẋ",Ý:"Ý",Ỳ:"Ỳ",Ÿ:"Ÿ",Ỹ:"Ỹ",Ȳ:"Ȳ",Ŷ:"Ŷ",Ẏ:"Ẏ",Ź:"Ź",Ž:"Ž",Ẑ:"Ẑ",Ż:"Ż",ά:"ά",ὰ:"ὰ",ᾱ:"ᾱ",ᾰ:"ᾰ",έ:"έ",ὲ:"ὲ",ή:"ή",ὴ:"ὴ",ί:"ί",ὶ:"ὶ",ϊ:"ϊ",ΐ:"ΐ",ῒ:"ῒ",ῑ:"ῑ",ῐ:"ῐ",ό:"ό",ὸ:"ὸ",ύ:"ύ",ὺ:"ὺ",ϋ:"ϋ",ΰ:"ΰ",ῢ:"ῢ",ῡ:"ῡ",ῠ:"ῠ",ώ:"ώ",ὼ:"ὼ",Ύ:"Ύ",Ὺ:"Ὺ",Ϋ:"Ϋ",Ῡ:"Ῡ",Ῠ:"Ῠ",Ώ:"Ώ",Ὼ:"Ὼ"};class un{constructor(e,t){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new p9(e,t,this.mode),this.settings=t,this.leftrightDepth=0}expect(e,t){if(void 0===t&&(t=!0),this.fetch().text!==e)throw new i("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()}consume(){this.nextToken=null}fetch(){return null==this.nextToken&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var t=this.nextToken;this.consume(),this.gullet.pushToken(new n("}")),this.gullet.pushTokens(e);var r=this.parseExpression(!1);return this.expect("}"),this.nextToken=t,r}parseExpression(e,t){for(var r=[];;){"math"===this.mode&&this.consumeSpaces();var a=this.fetch();if(-1!==un.endOfExpression.indexOf(a.text)||t&&a.text===t||e&&th[a.text]&&th[a.text].infix)break;var n=this.parseAtom(t);if(n){if("internal"===n.type)continue}else break;r.push(n)}return"text"===this.mode&&this.formLigatures(r),this.handleInfixNodes(r)}handleInfixNodes(e){for(var t=-1,r=0;r=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in math mode',e);var o,l,h=ep[this.mode][t].group,m=a.range(e);o=em.hasOwnProperty(h)?{type:"atom",mode:this.mode,family:h,loc:m,text:t}:{type:h,mode:this.mode,loc:m,text:t}}else{if(!(t.charCodeAt(0)>=128))return null;this.settings.strict&&(N(t.charCodeAt(0))?"math"===this.mode&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'" ('+t.charCodeAt(0)+")",e)),o={type:"textord",mode:"text",loc:a.range(e),text:t}}if(this.consume(),s)for(var c=0;c2&&void 0!==arguments[2]?arguments[2]:{},i=this;return(0,o.Z)(function(){var o,a,c,u,d,l;return(0,h.__generator)(this,function(h){switch(h.label){case 0:return[4,fetch(e,o=(0,s.Z)({credentials:"include"},t))];case 1:if((a=h.sent()).status>=500)throw new p.kb;if(!(a.status>=400))return[3,12];h.label=2;case 2:return h.trys.push([2,4,,5]),[4,a.json()];case 3:return c=(null==(u=h.sent())?void 0:u.detail)||(null==u?void 0:u.error),[3,5];case 4:return d=h.sent(),console.error("Failed to parse error response",d),[3,5];case 5:if(console.error("API error",e,c),!((null==c?void 0:c.code)==="expired_session_key"||(null==c?void 0:c.code)==="token_expired"))return[3,11];h.label=6;case 6:if(h.trys.push([6,9,,10]),n.isRetry)return[3,8];return[4,i.refreshApiKey()];case 7:return h.sent(),[2,i.fetch(e,o,(0,r.Z)((0,s.Z)({},n),{isRetry:!0}))];case 8:return[3,10];case 9:return l=h.sent(),console.error("Failed to refresh expired access token: ".concat(l)),[3,10];case 10:console.error("Refresh access token failed when retrieving",e,c),window._oaiHandleSessionExpired("fetch",JSON.stringify(c)),h.label=11;case 11:if(null==c?void 0:c.type)throw new p.gK((null==c?void 0:c.message)||c,a.status,null==c?void 0:c.code,null==c?void 0:c.type);throw new p.kb;case 12:if(204===a.status)return[2,{}];return[2,a.json()]}})})()},e.getArtifacts=function(){return this.fetch("".concat(f,"/artifacts"),{method:"GET",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader())})},e.createArtifact=function(e){return this.fetch("".concat(f,"/artifacts"),{method:"POST",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader()),body:JSON.stringify({url:e,contents:"\n"})})},e.upload=function(e,t){var n=new FormData;return n.append("file",t),this.fetch("".concat(f,"/conversation/").concat(e,"/upload"),{method:"POST",headers:(0,s.Z)({},this.getAuthHeader()),body:n})},e.fetchFileForDownload=function(e,t){var n=new URLSearchParams({path:t});return fetch("".concat(f,"/conversation/").concat(e,"/download?").concat(n),{method:"GET",headers:(0,s.Z)({},this.getAuthHeader())})},e.checkFile=function(e,t){var n=new URLSearchParams({path:t});return this.fetch("".concat(f,"/conversation/").concat(e,"/check_file?").concat(n),{method:"GET",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader())})},e.sendDocument=function(){return this.fetch("".concat(f,"/private"),{method:"GET",headers:{"Content-Type":"application/json"}})},e.getRetrievalResults=function(e){return this.fetch("".concat(f,"/retrieval/public_data"),{method:"POST",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader()),body:JSON.stringify({query:e})})},e.getModels=function(e){return this.fetch("".concat(f,"/models"),{method:"GET",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader(e))})},e.getConversations=function(e,t,n){var o=new URLSearchParams({offset:e.toString(),limit:t.toString()});return this.fetch("".concat(f,"/conversations?").concat(o),{method:"GET",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader(n))})},e.getConversation=function(e,t){return this.fetch("".concat(f,"/conversation/").concat(e),{method:"GET",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader(t))})},e.generateTitle=function(e,t,n){return this.fetch("".concat(f,"/conversation/gen_title/").concat(e),{method:"POST",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader()),body:JSON.stringify({message_id:t})})},e.patchConversation=function(e,t){return this.fetch("".concat(f,"/conversation/").concat(e),{method:"PATCH",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader()),body:JSON.stringify(t)})},e.deleteConversations=function(){return this.fetch("".concat(f,"/conversations"),{method:"PATCH",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader()),body:JSON.stringify({is_visible:!1})})},e.getLoginLink=function(e){return this.fetch("".concat(f,"/bypass/link"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e})})},e.publicApiCompletionStream=function(e,t){var n=this;return(0,o.Z)(function(){var i,r,c;return(0,h.__generator)(this,function(c){return i=new AbortController,r={action:e.completionType,messages:e.messages.length>0?e.messages:void 0,conversation_id:e.threadId,parent_message_id:e.parentMessageId,model:e.model,plugin_ids:e.threadId?void 0:e.enabledPluginIds},(0,u.L)("".concat("https://chat.openai.com/backend-api","/conversation"),{method:"POST",credentials:"include",headers:(0,s.Z)({"Content-Type":"application/json"},n.getAuthHeader()),body:JSON.stringify(r),signal:i.signal,openWhenHidden:!0,onopen:function(e){return(0,o.Z)(function(){var t,n,o;return(0,h.__generator)(this,function(i){switch(i.label){case 0:if(t=e.headers.get("content-type")||"",e.ok&&t.includes("text/event-stream"))return[2];if(!t.includes("application/json"))return[3,2];return[4,e.json()];case 1:if(n=i.sent(),console.error(n),o=(null==n?void 0:n.error)||(null==n?void 0:n.detail)){if(e.status>=500)throw new p.kb((null==o?void 0:o.message)||o);throw((null==o?void 0:o.code)==="expired_session_key"||(null==o?void 0:o.code)==="invalid_api_key"||(null==o?void 0:o.code)==="token_expired")&&window._oaiHandleSessionExpired("stream",JSON.stringify(o)),new p.gK((null==o?void 0:o.message)||o,e.status,null==o?void 0:o.code,null==o?void 0:o.type,void 0,null==o?void 0:o.clears_in)}i.label=2;case 2:throw new p.kb}})})()},onmessage:function(e){if("[DONE]"===e.data)i.abort(),t({finish_reason:"stop"});else if("ping"===e.event);else try{var n=JSON.parse(e.data);if(n.error)throw new p.kb(n.error.message);t({message:n.message,threadId:n.conversation_id})}catch(o){if((0,l.T)(o))throw new p.kb(o.message)}},onerror:function(e){throw"Failed to fetch"===e.message&&(e=new p.kb("An error occurred. Either the engine you requested does not exist or there was another issue processing your request. If this issue persists please contact us through our help center at help.openai.com.")),t({err:e}),e}}).catch(function(e){(0,a.Z)(e,p.gK)||(0,a.Z)(e,p.kb)||console.error(e)}),[2,i]})})()},e.runModerationApi=function(e,t,n){return this.fetch("".concat("https://chat.openai.com/backend-api","/moderations"),{method:"POST",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader()),body:JSON.stringify({input:e,model:"text-moderation-playground",conversation_id:t,message_id:n})})},e.submitMessageFeedback=function(e){return this.fetch("".concat(f,"/conversation/message_feedback"),{method:"POST",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader()),body:JSON.stringify(e)})},e.submitMessageComparisonFeedback=function(e){return this.fetch("".concat(f,"/conversation/message_comparison_feedback"),{method:"POST",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader()),body:JSON.stringify(e)})},e.submitCheckoutForm=function(){return this.fetch("".concat(f,"/payments/checkout"),{method:"POST",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader())})},e.fetchCustomerPortalUrl=function(e){return this.fetch("".concat(f,"/payments/customer_portal"),{method:"GET",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader(e))})},e.getPlugins=function(e){var t=e.offset,n=e.limit,o=e.statuses,i=e.isInstalled,a=e.accessToken,r=[["offset",t.toString()],["limit",n.toString()],];if(o){var c=!0,h=!1,u=void 0;try{for(var d,l=o[Symbol.iterator]();!(c=(d=l.next()).done);c=!0){var p=d.value;r.push(["statuses",p])}}catch(g){h=!0,u=g}finally{try{c||null==l.return||l.return()}finally{if(h)throw u}}}i&&r.push(["is_installed","true"]);var m=new URLSearchParams(r);return this.fetch("".concat(f,"/aip/p?").concat(m),{method:"GET",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader(a))})},e.getPluginByDomain=function(e){var t=e.domain,n=e.accessToken,o=new URLSearchParams({offset:"0",limit:"1",domains:t});return this.fetch("".concat(f,"/aip/p?").concat(o),{method:"GET",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader(n))}).then(function(e){return 0===e.items.length?null:e.items[0]})},e.setLocalhostPlugin=function(e){var t=e.localhost,n=e.manifest,o=e.openapiSpec,i=e.accessToken;return this.fetch("".concat(f,"/aip/lhp"),{method:"POST",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader(i)),body:JSON.stringify({localhost:t,manifest:n,openapi_spec:o})})},e.scrapePluginManifest=function(e){var t=e.domain,n=e.manifestAccessToken,o=e.accessToken;return this.fetch("".concat(f,"/aip/p"),{method:"POST",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader(o)),body:JSON.stringify({domain:t,manifest_access_token:n})})},e.getPluginApi=function(e){var t=e.id,n=e.accessToken;return this.fetch("".concat(f,"/aip/p/").concat(t,"/api"),{method:"GET",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader(n))})},e.updatePluginUserSettings=function(e){var t=e.pluginId,n=e.isInstalled,o=e.accessToken;return this.fetch("".concat(f,"/aip/p/").concat(t,"/user-settings"),{method:"PATCH",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader(o)),body:JSON.stringify({is_installed:n})})},e.deletePlugin=function(e){var t=e.id,n=e.accessToken;return this.fetch("".concat(f,"/aip/p/").concat(t),{method:"DELETE",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader(n))})},e.setPluginUserHttpToken=function(e){var t=e.id,n=e.userAccessToken,o=e.accessToken;return this.fetch("".concat(f,"/aip/p/").concat(t,"/user-settings/http-auth"),{method:"POST",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader(o)),body:JSON.stringify({access_token:n})})},e.setPluginServiceHttpToken=function(e){var t=e.id,n=e.serviceAccessToken,o=e.accessToken;return this.fetch("".concat(f,"/aip/p/").concat(t,"/http-auth"),{method:"POST",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader(o)),body:JSON.stringify({access_token:n})})},e.setPluginOAuthClientCredentials=function(e){var t=e.id,n=e.clientId,o=e.clientSecret,i=e.accessToken;return this.fetch("".concat(f,"/aip/p/").concat(t,"/oauth"),{method:"POST",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader(i)),body:JSON.stringify({client_id:n,client_secret:o})})},e.getAccountStatus=function(e,t){var n=(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader(e));if(t){var o={},i=!0,a=!1,r=void 0;try{for(var h,u=Object.entries(t)[Symbol.iterator]();!(i=(h=u.next()).done);i=!0){var d=(0,c.Z)(h.value,2),l=d[0],p=d[1];g.includes(l.toLowerCase())&&(o[l]=p)}}catch(m){a=!0,r=m}finally{try{i||null==u.return||u.return()}finally{if(a)throw r}}n=(0,s.Z)({},o,n)}return this.fetch("".concat(f,"/accounts/check"),{method:"GET",headers:n})},e.pluginOauthCallback=function(e,t,n,o){var i=new URLSearchParams({code:t,redirect_uri:n});return this.fetch("".concat(f,"/aip/p/").concat(e,"/user-settings/oauth/callback?").concat(i),{method:"GET",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader(o))})},e.getPageMetadata=function(e){var t=e.url;return this.fetch("".concat(f,"/opengraph/tags?url=").concat(encodeURIComponent(t)),{method:"GET",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader())})},e.getModelMessageCap=function(){return this.fetch("https://chat.openai.com/public-api/conversation_limit",{method:"GET",headers:(0,s.Z)({"Content-Type":"application/json"},this.getAuthHeader())})},e}();m.auth0Client=null,t.ZP=m}}]); \ No newline at end of file diff --git a/frontend/src/main/frontend/src/assets/rr_files/368-07f1471aa435a034.js b/frontend/src/main/frontend/src/assets/rr_files/368-07f1471aa435a034.js new file mode 100755 index 000000000..ec50a8b6b --- /dev/null +++ b/frontend/src/main/frontend/src/assets/rr_files/368-07f1471aa435a034.js @@ -0,0 +1,26 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[368],{27215:function(){},65443:function(e,n){var r; /*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ !function(){"use strict";var a={}.hasOwnProperty;function i(){for(var e=[],n=0;n1?arguments[1]:void 0)}},8804:function(e,n,r){"use strict";var a=r(89684),i=r(21296),o=r(2236),s=r(84750),l=r(13444),u=r(8615),c=r(38830),p=r(10833),m=r(72697),d=r(575),h=Array;e.exports=function(e){var n,r,f,g,b,k,y=o(e),v=u(this),E=arguments.length,T=E>1?arguments[1]:void 0,_=void 0!==T;_&&(T=a(T,E>2?arguments[2]:void 0));var x=d(y),w=0;if(x&&!(this===h&&l(x)))for(b=(g=m(y,x)).next,r=v?new this:[];!(f=i(b,g)).done;w++)k=_?s(g,T,[f.value,w],!0):f.value,p(r,w,k);else for(n=c(y),r=v?new this(n):h(n);n>w;w++)k=_?T(y[w],w):y[w],p(r,w,k);return r.length=w,r}},62335:function(e,n,r){var a=r(7322),i=r(10205),o=r(38830),s=function(e){return function(n,r,s){var l,u=a(n),c=o(u),p=i(s,c);if(e&&r!=r){for(;c>p;)if((l=u[p++])!=l)return!0}else for(;c>p;p++)if((e||p in u)&&u[p]===r)return e||p||0;return!e&&-1}};e.exports={includes:s(!0),indexOf:s(!1)}},28718:function(e,n,r){var a=r(89684),i=r(8697),o=r(31852),s=r(2236),l=r(38830),u=r(35352),c=i([].push),p=function(e){var n=1==e,r=2==e,i=3==e,p=4==e,m=6==e,d=7==e,h=5==e||m;return function(f,g,b,k){for(var y,v,E=s(f),T=o(E),_=a(g,b),x=l(T),w=0,A=k||u,j=n?A(f,x):r||d?A(f,0):void 0;x>w;w++)if((h||w in T)&&(v=_(y=T[w],w,E),e)){if(n)j[w]=v;else if(v)switch(e){case 3:return!0;case 5:return y;case 6:return w;case 2:c(j,y)}else switch(e){case 4:return!1;case 7:c(j,y)}}return m?-1:i||p?p:j}};e.exports={forEach:p(0),map:p(1),filter:p(2),some:p(3),every:p(4),find:p(5),findIndex:p(6),filterReject:p(7)}},60508:function(e,n,r){var a=r(95522),i=r(83355),o=r(51920),s=i("species");e.exports=function(e){return o>=51||!a(function(){var n=[];return(n.constructor={})[s]=function(){return{foo:1}},1!==n[e](Boolean).foo})}},98873:function(e,n,r){"use strict";var a=r(95522);e.exports=function(e,n){var r=[][e];return!!r&&a(function(){r.call(null,n||function(){return 1},1)})}},53610:function(e,n,r){"use strict";var a=r(91370),i=r(70837),o=TypeError,s=Object.getOwnPropertyDescriptor,l=a&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}();e.exports=l?function(e,n){if(i(e)&&!s(e,"length").writable)throw o("Cannot set read only .length");return e.length=n}:function(e,n){return e.length=n}},28234:function(e,n,r){var a=r(10205),i=r(38830),o=r(10833),s=Array,l=Math.max;e.exports=function(e,n,r){for(var u=i(e),c=a(n,u),p=a(void 0===r?u:r,u),m=s(l(p-c,0)),d=0;c9007199254740991)throw n("Maximum allowed index exceeded");return e}},52964:function(e){e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},84295:function(e,n,r){var a=r(76702);e.exports=a("navigator","userAgent")||""},51920:function(e,n,r){var a,i,o=r(25822),s=r(84295),l=o.process,u=o.Deno,c=l&&l.versions||u&&u.version,p=c&&c.v8;p&&(i=(a=p.split("."))[0]>0&&a[0]<4?1:+(a[0]+a[1])),!i&&s&&(!(a=s.match(/Edge\/(\d+)/))||a[1]>=74)&&(a=s.match(/Chrome\/(\d+)/))&&(i=+a[1]),e.exports=i},44767:function(e,n,r){var a=r(50349);e.exports=function(e){return a[e+"Prototype"]}},9949:function(e){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},65079:function(e,n,r){"use strict";var a=r(25822),i=r(58917),o=r(8697),s=r(420),l=r(12689).f,u=r(17199),c=r(50349),p=r(89684),m=r(44489),d=r(66810),h=function(e){var n=function(r,a,o){if(this instanceof n){switch(arguments.length){case 0:return new e;case 1:return new e(r);case 2:return new e(r,a)}return new e(r,a,o)}return i(e,this,arguments)};return n.prototype=e.prototype,n};e.exports=function(e,n){var r,i,f,g,b,k,y,v,E,T=e.target,_=e.global,x=e.stat,w=e.proto,A=_?a:x?a[T]:(a[T]||{}).prototype,j=_?c:c[T]||m(c,T,{})[T],S=j.prototype;for(g in n)i=!u(_?g:T+(x?".":"#")+g,e.forced)&&A&&d(A,g),k=j[g],i&&(y=e.dontCallGetSet?(E=l(A,g))&&E.value:A[g]),b=i&&y?y:n[g],(!i||typeof k!=typeof b)&&(v=e.bind&&i?p(b,a):e.wrap&&i?h(b):w&&s(b)?o(b):b,(e.sham||b&&b.sham||k&&k.sham)&&m(v,"sham",!0),m(j,g,v),w&&(d(c,f=T+"Prototype")||m(c,f,{}),m(c[f],g,b),e.real&&S&&!S[g]&&m(S,g,b)))}},95522:function(e){e.exports=function(e){try{return!!e()}catch(n){return!0}}},58917:function(e,n,r){var a=r(20770),i=Function.prototype,o=i.apply,s=i.call;e.exports="object"==typeof Reflect&&Reflect.apply||(a?s.bind(o):function(){return s.apply(o,arguments)})},89684:function(e,n,r){var a=r(8697),i=r(50869),o=r(20770),s=a(a.bind);e.exports=function(e,n){return i(e),void 0===n?e:o?s(e,n):function(){return e.apply(n,arguments)}}},20770:function(e,n,r){var a=r(95522);e.exports=!a(function(){var e=(function(){}).bind();return"function"!=typeof e||e.hasOwnProperty("prototype")})},21296:function(e,n,r){var a=r(20770),i=Function.prototype.call;e.exports=a?i.bind(i):function(){return i.apply(i,arguments)}},26901:function(e,n,r){var a=r(91370),i=r(66810),o=Function.prototype,s=a&&Object.getOwnPropertyDescriptor,l=i(o,"name"),u=l&&(!a||a&&s(o,"name").configurable);e.exports={EXISTS:l,PROPER:l&&"something"===(function(){}).name,CONFIGURABLE:u}},8697:function(e,n,r){var a=r(20770),i=Function.prototype,o=i.bind,s=i.call,l=a&&o.bind(s,s);e.exports=a?function(e){return e&&l(e)}:function(e){return e&&function(){return s.apply(e,arguments)}}},76702:function(e,n,r){var a=r(50349),i=r(25822),o=r(420),s=function(e){return o(e)?e:void 0};e.exports=function(e,n){return arguments.length<2?s(a[e])||s(i[e]):a[e]&&a[e][n]||i[e]&&i[e][n]}},575:function(e,n,r){var a=r(50377),i=r(87537),o=r(60047),s=r(70964),l=r(83355)("iterator");e.exports=function(e){if(!o(e))return i(e,l)||i(e,"@@iterator")||s[a(e)]}},72697:function(e,n,r){var a=r(21296),i=r(50869),o=r(99933),s=r(74647),l=r(575),u=TypeError;e.exports=function(e,n){var r=arguments.length<2?l(e):n;if(i(r))return o(a(r,e));throw u(s(e)+" is not iterable")}},87537:function(e,n,r){var a=r(50869),i=r(60047);e.exports=function(e,n){var r=e[n];return i(r)?void 0:a(r)}},25822:function(e,n,r){var a=function(e){return e&&e.Math==Math&&e};e.exports=a("object"==typeof globalThis&&globalThis)||a("object"==typeof window&&window)||a("object"==typeof self&&self)||a("object"==typeof r.g&&r.g)||function(){return this}()||Function("return this")()},66810:function(e,n,r){var a=r(8697),i=r(2236),o=a({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,n){return o(i(e),n)}},38573:function(e){e.exports={}},99561:function(e,n,r){var a=r(76702);e.exports=a("document","documentElement")},7252:function(e,n,r){var a=r(91370),i=r(95522),o=r(6115);e.exports=!a&&!i(function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a})},31852:function(e,n,r){var a=r(8697),i=r(95522),o=r(5376),s=Object,l=a("".split);e.exports=i(function(){return!s("z").propertyIsEnumerable(0)})?function(e){return"String"==o(e)?l(e,""):s(e)}:s},87929:function(e,n,r){var a=r(8697),i=r(420),o=r(13404),s=a(Function.toString);i(o.inspectSource)||(o.inspectSource=function(e){return s(e)}),e.exports=o.inspectSource},98199:function(e,n,r){var a,i,o,s=r(77014),l=r(25822),u=r(8697),c=r(59722),p=r(44489),m=r(66810),d=r(13404),h=r(2514),f=r(38573),g="Object already initialized",b=l.TypeError,k=l.WeakMap,y=function(e){return o(e)?i(e):a(e,{})},v=function(e){return function(n){var r;if(!c(n)||(r=i(n)).type!==e)throw b("Incompatible receiver, "+e+" required");return r}};if(s||d.state){var E=d.state||(d.state=new k),T=u(E.get),_=u(E.has),x=u(E.set);a=function(e,n){if(_(E,e))throw b(g);return n.facade=e,x(E,e,n),n},i=function(e){return T(E,e)||{}},o=function(e){return _(E,e)}}else{var w=h("state");f[w]=!0,a=function(e,n){if(m(e,w))throw b(g);return n.facade=e,p(e,w,n),n},i=function(e){return m(e,w)?e[w]:{}},o=function(e){return m(e,w)}}e.exports={set:a,get:i,has:o,enforce:y,getterFor:v}},13444:function(e,n,r){var a=r(83355),i=r(70964),o=a("iterator"),s=Array.prototype;e.exports=function(e){return void 0!==e&&(i.Array===e||s[o]===e)}},70837:function(e,n,r){var a=r(5376);e.exports=Array.isArray||function(e){return"Array"==a(e)}},420:function(e,n,r){var a=r(40),i=a.all;e.exports=a.IS_HTMLDDA?function(e){return"function"==typeof e||e===i}:function(e){return"function"==typeof e}},8615:function(e,n,r){var a=r(8697),i=r(95522),o=r(420),s=r(50377),l=r(76702),u=r(87929),c=function(){},p=[],m=l("Reflect","construct"),d=/^\s*(?:class|function)\b/,h=a(d.exec),f=!d.exec(c),g=function(e){if(!o(e))return!1;try{return m(c,p,e),!0}catch(n){return!1}},b=function(e){if(!o(e))return!1;switch(s(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return f||!!h(d,u(e))}catch(n){return!0}};b.sham=!0,e.exports=!m||i(function(){var e;return g(g.call)||!g(Object)||!g(function(){e=!0})||e})?b:g},17199:function(e,n,r){var a=r(95522),i=r(420),o=/#|\.prototype\./,s=function(e,n){var r=u[l(e)];return r==p||r!=c&&(i(n)?a(n):!!n)},l=s.normalize=function(e){return String(e).replace(o,".").toLowerCase()},u=s.data={},c=s.NATIVE="N",p=s.POLYFILL="P";e.exports=s},60047:function(e){e.exports=function(e){return null==e}},59722:function(e,n,r){var a=r(420),i=r(40),o=i.all;e.exports=i.IS_HTMLDDA?function(e){return"object"==typeof e?null!==e:a(e)||e===o}:function(e){return"object"==typeof e?null!==e:a(e)}},1847:function(e){e.exports=!0},48826:function(e,n,r){var a=r(76702),i=r(420),o=r(44948),s=r(29170),l=Object;e.exports=s?function(e){return"symbol"==typeof e}:function(e){var n=a("Symbol");return i(n)&&o(n.prototype,l(e))}},80956:function(e,n,r){var a=r(21296),i=r(99933),o=r(87537);e.exports=function(e,n,r){var s,l;i(e);try{if(!(s=o(e,"return"))){if("throw"===n)throw r;return r}s=a(s,e)}catch(u){l=!0,s=u}if("throw"===n)throw r;if(l)throw s;return i(s),r}},12770:function(e,n,r){"use strict";var a=r(37895).IteratorPrototype,i=r(53796),o=r(79341),s=r(2515),l=r(70964),u=function(){return this};e.exports=function(e,n,r,c){var p=n+" Iterator";return e.prototype=i(a,{next:o(+!c,r)}),s(e,p,!1,!0),l[p]=u,e}},89840:function(e,n,r){"use strict";var a=r(65079),i=r(21296),o=r(1847),s=r(26901),l=r(420),u=r(12770),c=r(60214),p=r(88992),m=r(2515),d=r(44489),h=r(59282),f=r(83355),g=r(70964),b=r(37895),k=s.PROPER,y=s.CONFIGURABLE,v=b.IteratorPrototype,E=b.BUGGY_SAFARI_ITERATORS,T=f("iterator"),_="keys",x="values",w="entries",A=function(){return this};e.exports=function(e,n,r,s,f,b,j){u(r,n,s);var S,C,N,O=function(e){if(e===f&&P)return P;if(!E&&e in I)return I[e];switch(e){case _:case x:case w:return function(){return new r(this,e)}}return function(){return new r(this)}},R=n+" Iterator",M=!1,I=e.prototype,L=I[T]||I["@@iterator"]||f&&I[f],P=!E&&L||O(f),D="Array"==n&&I.entries||L;if(D&&(S=c(D.call(new e)))!==Object.prototype&&S.next&&(o||c(S)===v||(p?p(S,v):l(S[T])||h(S,T,A)),m(S,R,!0,!0),o&&(g[R]=A)),k&&f==x&&L&&L.name!==x&&(!o&&y?d(I,"name",x):(M=!0,P=function(){return i(L,this)})),f){if(C={values:O(x),keys:b?P:O(_),entries:O(w)},j)for(N in C)!E&&!M&&N in I||h(I,N,C[N]);else a({target:n,proto:!0,forced:E||M},C)}return(!o||j)&&I[T]!==P&&h(I,T,P,{name:f}),g[n]=P,C}},37895:function(e,n,r){"use strict";var a,i,o,s=r(95522),l=r(420),u=r(59722),c=r(53796),p=r(60214),m=r(59282),d=r(83355),h=r(1847),f=d("iterator"),g=!1;[].keys&&("next"in(o=[].keys())?(i=p(p(o)))!==Object.prototype&&(a=i):g=!0),!u(a)||s(function(){var e={};return a[f].call(e)!==e})?a={}:h&&(a=c(a)),l(a[f])||m(a,f,function(){return this}),e.exports={IteratorPrototype:a,BUGGY_SAFARI_ITERATORS:g}},70964:function(e){e.exports={}},38830:function(e,n,r){var a=r(19153);e.exports=function(e){return a(e.length)}},20754:function(e){e.exports=Math.sign||function(e){var n=+e;return 0==n||n!=n?n:n<0?-1:1}},42661:function(e){var n=Math.ceil,r=Math.floor;e.exports=Math.trunc||function(e){var a=+e;return(a>0?r:n)(a)}},53796:function(e,n,r){var a,i=r(99933),o=r(44512),s=r(9949),l=r(38573),u=r(99561),c=r(6115),p=r(2514),m="prototype",d="script",h=p("IE_PROTO"),f=function(){},g=function(e){return"<"+d+">"+e+""},b=function(e){e.write(g("")),e.close();var n=e.parentWindow.Object;return e=null,n},k=function(){var e,n=c("iframe");return n.style.display="none",u.appendChild(n),n.src=String("java"+d+":"),(e=n.contentWindow.document).open(),e.write(g("document.F=Object")),e.close(),e.F},y=function(){try{a=new ActiveXObject("htmlfile")}catch(e){}y="undefined"!=typeof document?document.domain&&a?b(a):k():b(a);for(var n=s.length;n--;)delete y[m][s[n]];return y()};l[h]=!0,e.exports=Object.create||function(e,n){var r;return null!==e?(f[m]=i(e),r=new f,f[m]=null,r[h]=e):r=y(),void 0===n?r:o.f(r,n)}},44512:function(e,n,r){var a=r(91370),i=r(14390),o=r(59186),s=r(99933),l=r(7322),u=r(3637);n.f=a&&!i?Object.defineProperties:function(e,n){s(e);for(var r,a=l(n),i=u(n),c=i.length,p=0;c>p;)o.f(e,r=i[p++],a[r]);return e}},59186:function(e,n,r){var a=r(91370),i=r(7252),o=r(14390),s=r(99933),l=r(3061),u=TypeError,c=Object.defineProperty,p=Object.getOwnPropertyDescriptor,m="enumerable",d="configurable",h="writable";n.f=a?o?function(e,n,r){if(s(e),n=l(n),s(r),"function"==typeof e&&"prototype"===n&&"value"in r&&h in r&&!r[h]){var a=p(e,n);a&&a[h]&&(e[n]=r.value,r={configurable:d in r?r[d]:a[d],enumerable:m in r?r[m]:a[m],writable:!1})}return c(e,n,r)}:c:function(e,n,r){if(s(e),n=l(n),s(r),i)try{return c(e,n,r)}catch(a){}if("get"in r||"set"in r)throw u("Accessors not supported");return"value"in r&&(e[n]=r.value),e}},12689:function(e,n,r){var a=r(91370),i=r(21296),o=r(51492),s=r(79341),l=r(7322),u=r(3061),c=r(66810),p=r(7252),m=Object.getOwnPropertyDescriptor;n.f=a?m:function(e,n){if(e=l(e),n=u(n),p)try{return m(e,n)}catch(r){}if(c(e,n))return s(!i(o.f,e,n),e[n])}},47768:function(e,n,r){var a=r(5376),i=r(7322),o=r(39906).f,s=r(28234),l="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(e){try{return o(e)}catch(n){return s(l)}};e.exports.f=function(e){return l&&"Window"==a(e)?u(e):o(i(e))}},39906:function(e,n,r){var a=r(47648),i=r(9949).concat("length","prototype");n.f=Object.getOwnPropertyNames||function(e){return a(e,i)}},56241:function(e,n){n.f=Object.getOwnPropertySymbols},60214:function(e,n,r){var a=r(66810),i=r(420),o=r(2236),s=r(2514),l=r(57381),u=s("IE_PROTO"),c=Object,p=c.prototype;e.exports=l?c.getPrototypeOf:function(e){var n=o(e);if(a(n,u))return n[u];var r=n.constructor;return i(r)&&n instanceof r?r.prototype:n instanceof c?p:null}},44948:function(e,n,r){var a=r(8697);e.exports=a({}.isPrototypeOf)},47648:function(e,n,r){var a=r(8697),i=r(66810),o=r(7322),s=r(62335).indexOf,l=r(38573),u=a([].push);e.exports=function(e,n){var r,a=o(e),c=0,p=[];for(r in a)!i(l,r)&&i(a,r)&&u(p,r);for(;n.length>c;)i(a,r=n[c++])&&(~s(p,r)||u(p,r));return p}},3637:function(e,n,r){var a=r(47648),i=r(9949);e.exports=Object.keys||function(e){return a(e,i)}},51492:function(e,n){"use strict";var r={}.propertyIsEnumerable,a=Object.getOwnPropertyDescriptor,i=a&&!r.call({1:2},1);n.f=i?function(e){var n=a(this,e);return!!n&&n.enumerable}:r},88992:function(e,n,r){var a=r(8697),i=r(99933),o=r(37681);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,n=!1,r={};try{(e=a(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(r,[]),n=r instanceof Array}catch(s){}return function(r,a){return i(r),o(a),n?e(r,a):r.__proto__=a,r}}():void 0)},33611:function(e,n,r){"use strict";var a=r(49228),i=r(50377);e.exports=a?({}).toString:function(){return"[object "+i(this)+"]"}},93578:function(e,n,r){var a=r(21296),i=r(420),o=r(59722),s=TypeError;e.exports=function(e,n){var r,l;if("string"===n&&i(r=e.toString)&&!o(l=a(r,e))||i(r=e.valueOf)&&!o(l=a(r,e))||"string"!==n&&i(r=e.toString)&&!o(l=a(r,e)))return l;throw s("Can't convert object to primitive value")}},84618:function(e,n,r){var a=r(76702),i=r(8697),o=r(39906),s=r(56241),l=r(99933),u=i([].concat);e.exports=a("Reflect","ownKeys")||function(e){var n=o.f(l(e)),r=s.f;return r?u(n,r(e)):n}},50349:function(e){e.exports={}},41653:function(e,n,r){var a=r(60047),i=TypeError;e.exports=function(e){if(a(e))throw i("Can't call method on "+e);return e}},17839:function(e,n,r){var a=r(25822),i=r(58917),o=r(420),s=r(84295),l=r(7942),u=r(62258),c=/MSIE .\./.test(s),p=a.Function,m=function(e){return c?function(n,r){var a=u(arguments.length,1)>2,s=o(n)?n:p(n),c=a?l(arguments,2):void 0;return e(a?function(){i(s,this,c)}:s,r)}:e};e.exports={setTimeout:m(a.setTimeout),setInterval:m(a.setInterval)}},2515:function(e,n,r){var a=r(49228),i=r(59186).f,o=r(44489),s=r(66810),l=r(33611),u=r(83355)("toStringTag");e.exports=function(e,n,r,c){if(e){var p=r?e:e.prototype;s(p,u)||i(p,u,{configurable:!0,value:n}),c&&!a&&o(p,"toString",l)}}},2514:function(e,n,r){var a=r(51019),i=r(33852),o=a("keys");e.exports=function(e){return o[e]||(o[e]=i(e))}},13404:function(e,n,r){var a=r(25822),i=r(81673),o="__core-js_shared__",s=a[o]||i(o,{});e.exports=s},51019:function(e,n,r){var a=r(1847),i=r(13404);(e.exports=function(e,n){return i[e]||(i[e]=void 0!==n?n:{})})("versions",[]).push({version:"3.25.2",mode:a?"pure":"global",copyright:"\xa9 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.25.2/LICENSE",source:"https://github.com/zloirock/core-js"})},46437:function(e,n,r){var a=r(8697),i=r(50485),o=r(39752),s=r(41653),l=a("".charAt),u=a("".charCodeAt),c=a("".slice),p=function(e){return function(n,r){var a,p,m=o(s(n)),d=i(r),h=m.length;return d<0||d>=h?e?"":void 0:(a=u(m,d))<55296||a>56319||d+1===h||(p=u(m,d+1))<56320||p>57343?e?l(m,d):a:e?c(m,d,d+2):(a-55296<<10)+(p-56320)+65536}};e.exports={codeAt:p(!1),charAt:p(!0)}},38726:function(e,n,r){var a=r(51920),i=r(95522);e.exports=!!Object.getOwnPropertySymbols&&!i(function(){var e=Symbol();return!String(e)||!(Object(e) instanceof Symbol)||!Symbol.sham&&a&&a<41})},52726:function(e,n,r){var a=r(21296),i=r(76702),o=r(83355),s=r(59282);e.exports=function(){var e=i("Symbol"),n=e&&e.prototype,r=n&&n.valueOf,l=o("toPrimitive");n&&!n[l]&&s(n,l,function(e){return a(r,this)},{arity:1})}},95542:function(e,n,r){var a=r(38726);e.exports=a&&!!Symbol.for&&!!Symbol.keyFor},10205:function(e,n,r){var a=r(50485),i=Math.max,o=Math.min;e.exports=function(e,n){var r=a(e);return r<0?i(r+n,0):o(r,n)}},7322:function(e,n,r){var a=r(31852),i=r(41653);e.exports=function(e){return a(i(e))}},50485:function(e,n,r){var a=r(42661);e.exports=function(e){var n=+e;return n!=n||0===n?0:a(n)}},19153:function(e,n,r){var a=r(50485),i=Math.min;e.exports=function(e){return e>0?i(a(e),9007199254740991):0}},2236:function(e,n,r){var a=r(41653),i=Object;e.exports=function(e){return i(a(e))}},37508:function(e,n,r){var a=r(21296),i=r(59722),o=r(48826),s=r(87537),l=r(93578),u=r(83355),c=TypeError,p=u("toPrimitive");e.exports=function(e,n){if(!i(e)||o(e))return e;var r,u=s(e,p);if(u){if(void 0===n&&(n="default"),r=a(u,e,n),!i(r)||o(r))return r;throw c("Can't convert object to primitive value")}return void 0===n&&(n="number"),l(e,n)}},3061:function(e,n,r){var a=r(37508),i=r(48826);e.exports=function(e){var n=a(e,"string");return i(n)?n:n+""}},49228:function(e,n,r){var a=r(83355)("toStringTag"),i={};i[a]="z",e.exports="[object z]"===String(i)},39752:function(e,n,r){var a=r(50377),i=String;e.exports=function(e){if("Symbol"===a(e))throw TypeError("Cannot convert a Symbol value to a string");return i(e)}},74647:function(e){var n=String;e.exports=function(e){try{return n(e)}catch(r){return"Object"}}},33852:function(e,n,r){var a=r(8697),i=0,o=Math.random(),s=a(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+s(++i+o,36)}},29170:function(e,n,r){var a=r(38726);e.exports=a&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},14390:function(e,n,r){var a=r(91370),i=r(95522);e.exports=a&&i(function(){return 42!=Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})},62258:function(e){var n=TypeError;e.exports=function(e,r){if(e=51||!i(function(){var e=[];return e[g]=!1,e.concat()[0]!==e}),k=d("concat"),y=function(e){if(!s(e))return!1;var n=e[g];return void 0!==n?!!n:o(e)};a({target:"Array",proto:!0,arity:1,forced:!b||!k},{concat:function(e){var n,r,a,i,o,s=l(this),d=m(s,0),h=0;for(n=-1,a=arguments.length;n1?arguments[1]:void 0)}})},57902:function(e,n,r){"use strict";var a=r(65079),i=r(19472);a({target:"Array",proto:!0,forced:[].forEach!=i},{forEach:i})},56858:function(e,n,r){var a=r(65079),i=r(8804),o=!r(8882)(function(e){Array.from(e)});a({target:"Array",stat:!0,forced:o},{from:i})},12952:function(e,n,r){"use strict";var a=r(65079),i=r(8697),o=r(62335).indexOf,s=r(98873),l=i([].indexOf),u=!!l&&1/l([1],1,-0)<0,c=s("indexOf");a({target:"Array",proto:!0,forced:u||!c},{indexOf:function(e){var n=arguments.length>1?arguments[1]:void 0;return u?l(this,e,n)||0:o(this,e,n)}})},21084:function(e,n,r){var a=r(65079),i=r(70837);a({target:"Array",stat:!0},{isArray:i})},70662:function(e,n,r){"use strict";var a=r(7322),i=r(91884),o=r(70964),s=r(98199),l=r(59186).f,u=r(89840),c=r(43689),p=r(1847),m=r(91370),d="Array Iterator",h=s.set,f=s.getterFor(d);e.exports=u(Array,"Array",function(e,n){h(this,{type:d,target:a(e),index:0,kind:n})},function(){var e=f(this),n=e.target,r=e.kind,a=e.index++;return!n||a>=n.length?(e.target=void 0,c(void 0,!0)):"keys"==r?c(a,!1):"values"==r?c(n[a],!1):c([a,n[a]],!1)},"values");var g=o.Arguments=o.Array;if(i("keys"),i("values"),i("entries"),!p&&m&&"values"!==g.name)try{l(g,"name",{value:"values"})}catch(b){}},98016:function(e,n,r){"use strict";var a=r(65079),i=r(70837),o=r(8615),s=r(59722),l=r(10205),u=r(38830),c=r(7322),p=r(10833),m=r(83355),d=r(60508),h=r(7942),f=d("slice"),g=m("species"),b=Array,k=Math.max;a({target:"Array",proto:!0,forced:!f},{slice:function(e,n){var r,a,m,d=c(this),f=u(d),y=l(e,f),v=l(void 0===n?f:n,f);if(i(d)&&(o(r=d.constructor)&&(r===b||i(r.prototype))?r=void 0:s(r)&&null===(r=r[g])&&(r=void 0),r===b||void 0===r))return h(d,y,v);for(m=0,a=new(void 0===r?b:r)(k(v-y,0));yE-a+r;b--)d(v,b-1)}else if(r>a)for(b=E-a;b>T;b--)k=b+a-1,y=b+r-1,k in v?v[y]=v[k]:d(v,y);for(b=0;bm;)void 0!==(r=i(a,n=c[m++]))&&u(p,n,r);return p}})},9850:function(e,n,r){var a=r(65079),i=r(38726),o=r(95522),s=r(56241),l=r(2236),u=!i||o(function(){s.f(1)});a({target:"Object",stat:!0,forced:u},{getOwnPropertySymbols:function(e){var n=s.f;return n?n(l(e)):[]}})},25016:function(e,n,r){var a=r(65079),i=r(2236),o=r(3637),s=r(95522)(function(){o(1)});a({target:"Object",stat:!0,forced:s},{keys:function(e){return o(i(e))}})},83739:function(){},10416:function(){},9813:function(e,n,r){"use strict";var a=r(46437).charAt,i=r(39752),o=r(98199),s=r(89840),l=r(43689),u="String Iterator",c=o.set,p=o.getterFor(u);s(String,"String",function(e){c(this,{type:u,string:i(e),index:0})},function(){var e,n=p(this),r=n.string,i=n.index;return i>=r.length?l(void 0,!0):(e=a(r,i),n.index+=e.length,l(e,!1))})},63617:function(e,n,r){r(75209)("asyncIterator")},55773:function(e,n,r){"use strict";var a=r(65079),i=r(25822),o=r(21296),s=r(8697),l=r(1847),u=r(91370),c=r(38726),p=r(95522),m=r(66810),d=r(44948),h=r(99933),f=r(7322),g=r(3061),b=r(39752),k=r(79341),y=r(53796),v=r(3637),E=r(39906),T=r(47768),_=r(56241),x=r(12689),w=r(59186),A=r(44512),j=r(51492),S=r(59282),C=r(51019),N=r(2514),O=r(38573),R=r(33852),M=r(83355),I=r(39509),L=r(75209),P=r(52726),D=r(2515),z=r(98199),F=r(28718).forEach,B=N("hidden"),H="Symbol",U="prototype",G=z.set,$=z.getterFor(H),K=Object[U],V=i.Symbol,q=V&&V[U],W=i.TypeError,Y=i.QObject,Q=x.f,Z=w.f,X=T.f,J=j.f,ee=s([].push),et=C("symbols"),en=C("op-symbols"),er=C("wks"),ea=!Y||!Y[U]||!Y[U].findChild,ei=u&&p(function(){return 7!=y(Z({},"a",{get:function(){return Z(this,"a",{value:7}).a}})).a})?function(e,n,r){var a=Q(K,n);a&&delete K[n],Z(e,n,r),a&&e!==K&&Z(K,n,a)}:Z,eo=function(e,n){var r=et[e]=y(q);return G(r,{type:H,tag:e,description:n}),u||(r.description=n),r},es=function(e,n,r){e===K&&es(en,n,r),h(e);var a=g(n);return(h(r),m(et,a))?(r.enumerable?(m(e,B)&&e[B][a]&&(e[B][a]=!1),r=y(r,{enumerable:k(0,!1)})):(m(e,B)||Z(e,B,k(1,{})),e[B][a]=!0),ei(e,a,r)):Z(e,a,r)},el=function(e,n){h(e);var r=f(n),a=v(r).concat(ed(r));return F(a,function(n){(!u||o(ec,r,n))&&es(e,n,r[n])}),e},eu=function(e,n){return void 0===n?y(e):el(y(e),n)},ec=function(e){var n=g(e),r=o(J,this,n);return(!(this===K&&m(et,n))||!!m(en,n))&&(!(r||!m(this,n)||!m(et,n)||m(this,B)&&this[B][n])||r)},ep=function(e,n){var r=f(e),a=g(n);if(!(r===K&&m(et,a))||m(en,a)){var i=Q(r,a);return i&&m(et,a)&&!(m(r,B)&&r[B][a])&&(i.enumerable=!0),i}},em=function(e){var n=X(f(e)),r=[];return F(n,function(e){m(et,e)||m(O,e)||ee(r,e)}),r},ed=function(e){var n=e===K,r=X(n?en:f(e)),a=[];return F(r,function(e){m(et,e)&&(!n||m(K,e))&&ee(a,et[e])}),a};c||(q=(V=function(){if(d(q,this))throw W("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?b(arguments[0]):void 0,n=R(e),r=function(e){this===K&&o(r,en,e),m(this,B)&&m(this[B],n)&&(this[B][n]=!1),ei(this,n,k(1,e))};return u&&ea&&ei(K,n,{configurable:!0,set:r}),eo(n,e)})[U],S(q,"toString",function(){return $(this).tag}),S(V,"withoutSetter",function(e){return eo(R(e),e)}),j.f=ec,w.f=es,A.f=el,x.f=ep,E.f=T.f=em,_.f=ed,I.f=function(e){return eo(M(e),e)},u&&(Z(q,"description",{configurable:!0,get:function(){return $(this).description}}),l||S(K,"propertyIsEnumerable",ec,{unsafe:!0}))),a({global:!0,constructor:!0,wrap:!0,forced:!c,sham:!c},{Symbol:V}),F(v(er),function(e){L(e)}),a({target:H,stat:!0,forced:!c},{useSetter:function(){ea=!0},useSimple:function(){ea=!1}}),a({target:"Object",stat:!0,forced:!c,sham:!u},{create:eu,defineProperty:es,defineProperties:el,getOwnPropertyDescriptor:ep}),a({target:"Object",stat:!0,forced:!c},{getOwnPropertyNames:em}),P(),D(V,H),O[B]=!0},32222:function(){},58584:function(e,n,r){var a=r(65079),i=r(76702),o=r(66810),s=r(39752),l=r(51019),u=r(95542),c=l("string-to-symbol-registry"),p=l("symbol-to-string-registry");a({target:"Symbol",stat:!0,forced:!u},{for:function(e){var n=s(e);if(o(c,n))return c[n];var r=i("Symbol")(n);return c[n]=r,p[r]=n,r}})},45453:function(e,n,r){r(75209)("hasInstance")},69956:function(e,n,r){r(75209)("isConcatSpreadable")},39234:function(e,n,r){r(75209)("iterator")},14138:function(e,n,r){r(55773),r(58584),r(32002),r(23628),r(9850)},32002:function(e,n,r){var a=r(65079),i=r(66810),o=r(48826),s=r(74647),l=r(51019),u=r(95542),c=l("symbol-to-string-registry");a({target:"Symbol",stat:!0,forced:!u},{keyFor:function(e){if(!o(e))throw TypeError(s(e)+" is not a symbol");if(i(c,e))return c[e]}})},74696:function(e,n,r){r(75209)("matchAll")},58280:function(e,n,r){r(75209)("match")},12710:function(e,n,r){r(75209)("replace")},58730:function(e,n,r){r(75209)("search")},56733:function(e,n,r){r(75209)("species")},4774:function(e,n,r){r(75209)("split")},72874:function(e,n,r){var a=r(75209),i=r(52726);a("toPrimitive"),i()},93492:function(e,n,r){var a=r(76702),i=r(75209),o=r(2515);i("toStringTag"),o(a("Symbol"),"Symbol")},60905:function(e,n,r){r(75209)("unscopables")},12014:function(e,n,r){r(75209)("asyncDispose")},29864:function(e,n,r){r(75209)("dispose")},29657:function(e,n,r){r(75209)("matcher")},18286:function(e,n,r){r(75209)("metadataKey")},69201:function(e,n,r){r(75209)("metadata")},70245:function(e,n,r){r(75209)("observable")},74662:function(e,n,r){r(75209)("patternMatch")},19109:function(e,n,r){r(75209)("replaceAll")},5384:function(e,n,r){r(70662);var a=r(52964),i=r(25822),o=r(50377),s=r(44489),l=r(70964),u=r(83355)("toStringTag");for(var c in a){var p=i[c],m=p&&p.prototype;m&&o(m)!==u&&s(m,u,c),l[c]=l.Array}},77461:function(e,n,r){var a=r(65079),i=r(25822),o=r(17839).setInterval;a({global:!0,bind:!0,forced:i.setInterval!==o},{setInterval:o})},17219:function(e,n,r){var a=r(65079),i=r(25822),o=r(17839).setTimeout;a({global:!0,bind:!0,forced:i.setTimeout!==o},{setTimeout:o})},88406:function(e,n,r){r(77461),r(17219)},61289:function(e,n,r){var a=r(93674);e.exports=a},73983:function(e,n,r){var a=r(16007);e.exports=a},29943:function(e,n,r){var a=r(21487);e.exports=a},35237:function(e,n,r){var a=r(79295);e.exports=a},586:function(e,n,r){var a=r(98010);r(5384),e.exports=a},18187:function(e,n,r){var a=r(2968);e.exports=a},19933:function(e,n,r){var a=r(80764);e.exports=a},78954:function(e,n,r){r(5384);var a=r(50377),i=r(66810),o=r(44948),s=r(29943),l=Array.prototype,u={DOMTokenList:!0,NodeList:!0};e.exports=function(e){var n=e.forEach;return e===l||o(l,e)&&n===l.forEach||i(u,a(e))?s:n}},61325:function(e,n,r){var a=r(9118);e.exports=a},27845:function(e,n,r){var a=r(57652);e.exports=a},98860:function(e,n,r){var a=r(506);e.exports=a},43282:function(e,n,r){var a=r(52870);e.exports=a},69630:function(e,n,r){var a=r(22341);e.exports=a},56813:function(e,n,r){var a=r(92460);e.exports=a},51921:function(e,n,r){var a=r(78007);e.exports=a},24457:function(e,n,r){var a=r(59799);e.exports=a},97911:function(e,n,r){var a=r(20017);e.exports=a},85827:function(e,n,r){var a=r(90337);e.exports=a},79748:function(e,n,r){r(88406);var a=r(50349);e.exports=a.setInterval},56437:function(e,n,r){r(88406);var a=r(50349);e.exports=a.setTimeout},79709:function(e,n,r){var a=r(3408);r(5384),e.exports=a},12750:function(e,n,r){var a=r(4015),i=r(54347);e.exports=function(e){if(a(e))return e;throw TypeError(i(e)+" is not a function")}},84179:function(e,n,r){"use strict";var a=r(82978).charAt;e.exports=function(e,n,r){return n+(r?a(e,n).length:1)}},13533:function(e,n,r){var a=r(72852);e.exports=function(e){if(a(e))return e;throw TypeError(String(e)+" is not an object")}},73934:function(e,n,r){var a=r(97418),i=r(73154),o=r(72061),s=function(e){return function(n,r,s){var l,u=a(n),c=o(u),p=i(s,c);if(e&&r!=r){for(;c>p;)if((l=u[p++])!=l)return!0}else for(;c>p;p++)if((e||p in u)&&u[p]===r)return e||p||0;return!e&&-1}};e.exports={includes:s(!0),indexOf:s(!1)}},2945:function(e){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},81153:function(e,n,r){var a=r(85943),i=r(4015),o=r(2945),s=r(30359)("toStringTag"),l="Arguments"==o(function(){return arguments}()),u=function(e,n){try{return e[n]}catch(r){}};e.exports=a?o:function(e){var n,r,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=u(n=Object(e),s))?r:l?o(n):"Object"==(a=o(n))&&i(n.callee)?"Arguments":a}},84255:function(e,n,r){var a=r(67728),i=r(2213),o=r(58776),s=r(29311);e.exports=function(e,n){for(var r=i(n),l=s.f,u=o.f,c=0;c=74)&&(a=s.match(/Chrome\/(\d+)/))&&(i=a[1]),e.exports=i&&+i},31069:function(e){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},58643:function(e,n,r){var a=r(53392),i=r(58776).f,o=r(57695),s=r(81839),l=r(88461),u=r(84255),c=r(71239);e.exports=function(e,n){var r,p,m,d,h,f,g=e.target,b=e.global,k=e.stat;if(p=b?a:k?a[g]||l(g,{}):(a[g]||{}).prototype)for(m in n){if(h=n[m],d=e.noTargetGet?(f=i(p,m))&&f.value:p[m],!c(b?m:g+(k?".":"#")+m,e.forced)&&void 0!==d){if(typeof h==typeof d)continue;u(h,d)}(e.sham||d&&d.sham)&&o(h,"sham",!0),s(p,m,h,e)}}},65905:function(e){e.exports=function(e){try{return!!e()}catch(n){return!0}}},42758:function(e,n,r){"use strict";r(59103);var a=r(81839),i=r(60974),o=r(65905),s=r(30359),l=r(57695),u=s("species"),c=RegExp.prototype;e.exports=function(e,n,r,p){var m=s(e),d=!o(function(){var n={};return n[m]=function(){return 7},7!=""[e](n)}),h=d&&!o(function(){var n=!1,r=/a/;return"split"===e&&((r={}).constructor={},r.constructor[u]=function(){return r},r.flags="",r[m]=/./[m]),r.exec=function(){return n=!0,null},r[m](""),!n});if(!d||!h||r){var f=/./[m],g=n(m,""[e],function(e,n,r,a,o){var s=n.exec;return s===i||s===c.exec?d&&!o?{done:!0,value:f.call(n,r,a)}:{done:!0,value:e.call(r,n,a)}:{done:!1}});a(String.prototype,e,g[0]),a(c,m,g[1])}p&&l(c[m],"sham",!0)}},61336:function(e,n,r){var a=r(81846),i=r(67728),o=Function.prototype,s=a&&Object.getOwnPropertyDescriptor,l=i(o,"name"),u=l&&(!a||a&&s(o,"name").configurable);e.exports={EXISTS:l,PROPER:l&&"something"===(function(){}).name,CONFIGURABLE:u}},70773:function(e,n,r){var a=r(53392),i=r(4015);e.exports=function(e,n){var r;return arguments.length<2?i(r=a[e])?r:void 0:a[e]&&a[e][n]}},66404:function(e,n,r){var a=r(12750);e.exports=function(e,n){var r=e[n];return null==r?void 0:a(r)}},10860:function(e,n,r){var a=r(80362),i=Math.floor,o="".replace,s=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,l=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,n,r,u,c,p){var m=r+e.length,d=u.length,h=l;return void 0!==c&&(c=a(c),h=s),o.call(p,h,function(a,o){var s;switch(o.charAt(0)){case"$":return"$";case"&":return e;case"`":return n.slice(0,r);case"'":return n.slice(m);case"<":s=c[o.slice(1,-1)];break;default:var l=+o;if(0===l)return a;if(l>d){var p=i(l/10);if(0===p)return a;if(p<=d)return void 0===u[p-1]?o.charAt(1):u[p-1]+o.charAt(1);return a}s=u[l-1]}return void 0===s?"":s})}},53392:function(e,n,r){var a=function(e){return e&&e.Math==Math&&e};e.exports=a("object"==typeof globalThis&&globalThis)||a("object"==typeof window&&window)||a("object"==typeof self&&self)||a("object"==typeof r.g&&r.g)||function(){return this}()||Function("return this")()},67728:function(e,n,r){var a=r(80362),i={}.hasOwnProperty;e.exports=Object.hasOwn||function(e,n){return i.call(a(e),n)}},62998:function(e){e.exports={}},19368:function(e,n,r){var a=r(70773);e.exports=a("document","documentElement")},29630:function(e,n,r){var a=r(81846),i=r(65905),o=r(62770);e.exports=!a&&!i(function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a})},15338:function(e,n,r){var a=r(65905),i=r(2945),o="".split;e.exports=a(function(){return!Object("z").propertyIsEnumerable(0)})?function(e){return"String"==i(e)?o.call(e,""):Object(e)}:Object},83252:function(e,n,r){var a=r(4015),i=r(20559),o=Function.toString;a(i.inspectSource)||(i.inspectSource=function(e){return o.call(e)}),e.exports=i.inspectSource},3490:function(e,n,r){var a,i,o,s=r(18407),l=r(53392),u=r(72852),c=r(57695),p=r(67728),m=r(20559),d=r(13131),h=r(62998),f="Object already initialized",g=l.WeakMap,b=function(e){return o(e)?i(e):a(e,{})},k=function(e){return function(n){var r;if(!u(n)||(r=i(n)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return r}};if(s||m.state){var y=m.state||(m.state=new g),v=y.get,E=y.has,T=y.set;a=function(e,n){if(E.call(y,e))throw TypeError(f);return n.facade=e,T.call(y,e,n),n},i=function(e){return v.call(y,e)||{}},o=function(e){return E.call(y,e)}}else{var _=d("state");h[_]=!0,a=function(e,n){if(p(e,_))throw TypeError(f);return n.facade=e,c(e,_,n),n},i=function(e){return p(e,_)?e[_]:{}},o=function(e){return p(e,_)}}e.exports={set:a,get:i,has:o,enforce:b,getterFor:k}},4015:function(e){e.exports=function(e){return"function"==typeof e}},71239:function(e,n,r){var a=r(65905),i=r(4015),o=/#|\.prototype\./,s=function(e,n){var r=u[l(e)];return r==p||r!=c&&(i(n)?a(n):!!n)},l=s.normalize=function(e){return String(e).replace(o,".").toLowerCase()},u=s.data={},c=s.NATIVE="N",p=s.POLYFILL="P";e.exports=s},72852:function(e,n,r){var a=r(4015);e.exports=function(e){return"object"==typeof e?null!==e:a(e)}},49810:function(e){e.exports=!1},11874:function(e,n,r){var a=r(4015),i=r(70773),o=r(75563);e.exports=o?function(e){return"symbol"==typeof e}:function(e){var n=i("Symbol");return a(n)&&Object(e) instanceof n}},72061:function(e,n,r){var a=r(8924);e.exports=function(e){return a(e.length)}},83774:function(e,n,r){var a=r(45873),i=r(65905);e.exports=!!Object.getOwnPropertySymbols&&!i(function(){var e=Symbol();return!String(e)||!(Object(e) instanceof Symbol)||!Symbol.sham&&a&&a<41})},18407:function(e,n,r){var a=r(53392),i=r(4015),o=r(83252),s=a.WeakMap;e.exports=i(s)&&/native code/.test(o(s))},49898:function(e,n,r){var a,i=r(13533),o=r(36627),s=r(31069),l=r(62998),u=r(19368),c=r(62770),p=r(13131),m="prototype",d="script",h=p("IE_PROTO"),f=function(){},g=function(e){return"<"+d+">"+e+""},b=function(e){e.write(g("")),e.close();var n=e.parentWindow.Object;return e=null,n},k=function(){var e,n=c("iframe");return n.style.display="none",u.appendChild(n),n.src=String("java"+d+":"),(e=n.contentWindow.document).open(),e.write(g("document.F=Object")),e.close(),e.F},y=function(){try{a=new ActiveXObject("htmlfile")}catch(e){}y="undefined"!=typeof document?document.domain&&a?b(a):k():b(a);for(var n=s.length;n--;)delete y[m][s[n]];return y()};l[h]=!0,e.exports=Object.create||function(e,n){var r;return null!==e?(f[m]=i(e),r=new f,f[m]=null,r[h]=e):r=y(),void 0===n?r:o(r,n)}},36627:function(e,n,r){var a=r(81846),i=r(29311),o=r(13533),s=r(8994);e.exports=a?Object.defineProperties:function(e,n){o(e);for(var r,a=s(n),l=a.length,u=0;l>u;)i.f(e,r=a[u++],n[r]);return e}},29311:function(e,n,r){var a=r(81846),i=r(29630),o=r(13533),s=r(42932),l=Object.defineProperty;n.f=a?l:function(e,n,r){if(o(e),n=s(n),o(r),i)try{return l(e,n,r)}catch(a){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(e[n]=r.value),e}},58776:function(e,n,r){var a=r(81846),i=r(34511),o=r(7773),s=r(97418),l=r(42932),u=r(67728),c=r(29630),p=Object.getOwnPropertyDescriptor;n.f=a?p:function(e,n){if(e=s(e),n=l(n),c)try{return p(e,n)}catch(r){}if(u(e,n))return o(!i.f.call(e,n),e[n])}},52728:function(e,n,r){var a=r(88486),i=r(31069).concat("length","prototype");n.f=Object.getOwnPropertyNames||function(e){return a(e,i)}},96932:function(e,n){n.f=Object.getOwnPropertySymbols},88486:function(e,n,r){var a=r(67728),i=r(97418),o=r(73934).indexOf,s=r(62998);e.exports=function(e,n){var r,l=i(e),u=0,c=[];for(r in l)!a(s,r)&&a(l,r)&&c.push(r);for(;n.length>u;)a(l,r=n[u++])&&(~o(c,r)||c.push(r));return c}},8994:function(e,n,r){var a=r(88486),i=r(31069);e.exports=Object.keys||function(e){return a(e,i)}},34511:function(e,n){"use strict";var r={}.propertyIsEnumerable,a=Object.getOwnPropertyDescriptor,i=a&&!r.call({1:2},1);n.f=i?function(e){var n=a(this,e);return!!n&&n.enumerable}:r},15609:function(e,n,r){"use strict";var a=r(85943),i=r(81153);e.exports=a?({}).toString:function(){return"[object "+i(this)+"]"}},79954:function(e,n,r){var a=r(4015),i=r(72852);e.exports=function(e,n){var r,o;if("string"===n&&a(r=e.toString)&&!i(o=r.call(e))||a(r=e.valueOf)&&!i(o=r.call(e))||"string"!==n&&a(r=e.toString)&&!i(o=r.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},2213:function(e,n,r){var a=r(70773),i=r(52728),o=r(96932),s=r(13533);e.exports=a("Reflect","ownKeys")||function(e){var n=i.f(s(e)),r=o.f;return r?n.concat(r(e)):n}},81839:function(e,n,r){var a=r(53392),i=r(4015),o=r(67728),s=r(57695),l=r(88461),u=r(83252),c=r(3490),p=r(61336).CONFIGURABLE,m=c.get,d=c.enforce,h=String(String).split("String");(e.exports=function(e,n,r,u){var c,m=!!u&&!!u.unsafe,f=!!u&&!!u.enumerable,g=!!u&&!!u.noTargetGet,b=u&&void 0!==u.name?u.name:n;if(i(r)&&("Symbol("===String(b).slice(0,7)&&(b="["+String(b).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!o(r,"name")||p&&r.name!==b)&&s(r,"name",b),(c=d(r)).source||(c.source=h.join("string"==typeof b?b:""))),e===a){f?e[n]=r:l(n,r);return}m?!g&&e[n]&&(f=!0):delete e[n],f?e[n]=r:s(e,n,r)})(Function.prototype,"toString",function(){return i(this)&&m(this).source||u(this)})},31336:function(e,n,r){var a=r(13533),i=r(4015),o=r(2945),s=r(60974);e.exports=function(e,n){var r=e.exec;if(i(r)){var l=r.call(e,n);return null!==l&&a(l),l}if("RegExp"===o(e))return s.call(e,n);throw TypeError("RegExp#exec called on incompatible receiver")}},60974:function(e,n,r){"use strict";var a,i,o=r(75807),s=r(7246),l=r(14207),u=r(28014),c=r(49898),p=r(3490).get,m=r(34314),d=r(44309),h=RegExp.prototype.exec,f=u("native-string-replace",String.prototype.replace),g=h,b=(a=/a/,i=/b*/g,h.call(a,"a"),h.call(i,"a"),0!==a.lastIndex||0!==i.lastIndex),k=l.UNSUPPORTED_Y||l.BROKEN_CARET,y=void 0!==/()??/.exec("")[1];(b||y||k||m||d)&&(g=function(e){var n,r,a,i,l,u,m,d=this,v=p(d),E=o(e),T=v.raw;if(T)return T.lastIndex=d.lastIndex,n=g.call(T,E),d.lastIndex=T.lastIndex,n;var _=v.groups,x=k&&d.sticky,w=s.call(d),A=d.source,j=0,S=E;if(x&&(-1===(w=w.replace("y","")).indexOf("g")&&(w+="g"),S=E.slice(d.lastIndex),d.lastIndex>0&&(!d.multiline||d.multiline&&"\n"!==E.charAt(d.lastIndex-1))&&(A="(?: "+A+")",S=" "+S,j++),r=RegExp("^(?:"+A+")",w)),y&&(r=RegExp("^"+A+"$(?!\\s)",w)),b&&(a=d.lastIndex),i=h.call(x?r:d,S),x?i?(i.input=i.input.slice(j),i[0]=i[0].slice(j),i.index=d.lastIndex,d.lastIndex+=i[0].length):d.lastIndex=0:b&&i&&(d.lastIndex=d.global?i.index+i[0].length:a),y&&i&&i.length>1&&f.call(i[0],r,function(){for(l=1;lb)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$c")})},39899:function(e){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},88461:function(e,n,r){var a=r(53392);e.exports=function(e,n){try{Object.defineProperty(a,e,{value:n,configurable:!0,writable:!0})}catch(r){a[e]=n}return n}},13131:function(e,n,r){var a=r(28014),i=r(91511),o=a("keys");e.exports=function(e){return o[e]||(o[e]=i(e))}},20559:function(e,n,r){var a=r(53392),i=r(88461),o="__core-js_shared__",s=a[o]||i(o,{});e.exports=s},28014:function(e,n,r){var a=r(49810),i=r(20559);(e.exports=function(e,n){return i[e]||(i[e]=void 0!==n?n:{})})("versions",[]).push({version:"3.18.3",mode:a?"pure":"global",copyright:"\xa9 2021 Denis Pushkarev (zloirock.ru)"})},82978:function(e,n,r){var a=r(58210),i=r(75807),o=r(39899),s=function(e){return function(n,r){var s,l,u=i(o(n)),c=a(r),p=u.length;return c<0||c>=p?e?"":void 0:(s=u.charCodeAt(c))<55296||s>56319||c+1===p||(l=u.charCodeAt(c+1))<56320||l>57343?e?u.charAt(c):s:e?u.slice(c,c+2):(s-55296<<10)+(l-56320)+65536}};e.exports={codeAt:s(!1),charAt:s(!0)}},73154:function(e,n,r){var a=r(58210),i=Math.max,o=Math.min;e.exports=function(e,n){var r=a(e);return r<0?i(r+n,0):o(r,n)}},97418:function(e,n,r){var a=r(15338),i=r(39899);e.exports=function(e){return a(i(e))}},58210:function(e){var n=Math.ceil,r=Math.floor;e.exports=function(e){var a=+e;return a!=a||0===a?0:(a>0?r:n)(a)}},8924:function(e,n,r){var a=r(58210),i=Math.min;e.exports=function(e){return e>0?i(a(e),9007199254740991):0}},80362:function(e,n,r){var a=r(39899);e.exports=function(e){return Object(a(e))}},22184:function(e,n,r){var a=r(72852),i=r(11874),o=r(66404),s=r(79954),l=r(30359)("toPrimitive");e.exports=function(e,n){if(!a(e)||i(e))return e;var r,u=o(e,l);if(u){if(void 0===n&&(n="default"),r=u.call(e,n),!a(r)||i(r))return r;throw TypeError("Can't convert object to primitive value")}return void 0===n&&(n="number"),s(e,n)}},42932:function(e,n,r){var a=r(22184),i=r(11874);e.exports=function(e){var n=a(e,"string");return i(n)?n:String(n)}},85943:function(e,n,r){var a=r(30359)("toStringTag"),i={};i[a]="z",e.exports="[object z]"===String(i)},75807:function(e,n,r){var a=r(81153);e.exports=function(e){if("Symbol"===a(e))throw TypeError("Cannot convert a Symbol value to a string");return String(e)}},54347:function(e){e.exports=function(e){try{return String(e)}catch(n){return"Object"}}},91511:function(e){var n=0,r=Math.random();e.exports=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++n+r).toString(36)}},75563:function(e,n,r){var a=r(83774);e.exports=a&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},30359:function(e,n,r){var a=r(53392),i=r(28014),o=r(67728),s=r(91511),l=r(83774),u=r(75563),c=i("wks"),p=a.Symbol,m=u?p:p&&p.withoutSetter||s;e.exports=function(e){return o(c,e)&&(l||"string"==typeof c[e])||(l&&o(p,e)?c[e]=p[e]:c[e]=m("Symbol."+e)),c[e]}},20542:function(e,n,r){var a=r(81839),i=Date.prototype,o="Invalid Date",s="toString",l=i[s],u=i.getTime;String(new Date(NaN))!=o&&a(i,s,function(){var e=u.call(this);return e==e?l.call(this):o})},80936:function(e,n,r){var a=r(81846),i=r(61336).EXISTS,o=r(29311).f,s=Function.prototype,l=s.toString,u=/^\s*function ([^ (]*)/;a&&!i&&o(s,"name",{configurable:!0,get:function(){try{return l.call(this).match(u)[1]}catch(e){return""}}})},97331:function(e,n,r){var a=r(85943),i=r(81839),o=r(15609);a||i(Object.prototype,"toString",o,{unsafe:!0})},59103:function(e,n,r){"use strict";var a=r(58643),i=r(60974);a({target:"RegExp",proto:!0,forced:/./.exec!==i},{exec:i})},7842:function(e,n,r){"use strict";var a=r(61336).PROPER,i=r(81839),o=r(13533),s=r(75807),l=r(65905),u=r(7246),c="toString",p=RegExp.prototype,m=p[c],d=l(function(){return"/a/b"!=m.call({source:"a",flags:"b"})}),h=a&&m.name!=c;(d||h)&&i(RegExp.prototype,c,function(){var e=o(this),n=s(e.source),r=e.flags,a=s(void 0===r&&e instanceof RegExp&&!("flags"in p)?u.call(e):r);return"/"+n+"/"+a},{unsafe:!0})},88085:function(e,n,r){"use strict";var a=r(42758),i=r(65905),o=r(13533),s=r(4015),l=r(58210),u=r(8924),c=r(75807),p=r(39899),m=r(84179),d=r(66404),h=r(10860),f=r(31336),g=r(30359)("replace"),b=Math.max,k=Math.min,y="$0"==="a".replace(/./,"$0"),v=!!/./[g]&&""===/./[g]("a","$0"),E=!i(function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")});a("replace",function(e,n,r){var a=v?"$":"$0";return[function(e,r){var a=p(this),i=void 0==e?void 0:d(e,g);return i?i.call(e,a,r):n.call(c(a),e,r)},function(e,i){var p=o(this),d=c(e);if("string"==typeof i&&-1===i.indexOf(a)&&-1===i.indexOf("$<")){var g=r(n,p,d,i);if(g.done)return g.value}var y=s(i);y||(i=c(i));var v=p.global;if(v){var E=p.unicode;p.lastIndex=0}for(var T=[];;){var _=f(p,d);if(null===_||(T.push(_),!v))break;""===c(_[0])&&(p.lastIndex=m(d,u(p.lastIndex),E))}for(var x="",w=0,A=0;A=w&&(x+=d.slice(w,C)+I,w=C+S.length)}return x+d.slice(w)}]},!E||!y||v)},24740:function(e){"use strict";var n=Object.prototype.hasOwnProperty,r=Object.prototype.toString,a=Object.defineProperty,i=Object.getOwnPropertyDescriptor,o=function(e){return"function"==typeof Array.isArray?Array.isArray(e):"[object Array]"===r.call(e)},s=function(e){if(!e||"[object Object]"!==r.call(e))return!1;var a,i=n.call(e,"constructor"),o=e.constructor&&e.constructor.prototype&&n.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!i&&!o)return!1;for(a in e);return void 0===a||n.call(e,a)},l=function(e,n){a&&"__proto__"===n.name?a(e,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):e[n.name]=n.newValue},u=function(e,r){if("__proto__"===r){if(!n.call(e,r))return;if(i)return i(e,r).value}return e[r]};e.exports=function e(){var n,r,a,i,c,p,m=arguments[0],d=1,h=arguments.length,f=!1;for("boolean"==typeof m&&(f=m,m=arguments[1]||{},d=2),(null==m||"object"!=typeof m&&"function"!=typeof m)&&(m={});d0?parseInt(r):null}(),n){case"b":c+=parseInt(d(),10).toString(2);break;case"c":"string"==typeof(r=d())||r instanceof String?c+=r:c+=String.fromCharCode(parseInt(r,10));break;case"d":c+=parseInt(d(),10);break;case"f":a=String(parseFloat(d()).toFixed(i||6)),c+=m?a:a.replace(/^0/,"");break;case"j":c+=JSON.stringify(d());break;case"o":c+="0"+parseInt(d(),10).toString(8);break;case"s":c+=d();break;case"x":c+="0x"+parseInt(d(),10).toString(16);break;case"X":c+="0x"+parseInt(d(),10).toString(16).toUpperCase();break;default:c+=n}else"%"===n?p=!0:c+=n;return c}(n=e.exports=r).format=r,n.vsprintf=function(e,n){return r.apply(null,[e].concat(n))},"undefined"!=typeof console&&"function"==typeof console.log&&(n.printf=function(){console.log(r.apply(null,arguments))})}()},37265:function(e,n,r){"use strict";r.d(n,{K:function(){return a},k:function(){return i}});var a=function(){},i=function(){}},84251:function(e,n,r){"use strict";var a=r(44675);function i(e){return"object"!=typeof e||"toString"in e?e:Object.prototype.toString.call(e).slice(8,-1)}Object.defineProperty(n,"__esModule",{value:!0});var o="object"==typeof a;function s(e,n){if(!e){if(o)throw Error("Invariant failed");throw Error(n())}}n.invariant=s;var l=Object.prototype.hasOwnProperty,u=Array.prototype.splice,c=Object.prototype.toString;function p(e){return c.call(e).slice(8,-1)}var m=Object.assign||function(e,n){return d(n).forEach(function(r){l.call(n,r)&&(e[r]=n[r])}),e},d="function"==typeof Object.getOwnPropertySymbols?function(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.keys(e)};function h(e){return Array.isArray(e)?m(e.constructor(e.length),e):"Map"===p(e)?new Map(e):"Set"===p(e)?new Set(e):e&&"object"==typeof e?m(Object.create(Object.getPrototypeOf(e)),e):e}var f=function(){function e(){this.commands=m({},g),this.update=this.update.bind(this),this.update.extend=this.extend=this.extend.bind(this),this.update.isEquals=function(e,n){return e===n},this.update.newContext=function(){return new e().update}}return Object.defineProperty(e.prototype,"isEquals",{get:function(){return this.update.isEquals},set:function(e){this.update.isEquals=e},enumerable:!0,configurable:!0}),e.prototype.extend=function(e,n){this.commands[e]=n},e.prototype.update=function(e,n){var r=this,a="function"==typeof n?{$apply:n}:n;Array.isArray(e)&&Array.isArray(a)||s(!Array.isArray(a),function(){return"update(): You provided an invalid spec to update(). The spec may not contain an array except as the value of $set, $push, $unshift, $splice or any custom command allowing an array value."}),s("object"==typeof a&&null!==a,function(){return"update(): You provided an invalid spec to update(). The spec and every included key path must be plain objects containing one of the following commands: "+Object.keys(r.commands).join(", ")+"."});var i=e;return d(a).forEach(function(n){if(l.call(r.commands,n)){var o=e===i;i=r.commands[n](a[n],i,a,e),o&&r.isEquals(i,e)&&(i=e)}else{var s="Map"===p(e)?r.update(e.get(n),a[n]):r.update(e[n],a[n]),u="Map"===p(i)?i.get(n):i[n];r.isEquals(s,u)&&(void 0!==s||l.call(e,n))||(i===e&&(i=h(e)),"Map"===p(i)?i.set(n,s):i[n]=s)}}),i},e}();n.Context=f;var g={$push:function(e,n,r){return k(n,r,"$push"),e.length?n.concat(e):n},$unshift:function(e,n,r){return k(n,r,"$unshift"),e.length?e.concat(n):n},$splice:function(e,n,r,a){var o,l;return o=n,l=r,s(Array.isArray(o),function(){return"Expected $splice target to be an array; got "+i(o)}),v(l.$splice),e.forEach(function(e){v(e),n===a&&e.length&&(n=h(a)),u.apply(n,e)}),n},$set:function(e,n,r){var a;return s(1===Object.keys(a=r).length,function(){return"Cannot have more than one key in an object with $set"}),e},$toggle:function(e,n){y(e,"$toggle");var r=e.length?h(n):n;return e.forEach(function(e){r[e]=!n[e]}),r},$unset:function(e,n,r,a){return y(e,"$unset"),e.forEach(function(e){Object.hasOwnProperty.call(n,e)&&(n===a&&(n=h(a)),delete n[e])}),n},$add:function(e,n,r,a){return E(n,"$add"),y(e,"$add"),"Map"===p(n)?e.forEach(function(e){var r=e[0],i=e[1];n===a&&n.get(r)!==i&&(n=h(a)),n.set(r,i)}):e.forEach(function(e){n!==a||n.has(e)||(n=h(a)),n.add(e)}),n},$remove:function(e,n,r,a){return E(n,"$remove"),y(e,"$remove"),e.forEach(function(e){n===a&&n.has(e)&&(n=h(a)),n.delete(e)}),n},$merge:function(e,n,r,a){var o,l;return o=n,s((l=e)&&"object"==typeof l,function(){return"update(): $merge expects a spec of type 'object'; got "+i(l)}),s(o&&"object"==typeof o,function(){return"update(): $merge expects a target of type 'object'; got "+i(o)}),d(e).forEach(function(r){e[r]!==n[r]&&(n===a&&(n=h(a)),n[r]=e[r])}),n},$apply:function(e,n){var r;return s("function"==typeof(r=e),function(){return"update(): expected spec of $apply to be a function; got "+i(r)+"."}),e(n)}},b=new f;function k(e,n,r){s(Array.isArray(e),function(){return"update(): expected target of "+i(r)+" to be an array; got "+i(e)+"."}),y(n[r],r)}function y(e,n){s(Array.isArray(e),function(){return"update(): expected spec of "+i(n)+" to be an array; got "+i(e)+". Did you forget to wrap your parameter in an array?"})}function v(e){s(Array.isArray(e),function(){return"update(): expected spec of $splice to be an array of arrays; got "+i(e)+". Did you forget to wrap your parameters in an array?"})}function E(e,n){var r=p(e);s("Map"===r||"Set"===r,function(){return"update(): "+i(n)+" expects a target of type Set or Map; got "+i(r)})}n.isEquals=b.update.isEquals,n.extend=b.extend,n.default=b.update,n.default.default=e.exports=m(n.default,n)},29058:function(e){var n=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,r=/\n/g,a=/^\s*/,i=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,l=/^[;\s]*/,u=/^\s+|\s+$/g;function c(e){return e?e.replace(u,""):""}e.exports=function(e,u){if("string"!=typeof e)throw TypeError("First argument must be a string");if(!e)return[];u=u||{};var p=1,m=1;function d(e){var n=e.match(r);n&&(p+=n.length);var a=e.lastIndexOf("\n");m=~a?e.length-a:m+e.length}function h(){var e={line:p,column:m};return function(n){return n.position=new f(e),y(),n}}function f(e){this.start=e,this.end={line:p,column:m},this.source=u.source}f.prototype.content=e;var g=[];function b(n){var r=Error(u.source+":"+p+":"+m+": "+n);if(r.reason=n,r.filename=u.source,r.line=p,r.column=m,r.source=e,u.silent)g.push(r);else throw r}function k(n){var r=n.exec(e);if(r){var a=r[0];return d(a),e=e.slice(a.length),r}}function y(){k(a)}function v(e){var n;for(e=e||[];n=E();)!1!==n&&e.push(n);return e}function E(){var n=h();if("/"==e.charAt(0)&&"*"==e.charAt(1)){for(var r=2;""!=e.charAt(r)&&("*"!=e.charAt(r)||"/"!=e.charAt(r+1));)++r;if(r+=2,""===e.charAt(r-1))return b("End of comment missing");var a=e.slice(2,r-2);return m+=2,d(a),e=e.slice(r),m+=2,n({type:"comment",comment:a})}}function T(){var e=h(),r=k(i);if(r){if(E(),!k(o))return b("property missing ':'");var a=k(s),u=e({type:"declaration",property:c(r[0].replace(n,"")),value:a?c(a[0].replace(n,"")):""});return k(l),u}}return y(),function(){var e,n=[];for(v(n);e=T();)!1!==e&&(n.push(e),v(n));return n}()}},38165:function(e){/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ e.exports=function(e){return null!=e&&null!=e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}},66293:function(e,n,r){var a=r(73401).Symbol;e.exports=a},67631:function(e){e.exports=function(e,n){for(var r=-1,a=null==e?0:e.length,i=Array(a);++r=n?e:n)),e}},66304:function(e,n,r){var a=r(5890),i=r(1796);e.exports=function(e,n,r,o){var s=e.length;for((r=a(r))<0&&(r=-r>s?0:s+r),(o=void 0===o||o>s?s:a(o))<0&&(o+=s),o=r>o?0:i(o);r=r(a,i)&&ei?0:i+n),(r=r>i?i:r)<0&&(r+=i),i=n>r?0:r-n>>>0,n>>>=0;for(var o=Array(i);++a=i?e:a(e,n,r)}},48790:function(e,n,r){var a=r(87493),i=r(98030),o=r(59901),s=r(44091);e.exports=function(e){return function(n){n=s(n);var r=i(n)?o(n):void 0,l=r?r[0]:n.charAt(0),u=r?a(r,1).join(""):n.slice(1);return l[e]()+u}}},40151:function(e,n,r){var a="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g;e.exports=a},46945:function(e,n,r){var a=r(66293),i=Object.prototype,o=i.hasOwnProperty,s=i.toString,l=a?a.toStringTag:void 0;e.exports=function(e){var n=o.call(e,l),r=e[l];try{e[l]=void 0;var a=!0}catch(i){}var u=s.call(e);return a&&(n?e[l]=r:delete e[l]),u}},98030:function(e){var n=RegExp("[\\u200d\ud800-\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return n.test(e)}},30911:function(e){var n=/^(?:0|[1-9]\d*)$/;e.exports=function(e,r){var a=typeof e;return!!(r=null==r?9007199254740991:r)&&("number"==a||"symbol"!=a&&n.test(e))&&e>-1&&e%1==0&&e=n||r<0||b&&a>=p}function E(){var e,r,a,o,s=i();if(v(s))return T(s);d=setTimeout(E,(r=s-h,a=s-f,o=n-r,b?l(o,p-a):o))}function T(e){return(d=void 0,k&&u)?y(e):(u=c=void 0,m)}function _(){var e,r=i(),a=v(r);if(u=arguments,c=this,h=r,a){if(void 0===d)return f=e=h,d=setTimeout(E,n),g?y(e):m;if(b)return clearTimeout(d),d=setTimeout(E,n),y(h)}return void 0===d&&(d=setTimeout(E,n)),m}return n=o(n)||0,a(r)&&(g=!!r.leading,p=(b="maxWait"in r)?s(o(r.maxWait)||0,n):p,k="trailing"in r?!!r.trailing:k),_.cancel=function(){void 0!==d&&clearTimeout(d),f=0,u=h=c=d=void 0},_.flush=function(){return void 0===d?m:T(i())},_}},3284:function(e){e.exports=function(e,n){return e===n||e!=e&&n!=n}},7361:function(e,n,r){var a=r(66304),i=r(57209);e.exports=function(e,n,r,o){var s=null==e?0:e.length;return s?(r&&"number"!=typeof r&&i(e,n,r)&&(r=0,o=s),a(e,n,r,o)):[]}},68483:function(e,n,r){var a=r(25987),i=r(73640),o=r(67948);e.exports=function(e,n,r){return n=i(n),void 0===r?(r=n,n=0):r=i(r),e=o(e),a(e,n,r)}},2428:function(e){var n=Array.isArray;e.exports=n},71701:function(e,n,r){var a=r(7419),i=r(6705);e.exports=function(e){return null!=e&&i(e.length)&&!a(e)}},7419:function(e,n,r){var a=r(57398),i=r(6627);e.exports=function(e){if(!i(e))return!1;var n=a(e);return"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n}},6705:function(e){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},6627:function(e){e.exports=function(e){var n=typeof e;return null!=e&&("object"==n||"function"==n)}},89109:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},42848:function(e,n,r){var a=r(57398),i=r(89109);e.exports=function(e){return"symbol"==typeof e||i(e)&&"[object Symbol]"==a(e)}},85365:function(e,n,r){var a=r(73401),i=function(){return a.Date.now()};e.exports=i},73640:function(e,n,r){var a=r(67948),i=1/0;e.exports=function(e){return e?(e=a(e))===i||e===-i?(e<0?-1:1)*17976931348623157e292:e==e?e:0:0===e?e:0}},5890:function(e,n,r){var a=r(73640);e.exports=function(e){var n=a(e),r=n%1;return n==n?r?n-r:n:0}},1796:function(e,n,r){var a=r(70331),i=r(5890);e.exports=function(e){return e?a(i(e),0,4294967295):0}},67948:function(e,n,r){var a=r(33897),i=r(6627),o=r(42848),s=0/0,l=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,c=/^0o[0-7]+$/i,p=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(o(e))return s;if(i(e)){var n="function"==typeof e.valueOf?e.valueOf():e;e=i(n)?n+"":n}if("string"!=typeof e)return 0===e?e:+e;e=a(e);var r=u.test(e);return r||c.test(e)?p(e.slice(2),r?2:8):l.test(e)?s:+e}},44091:function(e,n,r){var a=r(17185);e.exports=function(e){return null==e?"":a(e)}},57647:function(e,n,r){var a=r(48790)("toUpperCase");e.exports=a},60348:function(e){var n="undefined"!=typeof window?window:self;e.exports=n.crypto||n.msCrypto},64876:function(e,n,r){e.exports=function(e){if(!e)return Math.random;var n=new Uint32Array(1);return function(){return e.getRandomValues(n)[0]/4294967296}}(r(60348))},95295:function(e,n,r){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a=r(86191).Z;Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e,n){var r=s.default,o=(null==n?void 0:n.suspense)?{}:{loading:function(e){return e.error,e.isLoading,e.pastDelay,null}};if(a(e,Promise)?o.loader=function(){return e}:"function"==typeof e?o.loader=e:"object"==typeof e&&(o=i({},o,e)),(o=i({},o,n)).suspense&&(delete o.ssr,delete o.loading),o.loadableGenerated&&delete(o=i({},o,o.loadableGenerated)).loadableGenerated,"boolean"==typeof o.ssr&&!o.suspense){if(!o.ssr)return delete o.ssr,l(r,o);delete o.ssr}return r(o)},n.noSSR=l;var i=r(17858).Z,o=r(16922).Z,s=(o(r(70079)),o(r(90255)));function l(e,n){return delete n.webpack,delete n.modules,e(n)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),e.exports=n.default)},19612:function(e,n,r){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.LoadableContext=void 0;var a=(0,r(16922).Z)(r(70079)).default.createContext(null);n.LoadableContext=a},90255:function(e,n,r){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a=r(43571).Z,i=r(37746).Z;Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var o=r(17858).Z,s=(0,r(16922).Z)(r(70079)),l=r(19612),u=r(70079).useSyncExternalStore,c=[],p=[],m=!1;function d(e){var n=e(),r={loading:!0,loaded:null,error:null};return r.promise=n.then(function(e){return r.loading=!1,r.loaded=e,e}).catch(function(e){throw r.loading=!1,r.error=e,e}),r}var h=function(){function e(n,r){a(this,e),this._loadFn=n,this._opts=r,this._callbacks=new Set,this._delay=null,this._timeout=null,this.retry()}return i(e,[{key:"promise",value:function(){return this._res.promise}},{key:"retry",value:function(){var e=this;this._clearTimeouts(),this._res=this._loadFn(this._opts.loader),this._state={pastDelay:!1,timedOut:!1};var n=this._res,r=this._opts;n.loading&&("number"==typeof r.delay&&(0===r.delay?this._state.pastDelay=!0:this._delay=setTimeout(function(){e._update({pastDelay:!0})},r.delay)),"number"==typeof r.timeout&&(this._timeout=setTimeout(function(){e._update({timedOut:!0})},r.timeout))),this._res.promise.then(function(){e._update({}),e._clearTimeouts()}).catch(function(n){e._update({}),e._clearTimeouts()}),this._update({})}},{key:"_update",value:function(e){this._state=o({},this._state,{error:this._res.error,loaded:this._res.loaded,loading:this._res.loading},e),this._callbacks.forEach(function(e){return e()})}},{key:"_clearTimeouts",value:function(){clearTimeout(this._delay),clearTimeout(this._timeout)}},{key:"getCurrentValue",value:function(){return this._state}},{key:"subscribe",value:function(e){var n=this;return this._callbacks.add(e),function(){n._callbacks.delete(e)}}}]),e}();function f(e){return function(e,n){var r=function(){if(!f){var n=new h(e,d);f={getCurrentValue:n.getCurrentValue.bind(n),subscribe:n.subscribe.bind(n),retry:n.retry.bind(n),promise:n.promise.bind(n)}}return f.promise()},a=function(){r();var e=s.default.useContext(l.LoadableContext);e&&Array.isArray(d.modules)&&d.modules.forEach(function(n){e(n)})},i=function(e,n){a();var r=u(f.subscribe,f.getCurrentValue,f.getCurrentValue);return s.default.useImperativeHandle(n,function(){return{retry:f.retry}},[]),s.default.useMemo(function(){var n;return r.loading||r.error?s.default.createElement(d.loading,{isLoading:r.loading,pastDelay:r.pastDelay,timedOut:r.timedOut,error:r.error,retry:f.retry}):r.loaded?s.default.createElement((n=r.loaded)&&n.__esModule?n.default:n,e):null},[e,r])},c=function(e,n){return a(),s.default.createElement(d.lazy,o({},e,{ref:n}))},d=Object.assign({loader:null,loading:null,delay:200,timeout:null,webpack:null,modules:null,suspense:!1},n);d.suspense&&(d.lazy=s.default.lazy(d.loader));var f=null;if(!m){var g=d.webpack?d.webpack():d.modules;g&&p.push(function(e){var n=!0,a=!1,i=void 0;try{for(var o,s=g[Symbol.iterator]();!(n=(o=s.next()).done);n=!0){var l=o.value;if(-1!==e.indexOf(l))return r()}}catch(u){a=!0,i=u}finally{try{n||null==s.return||s.return()}finally{if(a)throw i}}})}var b=d.suspense?c:i;return b.preload=function(){return r()},b.displayName="LoadableComponent",s.default.forwardRef(b)}(d,e)}function g(e,n){for(var r=[];e.length;){var a=e.pop();r.push(a(n))}return Promise.all(r).then(function(){if(e.length)return g(e,n)})}f.preloadAll=function(){return new Promise(function(e,n){g(c).then(e,n)})},f.preloadReady=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return new Promise(function(n){var r=function(){return m=!0,n()};g(p,e).then(r,r)})},window.__NEXT_PRELOADREADY=f.preloadReady,n.default=f},97374:function(e,n,r){e.exports=r(95295)},76743:function(e,n,r){"use strict";let{DOCUMENT_MODE:a}=r(28040),i="html",o=["+//silmaril//dtd html pro v0r11 19970101//","-//as//dtd html 3.0 aswedit + extensions//","-//advasoft ltd//dtd html 3.0 aswedit + extensions//","-//ietf//dtd html 2.0 level 1//","-//ietf//dtd html 2.0 level 2//","-//ietf//dtd html 2.0 strict level 1//","-//ietf//dtd html 2.0 strict level 2//","-//ietf//dtd html 2.0 strict//","-//ietf//dtd html 2.0//","-//ietf//dtd html 2.1e//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.2 final//","-//ietf//dtd html 3.2//","-//ietf//dtd html 3//","-//ietf//dtd html level 0//","-//ietf//dtd html level 1//","-//ietf//dtd html level 2//","-//ietf//dtd html level 3//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict//","-//ietf//dtd html//","-//metrius//dtd metrius presentational//","-//microsoft//dtd internet explorer 2.0 html strict//","-//microsoft//dtd internet explorer 2.0 html//","-//microsoft//dtd internet explorer 2.0 tables//","-//microsoft//dtd internet explorer 3.0 html strict//","-//microsoft//dtd internet explorer 3.0 html//","-//microsoft//dtd internet explorer 3.0 tables//","-//netscape comm. corp.//dtd html//","-//netscape comm. corp.//dtd strict html//","-//o'reilly and associates//dtd html 2.0//","-//o'reilly and associates//dtd html extended 1.0//","-//o'reilly and associates//dtd html extended relaxed 1.0//","-//sq//dtd html 2.0 hotmetal + extensions//","-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//","-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//","-//spyglass//dtd html 2.0 extended//","-//sun microsystems corp.//dtd hotjava html//","-//sun microsystems corp.//dtd hotjava strict html//","-//w3c//dtd html 3 1995-03-24//","-//w3c//dtd html 3.2 draft//","-//w3c//dtd html 3.2 final//","-//w3c//dtd html 3.2//","-//w3c//dtd html 3.2s draft//","-//w3c//dtd html 4.0 frameset//","-//w3c//dtd html 4.0 transitional//","-//w3c//dtd html experimental 19960712//","-//w3c//dtd html experimental 970421//","-//w3c//dtd w3 html//","-//w3o//dtd w3 html 3.0//","-//webtechs//dtd mozilla html 2.0//","-//webtechs//dtd mozilla html//"],s=o.concat(["-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"]),l=["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"],u=["-//w3c//dtd xhtml 1.0 frameset//","-//w3c//dtd xhtml 1.0 transitional//"],c=u.concat(["-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"]);function p(e){let n=-1!==e.indexOf('"')?"'":'"';return n+e+n}function m(e,n){for(let r=0;r-1)return a.QUIRKS;let p=null===n?s:o;if(m(r,p))return a.QUIRKS;if(m(r,p=null===n?u:c))return a.LIMITED_QUIRKS}return a.NO_QUIRKS},n.serializeContent=function(e,n,r){let a="!DOCTYPE ";return e&&(a+=e),n?a+=" PUBLIC "+p(n):r&&(a+=" SYSTEM"),null!==r&&(a+=" "+p(r)),a}},97700:function(e){"use strict";e.exports={controlCharacterInInputStream:"control-character-in-input-stream",noncharacterInInputStream:"noncharacter-in-input-stream",surrogateInInputStream:"surrogate-in-input-stream",nonVoidHtmlElementStartTagWithTrailingSolidus:"non-void-html-element-start-tag-with-trailing-solidus",endTagWithAttributes:"end-tag-with-attributes",endTagWithTrailingSolidus:"end-tag-with-trailing-solidus",unexpectedSolidusInTag:"unexpected-solidus-in-tag",unexpectedNullCharacter:"unexpected-null-character",unexpectedQuestionMarkInsteadOfTagName:"unexpected-question-mark-instead-of-tag-name",invalidFirstCharacterOfTagName:"invalid-first-character-of-tag-name",unexpectedEqualsSignBeforeAttributeName:"unexpected-equals-sign-before-attribute-name",missingEndTagName:"missing-end-tag-name",unexpectedCharacterInAttributeName:"unexpected-character-in-attribute-name",unknownNamedCharacterReference:"unknown-named-character-reference",missingSemicolonAfterCharacterReference:"missing-semicolon-after-character-reference",unexpectedCharacterAfterDoctypeSystemIdentifier:"unexpected-character-after-doctype-system-identifier",unexpectedCharacterInUnquotedAttributeValue:"unexpected-character-in-unquoted-attribute-value",eofBeforeTagName:"eof-before-tag-name",eofInTag:"eof-in-tag",missingAttributeValue:"missing-attribute-value",missingWhitespaceBetweenAttributes:"missing-whitespace-between-attributes",missingWhitespaceAfterDoctypePublicKeyword:"missing-whitespace-after-doctype-public-keyword",missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers:"missing-whitespace-between-doctype-public-and-system-identifiers",missingWhitespaceAfterDoctypeSystemKeyword:"missing-whitespace-after-doctype-system-keyword",missingQuoteBeforeDoctypePublicIdentifier:"missing-quote-before-doctype-public-identifier",missingQuoteBeforeDoctypeSystemIdentifier:"missing-quote-before-doctype-system-identifier",missingDoctypePublicIdentifier:"missing-doctype-public-identifier",missingDoctypeSystemIdentifier:"missing-doctype-system-identifier",abruptDoctypePublicIdentifier:"abrupt-doctype-public-identifier",abruptDoctypeSystemIdentifier:"abrupt-doctype-system-identifier",cdataInHtmlContent:"cdata-in-html-content",incorrectlyOpenedComment:"incorrectly-opened-comment",eofInScriptHtmlCommentLikeText:"eof-in-script-html-comment-like-text",eofInDoctype:"eof-in-doctype",nestedComment:"nested-comment",abruptClosingOfEmptyComment:"abrupt-closing-of-empty-comment",eofInComment:"eof-in-comment",incorrectlyClosedComment:"incorrectly-closed-comment",eofInCdata:"eof-in-cdata",absenceOfDigitsInNumericCharacterReference:"absence-of-digits-in-numeric-character-reference",nullCharacterReference:"null-character-reference",surrogateCharacterReference:"surrogate-character-reference",characterReferenceOutsideUnicodeRange:"character-reference-outside-unicode-range",controlCharacterReference:"control-character-reference",noncharacterCharacterReference:"noncharacter-character-reference",missingWhitespaceBeforeDoctypeName:"missing-whitespace-before-doctype-name",missingDoctypeName:"missing-doctype-name",invalidCharacterSequenceAfterDoctypeName:"invalid-character-sequence-after-doctype-name",duplicateAttribute:"duplicate-attribute",nonConformingDoctype:"non-conforming-doctype",missingDoctype:"missing-doctype",misplacedDoctype:"misplaced-doctype",endTagWithoutMatchingOpenElement:"end-tag-without-matching-open-element",closingOfElementWithOpenChildElements:"closing-of-element-with-open-child-elements",disallowedContentInNoscriptInHead:"disallowed-content-in-noscript-in-head",openElementsLeftAfterEof:"open-elements-left-after-eof",abandonedHeadElementChild:"abandoned-head-element-child",misplacedStartTagForHeadElement:"misplaced-start-tag-for-head-element",nestedNoscriptInHead:"nested-noscript-in-head",eofInElementThatCanContainOnlyText:"eof-in-element-that-can-contain-only-text"}},11093:function(e,n,r){"use strict";let a=r(1672),i=r(28040),o=i.TAG_NAMES,s=i.NAMESPACES,l=i.ATTRS,u={TEXT_HTML:"text/html",APPLICATION_XML:"application/xhtml+xml"},c={attributename:"attributeName",attributetype:"attributeType",basefrequency:"baseFrequency",baseprofile:"baseProfile",calcmode:"calcMode",clippathunits:"clipPathUnits",diffuseconstant:"diffuseConstant",edgemode:"edgeMode",filterunits:"filterUnits",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",limitingconeangle:"limitingConeAngle",markerheight:"markerHeight",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textlength:"textLength",viewbox:"viewBox",viewtarget:"viewTarget",xchannelselector:"xChannelSelector",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan"},p={"xlink:actuate":{prefix:"xlink",name:"actuate",namespace:s.XLINK},"xlink:arcrole":{prefix:"xlink",name:"arcrole",namespace:s.XLINK},"xlink:href":{prefix:"xlink",name:"href",namespace:s.XLINK},"xlink:role":{prefix:"xlink",name:"role",namespace:s.XLINK},"xlink:show":{prefix:"xlink",name:"show",namespace:s.XLINK},"xlink:title":{prefix:"xlink",name:"title",namespace:s.XLINK},"xlink:type":{prefix:"xlink",name:"type",namespace:s.XLINK},"xml:base":{prefix:"xml",name:"base",namespace:s.XML},"xml:lang":{prefix:"xml",name:"lang",namespace:s.XML},"xml:space":{prefix:"xml",name:"space",namespace:s.XML},xmlns:{prefix:"",name:"xmlns",namespace:s.XMLNS},"xmlns:xlink":{prefix:"xmlns",name:"xlink",namespace:s.XMLNS}},m=n.SVG_TAG_NAMES_ADJUSTMENT_MAP={altglyph:"altGlyph",altglyphdef:"altGlyphDef",altglyphitem:"altGlyphItem",animatecolor:"animateColor",animatemotion:"animateMotion",animatetransform:"animateTransform",clippath:"clipPath",feblend:"feBlend",fecolormatrix:"feColorMatrix",fecomponenttransfer:"feComponentTransfer",fecomposite:"feComposite",feconvolvematrix:"feConvolveMatrix",fediffuselighting:"feDiffuseLighting",fedisplacementmap:"feDisplacementMap",fedistantlight:"feDistantLight",feflood:"feFlood",fefunca:"feFuncA",fefuncb:"feFuncB",fefuncg:"feFuncG",fefuncr:"feFuncR",fegaussianblur:"feGaussianBlur",feimage:"feImage",femerge:"feMerge",femergenode:"feMergeNode",femorphology:"feMorphology",feoffset:"feOffset",fepointlight:"fePointLight",fespecularlighting:"feSpecularLighting",fespotlight:"feSpotLight",fetile:"feTile",feturbulence:"feTurbulence",foreignobject:"foreignObject",glyphref:"glyphRef",lineargradient:"linearGradient",radialgradient:"radialGradient",textpath:"textPath"},d={[o.B]:!0,[o.BIG]:!0,[o.BLOCKQUOTE]:!0,[o.BODY]:!0,[o.BR]:!0,[o.CENTER]:!0,[o.CODE]:!0,[o.DD]:!0,[o.DIV]:!0,[o.DL]:!0,[o.DT]:!0,[o.EM]:!0,[o.EMBED]:!0,[o.H1]:!0,[o.H2]:!0,[o.H3]:!0,[o.H4]:!0,[o.H5]:!0,[o.H6]:!0,[o.HEAD]:!0,[o.HR]:!0,[o.I]:!0,[o.IMG]:!0,[o.LI]:!0,[o.LISTING]:!0,[o.MENU]:!0,[o.META]:!0,[o.NOBR]:!0,[o.OL]:!0,[o.P]:!0,[o.PRE]:!0,[o.RUBY]:!0,[o.S]:!0,[o.SMALL]:!0,[o.SPAN]:!0,[o.STRONG]:!0,[o.STRIKE]:!0,[o.SUB]:!0,[o.SUP]:!0,[o.TABLE]:!0,[o.TT]:!0,[o.U]:!0,[o.UL]:!0,[o.VAR]:!0};n.causesExit=function(e){let n=e.tagName,r=n===o.FONT&&(null!==a.getTokenAttr(e,l.COLOR)||null!==a.getTokenAttr(e,l.SIZE)||null!==a.getTokenAttr(e,l.FACE));return!!r||d[n]},n.adjustTokenMathMLAttrs=function(e){for(let n=0;n=55296&&e<=57343},n.isSurrogatePair=function(e){return e>=56320&&e<=57343},n.getSurrogatePairCodePoint=function(e,n){return(e-55296)*1024+9216+n},n.isControlCodePoint=function(e){return 32!==e&&10!==e&&13!==e&&9!==e&&12!==e&&e>=1&&e<=31||e>=127&&e<=159},n.isUndefinedCodePoint=function(e){return e>=64976&&e<=65007||r.indexOf(e)>-1}},71210:function(e,n,r){"use strict";let a=r(24592);e.exports=class extends a{constructor(e,n){super(e),this.posTracker=null,this.onParseError=n.onParseError}_setErrorLocation(e){e.startLine=e.endLine=this.posTracker.line,e.startCol=e.endCol=this.posTracker.col,e.startOffset=e.endOffset=this.posTracker.offset}_reportError(e){let n={code:e,startLine:-1,startCol:-1,startOffset:-1,endLine:-1,endCol:-1,endOffset:-1};this._setErrorLocation(n),this.onParseError(n)}_getOverriddenMethods(e){return{_err(n){e._reportError(n)}}}}},62951:function(e,n,r){"use strict";let a=r(71210),i=r(65319),o=r(84447),s=r(24592);e.exports=class extends a{constructor(e,n){super(e,n),this.opts=n,this.ctLoc=null,this.locBeforeToken=!1}_setErrorLocation(e){this.ctLoc&&(e.startLine=this.ctLoc.startLine,e.startCol=this.ctLoc.startCol,e.startOffset=this.ctLoc.startOffset,e.endLine=this.locBeforeToken?this.ctLoc.startLine:this.ctLoc.endLine,e.endCol=this.locBeforeToken?this.ctLoc.startCol:this.ctLoc.endCol,e.endOffset=this.locBeforeToken?this.ctLoc.startOffset:this.ctLoc.endOffset)}_getOverriddenMethods(e,n){return{_bootstrap(r,a){n._bootstrap.call(this,r,a),s.install(this.tokenizer,i,e.opts),s.install(this.tokenizer,o)},_processInputToken(r){e.ctLoc=r.location,n._processInputToken.call(this,r)},_err(n,r){e.locBeforeToken=r&&r.beforeToken,e._reportError(n)}}}}},49298:function(e,n,r){"use strict";let a=r(71210),i=r(4315),o=r(24592);e.exports=class extends a{constructor(e,n){super(e,n),this.posTracker=o.install(e,i),this.lastErrOffset=-1}_reportError(e){this.lastErrOffset!==this.posTracker.offset&&(this.lastErrOffset=this.posTracker.offset,super._reportError(e))}}},65319:function(e,n,r){"use strict";let a=r(71210),i=r(49298),o=r(24592);e.exports=class extends a{constructor(e,n){super(e,n);let r=o.install(e.preprocessor,i,n);this.posTracker=r.posTracker}}},69134:function(e,n,r){"use strict";let a=r(24592);e.exports=class extends a{constructor(e,n){super(e),this.onItemPop=n.onItemPop}_getOverriddenMethods(e,n){return{pop(){e.onItemPop(this.current),n.pop.call(this)},popAllUpToHtmlElement(){for(let r=this.stackTop;r>0;r--)e.onItemPop(this.items[r]);n.popAllUpToHtmlElement.call(this)},remove(r){e.onItemPop(this.current),n.remove.call(this,r)}}}}},66010:function(e,n,r){"use strict";let a=r(24592),i=r(1672),o=r(84447),s=r(69134),l=r(28040),u=l.TAG_NAMES;e.exports=class extends a{constructor(e){super(e),this.parser=e,this.treeAdapter=this.parser.treeAdapter,this.posTracker=null,this.lastStartTagToken=null,this.lastFosterParentingLocation=null,this.currentToken=null}_setStartLocation(e){let n=null;this.lastStartTagToken&&((n=Object.assign({},this.lastStartTagToken.location)).startTag=this.lastStartTagToken.location),this.treeAdapter.setNodeSourceCodeLocation(e,n)}_setEndLocation(e,n){let r=this.treeAdapter.getNodeSourceCodeLocation(e);if(r&&n.location){let a=n.location,o=this.treeAdapter.getTagName(e),s=n.type===i.END_TAG_TOKEN&&o===n.tagName,l={};s?(l.endTag=Object.assign({},a),l.endLine=a.endLine,l.endCol=a.endCol,l.endOffset=a.endOffset):(l.endLine=a.startLine,l.endCol=a.startCol,l.endOffset=a.startOffset),this.treeAdapter.updateNodeSourceCodeLocation(e,l)}}_getOverriddenMethods(e,n){return{_bootstrap(r,i){n._bootstrap.call(this,r,i),e.lastStartTagToken=null,e.lastFosterParentingLocation=null,e.currentToken=null;let l=a.install(this.tokenizer,o);e.posTracker=l.posTracker,a.install(this.openElements,s,{onItemPop:function(n){e._setEndLocation(n,e.currentToken)}})},_runParsingLoop(r){n._runParsingLoop.call(this,r);for(let a=this.openElements.stackTop;a>=0;a--)e._setEndLocation(this.openElements.items[a],e.currentToken)},_processTokenInForeignContent(r){e.currentToken=r,n._processTokenInForeignContent.call(this,r)},_processToken(r){e.currentToken=r,n._processToken.call(this,r);let a=r.type===i.END_TAG_TOKEN&&(r.tagName===u.HTML||r.tagName===u.BODY&&this.openElements.hasInScope(u.BODY));if(a)for(let o=this.openElements.stackTop;o>=0;o--){let s=this.openElements.items[o];if(this.treeAdapter.getTagName(s)===r.tagName){e._setEndLocation(s,r);break}}},_setDocumentType(e){n._setDocumentType.call(this,e);let r=this.treeAdapter.getChildNodes(this.document),a=r.length;for(let i=0;i{let o=i.MODE[a];r[o]=function(r){e.ctLoc=e._getCurrentLocation(),n[o].call(this,r)}}),r}}},4315:function(e,n,r){"use strict";let a=r(24592);e.exports=class extends a{constructor(e){super(e),this.preprocessor=e,this.isEol=!1,this.lineStartPos=0,this.droppedBufferSize=0,this.offset=0,this.col=0,this.line=1}_getOverriddenMethods(e,n){return{advance(){let r=this.pos+1,a=this.html[r];return e.isEol&&(e.isEol=!1,e.line++,e.lineStartPos=r),("\n"===a||"\r"===a&&"\n"!==this.html[r+1])&&(e.isEol=!0),e.col=r-e.lineStartPos+1,e.offset=e.droppedBufferSize+r,n.advance.call(this)},retreat(){n.retreat.call(this),e.isEol=!1,e.col=this.pos-e.lineStartPos+1},dropParsedChunk(){let r=this.pos;n.dropParsedChunk.call(this);let a=r-this.pos;e.lineStartPos-=a,e.droppedBufferSize+=a,e.offset=e.droppedBufferSize+this.pos}}}}},72485:function(e){"use strict";class n{constructor(e){this.length=0,this.entries=[],this.treeAdapter=e,this.bookmark=null}_getNoahArkConditionCandidates(e){let r=[];if(this.length>=3){let a=this.treeAdapter.getAttrList(e).length,i=this.treeAdapter.getTagName(e),o=this.treeAdapter.getNamespaceURI(e);for(let s=this.length-1;s>=0;s--){let l=this.entries[s];if(l.type===n.MARKER_ENTRY)break;let u=l.element,c=this.treeAdapter.getAttrList(u),p=this.treeAdapter.getTagName(u)===i&&this.treeAdapter.getNamespaceURI(u)===o&&c.length===a;p&&r.push({idx:s,attrs:c})}}return r.length<3?[]:r}_ensureNoahArkCondition(e){let n=this._getNoahArkConditionCandidates(e),r=n.length;if(r){let a=this.treeAdapter.getAttrList(e),i=a.length,o=Object.create(null);for(let s=0;s=2;m--)this.entries.splice(n[m].idx,1),this.length--}}insertMarker(){this.entries.push({type:n.MARKER_ENTRY}),this.length++}pushElement(e,r){this._ensureNoahArkCondition(e),this.entries.push({type:n.ELEMENT_ENTRY,element:e,token:r}),this.length++}insertElementAfterBookmark(e,r){let a=this.length-1;for(;a>=0&&this.entries[a]!==this.bookmark;a--);this.entries.splice(a+1,0,{type:n.ELEMENT_ENTRY,element:e,token:r}),this.length++}removeEntry(e){for(let n=this.length-1;n>=0;n--)if(this.entries[n]===e){this.entries.splice(n,1),this.length--;break}}clearToLastMarker(){for(;this.length;){let e=this.entries.pop();if(this.length--,e.type===n.MARKER_ENTRY)break}}getElementEntryInScopeWithTagName(e){for(let r=this.length-1;r>=0;r--){let a=this.entries[r];if(a.type===n.MARKER_ENTRY)break;if(this.treeAdapter.getTagName(a.element)===e)return a}return null}getElementEntry(e){for(let r=this.length-1;r>=0;r--){let a=this.entries[r];if(a.type===n.ELEMENT_ENTRY&&a.element===e)return a}return null}}n.MARKER_ENTRY="MARKER_ENTRY",n.ELEMENT_ENTRY="ELEMENT_ENTRY",e.exports=n},92860:function(e,n,r){"use strict";let a=r(1672),i=r(91619),o=r(72485),s=r(66010),l=r(62951),u=r(24592),c=r(17385),p=r(96308),m=r(76743),d=r(11093),h=r(97700),f=r(79740),g=r(28040),b=g.TAG_NAMES,k=g.NAMESPACES,y=g.ATTRS,v={scriptingEnabled:!0,sourceCodeLocationInfo:!1,onParseError:null,treeAdapter:c},E="hidden",T="INITIAL_MODE",_="BEFORE_HTML_MODE",x="BEFORE_HEAD_MODE",w="IN_HEAD_MODE",A="IN_HEAD_NO_SCRIPT_MODE",j="AFTER_HEAD_MODE",S="IN_BODY_MODE",C="TEXT_MODE",N="IN_TABLE_MODE",O="IN_TABLE_TEXT_MODE",R="IN_CAPTION_MODE",M="IN_COLUMN_GROUP_MODE",I="IN_TABLE_BODY_MODE",L="IN_ROW_MODE",P="IN_CELL_MODE",D="IN_SELECT_MODE",z="IN_SELECT_IN_TABLE_MODE",F="IN_TEMPLATE_MODE",B="AFTER_BODY_MODE",H="IN_FRAMESET_MODE",U="AFTER_FRAMESET_MODE",G="AFTER_AFTER_BODY_MODE",$="AFTER_AFTER_FRAMESET_MODE",K={[b.TR]:L,[b.TBODY]:I,[b.THEAD]:I,[b.TFOOT]:I,[b.CAPTION]:R,[b.COLGROUP]:M,[b.TABLE]:N,[b.BODY]:S,[b.FRAMESET]:H},V={[b.CAPTION]:N,[b.COLGROUP]:N,[b.TBODY]:N,[b.TFOOT]:N,[b.THEAD]:N,[b.COL]:M,[b.TR]:I,[b.TD]:L,[b.TH]:L},q={[T]:{[a.CHARACTER_TOKEN]:es,[a.NULL_CHARACTER_TOKEN]:es,[a.WHITESPACE_CHARACTER_TOKEN]:et,[a.COMMENT_TOKEN]:er,[a.DOCTYPE_TOKEN]:function(e,n){e._setDocumentType(n);let r=n.forceQuirks?g.DOCUMENT_MODE.QUIRKS:m.getDocumentMode(n);m.isConforming(n)||e._err(h.nonConformingDoctype),e.treeAdapter.setDocumentMode(e.document,r),e.insertionMode=_},[a.START_TAG_TOKEN]:es,[a.END_TAG_TOKEN]:es,[a.EOF_TOKEN]:es},[_]:{[a.CHARACTER_TOKEN]:el,[a.NULL_CHARACTER_TOKEN]:el,[a.WHITESPACE_CHARACTER_TOKEN]:et,[a.COMMENT_TOKEN]:er,[a.DOCTYPE_TOKEN]:et,[a.START_TAG_TOKEN]:function(e,n){n.tagName===b.HTML?(e._insertElement(n,k.HTML),e.insertionMode=x):el(e,n)},[a.END_TAG_TOKEN]:function(e,n){let r=n.tagName;(r===b.HTML||r===b.HEAD||r===b.BODY||r===b.BR)&&el(e,n)},[a.EOF_TOKEN]:el},[x]:{[a.CHARACTER_TOKEN]:eu,[a.NULL_CHARACTER_TOKEN]:eu,[a.WHITESPACE_CHARACTER_TOKEN]:et,[a.COMMENT_TOKEN]:er,[a.DOCTYPE_TOKEN]:en,[a.START_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.HTML?ej(e,n):r===b.HEAD?(e._insertElement(n,k.HTML),e.headElement=e.openElements.current,e.insertionMode=w):eu(e,n)},[a.END_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.HEAD||r===b.BODY||r===b.HTML||r===b.BR?eu(e,n):e._err(h.endTagWithoutMatchingOpenElement)},[a.EOF_TOKEN]:eu},[w]:{[a.CHARACTER_TOKEN]:em,[a.NULL_CHARACTER_TOKEN]:em,[a.WHITESPACE_CHARACTER_TOKEN]:ei,[a.COMMENT_TOKEN]:er,[a.DOCTYPE_TOKEN]:en,[a.START_TAG_TOKEN]:ec,[a.END_TAG_TOKEN]:ep,[a.EOF_TOKEN]:em},[A]:{[a.CHARACTER_TOKEN]:ed,[a.NULL_CHARACTER_TOKEN]:ed,[a.WHITESPACE_CHARACTER_TOKEN]:ei,[a.COMMENT_TOKEN]:er,[a.DOCTYPE_TOKEN]:en,[a.START_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.HTML?ej(e,n):r===b.BASEFONT||r===b.BGSOUND||r===b.HEAD||r===b.LINK||r===b.META||r===b.NOFRAMES||r===b.STYLE?ec(e,n):r===b.NOSCRIPT?e._err(h.nestedNoscriptInHead):ed(e,n)},[a.END_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.NOSCRIPT?(e.openElements.pop(),e.insertionMode=w):r===b.BR?ed(e,n):e._err(h.endTagWithoutMatchingOpenElement)},[a.EOF_TOKEN]:ed},[j]:{[a.CHARACTER_TOKEN]:eh,[a.NULL_CHARACTER_TOKEN]:eh,[a.WHITESPACE_CHARACTER_TOKEN]:ei,[a.COMMENT_TOKEN]:er,[a.DOCTYPE_TOKEN]:en,[a.START_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.HTML?ej(e,n):r===b.BODY?(e._insertElement(n,k.HTML),e.framesetOk=!1,e.insertionMode=S):r===b.FRAMESET?(e._insertElement(n,k.HTML),e.insertionMode=H):r===b.BASE||r===b.BASEFONT||r===b.BGSOUND||r===b.LINK||r===b.META||r===b.NOFRAMES||r===b.SCRIPT||r===b.STYLE||r===b.TEMPLATE||r===b.TITLE?(e._err(h.abandonedHeadElementChild),e.openElements.push(e.headElement),ec(e,n),e.openElements.remove(e.headElement)):r===b.HEAD?e._err(h.misplacedStartTagForHeadElement):eh(e,n)},[a.END_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.BODY||r===b.HTML||r===b.BR?eh(e,n):r===b.TEMPLATE?ep(e,n):e._err(h.endTagWithoutMatchingOpenElement)},[a.EOF_TOKEN]:eh},[S]:{[a.CHARACTER_TOKEN]:eg,[a.NULL_CHARACTER_TOKEN]:et,[a.WHITESPACE_CHARACTER_TOKEN]:ef,[a.COMMENT_TOKEN]:er,[a.DOCTYPE_TOKEN]:et,[a.START_TAG_TOKEN]:ej,[a.END_TAG_TOKEN]:eO,[a.EOF_TOKEN]:eR},[C]:{[a.CHARACTER_TOKEN]:ei,[a.NULL_CHARACTER_TOKEN]:ei,[a.WHITESPACE_CHARACTER_TOKEN]:ei,[a.COMMENT_TOKEN]:et,[a.DOCTYPE_TOKEN]:et,[a.START_TAG_TOKEN]:et,[a.END_TAG_TOKEN]:function(e,n){n.tagName===b.SCRIPT&&(e.pendingScript=e.openElements.current),e.openElements.pop(),e.insertionMode=e.originalInsertionMode},[a.EOF_TOKEN]:function(e,n){e._err(h.eofInElementThatCanContainOnlyText),e.openElements.pop(),e.insertionMode=e.originalInsertionMode,e._processToken(n)}},[N]:{[a.CHARACTER_TOKEN]:eM,[a.NULL_CHARACTER_TOKEN]:eM,[a.WHITESPACE_CHARACTER_TOKEN]:eM,[a.COMMENT_TOKEN]:er,[a.DOCTYPE_TOKEN]:et,[a.START_TAG_TOKEN]:eI,[a.END_TAG_TOKEN]:eL,[a.EOF_TOKEN]:eR},[O]:{[a.CHARACTER_TOKEN]:function(e,n){e.pendingCharacterTokens.push(n),e.hasNonWhitespacePendingCharacterToken=!0},[a.NULL_CHARACTER_TOKEN]:et,[a.WHITESPACE_CHARACTER_TOKEN]:function(e,n){e.pendingCharacterTokens.push(n)},[a.COMMENT_TOKEN]:eD,[a.DOCTYPE_TOKEN]:eD,[a.START_TAG_TOKEN]:eD,[a.END_TAG_TOKEN]:eD,[a.EOF_TOKEN]:eD},[R]:{[a.CHARACTER_TOKEN]:eg,[a.NULL_CHARACTER_TOKEN]:et,[a.WHITESPACE_CHARACTER_TOKEN]:ef,[a.COMMENT_TOKEN]:er,[a.DOCTYPE_TOKEN]:et,[a.START_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.CAPTION||r===b.COL||r===b.COLGROUP||r===b.TBODY||r===b.TD||r===b.TFOOT||r===b.TH||r===b.THEAD||r===b.TR?e.openElements.hasInTableScope(b.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(b.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=N,e._processToken(n)):ej(e,n)},[a.END_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.CAPTION||r===b.TABLE?e.openElements.hasInTableScope(b.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(b.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=N,r===b.TABLE&&e._processToken(n)):r!==b.BODY&&r!==b.COL&&r!==b.COLGROUP&&r!==b.HTML&&r!==b.TBODY&&r!==b.TD&&r!==b.TFOOT&&r!==b.TH&&r!==b.THEAD&&r!==b.TR&&eO(e,n)},[a.EOF_TOKEN]:eR},[M]:{[a.CHARACTER_TOKEN]:ez,[a.NULL_CHARACTER_TOKEN]:ez,[a.WHITESPACE_CHARACTER_TOKEN]:ei,[a.COMMENT_TOKEN]:er,[a.DOCTYPE_TOKEN]:et,[a.START_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.HTML?ej(e,n):r===b.COL?(e._appendElement(n,k.HTML),n.ackSelfClosing=!0):r===b.TEMPLATE?ec(e,n):ez(e,n)},[a.END_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.COLGROUP?e.openElements.currentTagName===b.COLGROUP&&(e.openElements.pop(),e.insertionMode=N):r===b.TEMPLATE?ep(e,n):r!==b.COL&&ez(e,n)},[a.EOF_TOKEN]:eR},[I]:{[a.CHARACTER_TOKEN]:eM,[a.NULL_CHARACTER_TOKEN]:eM,[a.WHITESPACE_CHARACTER_TOKEN]:eM,[a.COMMENT_TOKEN]:er,[a.DOCTYPE_TOKEN]:et,[a.START_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.TR?(e.openElements.clearBackToTableBodyContext(),e._insertElement(n,k.HTML),e.insertionMode=L):r===b.TH||r===b.TD?(e.openElements.clearBackToTableBodyContext(),e._insertFakeElement(b.TR),e.insertionMode=L,e._processToken(n)):r===b.CAPTION||r===b.COL||r===b.COLGROUP||r===b.TBODY||r===b.TFOOT||r===b.THEAD?e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=N,e._processToken(n)):eI(e,n)},[a.END_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.TBODY||r===b.TFOOT||r===b.THEAD?e.openElements.hasInTableScope(r)&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=N):r===b.TABLE?e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=N,e._processToken(n)):(r!==b.BODY&&r!==b.CAPTION&&r!==b.COL&&r!==b.COLGROUP||r!==b.HTML&&r!==b.TD&&r!==b.TH&&r!==b.TR)&&eL(e,n)},[a.EOF_TOKEN]:eR},[L]:{[a.CHARACTER_TOKEN]:eM,[a.NULL_CHARACTER_TOKEN]:eM,[a.WHITESPACE_CHARACTER_TOKEN]:eM,[a.COMMENT_TOKEN]:er,[a.DOCTYPE_TOKEN]:et,[a.START_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.TH||r===b.TD?(e.openElements.clearBackToTableRowContext(),e._insertElement(n,k.HTML),e.insertionMode=P,e.activeFormattingElements.insertMarker()):r===b.CAPTION||r===b.COL||r===b.COLGROUP||r===b.TBODY||r===b.TFOOT||r===b.THEAD||r===b.TR?e.openElements.hasInTableScope(b.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=I,e._processToken(n)):eI(e,n)},[a.END_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.TR?e.openElements.hasInTableScope(b.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=I):r===b.TABLE?e.openElements.hasInTableScope(b.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=I,e._processToken(n)):r===b.TBODY||r===b.TFOOT||r===b.THEAD?(e.openElements.hasInTableScope(r)||e.openElements.hasInTableScope(b.TR))&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=I,e._processToken(n)):(r!==b.BODY&&r!==b.CAPTION&&r!==b.COL&&r!==b.COLGROUP||r!==b.HTML&&r!==b.TD&&r!==b.TH)&&eL(e,n)},[a.EOF_TOKEN]:eR},[P]:{[a.CHARACTER_TOKEN]:eg,[a.NULL_CHARACTER_TOKEN]:et,[a.WHITESPACE_CHARACTER_TOKEN]:ef,[a.COMMENT_TOKEN]:er,[a.DOCTYPE_TOKEN]:et,[a.START_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.CAPTION||r===b.COL||r===b.COLGROUP||r===b.TBODY||r===b.TD||r===b.TFOOT||r===b.TH||r===b.THEAD||r===b.TR?(e.openElements.hasInTableScope(b.TD)||e.openElements.hasInTableScope(b.TH))&&(e._closeTableCell(),e._processToken(n)):ej(e,n)},[a.END_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.TD||r===b.TH?e.openElements.hasInTableScope(r)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(r),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=L):r===b.TABLE||r===b.TBODY||r===b.TFOOT||r===b.THEAD||r===b.TR?e.openElements.hasInTableScope(r)&&(e._closeTableCell(),e._processToken(n)):r!==b.BODY&&r!==b.CAPTION&&r!==b.COL&&r!==b.COLGROUP&&r!==b.HTML&&eO(e,n)},[a.EOF_TOKEN]:eR},[D]:{[a.CHARACTER_TOKEN]:ei,[a.NULL_CHARACTER_TOKEN]:et,[a.WHITESPACE_CHARACTER_TOKEN]:ei,[a.COMMENT_TOKEN]:er,[a.DOCTYPE_TOKEN]:et,[a.START_TAG_TOKEN]:eF,[a.END_TAG_TOKEN]:eB,[a.EOF_TOKEN]:eR},[z]:{[a.CHARACTER_TOKEN]:ei,[a.NULL_CHARACTER_TOKEN]:et,[a.WHITESPACE_CHARACTER_TOKEN]:ei,[a.COMMENT_TOKEN]:er,[a.DOCTYPE_TOKEN]:et,[a.START_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.CAPTION||r===b.TABLE||r===b.TBODY||r===b.TFOOT||r===b.THEAD||r===b.TR||r===b.TD||r===b.TH?(e.openElements.popUntilTagNamePopped(b.SELECT),e._resetInsertionMode(),e._processToken(n)):eF(e,n)},[a.END_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.CAPTION||r===b.TABLE||r===b.TBODY||r===b.TFOOT||r===b.THEAD||r===b.TR||r===b.TD||r===b.TH?e.openElements.hasInTableScope(r)&&(e.openElements.popUntilTagNamePopped(b.SELECT),e._resetInsertionMode(),e._processToken(n)):eB(e,n)},[a.EOF_TOKEN]:eR},[F]:{[a.CHARACTER_TOKEN]:eg,[a.NULL_CHARACTER_TOKEN]:et,[a.WHITESPACE_CHARACTER_TOKEN]:ef,[a.COMMENT_TOKEN]:er,[a.DOCTYPE_TOKEN]:et,[a.START_TAG_TOKEN]:function(e,n){let r=n.tagName;if(r===b.BASE||r===b.BASEFONT||r===b.BGSOUND||r===b.LINK||r===b.META||r===b.NOFRAMES||r===b.SCRIPT||r===b.STYLE||r===b.TEMPLATE||r===b.TITLE)ec(e,n);else{let a=V[r]||S;e._popTmplInsertionMode(),e._pushTmplInsertionMode(a),e.insertionMode=a,e._processToken(n)}},[a.END_TAG_TOKEN]:function(e,n){n.tagName===b.TEMPLATE&&ep(e,n)},[a.EOF_TOKEN]:eH},[B]:{[a.CHARACTER_TOKEN]:eU,[a.NULL_CHARACTER_TOKEN]:eU,[a.WHITESPACE_CHARACTER_TOKEN]:ef,[a.COMMENT_TOKEN]:function(e,n){e._appendCommentNode(n,e.openElements.items[0])},[a.DOCTYPE_TOKEN]:et,[a.START_TAG_TOKEN]:function(e,n){n.tagName===b.HTML?ej(e,n):eU(e,n)},[a.END_TAG_TOKEN]:function(e,n){n.tagName===b.HTML?e.fragmentContext||(e.insertionMode=G):eU(e,n)},[a.EOF_TOKEN]:eo},[H]:{[a.CHARACTER_TOKEN]:et,[a.NULL_CHARACTER_TOKEN]:et,[a.WHITESPACE_CHARACTER_TOKEN]:ei,[a.COMMENT_TOKEN]:er,[a.DOCTYPE_TOKEN]:et,[a.START_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.HTML?ej(e,n):r===b.FRAMESET?e._insertElement(n,k.HTML):r===b.FRAME?(e._appendElement(n,k.HTML),n.ackSelfClosing=!0):r===b.NOFRAMES&&ec(e,n)},[a.END_TAG_TOKEN]:function(e,n){n.tagName!==b.FRAMESET||e.openElements.isRootHtmlElementCurrent()||(e.openElements.pop(),e.fragmentContext||e.openElements.currentTagName===b.FRAMESET||(e.insertionMode=U))},[a.EOF_TOKEN]:eo},[U]:{[a.CHARACTER_TOKEN]:et,[a.NULL_CHARACTER_TOKEN]:et,[a.WHITESPACE_CHARACTER_TOKEN]:ei,[a.COMMENT_TOKEN]:er,[a.DOCTYPE_TOKEN]:et,[a.START_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.HTML?ej(e,n):r===b.NOFRAMES&&ec(e,n)},[a.END_TAG_TOKEN]:function(e,n){n.tagName===b.HTML&&(e.insertionMode=$)},[a.EOF_TOKEN]:eo},[G]:{[a.CHARACTER_TOKEN]:eG,[a.NULL_CHARACTER_TOKEN]:eG,[a.WHITESPACE_CHARACTER_TOKEN]:ef,[a.COMMENT_TOKEN]:ea,[a.DOCTYPE_TOKEN]:et,[a.START_TAG_TOKEN]:function(e,n){n.tagName===b.HTML?ej(e,n):eG(e,n)},[a.END_TAG_TOKEN]:eG,[a.EOF_TOKEN]:eo},[$]:{[a.CHARACTER_TOKEN]:et,[a.NULL_CHARACTER_TOKEN]:et,[a.WHITESPACE_CHARACTER_TOKEN]:ef,[a.COMMENT_TOKEN]:ea,[a.DOCTYPE_TOKEN]:et,[a.START_TAG_TOKEN]:function(e,n){let r=n.tagName;r===b.HTML?ej(e,n):r===b.NOFRAMES&&ec(e,n)},[a.END_TAG_TOKEN]:et,[a.EOF_TOKEN]:eo}};function W(e,n){let r=e.activeFormattingElements.getElementEntryInScopeWithTagName(n.tagName);return r?e.openElements.contains(r.element)?e.openElements.hasInScope(n.tagName)||(r=null):(e.activeFormattingElements.removeEntry(r),r=null):eN(e,n),r}function Y(e,n){let r=null;for(let a=e.openElements.stackTop;a>=0;a--){let i=e.openElements.items[a];if(i===n.element)break;e._isSpecialElement(i)&&(r=i)}return r||(e.openElements.popUntilElementPopped(n.element),e.activeFormattingElements.removeEntry(n)),r}function Q(e,n,r){let a=n,i=e.openElements.getCommonAncestor(n);for(let o=0,s=i;s!==r;o++,s=i){i=e.openElements.getCommonAncestor(s);let l=e.activeFormattingElements.getElementEntry(s),u=l&&o>=3,c=!l||u;c?(u&&e.activeFormattingElements.removeEntry(l),e.openElements.remove(s)):(s=Z(e,l),a===n&&(e.activeFormattingElements.bookmark=l),e.treeAdapter.detachNode(a),e.treeAdapter.appendChild(s,a),a=s)}return a}function Z(e,n){let r=e.treeAdapter.getNamespaceURI(n.element),a=e.treeAdapter.createElement(n.token.tagName,r,n.token.attrs);return e.openElements.replace(n.element,a),n.element=a,a}function X(e,n,r){if(e._isElementCausesFosterParenting(n))e._fosterParentElement(r);else{let a=e.treeAdapter.getTagName(n),i=e.treeAdapter.getNamespaceURI(n);a===b.TEMPLATE&&i===k.HTML&&(n=e.treeAdapter.getTemplateContent(n)),e.treeAdapter.appendChild(n,r)}}function J(e,n,r){let a=e.treeAdapter.getNamespaceURI(r.element),i=r.token,o=e.treeAdapter.createElement(i.tagName,a,i.attrs);e._adoptNodes(n,o),e.treeAdapter.appendChild(n,o),e.activeFormattingElements.insertElementAfterBookmark(o,r.token),e.activeFormattingElements.removeEntry(r),e.openElements.remove(r.element),e.openElements.insertAfter(n,o)}function ee(e,n){let r;for(let a=0;a<8&&(r=W(e,n,r));a++){let i=Y(e,r);if(!i)break;e.activeFormattingElements.bookmark=r;let o=Q(e,i,r.element),s=e.openElements.getCommonAncestor(r.element);e.treeAdapter.detachNode(o),X(e,s,o),J(e,i,r)}}function et(){}function en(e){e._err(h.misplacedDoctype)}function er(e,n){e._appendCommentNode(n,e.openElements.currentTmplContent||e.openElements.current)}function ea(e,n){e._appendCommentNode(n,e.document)}function ei(e,n){e._insertCharacters(n)}function eo(e){e.stopped=!0}function es(e,n){e._err(h.missingDoctype,{beforeToken:!0}),e.treeAdapter.setDocumentMode(e.document,g.DOCUMENT_MODE.QUIRKS),e.insertionMode=_,e._processToken(n)}function el(e,n){e._insertFakeRootElement(),e.insertionMode=x,e._processToken(n)}function eu(e,n){e._insertFakeElement(b.HEAD),e.headElement=e.openElements.current,e.insertionMode=w,e._processToken(n)}function ec(e,n){let r=n.tagName;r===b.HTML?ej(e,n):r===b.BASE||r===b.BASEFONT||r===b.BGSOUND||r===b.LINK||r===b.META?(e._appendElement(n,k.HTML),n.ackSelfClosing=!0):r===b.TITLE?e._switchToTextParsing(n,a.MODE.RCDATA):r===b.NOSCRIPT?e.options.scriptingEnabled?e._switchToTextParsing(n,a.MODE.RAWTEXT):(e._insertElement(n,k.HTML),e.insertionMode=A):r===b.NOFRAMES||r===b.STYLE?e._switchToTextParsing(n,a.MODE.RAWTEXT):r===b.SCRIPT?e._switchToTextParsing(n,a.MODE.SCRIPT_DATA):r===b.TEMPLATE?(e._insertTemplate(n,k.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1,e.insertionMode=F,e._pushTmplInsertionMode(F)):r===b.HEAD?e._err(h.misplacedStartTagForHeadElement):em(e,n)}function ep(e,n){let r=n.tagName;r===b.HEAD?(e.openElements.pop(),e.insertionMode=j):r===b.BODY||r===b.BR||r===b.HTML?em(e,n):r===b.TEMPLATE&&e.openElements.tmplCount>0?(e.openElements.generateImpliedEndTagsThoroughly(),e.openElements.currentTagName!==b.TEMPLATE&&e._err(h.closingOfElementWithOpenChildElements),e.openElements.popUntilTagNamePopped(b.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e._popTmplInsertionMode(),e._resetInsertionMode()):e._err(h.endTagWithoutMatchingOpenElement)}function em(e,n){e.openElements.pop(),e.insertionMode=j,e._processToken(n)}function ed(e,n){let r=n.type===a.EOF_TOKEN?h.openElementsLeftAfterEof:h.disallowedContentInNoscriptInHead;e._err(r),e.openElements.pop(),e.insertionMode=w,e._processToken(n)}function eh(e,n){e._insertFakeElement(b.BODY),e.insertionMode=S,e._processToken(n)}function ef(e,n){e._reconstructActiveFormattingElements(),e._insertCharacters(n)}function eg(e,n){e._reconstructActiveFormattingElements(),e._insertCharacters(n),e.framesetOk=!1}function eb(e,n){e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._insertElement(n,k.HTML)}function ek(e,n){e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._insertElement(n,k.HTML),e.skipNextNewLine=!0,e.framesetOk=!1}function ey(e,n){e._reconstructActiveFormattingElements(),e._insertElement(n,k.HTML),e.activeFormattingElements.pushElement(e.openElements.current,n)}function ev(e,n){e._reconstructActiveFormattingElements(),e._insertElement(n,k.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1}function eE(e,n){e._reconstructActiveFormattingElements(),e._appendElement(n,k.HTML),e.framesetOk=!1,n.ackSelfClosing=!0}function eT(e,n){e._appendElement(n,k.HTML),n.ackSelfClosing=!0}function e_(e,n){e._switchToTextParsing(n,a.MODE.RAWTEXT)}function ex(e,n){e.openElements.currentTagName===b.OPTION&&e.openElements.pop(),e._reconstructActiveFormattingElements(),e._insertElement(n,k.HTML)}function ew(e,n){e.openElements.hasInScope(b.RUBY)&&e.openElements.generateImpliedEndTags(),e._insertElement(n,k.HTML)}function eA(e,n){e._reconstructActiveFormattingElements(),e._insertElement(n,k.HTML)}function ej(e,n){var r,i,o,s,l,u,c,p,m,h,f,v,T,_,x,w,A,j,S,O,M,F,B,U,G,$,K,V,q,W;let Y=n.tagName;switch(Y.length){case 1:Y===b.I||Y===b.S||Y===b.B||Y===b.U?ey(e,n):Y===b.P?eb(e,n):Y===b.A?function(e,n){let r=e.activeFormattingElements.getElementEntryInScopeWithTagName(b.A);r&&(ee(e,n),e.openElements.remove(r.element),e.activeFormattingElements.removeEntry(r)),e._reconstructActiveFormattingElements(),e._insertElement(n,k.HTML),e.activeFormattingElements.pushElement(e.openElements.current,n)}(e,n):eA(e,n);break;case 2:Y===b.DL||Y===b.OL||Y===b.UL?eb(e,n):Y===b.H1||Y===b.H2||Y===b.H3||Y===b.H4||Y===b.H5||Y===b.H6?!function(e,n){e.openElements.hasInButtonScope(b.P)&&e._closePElement();let r=e.openElements.currentTagName;(r===b.H1||r===b.H2||r===b.H3||r===b.H4||r===b.H5||r===b.H6)&&e.openElements.pop(),e._insertElement(n,k.HTML)}(e,n):Y===b.LI||Y===b.DD||Y===b.DT?!function(e,n){e.framesetOk=!1;let r=n.tagName;for(let a=e.openElements.stackTop;a>=0;a--){let i=e.openElements.items[a],o=e.treeAdapter.getTagName(i),s=null;if(r===b.LI&&o===b.LI?s=b.LI:(r===b.DD||r===b.DT)&&(o===b.DD||o===b.DT)&&(s=o),s){e.openElements.generateImpliedEndTagsWithExclusion(s),e.openElements.popUntilTagNamePopped(s);break}if(o!==b.ADDRESS&&o!==b.DIV&&o!==b.P&&e._isSpecialElement(i))break}e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._insertElement(n,k.HTML)}(e,n):Y===b.EM||Y===b.TT?ey(e,n):Y===b.BR?eE(e,n):Y===b.HR?(r=e,i=n,r.openElements.hasInButtonScope(b.P)&&r._closePElement(),r._appendElement(i,k.HTML),r.framesetOk=!1,i.ackSelfClosing=!0):Y===b.RB?ew(e,n):Y===b.RT||Y===b.RP?(o=e,s=n,o.openElements.hasInScope(b.RUBY)&&o.openElements.generateImpliedEndTagsWithExclusion(b.RTC),o._insertElement(s,k.HTML)):Y!==b.TH&&Y!==b.TD&&Y!==b.TR&&eA(e,n);break;case 3:Y===b.DIV||Y===b.DIR||Y===b.NAV?eb(e,n):Y===b.PRE?ek(e,n):Y===b.BIG?ey(e,n):Y===b.IMG||Y===b.WBR?eE(e,n):Y===b.XMP?(l=e,u=n,l.openElements.hasInButtonScope(b.P)&&l._closePElement(),l._reconstructActiveFormattingElements(),l.framesetOk=!1,l._switchToTextParsing(u,a.MODE.RAWTEXT)):Y===b.SVG?(c=e,p=n,c._reconstructActiveFormattingElements(),d.adjustTokenSVGAttrs(p),d.adjustTokenXMLAttrs(p),p.selfClosing?c._appendElement(p,k.SVG):c._insertElement(p,k.SVG),p.ackSelfClosing=!0):Y===b.RTC?ew(e,n):Y!==b.COL&&eA(e,n);break;case 4:Y===b.HTML?(m=e,h=n,0===m.openElements.tmplCount&&m.treeAdapter.adoptAttributes(m.openElements.items[0],h.attrs)):Y===b.BASE||Y===b.LINK||Y===b.META?ec(e,n):Y===b.BODY?!function(e,n){let r=e.openElements.tryPeekProperlyNestedBodyElement();r&&0===e.openElements.tmplCount&&(e.framesetOk=!1,e.treeAdapter.adoptAttributes(r,n.attrs))}(e,n):Y===b.MAIN||Y===b.MENU?eb(e,n):Y===b.FORM?!function(e,n){let r=e.openElements.tmplCount>0;e.formElement&&!r||(e.openElements.hasInButtonScope(b.P)&&e._closePElement(),e._insertElement(n,k.HTML),r||(e.formElement=e.openElements.current))}(e,n):Y===b.CODE||Y===b.FONT?ey(e,n):Y===b.NOBR?(f=e,v=n,f._reconstructActiveFormattingElements(),f.openElements.hasInScope(b.NOBR)&&(ee(f,v),f._reconstructActiveFormattingElements()),f._insertElement(v,k.HTML),f.activeFormattingElements.pushElement(f.openElements.current,v)):Y===b.AREA?eE(e,n):Y===b.MATH?(T=e,_=n,T._reconstructActiveFormattingElements(),d.adjustTokenMathMLAttrs(_),d.adjustTokenXMLAttrs(_),_.selfClosing?T._appendElement(_,k.MATHML):T._insertElement(_,k.MATHML),_.ackSelfClosing=!0):Y===b.MENU?(x=e,w=n,x.openElements.hasInButtonScope(b.P)&&x._closePElement(),x._insertElement(w,k.HTML)):Y!==b.HEAD&&eA(e,n);break;case 5:Y===b.STYLE||Y===b.TITLE?ec(e,n):Y===b.ASIDE?eb(e,n):Y===b.SMALL?ey(e,n):Y===b.TABLE?(A=e,j=n,A.treeAdapter.getDocumentMode(A.document)!==g.DOCUMENT_MODE.QUIRKS&&A.openElements.hasInButtonScope(b.P)&&A._closePElement(),A._insertElement(j,k.HTML),A.framesetOk=!1,A.insertionMode=N):Y===b.EMBED?eE(e,n):Y===b.INPUT?!function(e,n){e._reconstructActiveFormattingElements(),e._appendElement(n,k.HTML);let r=a.getTokenAttr(n,y.TYPE);r&&r.toLowerCase()===E||(e.framesetOk=!1),n.ackSelfClosing=!0}(e,n):Y===b.PARAM||Y===b.TRACK?eT(e,n):Y===b.IMAGE?(S=e,(O=n).tagName=b.IMG,eE(S,O)):Y!==b.FRAME&&Y!==b.TBODY&&Y!==b.TFOOT&&Y!==b.THEAD&&eA(e,n);break;case 6:Y===b.SCRIPT?ec(e,n):Y===b.CENTER||Y===b.FIGURE||Y===b.FOOTER||Y===b.HEADER||Y===b.HGROUP||Y===b.DIALOG?eb(e,n):Y===b.BUTTON?(M=e,F=n,M.openElements.hasInScope(b.BUTTON)&&(M.openElements.generateImpliedEndTags(),M.openElements.popUntilTagNamePopped(b.BUTTON)),M._reconstructActiveFormattingElements(),M._insertElement(F,k.HTML),M.framesetOk=!1):Y===b.STRIKE||Y===b.STRONG?ey(e,n):Y===b.APPLET||Y===b.OBJECT?ev(e,n):Y===b.KEYGEN?eE(e,n):Y===b.SOURCE?eT(e,n):Y===b.IFRAME?(B=e,U=n,B.framesetOk=!1,B._switchToTextParsing(U,a.MODE.RAWTEXT)):Y===b.SELECT?(G=e,$=n,G._reconstructActiveFormattingElements(),G._insertElement($,k.HTML),G.framesetOk=!1,G.insertionMode===N||G.insertionMode===R||G.insertionMode===I||G.insertionMode===L||G.insertionMode===P?G.insertionMode=z:G.insertionMode=D):Y===b.OPTION?ex(e,n):eA(e,n);break;case 7:Y===b.BGSOUND?ec(e,n):Y===b.DETAILS||Y===b.ADDRESS||Y===b.ARTICLE||Y===b.SECTION||Y===b.SUMMARY?eb(e,n):Y===b.LISTING?ek(e,n):Y===b.MARQUEE?ev(e,n):Y===b.NOEMBED?e_(e,n):Y!==b.CAPTION&&eA(e,n);break;case 8:Y===b.BASEFONT?ec(e,n):Y===b.FRAMESET?!function(e,n){let r=e.openElements.tryPeekProperlyNestedBodyElement();e.framesetOk&&r&&(e.treeAdapter.detachNode(r),e.openElements.popAllUpToHtmlElement(),e._insertElement(n,k.HTML),e.insertionMode=H)}(e,n):Y===b.FIELDSET?eb(e,n):Y===b.TEXTAREA?(K=e,V=n,K._insertElement(V,k.HTML),K.skipNextNewLine=!0,K.tokenizer.state=a.MODE.RCDATA,K.originalInsertionMode=K.insertionMode,K.framesetOk=!1,K.insertionMode=C):Y===b.TEMPLATE?ec(e,n):Y===b.NOSCRIPT?e.options.scriptingEnabled?e_(e,n):eA(e,n):Y===b.OPTGROUP?ex(e,n):Y!==b.COLGROUP&&eA(e,n);break;case 9:Y===b.PLAINTEXT?(q=e,W=n,q.openElements.hasInButtonScope(b.P)&&q._closePElement(),q._insertElement(W,k.HTML),q.tokenizer.state=a.MODE.PLAINTEXT):eA(e,n);break;case 10:Y===b.BLOCKQUOTE||Y===b.FIGCAPTION?eb(e,n):eA(e,n);break;default:eA(e,n)}}function eS(e,n){let r=n.tagName;e.openElements.hasInScope(r)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(r))}function eC(e,n){let r=n.tagName;e.openElements.hasInScope(r)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(r),e.activeFormattingElements.clearToLastMarker())}function eN(e,n){let r=n.tagName;for(let a=e.openElements.stackTop;a>0;a--){let i=e.openElements.items[a];if(e.treeAdapter.getTagName(i)===r){e.openElements.generateImpliedEndTagsWithExclusion(r),e.openElements.popUntilElementPopped(i);break}if(e._isSpecialElement(i))break}}function eO(e,n){var r,a,i,o,s,l,u;let c=n.tagName;switch(c.length){case 1:c===b.A||c===b.B||c===b.I||c===b.S||c===b.U?ee(e,n):c===b.P?((r=e).openElements.hasInButtonScope(b.P)||r._insertFakeElement(b.P),r._closePElement()):eN(e,n);break;case 2:c===b.DL||c===b.UL||c===b.OL?eS(e,n):c===b.LI?(a=e).openElements.hasInListItemScope(b.LI)&&(a.openElements.generateImpliedEndTagsWithExclusion(b.LI),a.openElements.popUntilTagNamePopped(b.LI)):c===b.DD||c===b.DT?!function(e,n){let r=n.tagName;e.openElements.hasInScope(r)&&(e.openElements.generateImpliedEndTagsWithExclusion(r),e.openElements.popUntilTagNamePopped(r))}(e,n):c===b.H1||c===b.H2||c===b.H3||c===b.H4||c===b.H5||c===b.H6?(i=e).openElements.hasNumberedHeaderInScope()&&(i.openElements.generateImpliedEndTags(),i.openElements.popUntilNumberedHeaderPopped()):c===b.BR?((o=e)._reconstructActiveFormattingElements(),o._insertFakeElement(b.BR),o.openElements.pop(),o.framesetOk=!1):c===b.EM||c===b.TT?ee(e,n):eN(e,n);break;case 3:c===b.BIG?ee(e,n):c===b.DIR||c===b.DIV||c===b.NAV||c===b.PRE?eS(e,n):eN(e,n);break;case 4:c===b.BODY?(s=e).openElements.hasInScope(b.BODY)&&(s.insertionMode=B):c===b.HTML?(l=e,u=n,l.openElements.hasInScope(b.BODY)&&(l.insertionMode=B,l._processToken(u))):c===b.FORM?function(e){let n=e.openElements.tmplCount>0,r=e.formElement;n||(e.formElement=null),(r||n)&&e.openElements.hasInScope(b.FORM)&&(e.openElements.generateImpliedEndTags(),n?e.openElements.popUntilTagNamePopped(b.FORM):e.openElements.remove(r))}(e,n):c===b.CODE||c===b.FONT||c===b.NOBR?ee(e,n):c===b.MAIN||c===b.MENU?eS(e,n):eN(e,n);break;case 5:c===b.ASIDE?eS(e,n):c===b.SMALL?ee(e,n):eN(e,n);break;case 6:c===b.CENTER||c===b.FIGURE||c===b.FOOTER||c===b.HEADER||c===b.HGROUP||c===b.DIALOG?eS(e,n):c===b.APPLET||c===b.OBJECT?eC(e,n):c===b.STRIKE||c===b.STRONG?ee(e,n):eN(e,n);break;case 7:c===b.ADDRESS||c===b.ARTICLE||c===b.DETAILS||c===b.SECTION||c===b.SUMMARY||c===b.LISTING?eS(e,n):c===b.MARQUEE?eC(e,n):eN(e,n);break;case 8:c===b.FIELDSET?eS(e,n):c===b.TEMPLATE?ep(e,n):eN(e,n);break;case 10:c===b.BLOCKQUOTE||c===b.FIGCAPTION?eS(e,n):eN(e,n);break;default:eN(e,n)}}function eR(e,n){e.tmplInsertionModeStackTop>-1?eH(e,n):e.stopped=!0}function eM(e,n){let r=e.openElements.currentTagName;r===b.TABLE||r===b.TBODY||r===b.TFOOT||r===b.THEAD||r===b.TR?(e.pendingCharacterTokens=[],e.hasNonWhitespacePendingCharacterToken=!1,e.originalInsertionMode=e.insertionMode,e.insertionMode=O,e._processToken(n)):eP(e,n)}function eI(e,n){var r,i,o,s,l,u,c,p,m,d,h,f,g,v;let T=n.tagName;switch(T.length){case 2:T===b.TD||T===b.TH||T===b.TR?(r=e,i=n,r.openElements.clearBackToTableContext(),r._insertFakeElement(b.TBODY),r.insertionMode=I,r._processToken(i)):eP(e,n);break;case 3:T===b.COL?(o=e,s=n,o.openElements.clearBackToTableContext(),o._insertFakeElement(b.COLGROUP),o.insertionMode=M,o._processToken(s)):eP(e,n);break;case 4:T===b.FORM?(l=e,u=n,l.formElement||0!==l.openElements.tmplCount||(l._insertElement(u,k.HTML),l.formElement=l.openElements.current,l.openElements.pop())):eP(e,n);break;case 5:T===b.TABLE?(c=e,p=n,c.openElements.hasInTableScope(b.TABLE)&&(c.openElements.popUntilTagNamePopped(b.TABLE),c._resetInsertionMode(),c._processToken(p))):T===b.STYLE?ec(e,n):T===b.TBODY||T===b.TFOOT||T===b.THEAD?(m=e,d=n,m.openElements.clearBackToTableContext(),m._insertElement(d,k.HTML),m.insertionMode=I):T===b.INPUT?function(e,n){let r=a.getTokenAttr(n,y.TYPE);r&&r.toLowerCase()===E?e._appendElement(n,k.HTML):eP(e,n),n.ackSelfClosing=!0}(e,n):eP(e,n);break;case 6:T===b.SCRIPT?ec(e,n):eP(e,n);break;case 7:T===b.CAPTION?(h=e,f=n,h.openElements.clearBackToTableContext(),h.activeFormattingElements.insertMarker(),h._insertElement(f,k.HTML),h.insertionMode=R):eP(e,n);break;case 8:T===b.COLGROUP?(g=e,v=n,g.openElements.clearBackToTableContext(),g._insertElement(v,k.HTML),g.insertionMode=M):T===b.TEMPLATE?ec(e,n):eP(e,n);break;default:eP(e,n)}}function eL(e,n){let r=n.tagName;r===b.TABLE?e.openElements.hasInTableScope(b.TABLE)&&(e.openElements.popUntilTagNamePopped(b.TABLE),e._resetInsertionMode()):r===b.TEMPLATE?ep(e,n):r!==b.BODY&&r!==b.CAPTION&&r!==b.COL&&r!==b.COLGROUP&&r!==b.HTML&&r!==b.TBODY&&r!==b.TD&&r!==b.TFOOT&&r!==b.TH&&r!==b.THEAD&&r!==b.TR&&eP(e,n)}function eP(e,n){let r=e.fosterParentingEnabled;e.fosterParentingEnabled=!0,e._processTokenInBodyMode(n),e.fosterParentingEnabled=r}function eD(e,n){let r=0;if(e.hasNonWhitespacePendingCharacterToken)for(;r0?(e.openElements.popUntilTagNamePopped(b.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e._popTmplInsertionMode(),e._resetInsertionMode(),e._processToken(n)):e.stopped=!0}function eU(e,n){e.insertionMode=S,e._processToken(n)}function eG(e,n){e.insertionMode=S,e._processToken(n)}e.exports=class{constructor(e){this.options=p(v,e),this.treeAdapter=this.options.treeAdapter,this.pendingScript=null,this.options.sourceCodeLocationInfo&&u.install(this,s),this.options.onParseError&&u.install(this,l,{onParseError:this.options.onParseError})}parse(e){let n=this.treeAdapter.createDocument();return this._bootstrap(n,null),this.tokenizer.write(e,!0),this._runParsingLoop(null),n}parseFragment(e,n){n||(n=this.treeAdapter.createElement(b.TEMPLATE,k.HTML,[]));let r=this.treeAdapter.createElement("documentmock",k.HTML,[]);this._bootstrap(r,n),this.treeAdapter.getTagName(n)===b.TEMPLATE&&this._pushTmplInsertionMode(F),this._initTokenizerForFragmentParsing(),this._insertFakeRootElement(),this._resetInsertionMode(),this._findFormInFragmentContext(),this.tokenizer.write(e,!0),this._runParsingLoop(null);let a=this.treeAdapter.getFirstChild(r),i=this.treeAdapter.createDocumentFragment();return this._adoptNodes(a,i),i}_bootstrap(e,n){this.tokenizer=new a(this.options),this.stopped=!1,this.insertionMode=T,this.originalInsertionMode="",this.document=e,this.fragmentContext=n,this.headElement=null,this.formElement=null,this.openElements=new i(this.document,this.treeAdapter),this.activeFormattingElements=new o(this.treeAdapter),this.tmplInsertionModeStack=[],this.tmplInsertionModeStackTop=-1,this.currentTmplInsertionMode=null,this.pendingCharacterTokens=[],this.hasNonWhitespacePendingCharacterToken=!1,this.framesetOk=!0,this.skipNextNewLine=!1,this.fosterParentingEnabled=!1}_err(){}_runParsingLoop(e){for(;!this.stopped;){this._setupTokenizerCDATAMode();let n=this.tokenizer.getNextToken();if(n.type===a.HIBERNATION_TOKEN)break;if(this.skipNextNewLine&&(this.skipNextNewLine=!1,n.type===a.WHITESPACE_CHARACTER_TOKEN&&"\n"===n.chars[0])){if(1===n.chars.length)continue;n.chars=n.chars.substr(1)}if(this._processInputToken(n),e&&this.pendingScript)break}}runParsingLoopForCurrentChunk(e,n){if(this._runParsingLoop(n),n&&this.pendingScript){let r=this.pendingScript;this.pendingScript=null,n(r);return}e&&e()}_setupTokenizerCDATAMode(){let e=this._getAdjustedCurrentElement();this.tokenizer.allowCDATA=e&&e!==this.document&&this.treeAdapter.getNamespaceURI(e)!==k.HTML&&!this._isIntegrationPoint(e)}_switchToTextParsing(e,n){this._insertElement(e,k.HTML),this.tokenizer.state=n,this.originalInsertionMode=this.insertionMode,this.insertionMode=C}switchToPlaintextParsing(){this.insertionMode=C,this.originalInsertionMode=S,this.tokenizer.state=a.MODE.PLAINTEXT}_getAdjustedCurrentElement(){return 0===this.openElements.stackTop&&this.fragmentContext?this.fragmentContext:this.openElements.current}_findFormInFragmentContext(){let e=this.fragmentContext;do{if(this.treeAdapter.getTagName(e)===b.FORM){this.formElement=e;break}e=this.treeAdapter.getParentNode(e)}while(e)}_initTokenizerForFragmentParsing(){if(this.treeAdapter.getNamespaceURI(this.fragmentContext)===k.HTML){let e=this.treeAdapter.getTagName(this.fragmentContext);e===b.TITLE||e===b.TEXTAREA?this.tokenizer.state=a.MODE.RCDATA:e===b.STYLE||e===b.XMP||e===b.IFRAME||e===b.NOEMBED||e===b.NOFRAMES||e===b.NOSCRIPT?this.tokenizer.state=a.MODE.RAWTEXT:e===b.SCRIPT?this.tokenizer.state=a.MODE.SCRIPT_DATA:e===b.PLAINTEXT&&(this.tokenizer.state=a.MODE.PLAINTEXT)}}_setDocumentType(e){let n=e.name||"",r=e.publicId||"",a=e.systemId||"";this.treeAdapter.setDocumentType(this.document,n,r,a)}_attachElementToTree(e){if(this._shouldFosterParentOnInsertion())this._fosterParentElement(e);else{let n=this.openElements.currentTmplContent||this.openElements.current;this.treeAdapter.appendChild(n,e)}}_appendElement(e,n){let r=this.treeAdapter.createElement(e.tagName,n,e.attrs);this._attachElementToTree(r)}_insertElement(e,n){let r=this.treeAdapter.createElement(e.tagName,n,e.attrs);this._attachElementToTree(r),this.openElements.push(r)}_insertFakeElement(e){let n=this.treeAdapter.createElement(e,k.HTML,[]);this._attachElementToTree(n),this.openElements.push(n)}_insertTemplate(e){let n=this.treeAdapter.createElement(e.tagName,k.HTML,e.attrs),r=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(n,r),this._attachElementToTree(n),this.openElements.push(n)}_insertFakeRootElement(){let e=this.treeAdapter.createElement(b.HTML,k.HTML,[]);this.treeAdapter.appendChild(this.openElements.current,e),this.openElements.push(e)}_appendCommentNode(e,n){let r=this.treeAdapter.createCommentNode(e.data);this.treeAdapter.appendChild(n,r)}_insertCharacters(e){if(this._shouldFosterParentOnInsertion())this._fosterParentText(e.chars);else{let n=this.openElements.currentTmplContent||this.openElements.current;this.treeAdapter.insertText(n,e.chars)}}_adoptNodes(e,n){for(let r=this.treeAdapter.getFirstChild(e);r;r=this.treeAdapter.getFirstChild(e))this.treeAdapter.detachNode(r),this.treeAdapter.appendChild(n,r)}_shouldProcessTokenInForeignContent(e){let n=this._getAdjustedCurrentElement();if(!n||n===this.document)return!1;let r=this.treeAdapter.getNamespaceURI(n);if(r===k.HTML||this.treeAdapter.getTagName(n)===b.ANNOTATION_XML&&r===k.MATHML&&e.type===a.START_TAG_TOKEN&&e.tagName===b.SVG)return!1;let i=e.type===a.CHARACTER_TOKEN||e.type===a.NULL_CHARACTER_TOKEN||e.type===a.WHITESPACE_CHARACTER_TOKEN,o=e.type===a.START_TAG_TOKEN&&e.tagName!==b.MGLYPH&&e.tagName!==b.MALIGNMARK;return!((o||i)&&this._isIntegrationPoint(n,k.MATHML)||(e.type===a.START_TAG_TOKEN||i)&&this._isIntegrationPoint(n,k.HTML))&&e.type!==a.EOF_TOKEN}_processToken(e){q[this.insertionMode][e.type](this,e)}_processTokenInBodyMode(e){q[S][e.type](this,e)}_processTokenInForeignContent(e){var n,r,i,o;e.type===a.CHARACTER_TOKEN?(n=this,r=e,n._insertCharacters(r),n.framesetOk=!1):e.type===a.NULL_CHARACTER_TOKEN?(i=this,o=e,o.chars=f.REPLACEMENT_CHARACTER,i._insertCharacters(o)):e.type===a.WHITESPACE_CHARACTER_TOKEN?ei(this,e):e.type===a.COMMENT_TOKEN?er(this,e):e.type===a.START_TAG_TOKEN?function(e,n){if(d.causesExit(n)&&!e.fragmentContext){for(;e.treeAdapter.getNamespaceURI(e.openElements.current)!==k.HTML&&!e._isIntegrationPoint(e.openElements.current);)e.openElements.pop();e._processToken(n)}else{let r=e._getAdjustedCurrentElement(),a=e.treeAdapter.getNamespaceURI(r);a===k.MATHML?d.adjustTokenMathMLAttrs(n):a===k.SVG&&(d.adjustTokenSVGTagName(n),d.adjustTokenSVGAttrs(n)),d.adjustTokenXMLAttrs(n),n.selfClosing?e._appendElement(n,a):e._insertElement(n,a),n.ackSelfClosing=!0}}(this,e):e.type===a.END_TAG_TOKEN&&function(e,n){for(let r=e.openElements.stackTop;r>0;r--){let a=e.openElements.items[r];if(e.treeAdapter.getNamespaceURI(a)===k.HTML){e._processToken(n);break}if(e.treeAdapter.getTagName(a).toLowerCase()===n.tagName){e.openElements.popUntilElementPopped(a);break}}}(this,e)}_processInputToken(e){this._shouldProcessTokenInForeignContent(e)?this._processTokenInForeignContent(e):this._processToken(e),e.type===a.START_TAG_TOKEN&&e.selfClosing&&!e.ackSelfClosing&&this._err(h.nonVoidHtmlElementStartTagWithTrailingSolidus)}_isIntegrationPoint(e,n){let r=this.treeAdapter.getTagName(e),a=this.treeAdapter.getNamespaceURI(e),i=this.treeAdapter.getAttrList(e);return d.isIntegrationPoint(r,a,i,n)}_reconstructActiveFormattingElements(){let e=this.activeFormattingElements.length;if(e){let n=e,r=null;do if(n--,(r=this.activeFormattingElements.entries[n]).type===o.MARKER_ENTRY||this.openElements.contains(r.element)){n++;break}while(n>0);for(let a=n;a=0;e--){let r=this.openElements.items[e];0===e&&(n=!0,this.fragmentContext&&(r=this.fragmentContext));let a=this.treeAdapter.getTagName(r),i=K[a];if(i){this.insertionMode=i;break}if(n||a!==b.TD&&a!==b.TH){if(n||a!==b.HEAD){if(a===b.SELECT){this._resetInsertionModeForSelect(e);break}if(a===b.TEMPLATE){this.insertionMode=this.currentTmplInsertionMode;break}else if(a===b.HTML){this.insertionMode=this.headElement?j:x;break}else if(n){this.insertionMode=S;break}}else{this.insertionMode=w;break}}else{this.insertionMode=P;break}}}_resetInsertionModeForSelect(e){if(e>0)for(let n=e-1;n>0;n--){let r=this.openElements.items[n],a=this.treeAdapter.getTagName(r);if(a===b.TEMPLATE)break;if(a===b.TABLE){this.insertionMode=z;return}}this.insertionMode=D}_pushTmplInsertionMode(e){this.tmplInsertionModeStack.push(e),this.tmplInsertionModeStackTop++,this.currentTmplInsertionMode=e}_popTmplInsertionMode(){this.tmplInsertionModeStack.pop(),this.tmplInsertionModeStackTop--,this.currentTmplInsertionMode=this.tmplInsertionModeStack[this.tmplInsertionModeStackTop]}_isElementCausesFosterParenting(e){let n=this.treeAdapter.getTagName(e);return n===b.TABLE||n===b.TBODY||n===b.TFOOT||n===b.THEAD||n===b.TR}_shouldFosterParentOnInsertion(){return this.fosterParentingEnabled&&this._isElementCausesFosterParenting(this.openElements.current)}_findFosterParentingLocation(){let e={parent:null,beforeElement:null};for(let n=this.openElements.stackTop;n>=0;n--){let r=this.openElements.items[n],a=this.treeAdapter.getTagName(r),i=this.treeAdapter.getNamespaceURI(r);if(a===b.TEMPLATE&&i===k.HTML){e.parent=this.treeAdapter.getTemplateContent(r);break}if(a===b.TABLE){e.parent=this.treeAdapter.getParentNode(r),e.parent?e.beforeElement=r:e.parent=this.openElements.items[n-1];break}}return e.parent||(e.parent=this.openElements.items[0]),e}_fosterParentElement(e){let n=this._findFosterParentingLocation();n.beforeElement?this.treeAdapter.insertBefore(n.parent,e,n.beforeElement):this.treeAdapter.appendChild(n.parent,e)}_fosterParentText(e){let n=this._findFosterParentingLocation();n.beforeElement?this.treeAdapter.insertTextBefore(n.parent,e,n.beforeElement):this.treeAdapter.insertText(n.parent,e)}_isSpecialElement(e){let n=this.treeAdapter.getTagName(e),r=this.treeAdapter.getNamespaceURI(e);return g.SPECIAL_ELEMENTS[r][n]}}},91619:function(e,n,r){"use strict";let a=r(28040),i=a.TAG_NAMES,o=a.NAMESPACES;function s(e){switch(e.length){case 1:return e===i.P;case 2:return e===i.RB||e===i.RP||e===i.RT||e===i.DD||e===i.DT||e===i.LI;case 3:return e===i.RTC;case 6:return e===i.OPTION;case 8:return e===i.OPTGROUP}return!1}function l(e){switch(e.length){case 1:return e===i.P;case 2:return e===i.RB||e===i.RP||e===i.RT||e===i.DD||e===i.DT||e===i.LI||e===i.TD||e===i.TH||e===i.TR;case 3:return e===i.RTC;case 5:return e===i.TBODY||e===i.TFOOT||e===i.THEAD;case 6:return e===i.OPTION;case 7:return e===i.CAPTION;case 8:return e===i.OPTGROUP||e===i.COLGROUP}return!1}function u(e,n){switch(e.length){case 2:if(e===i.TD||e===i.TH)return n===o.HTML;if(e===i.MI||e===i.MO||e===i.MN||e===i.MS)return n===o.MATHML;break;case 4:if(e===i.HTML)return n===o.HTML;if(e===i.DESC)return n===o.SVG;break;case 5:if(e===i.TABLE)return n===o.HTML;if(e===i.MTEXT)return n===o.MATHML;if(e===i.TITLE)return n===o.SVG;break;case 6:return(e===i.APPLET||e===i.OBJECT)&&n===o.HTML;case 7:return(e===i.CAPTION||e===i.MARQUEE)&&n===o.HTML;case 8:return e===i.TEMPLATE&&n===o.HTML;case 13:return e===i.FOREIGN_OBJECT&&n===o.SVG;case 14:return e===i.ANNOTATION_XML&&n===o.MATHML}return!1}e.exports=class{constructor(e,n){this.stackTop=-1,this.items=[],this.current=e,this.currentTagName=null,this.currentTmplContent=null,this.tmplCount=0,this.treeAdapter=n}_indexOf(e){let n=-1;for(let r=this.stackTop;r>=0;r--)if(this.items[r]===e){n=r;break}return n}_isInTemplate(){return this.currentTagName===i.TEMPLATE&&this.treeAdapter.getNamespaceURI(this.current)===o.HTML}_updateCurrentElement(){this.current=this.items[this.stackTop],this.currentTagName=this.current&&this.treeAdapter.getTagName(this.current),this.currentTmplContent=this._isInTemplate()?this.treeAdapter.getTemplateContent(this.current):null}push(e){this.items[++this.stackTop]=e,this._updateCurrentElement(),this._isInTemplate()&&this.tmplCount++}pop(){this.stackTop--,this.tmplCount>0&&this._isInTemplate()&&this.tmplCount--,this._updateCurrentElement()}replace(e,n){let r=this._indexOf(e);this.items[r]=n,r===this.stackTop&&this._updateCurrentElement()}insertAfter(e,n){let r=this._indexOf(e)+1;this.items.splice(r,0,n),r===++this.stackTop&&this._updateCurrentElement()}popUntilTagNamePopped(e){for(;this.stackTop>-1;){let n=this.currentTagName,r=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),n===e&&r===o.HTML)break}}popUntilElementPopped(e){for(;this.stackTop>-1;){let n=this.current;if(this.pop(),n===e)break}}popUntilNumberedHeaderPopped(){for(;this.stackTop>-1;){let e=this.currentTagName,n=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),e===i.H1||e===i.H2||e===i.H3||e===i.H4||e===i.H5||e===i.H6&&n===o.HTML)break}}popUntilTableCellPopped(){for(;this.stackTop>-1;){let e=this.currentTagName,n=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),e===i.TD||e===i.TH&&n===o.HTML)break}}popAllUpToHtmlElement(){this.stackTop=0,this._updateCurrentElement()}clearBackToTableContext(){for(;this.currentTagName!==i.TABLE&&this.currentTagName!==i.TEMPLATE&&this.currentTagName!==i.HTML||this.treeAdapter.getNamespaceURI(this.current)!==o.HTML;)this.pop()}clearBackToTableBodyContext(){for(;this.currentTagName!==i.TBODY&&this.currentTagName!==i.TFOOT&&this.currentTagName!==i.THEAD&&this.currentTagName!==i.TEMPLATE&&this.currentTagName!==i.HTML||this.treeAdapter.getNamespaceURI(this.current)!==o.HTML;)this.pop()}clearBackToTableRowContext(){for(;this.currentTagName!==i.TR&&this.currentTagName!==i.TEMPLATE&&this.currentTagName!==i.HTML||this.treeAdapter.getNamespaceURI(this.current)!==o.HTML;)this.pop()}remove(e){for(let n=this.stackTop;n>=0;n--)if(this.items[n]===e){this.items.splice(n,1),this.stackTop--,this._updateCurrentElement();break}}tryPeekProperlyNestedBodyElement(){let e=this.items[1];return e&&this.treeAdapter.getTagName(e)===i.BODY?e:null}contains(e){return this._indexOf(e)>-1}getCommonAncestor(e){let n=this._indexOf(e);return--n>=0?this.items[n]:null}isRootHtmlElementCurrent(){return 0===this.stackTop&&this.currentTagName===i.HTML}hasInScope(e){for(let n=this.stackTop;n>=0;n--){let r=this.treeAdapter.getTagName(this.items[n]),a=this.treeAdapter.getNamespaceURI(this.items[n]);if(r===e&&a===o.HTML)break;if(u(r,a))return!1}return!0}hasNumberedHeaderInScope(){for(let e=this.stackTop;e>=0;e--){let n=this.treeAdapter.getTagName(this.items[e]),r=this.treeAdapter.getNamespaceURI(this.items[e]);if((n===i.H1||n===i.H2||n===i.H3||n===i.H4||n===i.H5||n===i.H6)&&r===o.HTML)break;if(u(n,r))return!1}return!0}hasInListItemScope(e){for(let n=this.stackTop;n>=0;n--){let r=this.treeAdapter.getTagName(this.items[n]),a=this.treeAdapter.getNamespaceURI(this.items[n]);if(r===e&&a===o.HTML)break;if((r===i.UL||r===i.OL)&&a===o.HTML||u(r,a))return!1}return!0}hasInButtonScope(e){for(let n=this.stackTop;n>=0;n--){let r=this.treeAdapter.getTagName(this.items[n]),a=this.treeAdapter.getNamespaceURI(this.items[n]);if(r===e&&a===o.HTML)break;if(r===i.BUTTON&&a===o.HTML||u(r,a))return!1}return!0}hasInTableScope(e){for(let n=this.stackTop;n>=0;n--){let r=this.treeAdapter.getTagName(this.items[n]),a=this.treeAdapter.getNamespaceURI(this.items[n]);if(a===o.HTML){if(r===e)break;if(r===i.TABLE||r===i.TEMPLATE||r===i.HTML)return!1}}return!0}hasTableBodyContextInTableScope(){for(let e=this.stackTop;e>=0;e--){let n=this.treeAdapter.getTagName(this.items[e]),r=this.treeAdapter.getNamespaceURI(this.items[e]);if(r===o.HTML){if(n===i.TBODY||n===i.THEAD||n===i.TFOOT)break;if(n===i.TABLE||n===i.HTML)return!1}}return!0}hasInSelectScope(e){for(let n=this.stackTop;n>=0;n--){let r=this.treeAdapter.getTagName(this.items[n]),a=this.treeAdapter.getNamespaceURI(this.items[n]);if(a===o.HTML){if(r===e)break;if(r!==i.OPTION&&r!==i.OPTGROUP)return!1}}return!0}generateImpliedEndTags(){for(;s(this.currentTagName);)this.pop()}generateImpliedEndTagsThoroughly(){for(;l(this.currentTagName);)this.pop()}generateImpliedEndTagsWithExclusion(e){for(;s(this.currentTagName)&&this.currentTagName!==e;)this.pop()}}},1672:function(e,n,r){"use strict";let a=r(47757),i=r(79740),o=r(30959),s=r(97700),l=i.CODE_POINTS,u=i.CODE_POINT_SEQUENCES,c={128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376},p="DATA_STATE",m="RCDATA_STATE",d="RAWTEXT_STATE",h="SCRIPT_DATA_STATE",f="PLAINTEXT_STATE",g="TAG_OPEN_STATE",b="END_TAG_OPEN_STATE",k="TAG_NAME_STATE",y="RCDATA_LESS_THAN_SIGN_STATE",v="RCDATA_END_TAG_OPEN_STATE",E="RCDATA_END_TAG_NAME_STATE",T="RAWTEXT_LESS_THAN_SIGN_STATE",_="RAWTEXT_END_TAG_OPEN_STATE",x="RAWTEXT_END_TAG_NAME_STATE",w="SCRIPT_DATA_LESS_THAN_SIGN_STATE",A="SCRIPT_DATA_END_TAG_OPEN_STATE",j="SCRIPT_DATA_END_TAG_NAME_STATE",S="SCRIPT_DATA_ESCAPE_START_STATE",C="SCRIPT_DATA_ESCAPE_START_DASH_STATE",N="SCRIPT_DATA_ESCAPED_STATE",O="SCRIPT_DATA_ESCAPED_DASH_STATE",R="SCRIPT_DATA_ESCAPED_DASH_DASH_STATE",M="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE",I="SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE",L="SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE",P="SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE",D="SCRIPT_DATA_DOUBLE_ESCAPED_STATE",z="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE",F="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE",B="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE",H="SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE",U="BEFORE_ATTRIBUTE_NAME_STATE",G="ATTRIBUTE_NAME_STATE",$="AFTER_ATTRIBUTE_NAME_STATE",K="BEFORE_ATTRIBUTE_VALUE_STATE",V="ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE",q="ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE",W="ATTRIBUTE_VALUE_UNQUOTED_STATE",Y="AFTER_ATTRIBUTE_VALUE_QUOTED_STATE",Q="SELF_CLOSING_START_TAG_STATE",Z="BOGUS_COMMENT_STATE",X="MARKUP_DECLARATION_OPEN_STATE",J="COMMENT_START_STATE",ee="COMMENT_START_DASH_STATE",et="COMMENT_STATE",en="COMMENT_LESS_THAN_SIGN_STATE",er="COMMENT_LESS_THAN_SIGN_BANG_STATE",ea="COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE",ei="COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE",eo="COMMENT_END_DASH_STATE",es="COMMENT_END_STATE",el="COMMENT_END_BANG_STATE",eu="DOCTYPE_STATE",ec="BEFORE_DOCTYPE_NAME_STATE",ep="DOCTYPE_NAME_STATE",em="AFTER_DOCTYPE_NAME_STATE",ed="AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE",eh="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE",ef="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE",eg="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE",eb="AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE",ek="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE",ey="AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE",ev="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE",eE="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE",eT="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE",e_="AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE",ex="BOGUS_DOCTYPE_STATE",ew="CDATA_SECTION_STATE",eA="CDATA_SECTION_BRACKET_STATE",ej="CDATA_SECTION_END_STATE",eS="CHARACTER_REFERENCE_STATE",eC="NAMED_CHARACTER_REFERENCE_STATE",eN="AMBIGUOS_AMPERSAND_STATE",eO="NUMERIC_CHARACTER_REFERENCE_STATE",eR="HEXADEMICAL_CHARACTER_REFERENCE_START_STATE",eM="DECIMAL_CHARACTER_REFERENCE_START_STATE",eI="HEXADEMICAL_CHARACTER_REFERENCE_STATE",eL="DECIMAL_CHARACTER_REFERENCE_STATE",eP="NUMERIC_CHARACTER_REFERENCE_END_STATE";function eD(e){return e===l.SPACE||e===l.LINE_FEED||e===l.TABULATION||e===l.FORM_FEED}function ez(e){return e>=l.DIGIT_0&&e<=l.DIGIT_9}function eF(e){return e>=l.LATIN_CAPITAL_A&&e<=l.LATIN_CAPITAL_Z}function eB(e){return e>=l.LATIN_SMALL_A&&e<=l.LATIN_SMALL_Z}function eH(e){return eB(e)||eF(e)}function eU(e){return eH(e)||ez(e)}function eG(e){return e>=l.LATIN_CAPITAL_A&&e<=l.LATIN_CAPITAL_F}function e$(e){return e>=l.LATIN_SMALL_A&&e<=l.LATIN_SMALL_F}function eK(e){return e+32}function eV(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-=65536)>>>10&1023|55296)+String.fromCharCode(56320|1023&e)}function eq(e){return String.fromCharCode(eK(e))}function eW(e,n){let r=o[++e],a=++e,i=a+r-1;for(;a<=i;){let s=a+i>>>1,l=o[s];if(ln))return o[s+r];i=s-1}}return -1}class eY{constructor(){this.preprocessor=new a,this.tokenQueue=[],this.allowCDATA=!1,this.state=p,this.returnState="",this.charRefCode=-1,this.tempBuff=[],this.lastStartTagName="",this.consumedAfterSnapshot=-1,this.active=!1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr=null}_err(){}_errOnNextCodePoint(e){this._consume(),this._err(e),this._unconsume()}getNextToken(){for(;!this.tokenQueue.length&&this.active;){this.consumedAfterSnapshot=0;let e=this._consume();this._ensureHibernation()||this[this.state](e)}return this.tokenQueue.shift()}write(e,n){this.active=!0,this.preprocessor.write(e,n)}insertHtmlAtCurrentPos(e){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(e)}_ensureHibernation(){if(this.preprocessor.endOfChunkHit){for(;this.consumedAfterSnapshot>0;this.consumedAfterSnapshot--)this.preprocessor.retreat();return this.active=!1,this.tokenQueue.push({type:eY.HIBERNATION_TOKEN}),!0}return!1}_consume(){return this.consumedAfterSnapshot++,this.preprocessor.advance()}_unconsume(){this.consumedAfterSnapshot--,this.preprocessor.retreat()}_reconsumeInState(e){this.state=e,this._unconsume()}_consumeSequenceIfMatch(e,n,r){let a=0,i=!0,o=e.length,s=0,u=n,c;for(;s0&&(u=this._consume(),a++),u===l.EOF||u!==(c=e[s])&&(r||u!==eK(c))){i=!1;break}if(!i)for(;a--;)this._unconsume();return i}_isTempBufferEqualToScriptString(){if(this.tempBuff.length!==u.SCRIPT_STRING.length)return!1;for(let e=0;e0&&this._err(s.endTagWithAttributes),e.selfClosing&&this._err(s.endTagWithTrailingSolidus)),this.tokenQueue.push(e)}_emitCurrentCharacterToken(){this.currentCharacterToken&&(this.tokenQueue.push(this.currentCharacterToken),this.currentCharacterToken=null)}_emitEOFToken(){this._createEOFToken(),this._emitCurrentToken()}_appendCharToCurrentCharacterToken(e,n){this.currentCharacterToken&&this.currentCharacterToken.type!==e&&this._emitCurrentCharacterToken(),this.currentCharacterToken?this.currentCharacterToken.chars+=n:this._createCharacterToken(e,n)}_emitCodePoint(e){let n=eY.CHARACTER_TOKEN;eD(e)?n=eY.WHITESPACE_CHARACTER_TOKEN:e===l.NULL&&(n=eY.NULL_CHARACTER_TOKEN),this._appendCharToCurrentCharacterToken(n,eV(e))}_emitSeveralCodePoints(e){for(let n=0;n-1;){let i=o[a],s=i<7,u=s&&1&i;u&&(n=2&i?[o[++a],o[++a]]:[o[++a]],r=0);let c=this._consume();if(this.tempBuff.push(c),r++,c===l.EOF)break;a=s?4&i?eW(a,c):-1:c===i?++a:-1}for(;r--;)this.tempBuff.pop(),this._unconsume();return n}_isCharacterReferenceInAttribute(){return this.returnState===V||this.returnState===q||this.returnState===W}_isCharacterReferenceAttributeQuirk(e){if(!e&&this._isCharacterReferenceInAttribute()){let n=this._consume();return this._unconsume(),n===l.EQUALS_SIGN||eU(n)}return!1}_flushCodePointsConsumedAsCharacterReference(){if(this._isCharacterReferenceInAttribute())for(let e=0;e")):e===l.NULL?(this._err(s.unexpectedNullCharacter),this.state=N,this._emitChars(i.REPLACEMENT_CHARACTER)):e===l.EOF?(this._err(s.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):(this.state=N,this._emitCodePoint(e))}[M](e){e===l.SOLIDUS?(this.tempBuff=[],this.state=I):eH(e)?(this.tempBuff=[],this._emitChars("<"),this._reconsumeInState(P)):(this._emitChars("<"),this._reconsumeInState(N))}[I](e){eH(e)?(this._createEndTagToken(),this._reconsumeInState(L)):(this._emitChars("")):e===l.NULL?(this._err(s.unexpectedNullCharacter),this.state=D,this._emitChars(i.REPLACEMENT_CHARACTER)):e===l.EOF?(this._err(s.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):(this.state=D,this._emitCodePoint(e))}[B](e){e===l.SOLIDUS?(this.tempBuff=[],this.state=H,this._emitChars("/")):this._reconsumeInState(D)}[H](e){eD(e)||e===l.SOLIDUS||e===l.GREATER_THAN_SIGN?(this.state=this._isTempBufferEqualToScriptString()?N:D,this._emitCodePoint(e)):eF(e)?(this.tempBuff.push(eK(e)),this._emitCodePoint(e)):eB(e)?(this.tempBuff.push(e),this._emitCodePoint(e)):this._reconsumeInState(D)}[U](e){!eD(e)&&(e===l.SOLIDUS||e===l.GREATER_THAN_SIGN||e===l.EOF?this._reconsumeInState($):e===l.EQUALS_SIGN?(this._err(s.unexpectedEqualsSignBeforeAttributeName),this._createAttr("="),this.state=G):(this._createAttr(""),this._reconsumeInState(G)))}[G](e){eD(e)||e===l.SOLIDUS||e===l.GREATER_THAN_SIGN||e===l.EOF?(this._leaveAttrName($),this._unconsume()):e===l.EQUALS_SIGN?this._leaveAttrName(K):eF(e)?this.currentAttr.name+=eq(e):e===l.QUOTATION_MARK||e===l.APOSTROPHE||e===l.LESS_THAN_SIGN?(this._err(s.unexpectedCharacterInAttributeName),this.currentAttr.name+=eV(e)):e===l.NULL?(this._err(s.unexpectedNullCharacter),this.currentAttr.name+=i.REPLACEMENT_CHARACTER):this.currentAttr.name+=eV(e)}[$](e){!eD(e)&&(e===l.SOLIDUS?this.state=Q:e===l.EQUALS_SIGN?this.state=K:e===l.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===l.EOF?(this._err(s.eofInTag),this._emitEOFToken()):(this._createAttr(""),this._reconsumeInState(G)))}[K](e){!eD(e)&&(e===l.QUOTATION_MARK?this.state=V:e===l.APOSTROPHE?this.state=q:e===l.GREATER_THAN_SIGN?(this._err(s.missingAttributeValue),this.state=p,this._emitCurrentToken()):this._reconsumeInState(W))}[V](e){e===l.QUOTATION_MARK?this.state=Y:e===l.AMPERSAND?(this.returnState=V,this.state=eS):e===l.NULL?(this._err(s.unexpectedNullCharacter),this.currentAttr.value+=i.REPLACEMENT_CHARACTER):e===l.EOF?(this._err(s.eofInTag),this._emitEOFToken()):this.currentAttr.value+=eV(e)}[q](e){e===l.APOSTROPHE?this.state=Y:e===l.AMPERSAND?(this.returnState=q,this.state=eS):e===l.NULL?(this._err(s.unexpectedNullCharacter),this.currentAttr.value+=i.REPLACEMENT_CHARACTER):e===l.EOF?(this._err(s.eofInTag),this._emitEOFToken()):this.currentAttr.value+=eV(e)}[W](e){eD(e)?this._leaveAttrValue(U):e===l.AMPERSAND?(this.returnState=W,this.state=eS):e===l.GREATER_THAN_SIGN?(this._leaveAttrValue(p),this._emitCurrentToken()):e===l.NULL?(this._err(s.unexpectedNullCharacter),this.currentAttr.value+=i.REPLACEMENT_CHARACTER):e===l.QUOTATION_MARK||e===l.APOSTROPHE||e===l.LESS_THAN_SIGN||e===l.EQUALS_SIGN||e===l.GRAVE_ACCENT?(this._err(s.unexpectedCharacterInUnquotedAttributeValue),this.currentAttr.value+=eV(e)):e===l.EOF?(this._err(s.eofInTag),this._emitEOFToken()):this.currentAttr.value+=eV(e)}[Y](e){eD(e)?this._leaveAttrValue(U):e===l.SOLIDUS?this._leaveAttrValue(Q):e===l.GREATER_THAN_SIGN?(this._leaveAttrValue(p),this._emitCurrentToken()):e===l.EOF?(this._err(s.eofInTag),this._emitEOFToken()):(this._err(s.missingWhitespaceBetweenAttributes),this._reconsumeInState(U))}[Q](e){e===l.GREATER_THAN_SIGN?(this.currentToken.selfClosing=!0,this.state=p,this._emitCurrentToken()):e===l.EOF?(this._err(s.eofInTag),this._emitEOFToken()):(this._err(s.unexpectedSolidusInTag),this._reconsumeInState(U))}[Z](e){e===l.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===l.EOF?(this._emitCurrentToken(),this._emitEOFToken()):e===l.NULL?(this._err(s.unexpectedNullCharacter),this.currentToken.data+=i.REPLACEMENT_CHARACTER):this.currentToken.data+=eV(e)}[X](e){this._consumeSequenceIfMatch(u.DASH_DASH_STRING,e,!0)?(this._createCommentToken(),this.state=J):this._consumeSequenceIfMatch(u.DOCTYPE_STRING,e,!1)?this.state=eu:this._consumeSequenceIfMatch(u.CDATA_START_STRING,e,!0)?this.allowCDATA?this.state=ew:(this._err(s.cdataInHtmlContent),this._createCommentToken(),this.currentToken.data="[CDATA[",this.state=Z):this._ensureHibernation()||(this._err(s.incorrectlyOpenedComment),this._createCommentToken(),this._reconsumeInState(Z))}[J](e){e===l.HYPHEN_MINUS?this.state=ee:e===l.GREATER_THAN_SIGN?(this._err(s.abruptClosingOfEmptyComment),this.state=p,this._emitCurrentToken()):this._reconsumeInState(et)}[ee](e){e===l.HYPHEN_MINUS?this.state=es:e===l.GREATER_THAN_SIGN?(this._err(s.abruptClosingOfEmptyComment),this.state=p,this._emitCurrentToken()):e===l.EOF?(this._err(s.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="-",this._reconsumeInState(et))}[et](e){e===l.HYPHEN_MINUS?this.state=eo:e===l.LESS_THAN_SIGN?(this.currentToken.data+="<",this.state=en):e===l.NULL?(this._err(s.unexpectedNullCharacter),this.currentToken.data+=i.REPLACEMENT_CHARACTER):e===l.EOF?(this._err(s.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.data+=eV(e)}[en](e){e===l.EXCLAMATION_MARK?(this.currentToken.data+="!",this.state=er):e===l.LESS_THAN_SIGN?this.currentToken.data+="!":this._reconsumeInState(et)}[er](e){e===l.HYPHEN_MINUS?this.state=ea:this._reconsumeInState(et)}[ea](e){e===l.HYPHEN_MINUS?this.state=ei:this._reconsumeInState(eo)}[ei](e){e!==l.GREATER_THAN_SIGN&&e!==l.EOF&&this._err(s.nestedComment),this._reconsumeInState(es)}[eo](e){e===l.HYPHEN_MINUS?this.state=es:e===l.EOF?(this._err(s.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="-",this._reconsumeInState(et))}[es](e){e===l.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===l.EXCLAMATION_MARK?this.state=el:e===l.HYPHEN_MINUS?this.currentToken.data+="-":e===l.EOF?(this._err(s.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="--",this._reconsumeInState(et))}[el](e){e===l.HYPHEN_MINUS?(this.currentToken.data+="--!",this.state=eo):e===l.GREATER_THAN_SIGN?(this._err(s.incorrectlyClosedComment),this.state=p,this._emitCurrentToken()):e===l.EOF?(this._err(s.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="--!",this._reconsumeInState(et))}[eu](e){eD(e)?this.state=ec:e===l.GREATER_THAN_SIGN?this._reconsumeInState(ec):e===l.EOF?(this._err(s.eofInDoctype),this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(s.missingWhitespaceBeforeDoctypeName),this._reconsumeInState(ec))}[ec](e){!eD(e)&&(eF(e)?(this._createDoctypeToken(eq(e)),this.state=ep):e===l.NULL?(this._err(s.unexpectedNullCharacter),this._createDoctypeToken(i.REPLACEMENT_CHARACTER),this.state=ep):e===l.GREATER_THAN_SIGN?(this._err(s.missingDoctypeName),this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===l.EOF?(this._err(s.eofInDoctype),this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._createDoctypeToken(eV(e)),this.state=ep))}[ep](e){eD(e)?this.state=em:e===l.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):eF(e)?this.currentToken.name+=eq(e):e===l.NULL?(this._err(s.unexpectedNullCharacter),this.currentToken.name+=i.REPLACEMENT_CHARACTER):e===l.EOF?(this._err(s.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.name+=eV(e)}[em](e){!eD(e)&&(e===l.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===l.EOF?(this._err(s.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this._consumeSequenceIfMatch(u.PUBLIC_STRING,e,!1)?this.state=ed:this._consumeSequenceIfMatch(u.SYSTEM_STRING,e,!1)?this.state=ey:this._ensureHibernation()||(this._err(s.invalidCharacterSequenceAfterDoctypeName),this.currentToken.forceQuirks=!0,this._reconsumeInState(ex)))}[ed](e){eD(e)?this.state=eh:e===l.QUOTATION_MARK?(this._err(s.missingWhitespaceAfterDoctypePublicKeyword),this.currentToken.publicId="",this.state=ef):e===l.APOSTROPHE?(this._err(s.missingWhitespaceAfterDoctypePublicKeyword),this.currentToken.publicId="",this.state=eg):e===l.GREATER_THAN_SIGN?(this._err(s.missingDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this.state=p,this._emitCurrentToken()):e===l.EOF?(this._err(s.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(s.missingQuoteBeforeDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(ex))}[eh](e){!eD(e)&&(e===l.QUOTATION_MARK?(this.currentToken.publicId="",this.state=ef):e===l.APOSTROPHE?(this.currentToken.publicId="",this.state=eg):e===l.GREATER_THAN_SIGN?(this._err(s.missingDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this.state=p,this._emitCurrentToken()):e===l.EOF?(this._err(s.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(s.missingQuoteBeforeDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(ex)))}[ef](e){e===l.QUOTATION_MARK?this.state=eb:e===l.NULL?(this._err(s.unexpectedNullCharacter),this.currentToken.publicId+=i.REPLACEMENT_CHARACTER):e===l.GREATER_THAN_SIGN?(this._err(s.abruptDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===l.EOF?(this._err(s.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.publicId+=eV(e)}[eg](e){e===l.APOSTROPHE?this.state=eb:e===l.NULL?(this._err(s.unexpectedNullCharacter),this.currentToken.publicId+=i.REPLACEMENT_CHARACTER):e===l.GREATER_THAN_SIGN?(this._err(s.abruptDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===l.EOF?(this._err(s.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.publicId+=eV(e)}[eb](e){eD(e)?this.state=ek:e===l.GREATER_THAN_SIGN?(this.state=p,this._emitCurrentToken()):e===l.QUOTATION_MARK?(this._err(s.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),this.currentToken.systemId="",this.state=eE):e===l.APOSTROPHE?(this._err(s.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),this.currentToken.systemId="",this.state=eT):e===l.EOF?(this._err(s.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(s.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(ex))}[ek](e){!eD(e)&&(e===l.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=p):e===l.QUOTATION_MARK?(this.currentToken.systemId="",this.state=eE):e===l.APOSTROPHE?(this.currentToken.systemId="",this.state=eT):e===l.EOF?(this._err(s.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(s.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(ex)))}[ey](e){eD(e)?this.state=ev:e===l.QUOTATION_MARK?(this._err(s.missingWhitespaceAfterDoctypeSystemKeyword),this.currentToken.systemId="",this.state=eE):e===l.APOSTROPHE?(this._err(s.missingWhitespaceAfterDoctypeSystemKeyword),this.currentToken.systemId="",this.state=eT):e===l.GREATER_THAN_SIGN?(this._err(s.missingDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this.state=p,this._emitCurrentToken()):e===l.EOF?(this._err(s.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(s.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(ex))}[ev](e){!eD(e)&&(e===l.QUOTATION_MARK?(this.currentToken.systemId="",this.state=eE):e===l.APOSTROPHE?(this.currentToken.systemId="",this.state=eT):e===l.GREATER_THAN_SIGN?(this._err(s.missingDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this.state=p,this._emitCurrentToken()):e===l.EOF?(this._err(s.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(s.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(ex)))}[eE](e){e===l.QUOTATION_MARK?this.state=e_:e===l.NULL?(this._err(s.unexpectedNullCharacter),this.currentToken.systemId+=i.REPLACEMENT_CHARACTER):e===l.GREATER_THAN_SIGN?(this._err(s.abruptDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===l.EOF?(this._err(s.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.systemId+=eV(e)}[eT](e){e===l.APOSTROPHE?this.state=e_:e===l.NULL?(this._err(s.unexpectedNullCharacter),this.currentToken.systemId+=i.REPLACEMENT_CHARACTER):e===l.GREATER_THAN_SIGN?(this._err(s.abruptDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=p):e===l.EOF?(this._err(s.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.systemId+=eV(e)}[e_](e){!eD(e)&&(e===l.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=p):e===l.EOF?(this._err(s.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(s.unexpectedCharacterAfterDoctypeSystemIdentifier),this._reconsumeInState(ex)))}[ex](e){e===l.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=p):e===l.NULL?this._err(s.unexpectedNullCharacter):e===l.EOF&&(this._emitCurrentToken(),this._emitEOFToken())}[ew](e){e===l.RIGHT_SQUARE_BRACKET?this.state=eA:e===l.EOF?(this._err(s.eofInCdata),this._emitEOFToken()):this._emitCodePoint(e)}[eA](e){e===l.RIGHT_SQUARE_BRACKET?this.state=ej:(this._emitChars("]"),this._reconsumeInState(ew))}[ej](e){e===l.GREATER_THAN_SIGN?this.state=p:e===l.RIGHT_SQUARE_BRACKET?this._emitChars("]"):(this._emitChars("]]"),this._reconsumeInState(ew))}[eS](e){this.tempBuff=[l.AMPERSAND],e===l.NUMBER_SIGN?(this.tempBuff.push(e),this.state=eO):eU(e)?this._reconsumeInState(eC):(this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState))}[eC](e){let n=this._matchNamedCharacterReference(e);if(this._ensureHibernation())this.tempBuff=[l.AMPERSAND];else if(n){let r=this.tempBuff[this.tempBuff.length-1]===l.SEMICOLON;this._isCharacterReferenceAttributeQuirk(r)||(r||this._errOnNextCodePoint(s.missingSemicolonAfterCharacterReference),this.tempBuff=n),this._flushCodePointsConsumedAsCharacterReference(),this.state=this.returnState}else this._flushCodePointsConsumedAsCharacterReference(),this.state=eN}[eN](e){eU(e)?this._isCharacterReferenceInAttribute()?this.currentAttr.value+=eV(e):this._emitCodePoint(e):(e===l.SEMICOLON&&this._err(s.unknownNamedCharacterReference),this._reconsumeInState(this.returnState))}[eO](e){this.charRefCode=0,e===l.LATIN_SMALL_X||e===l.LATIN_CAPITAL_X?(this.tempBuff.push(e),this.state=eR):this._reconsumeInState(eM)}[eR](e){var n;ez(e)||eG(e)||e$(e)?this._reconsumeInState(eI):(this._err(s.absenceOfDigitsInNumericCharacterReference),this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState))}[eM](e){ez(e)?this._reconsumeInState(eL):(this._err(s.absenceOfDigitsInNumericCharacterReference),this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState))}[eI](e){eG(e)?this.charRefCode=16*this.charRefCode+e-55:e$(e)?this.charRefCode=16*this.charRefCode+e-87:ez(e)?this.charRefCode=16*this.charRefCode+e-48:e===l.SEMICOLON?this.state=eP:(this._err(s.missingSemicolonAfterCharacterReference),this._reconsumeInState(eP))}[eL](e){ez(e)?this.charRefCode=10*this.charRefCode+e-48:e===l.SEMICOLON?this.state=eP:(this._err(s.missingSemicolonAfterCharacterReference),this._reconsumeInState(eP))}[eP](){if(this.charRefCode===l.NULL)this._err(s.nullCharacterReference),this.charRefCode=l.REPLACEMENT_CHARACTER;else if(this.charRefCode>1114111)this._err(s.characterReferenceOutsideUnicodeRange),this.charRefCode=l.REPLACEMENT_CHARACTER;else if(i.isSurrogate(this.charRefCode))this._err(s.surrogateCharacterReference),this.charRefCode=l.REPLACEMENT_CHARACTER;else if(i.isUndefinedCodePoint(this.charRefCode))this._err(s.noncharacterCharacterReference);else if(i.isControlCodePoint(this.charRefCode)||this.charRefCode===l.CARRIAGE_RETURN){this._err(s.controlCharacterReference);let e=c[this.charRefCode];e&&(this.charRefCode=e)}this.tempBuff=[this.charRefCode],this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState)}}eY.CHARACTER_TOKEN="CHARACTER_TOKEN",eY.NULL_CHARACTER_TOKEN="NULL_CHARACTER_TOKEN",eY.WHITESPACE_CHARACTER_TOKEN="WHITESPACE_CHARACTER_TOKEN",eY.START_TAG_TOKEN="START_TAG_TOKEN",eY.END_TAG_TOKEN="END_TAG_TOKEN",eY.COMMENT_TOKEN="COMMENT_TOKEN",eY.DOCTYPE_TOKEN="DOCTYPE_TOKEN",eY.EOF_TOKEN="EOF_TOKEN",eY.HIBERNATION_TOKEN="HIBERNATION_TOKEN",eY.MODE={DATA:p,RCDATA:m,RAWTEXT:d,SCRIPT_DATA:h,PLAINTEXT:f},eY.getTokenAttr=function(e,n){for(let r=e.attrs.length-1;r>=0;r--)if(e.attrs[r].name===n)return e.attrs[r].value;return null},e.exports=eY},30959:function(e){"use strict";e.exports=new Uint16Array([4,52,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,106,303,412,810,1432,1701,1796,1987,2114,2360,2420,2484,3170,3251,4140,4393,4575,4610,5106,5512,5728,6117,6274,6315,6345,6427,6516,7002,7910,8733,9323,9870,10170,10631,10893,11318,11386,11467,12773,13092,14474,14922,15448,15542,16419,17666,18166,18611,19004,19095,19298,19397,4,16,69,77,97,98,99,102,103,108,109,110,111,112,114,115,116,117,140,150,158,169,176,194,199,210,216,222,226,242,256,266,283,294,108,105,103,5,198,1,59,148,1,198,80,5,38,1,59,156,1,38,99,117,116,101,5,193,1,59,167,1,193,114,101,118,101,59,1,258,4,2,105,121,182,191,114,99,5,194,1,59,189,1,194,59,1,1040,114,59,3,55349,56580,114,97,118,101,5,192,1,59,208,1,192,112,104,97,59,1,913,97,99,114,59,1,256,100,59,1,10835,4,2,103,112,232,237,111,110,59,1,260,102,59,3,55349,56632,112,108,121,70,117,110,99,116,105,111,110,59,1,8289,105,110,103,5,197,1,59,264,1,197,4,2,99,115,272,277,114,59,3,55349,56476,105,103,110,59,1,8788,105,108,100,101,5,195,1,59,292,1,195,109,108,5,196,1,59,301,1,196,4,8,97,99,101,102,111,114,115,117,321,350,354,383,388,394,400,405,4,2,99,114,327,336,107,115,108,97,115,104,59,1,8726,4,2,118,119,342,345,59,1,10983,101,100,59,1,8966,121,59,1,1041,4,3,99,114,116,362,369,379,97,117,115,101,59,1,8757,110,111,117,108,108,105,115,59,1,8492,97,59,1,914,114,59,3,55349,56581,112,102,59,3,55349,56633,101,118,101,59,1,728,99,114,59,1,8492,109,112,101,113,59,1,8782,4,14,72,79,97,99,100,101,102,104,105,108,111,114,115,117,442,447,456,504,542,547,569,573,577,616,678,784,790,796,99,121,59,1,1063,80,89,5,169,1,59,454,1,169,4,3,99,112,121,464,470,497,117,116,101,59,1,262,4,2,59,105,476,478,1,8914,116,97,108,68,105,102,102,101,114,101,110,116,105,97,108,68,59,1,8517,108,101,121,115,59,1,8493,4,4,97,101,105,111,514,520,530,535,114,111,110,59,1,268,100,105,108,5,199,1,59,528,1,199,114,99,59,1,264,110,105,110,116,59,1,8752,111,116,59,1,266,4,2,100,110,553,560,105,108,108,97,59,1,184,116,101,114,68,111,116,59,1,183,114,59,1,8493,105,59,1,935,114,99,108,101,4,4,68,77,80,84,591,596,603,609,111,116,59,1,8857,105,110,117,115,59,1,8854,108,117,115,59,1,8853,105,109,101,115,59,1,8855,111,4,2,99,115,623,646,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8754,101,67,117,114,108,121,4,2,68,81,658,671,111,117,98,108,101,81,117,111,116,101,59,1,8221,117,111,116,101,59,1,8217,4,4,108,110,112,117,688,701,736,753,111,110,4,2,59,101,696,698,1,8759,59,1,10868,4,3,103,105,116,709,717,722,114,117,101,110,116,59,1,8801,110,116,59,1,8751,111,117,114,73,110,116,101,103,114,97,108,59,1,8750,4,2,102,114,742,745,59,1,8450,111,100,117,99,116,59,1,8720,110,116,101,114,67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8755,111,115,115,59,1,10799,99,114,59,3,55349,56478,112,4,2,59,67,803,805,1,8915,97,112,59,1,8781,4,11,68,74,83,90,97,99,101,102,105,111,115,834,850,855,860,865,888,903,916,921,1011,1415,4,2,59,111,840,842,1,8517,116,114,97,104,100,59,1,10513,99,121,59,1,1026,99,121,59,1,1029,99,121,59,1,1039,4,3,103,114,115,873,879,883,103,101,114,59,1,8225,114,59,1,8609,104,118,59,1,10980,4,2,97,121,894,900,114,111,110,59,1,270,59,1,1044,108,4,2,59,116,910,912,1,8711,97,59,1,916,114,59,3,55349,56583,4,2,97,102,927,998,4,2,99,109,933,992,114,105,116,105,99,97,108,4,4,65,68,71,84,950,957,978,985,99,117,116,101,59,1,180,111,4,2,116,117,964,967,59,1,729,98,108,101,65,99,117,116,101,59,1,733,114,97,118,101,59,1,96,105,108,100,101,59,1,732,111,110,100,59,1,8900,102,101,114,101,110,116,105,97,108,68,59,1,8518,4,4,112,116,117,119,1021,1026,1048,1249,102,59,3,55349,56635,4,3,59,68,69,1034,1036,1041,1,168,111,116,59,1,8412,113,117,97,108,59,1,8784,98,108,101,4,6,67,68,76,82,85,86,1065,1082,1101,1189,1211,1236,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8751,111,4,2,116,119,1089,1092,59,1,168,110,65,114,114,111,119,59,1,8659,4,2,101,111,1107,1141,102,116,4,3,65,82,84,1117,1124,1136,114,114,111,119,59,1,8656,105,103,104,116,65,114,114,111,119,59,1,8660,101,101,59,1,10980,110,103,4,2,76,82,1149,1177,101,102,116,4,2,65,82,1158,1165,114,114,111,119,59,1,10232,105,103,104,116,65,114,114,111,119,59,1,10234,105,103,104,116,65,114,114,111,119,59,1,10233,105,103,104,116,4,2,65,84,1199,1206,114,114,111,119,59,1,8658,101,101,59,1,8872,112,4,2,65,68,1218,1225,114,114,111,119,59,1,8657,111,119,110,65,114,114,111,119,59,1,8661,101,114,116,105,99,97,108,66,97,114,59,1,8741,110,4,6,65,66,76,82,84,97,1264,1292,1299,1352,1391,1408,114,114,111,119,4,3,59,66,85,1276,1278,1283,1,8595,97,114,59,1,10515,112,65,114,114,111,119,59,1,8693,114,101,118,101,59,1,785,101,102,116,4,3,82,84,86,1310,1323,1334,105,103,104,116,86,101,99,116,111,114,59,1,10576,101,101,86,101,99,116,111,114,59,1,10590,101,99,116,111,114,4,2,59,66,1345,1347,1,8637,97,114,59,1,10582,105,103,104,116,4,2,84,86,1362,1373,101,101,86,101,99,116,111,114,59,1,10591,101,99,116,111,114,4,2,59,66,1384,1386,1,8641,97,114,59,1,10583,101,101,4,2,59,65,1399,1401,1,8868,114,114,111,119,59,1,8615,114,114,111,119,59,1,8659,4,2,99,116,1421,1426,114,59,3,55349,56479,114,111,107,59,1,272,4,16,78,84,97,99,100,102,103,108,109,111,112,113,115,116,117,120,1466,1470,1478,1489,1515,1520,1525,1536,1544,1593,1609,1617,1650,1664,1668,1677,71,59,1,330,72,5,208,1,59,1476,1,208,99,117,116,101,5,201,1,59,1487,1,201,4,3,97,105,121,1497,1503,1512,114,111,110,59,1,282,114,99,5,202,1,59,1510,1,202,59,1,1069,111,116,59,1,278,114,59,3,55349,56584,114,97,118,101,5,200,1,59,1534,1,200,101,109,101,110,116,59,1,8712,4,2,97,112,1550,1555,99,114,59,1,274,116,121,4,2,83,86,1563,1576,109,97,108,108,83,113,117,97,114,101,59,1,9723,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9643,4,2,103,112,1599,1604,111,110,59,1,280,102,59,3,55349,56636,115,105,108,111,110,59,1,917,117,4,2,97,105,1624,1640,108,4,2,59,84,1631,1633,1,10869,105,108,100,101,59,1,8770,108,105,98,114,105,117,109,59,1,8652,4,2,99,105,1656,1660,114,59,1,8496,109,59,1,10867,97,59,1,919,109,108,5,203,1,59,1675,1,203,4,2,105,112,1683,1689,115,116,115,59,1,8707,111,110,101,110,116,105,97,108,69,59,1,8519,4,5,99,102,105,111,115,1713,1717,1722,1762,1791,121,59,1,1060,114,59,3,55349,56585,108,108,101,100,4,2,83,86,1732,1745,109,97,108,108,83,113,117,97,114,101,59,1,9724,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9642,4,3,112,114,117,1770,1775,1781,102,59,3,55349,56637,65,108,108,59,1,8704,114,105,101,114,116,114,102,59,1,8497,99,114,59,1,8497,4,12,74,84,97,98,99,100,102,103,111,114,115,116,1822,1827,1834,1848,1855,1877,1882,1887,1890,1896,1978,1984,99,121,59,1,1027,5,62,1,59,1832,1,62,109,109,97,4,2,59,100,1843,1845,1,915,59,1,988,114,101,118,101,59,1,286,4,3,101,105,121,1863,1869,1874,100,105,108,59,1,290,114,99,59,1,284,59,1,1043,111,116,59,1,288,114,59,3,55349,56586,59,1,8921,112,102,59,3,55349,56638,101,97,116,101,114,4,6,69,70,71,76,83,84,1915,1933,1944,1953,1959,1971,113,117,97,108,4,2,59,76,1925,1927,1,8805,101,115,115,59,1,8923,117,108,108,69,113,117,97,108,59,1,8807,114,101,97,116,101,114,59,1,10914,101,115,115,59,1,8823,108,97,110,116,69,113,117,97,108,59,1,10878,105,108,100,101,59,1,8819,99,114,59,3,55349,56482,59,1,8811,4,8,65,97,99,102,105,111,115,117,2005,2012,2026,2032,2036,2049,2073,2089,82,68,99,121,59,1,1066,4,2,99,116,2018,2023,101,107,59,1,711,59,1,94,105,114,99,59,1,292,114,59,1,8460,108,98,101,114,116,83,112,97,99,101,59,1,8459,4,2,112,114,2055,2059,102,59,1,8461,105,122,111,110,116,97,108,76,105,110,101,59,1,9472,4,2,99,116,2079,2083,114,59,1,8459,114,111,107,59,1,294,109,112,4,2,68,69,2097,2107,111,119,110,72,117,109,112,59,1,8782,113,117,97,108,59,1,8783,4,14,69,74,79,97,99,100,102,103,109,110,111,115,116,117,2144,2149,2155,2160,2171,2189,2194,2198,2209,2245,2307,2329,2334,2341,99,121,59,1,1045,108,105,103,59,1,306,99,121,59,1,1025,99,117,116,101,5,205,1,59,2169,1,205,4,2,105,121,2177,2186,114,99,5,206,1,59,2184,1,206,59,1,1048,111,116,59,1,304,114,59,1,8465,114,97,118,101,5,204,1,59,2207,1,204,4,3,59,97,112,2217,2219,2238,1,8465,4,2,99,103,2225,2229,114,59,1,298,105,110,97,114,121,73,59,1,8520,108,105,101,115,59,1,8658,4,2,116,118,2251,2281,4,2,59,101,2257,2259,1,8748,4,2,103,114,2265,2271,114,97,108,59,1,8747,115,101,99,116,105,111,110,59,1,8898,105,115,105,98,108,101,4,2,67,84,2293,2300,111,109,109,97,59,1,8291,105,109,101,115,59,1,8290,4,3,103,112,116,2315,2320,2325,111,110,59,1,302,102,59,3,55349,56640,97,59,1,921,99,114,59,1,8464,105,108,100,101,59,1,296,4,2,107,109,2347,2352,99,121,59,1,1030,108,5,207,1,59,2358,1,207,4,5,99,102,111,115,117,2372,2386,2391,2397,2414,4,2,105,121,2378,2383,114,99,59,1,308,59,1,1049,114,59,3,55349,56589,112,102,59,3,55349,56641,4,2,99,101,2403,2408,114,59,3,55349,56485,114,99,121,59,1,1032,107,99,121,59,1,1028,4,7,72,74,97,99,102,111,115,2436,2441,2446,2452,2467,2472,2478,99,121,59,1,1061,99,121,59,1,1036,112,112,97,59,1,922,4,2,101,121,2458,2464,100,105,108,59,1,310,59,1,1050,114,59,3,55349,56590,112,102,59,3,55349,56642,99,114,59,3,55349,56486,4,11,74,84,97,99,101,102,108,109,111,115,116,2508,2513,2520,2562,2585,2981,2986,3004,3011,3146,3167,99,121,59,1,1033,5,60,1,59,2518,1,60,4,5,99,109,110,112,114,2532,2538,2544,2548,2558,117,116,101,59,1,313,98,100,97,59,1,923,103,59,1,10218,108,97,99,101,116,114,102,59,1,8466,114,59,1,8606,4,3,97,101,121,2570,2576,2582,114,111,110,59,1,317,100,105,108,59,1,315,59,1,1051,4,2,102,115,2591,2907,116,4,10,65,67,68,70,82,84,85,86,97,114,2614,2663,2672,2728,2735,2760,2820,2870,2888,2895,4,2,110,114,2620,2633,103,108,101,66,114,97,99,107,101,116,59,1,10216,114,111,119,4,3,59,66,82,2644,2646,2651,1,8592,97,114,59,1,8676,105,103,104,116,65,114,114,111,119,59,1,8646,101,105,108,105,110,103,59,1,8968,111,4,2,117,119,2679,2692,98,108,101,66,114,97,99,107,101,116,59,1,10214,110,4,2,84,86,2699,2710,101,101,86,101,99,116,111,114,59,1,10593,101,99,116,111,114,4,2,59,66,2721,2723,1,8643,97,114,59,1,10585,108,111,111,114,59,1,8970,105,103,104,116,4,2,65,86,2745,2752,114,114,111,119,59,1,8596,101,99,116,111,114,59,1,10574,4,2,101,114,2766,2792,101,4,3,59,65,86,2775,2777,2784,1,8867,114,114,111,119,59,1,8612,101,99,116,111,114,59,1,10586,105,97,110,103,108,101,4,3,59,66,69,2806,2808,2813,1,8882,97,114,59,1,10703,113,117,97,108,59,1,8884,112,4,3,68,84,86,2829,2841,2852,111,119,110,86,101,99,116,111,114,59,1,10577,101,101,86,101,99,116,111,114,59,1,10592,101,99,116,111,114,4,2,59,66,2863,2865,1,8639,97,114,59,1,10584,101,99,116,111,114,4,2,59,66,2881,2883,1,8636,97,114,59,1,10578,114,114,111,119,59,1,8656,105,103,104,116,97,114,114,111,119,59,1,8660,115,4,6,69,70,71,76,83,84,2922,2936,2947,2956,2962,2974,113,117,97,108,71,114,101,97,116,101,114,59,1,8922,117,108,108,69,113,117,97,108,59,1,8806,114,101,97,116,101,114,59,1,8822,101,115,115,59,1,10913,108,97,110,116,69,113,117,97,108,59,1,10877,105,108,100,101,59,1,8818,114,59,3,55349,56591,4,2,59,101,2992,2994,1,8920,102,116,97,114,114,111,119,59,1,8666,105,100,111,116,59,1,319,4,3,110,112,119,3019,3110,3115,103,4,4,76,82,108,114,3030,3058,3070,3098,101,102,116,4,2,65,82,3039,3046,114,114,111,119,59,1,10229,105,103,104,116,65,114,114,111,119,59,1,10231,105,103,104,116,65,114,114,111,119,59,1,10230,101,102,116,4,2,97,114,3079,3086,114,114,111,119,59,1,10232,105,103,104,116,97,114,114,111,119,59,1,10234,105,103,104,116,97,114,114,111,119,59,1,10233,102,59,3,55349,56643,101,114,4,2,76,82,3123,3134,101,102,116,65,114,114,111,119,59,1,8601,105,103,104,116,65,114,114,111,119,59,1,8600,4,3,99,104,116,3154,3158,3161,114,59,1,8466,59,1,8624,114,111,107,59,1,321,59,1,8810,4,8,97,99,101,102,105,111,115,117,3188,3192,3196,3222,3227,3237,3243,3248,112,59,1,10501,121,59,1,1052,4,2,100,108,3202,3213,105,117,109,83,112,97,99,101,59,1,8287,108,105,110,116,114,102,59,1,8499,114,59,3,55349,56592,110,117,115,80,108,117,115,59,1,8723,112,102,59,3,55349,56644,99,114,59,1,8499,59,1,924,4,9,74,97,99,101,102,111,115,116,117,3271,3276,3283,3306,3422,3427,4120,4126,4137,99,121,59,1,1034,99,117,116,101,59,1,323,4,3,97,101,121,3291,3297,3303,114,111,110,59,1,327,100,105,108,59,1,325,59,1,1053,4,3,103,115,119,3314,3380,3415,97,116,105,118,101,4,3,77,84,86,3327,3340,3365,101,100,105,117,109,83,112,97,99,101,59,1,8203,104,105,4,2,99,110,3348,3357,107,83,112,97,99,101,59,1,8203,83,112,97,99,101,59,1,8203,101,114,121,84,104,105,110,83,112,97,99,101,59,1,8203,116,101,100,4,2,71,76,3389,3405,114,101,97,116,101,114,71,114,101,97,116,101,114,59,1,8811,101,115,115,76,101,115,115,59,1,8810,76,105,110,101,59,1,10,114,59,3,55349,56593,4,4,66,110,112,116,3437,3444,3460,3464,114,101,97,107,59,1,8288,66,114,101,97,107,105,110,103,83,112,97,99,101,59,1,160,102,59,1,8469,4,13,59,67,68,69,71,72,76,78,80,82,83,84,86,3492,3494,3517,3536,3578,3657,3685,3784,3823,3860,3915,4066,4107,1,10988,4,2,111,117,3500,3510,110,103,114,117,101,110,116,59,1,8802,112,67,97,112,59,1,8813,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59,1,8742,4,3,108,113,120,3544,3552,3571,101,109,101,110,116,59,1,8713,117,97,108,4,2,59,84,3561,3563,1,8800,105,108,100,101,59,3,8770,824,105,115,116,115,59,1,8708,114,101,97,116,101,114,4,7,59,69,70,71,76,83,84,3600,3602,3609,3621,3631,3637,3650,1,8815,113,117,97,108,59,1,8817,117,108,108,69,113,117,97,108,59,3,8807,824,114,101,97,116,101,114,59,3,8811,824,101,115,115,59,1,8825,108,97,110,116,69,113,117,97,108,59,3,10878,824,105,108,100,101,59,1,8821,117,109,112,4,2,68,69,3666,3677,111,119,110,72,117,109,112,59,3,8782,824,113,117,97,108,59,3,8783,824,101,4,2,102,115,3692,3724,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3709,3711,3717,1,8938,97,114,59,3,10703,824,113,117,97,108,59,1,8940,115,4,6,59,69,71,76,83,84,3739,3741,3748,3757,3764,3777,1,8814,113,117,97,108,59,1,8816,114,101,97,116,101,114,59,1,8824,101,115,115,59,3,8810,824,108,97,110,116,69,113,117,97,108,59,3,10877,824,105,108,100,101,59,1,8820,101,115,116,101,100,4,2,71,76,3795,3812,114,101,97,116,101,114,71,114,101,97,116,101,114,59,3,10914,824,101,115,115,76,101,115,115,59,3,10913,824,114,101,99,101,100,101,115,4,3,59,69,83,3838,3840,3848,1,8832,113,117,97,108,59,3,10927,824,108,97,110,116,69,113,117,97,108,59,1,8928,4,2,101,105,3866,3881,118,101,114,115,101,69,108,101,109,101,110,116,59,1,8716,103,104,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3900,3902,3908,1,8939,97,114,59,3,10704,824,113,117,97,108,59,1,8941,4,2,113,117,3921,3973,117,97,114,101,83,117,4,2,98,112,3933,3952,115,101,116,4,2,59,69,3942,3945,3,8847,824,113,117,97,108,59,1,8930,101,114,115,101,116,4,2,59,69,3963,3966,3,8848,824,113,117,97,108,59,1,8931,4,3,98,99,112,3981,4e3,4045,115,101,116,4,2,59,69,3990,3993,3,8834,8402,113,117,97,108,59,1,8840,99,101,101,100,115,4,4,59,69,83,84,4015,4017,4025,4037,1,8833,113,117,97,108,59,3,10928,824,108,97,110,116,69,113,117,97,108,59,1,8929,105,108,100,101,59,3,8831,824,101,114,115,101,116,4,2,59,69,4056,4059,3,8835,8402,113,117,97,108,59,1,8841,105,108,100,101,4,4,59,69,70,84,4080,4082,4089,4100,1,8769,113,117,97,108,59,1,8772,117,108,108,69,113,117,97,108,59,1,8775,105,108,100,101,59,1,8777,101,114,116,105,99,97,108,66,97,114,59,1,8740,99,114,59,3,55349,56489,105,108,100,101,5,209,1,59,4135,1,209,59,1,925,4,14,69,97,99,100,102,103,109,111,112,114,115,116,117,118,4170,4176,4187,4205,4212,4217,4228,4253,4259,4292,4295,4316,4337,4346,108,105,103,59,1,338,99,117,116,101,5,211,1,59,4185,1,211,4,2,105,121,4193,4202,114,99,5,212,1,59,4200,1,212,59,1,1054,98,108,97,99,59,1,336,114,59,3,55349,56594,114,97,118,101,5,210,1,59,4226,1,210,4,3,97,101,105,4236,4241,4246,99,114,59,1,332,103,97,59,1,937,99,114,111,110,59,1,927,112,102,59,3,55349,56646,101,110,67,117,114,108,121,4,2,68,81,4272,4285,111,117,98,108,101,81,117,111,116,101,59,1,8220,117,111,116,101,59,1,8216,59,1,10836,4,2,99,108,4301,4306,114,59,3,55349,56490,97,115,104,5,216,1,59,4314,1,216,105,4,2,108,109,4323,4332,100,101,5,213,1,59,4330,1,213,101,115,59,1,10807,109,108,5,214,1,59,4344,1,214,101,114,4,2,66,80,4354,4380,4,2,97,114,4360,4364,114,59,1,8254,97,99,4,2,101,107,4372,4375,59,1,9182,101,116,59,1,9140,97,114,101,110,116,104,101,115,105,115,59,1,9180,4,9,97,99,102,104,105,108,111,114,115,4413,4422,4426,4431,4435,4438,4448,4471,4561,114,116,105,97,108,68,59,1,8706,121,59,1,1055,114,59,3,55349,56595,105,59,1,934,59,1,928,117,115,77,105,110,117,115,59,1,177,4,2,105,112,4454,4467,110,99,97,114,101,112,108,97,110,101,59,1,8460,102,59,1,8473,4,4,59,101,105,111,4481,4483,4526,4531,1,10939,99,101,100,101,115,4,4,59,69,83,84,4498,4500,4507,4519,1,8826,113,117,97,108,59,1,10927,108,97,110,116,69,113,117,97,108,59,1,8828,105,108,100,101,59,1,8830,109,101,59,1,8243,4,2,100,112,4537,4543,117,99,116,59,1,8719,111,114,116,105,111,110,4,2,59,97,4555,4557,1,8759,108,59,1,8733,4,2,99,105,4567,4572,114,59,3,55349,56491,59,1,936,4,4,85,102,111,115,4585,4594,4599,4604,79,84,5,34,1,59,4592,1,34,114,59,3,55349,56596,112,102,59,1,8474,99,114,59,3,55349,56492,4,12,66,69,97,99,101,102,104,105,111,114,115,117,4636,4642,4650,4681,4704,4763,4767,4771,5047,5069,5081,5094,97,114,114,59,1,10512,71,5,174,1,59,4648,1,174,4,3,99,110,114,4658,4664,4668,117,116,101,59,1,340,103,59,1,10219,114,4,2,59,116,4675,4677,1,8608,108,59,1,10518,4,3,97,101,121,4689,4695,4701,114,111,110,59,1,344,100,105,108,59,1,342,59,1,1056,4,2,59,118,4710,4712,1,8476,101,114,115,101,4,2,69,85,4722,4748,4,2,108,113,4728,4736,101,109,101,110,116,59,1,8715,117,105,108,105,98,114,105,117,109,59,1,8651,112,69,113,117,105,108,105,98,114,105,117,109,59,1,10607,114,59,1,8476,111,59,1,929,103,104,116,4,8,65,67,68,70,84,85,86,97,4792,4840,4849,4905,4912,4972,5022,5040,4,2,110,114,4798,4811,103,108,101,66,114,97,99,107,101,116,59,1,10217,114,111,119,4,3,59,66,76,4822,4824,4829,1,8594,97,114,59,1,8677,101,102,116,65,114,114,111,119,59,1,8644,101,105,108,105,110,103,59,1,8969,111,4,2,117,119,4856,4869,98,108,101,66,114,97,99,107,101,116,59,1,10215,110,4,2,84,86,4876,4887,101,101,86,101,99,116,111,114,59,1,10589,101,99,116,111,114,4,2,59,66,4898,4900,1,8642,97,114,59,1,10581,108,111,111,114,59,1,8971,4,2,101,114,4918,4944,101,4,3,59,65,86,4927,4929,4936,1,8866,114,114,111,119,59,1,8614,101,99,116,111,114,59,1,10587,105,97,110,103,108,101,4,3,59,66,69,4958,4960,4965,1,8883,97,114,59,1,10704,113,117,97,108,59,1,8885,112,4,3,68,84,86,4981,4993,5004,111,119,110,86,101,99,116,111,114,59,1,10575,101,101,86,101,99,116,111,114,59,1,10588,101,99,116,111,114,4,2,59,66,5015,5017,1,8638,97,114,59,1,10580,101,99,116,111,114,4,2,59,66,5033,5035,1,8640,97,114,59,1,10579,114,114,111,119,59,1,8658,4,2,112,117,5053,5057,102,59,1,8477,110,100,73,109,112,108,105,101,115,59,1,10608,105,103,104,116,97,114,114,111,119,59,1,8667,4,2,99,104,5087,5091,114,59,1,8475,59,1,8625,108,101,68,101,108,97,121,101,100,59,1,10740,4,13,72,79,97,99,102,104,105,109,111,113,115,116,117,5134,5150,5157,5164,5198,5203,5259,5265,5277,5283,5374,5380,5385,4,2,67,99,5140,5146,72,99,121,59,1,1065,121,59,1,1064,70,84,99,121,59,1,1068,99,117,116,101,59,1,346,4,5,59,97,101,105,121,5176,5178,5184,5190,5195,1,10940,114,111,110,59,1,352,100,105,108,59,1,350,114,99,59,1,348,59,1,1057,114,59,3,55349,56598,111,114,116,4,4,68,76,82,85,5216,5227,5238,5250,111,119,110,65,114,114,111,119,59,1,8595,101,102,116,65,114,114,111,119,59,1,8592,105,103,104,116,65,114,114,111,119,59,1,8594,112,65,114,114,111,119,59,1,8593,103,109,97,59,1,931,97,108,108,67,105,114,99,108,101,59,1,8728,112,102,59,3,55349,56650,4,2,114,117,5289,5293,116,59,1,8730,97,114,101,4,4,59,73,83,85,5306,5308,5322,5367,1,9633,110,116,101,114,115,101,99,116,105,111,110,59,1,8851,117,4,2,98,112,5329,5347,115,101,116,4,2,59,69,5338,5340,1,8847,113,117,97,108,59,1,8849,101,114,115,101,116,4,2,59,69,5358,5360,1,8848,113,117,97,108,59,1,8850,110,105,111,110,59,1,8852,99,114,59,3,55349,56494,97,114,59,1,8902,4,4,98,99,109,112,5395,5420,5475,5478,4,2,59,115,5401,5403,1,8912,101,116,4,2,59,69,5411,5413,1,8912,113,117,97,108,59,1,8838,4,2,99,104,5426,5468,101,101,100,115,4,4,59,69,83,84,5440,5442,5449,5461,1,8827,113,117,97,108,59,1,10928,108,97,110,116,69,113,117,97,108,59,1,8829,105,108,100,101,59,1,8831,84,104,97,116,59,1,8715,59,1,8721,4,3,59,101,115,5486,5488,5507,1,8913,114,115,101,116,4,2,59,69,5498,5500,1,8835,113,117,97,108,59,1,8839,101,116,59,1,8913,4,11,72,82,83,97,99,102,104,105,111,114,115,5536,5546,5552,5567,5579,5602,5607,5655,5695,5701,5711,79,82,78,5,222,1,59,5544,1,222,65,68,69,59,1,8482,4,2,72,99,5558,5563,99,121,59,1,1035,121,59,1,1062,4,2,98,117,5573,5576,59,1,9,59,1,932,4,3,97,101,121,5587,5593,5599,114,111,110,59,1,356,100,105,108,59,1,354,59,1,1058,114,59,3,55349,56599,4,2,101,105,5613,5631,4,2,114,116,5619,5627,101,102,111,114,101,59,1,8756,97,59,1,920,4,2,99,110,5637,5647,107,83,112,97,99,101,59,3,8287,8202,83,112,97,99,101,59,1,8201,108,100,101,4,4,59,69,70,84,5668,5670,5677,5688,1,8764,113,117,97,108,59,1,8771,117,108,108,69,113,117,97,108,59,1,8773,105,108,100,101,59,1,8776,112,102,59,3,55349,56651,105,112,108,101,68,111,116,59,1,8411,4,2,99,116,5717,5722,114,59,3,55349,56495,114,111,107,59,1,358,4,14,97,98,99,100,102,103,109,110,111,112,114,115,116,117,5758,5789,5805,5823,5830,5835,5846,5852,5921,5937,6089,6095,6101,6108,4,2,99,114,5764,5774,117,116,101,5,218,1,59,5772,1,218,114,4,2,59,111,5781,5783,1,8607,99,105,114,59,1,10569,114,4,2,99,101,5796,5800,121,59,1,1038,118,101,59,1,364,4,2,105,121,5811,5820,114,99,5,219,1,59,5818,1,219,59,1,1059,98,108,97,99,59,1,368,114,59,3,55349,56600,114,97,118,101,5,217,1,59,5844,1,217,97,99,114,59,1,362,4,2,100,105,5858,5905,101,114,4,2,66,80,5866,5892,4,2,97,114,5872,5876,114,59,1,95,97,99,4,2,101,107,5884,5887,59,1,9183,101,116,59,1,9141,97,114,101,110,116,104,101,115,105,115,59,1,9181,111,110,4,2,59,80,5913,5915,1,8899,108,117,115,59,1,8846,4,2,103,112,5927,5932,111,110,59,1,370,102,59,3,55349,56652,4,8,65,68,69,84,97,100,112,115,5955,5985,5996,6009,6026,6033,6044,6075,114,114,111,119,4,3,59,66,68,5967,5969,5974,1,8593,97,114,59,1,10514,111,119,110,65,114,114,111,119,59,1,8645,111,119,110,65,114,114,111,119,59,1,8597,113,117,105,108,105,98,114,105,117,109,59,1,10606,101,101,4,2,59,65,6017,6019,1,8869,114,114,111,119,59,1,8613,114,114,111,119,59,1,8657,111,119,110,97,114,114,111,119,59,1,8661,101,114,4,2,76,82,6052,6063,101,102,116,65,114,114,111,119,59,1,8598,105,103,104,116,65,114,114,111,119,59,1,8599,105,4,2,59,108,6082,6084,1,978,111,110,59,1,933,105,110,103,59,1,366,99,114,59,3,55349,56496,105,108,100,101,59,1,360,109,108,5,220,1,59,6115,1,220,4,9,68,98,99,100,101,102,111,115,118,6137,6143,6148,6152,6166,6250,6255,6261,6267,97,115,104,59,1,8875,97,114,59,1,10987,121,59,1,1042,97,115,104,4,2,59,108,6161,6163,1,8873,59,1,10982,4,2,101,114,6172,6175,59,1,8897,4,3,98,116,121,6183,6188,6238,97,114,59,1,8214,4,2,59,105,6194,6196,1,8214,99,97,108,4,4,66,76,83,84,6209,6214,6220,6231,97,114,59,1,8739,105,110,101,59,1,124,101,112,97,114,97,116,111,114,59,1,10072,105,108,100,101,59,1,8768,84,104,105,110,83,112,97,99,101,59,1,8202,114,59,3,55349,56601,112,102,59,3,55349,56653,99,114,59,3,55349,56497,100,97,115,104,59,1,8874,4,5,99,101,102,111,115,6286,6292,6298,6303,6309,105,114,99,59,1,372,100,103,101,59,1,8896,114,59,3,55349,56602,112,102,59,3,55349,56654,99,114,59,3,55349,56498,4,4,102,105,111,115,6325,6330,6333,6339,114,59,3,55349,56603,59,1,926,112,102,59,3,55349,56655,99,114,59,3,55349,56499,4,9,65,73,85,97,99,102,111,115,117,6365,6370,6375,6380,6391,6405,6410,6416,6422,99,121,59,1,1071,99,121,59,1,1031,99,121,59,1,1070,99,117,116,101,5,221,1,59,6389,1,221,4,2,105,121,6397,6402,114,99,59,1,374,59,1,1067,114,59,3,55349,56604,112,102,59,3,55349,56656,99,114,59,3,55349,56500,109,108,59,1,376,4,8,72,97,99,100,101,102,111,115,6445,6450,6457,6472,6477,6501,6505,6510,99,121,59,1,1046,99,117,116,101,59,1,377,4,2,97,121,6463,6469,114,111,110,59,1,381,59,1,1047,111,116,59,1,379,4,2,114,116,6483,6497,111,87,105,100,116,104,83,112,97,99,101,59,1,8203,97,59,1,918,114,59,1,8488,112,102,59,1,8484,99,114,59,3,55349,56501,4,16,97,98,99,101,102,103,108,109,110,111,112,114,115,116,117,119,6550,6561,6568,6612,6622,6634,6645,6672,6699,6854,6870,6923,6933,6963,6974,6983,99,117,116,101,5,225,1,59,6559,1,225,114,101,118,101,59,1,259,4,6,59,69,100,105,117,121,6582,6584,6588,6591,6600,6609,1,8766,59,3,8766,819,59,1,8767,114,99,5,226,1,59,6598,1,226,116,101,5,180,1,59,6607,1,180,59,1,1072,108,105,103,5,230,1,59,6620,1,230,4,2,59,114,6628,6630,1,8289,59,3,55349,56606,114,97,118,101,5,224,1,59,6643,1,224,4,2,101,112,6651,6667,4,2,102,112,6657,6663,115,121,109,59,1,8501,104,59,1,8501,104,97,59,1,945,4,2,97,112,6678,6692,4,2,99,108,6684,6688,114,59,1,257,103,59,1,10815,5,38,1,59,6697,1,38,4,2,100,103,6705,6737,4,5,59,97,100,115,118,6717,6719,6724,6727,6734,1,8743,110,100,59,1,10837,59,1,10844,108,111,112,101,59,1,10840,59,1,10842,4,7,59,101,108,109,114,115,122,6753,6755,6758,6762,6814,6835,6848,1,8736,59,1,10660,101,59,1,8736,115,100,4,2,59,97,6770,6772,1,8737,4,8,97,98,99,100,101,102,103,104,6790,6793,6796,6799,6802,6805,6808,6811,59,1,10664,59,1,10665,59,1,10666,59,1,10667,59,1,10668,59,1,10669,59,1,10670,59,1,10671,116,4,2,59,118,6821,6823,1,8735,98,4,2,59,100,6830,6832,1,8894,59,1,10653,4,2,112,116,6841,6845,104,59,1,8738,59,1,197,97,114,114,59,1,9084,4,2,103,112,6860,6865,111,110,59,1,261,102,59,3,55349,56658,4,7,59,69,97,101,105,111,112,6886,6888,6891,6897,6900,6904,6908,1,8776,59,1,10864,99,105,114,59,1,10863,59,1,8778,100,59,1,8779,115,59,1,39,114,111,120,4,2,59,101,6917,6919,1,8776,113,59,1,8778,105,110,103,5,229,1,59,6931,1,229,4,3,99,116,121,6941,6946,6949,114,59,3,55349,56502,59,1,42,109,112,4,2,59,101,6957,6959,1,8776,113,59,1,8781,105,108,100,101,5,227,1,59,6972,1,227,109,108,5,228,1,59,6981,1,228,4,2,99,105,6989,6997,111,110,105,110,116,59,1,8755,110,116,59,1,10769,4,16,78,97,98,99,100,101,102,105,107,108,110,111,112,114,115,117,7036,7041,7119,7135,7149,7155,7219,7224,7347,7354,7463,7489,7786,7793,7814,7866,111,116,59,1,10989,4,2,99,114,7047,7094,107,4,4,99,101,112,115,7058,7064,7073,7080,111,110,103,59,1,8780,112,115,105,108,111,110,59,1,1014,114,105,109,101,59,1,8245,105,109,4,2,59,101,7088,7090,1,8765,113,59,1,8909,4,2,118,119,7100,7105,101,101,59,1,8893,101,100,4,2,59,103,7113,7115,1,8965,101,59,1,8965,114,107,4,2,59,116,7127,7129,1,9141,98,114,107,59,1,9142,4,2,111,121,7141,7146,110,103,59,1,8780,59,1,1073,113,117,111,59,1,8222,4,5,99,109,112,114,116,7167,7181,7188,7193,7199,97,117,115,4,2,59,101,7176,7178,1,8757,59,1,8757,112,116,121,118,59,1,10672,115,105,59,1,1014,110,111,117,59,1,8492,4,3,97,104,119,7207,7210,7213,59,1,946,59,1,8502,101,101,110,59,1,8812,114,59,3,55349,56607,103,4,7,99,111,115,116,117,118,119,7241,7262,7288,7305,7328,7335,7340,4,3,97,105,117,7249,7253,7258,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,4,3,100,112,116,7270,7275,7281,111,116,59,1,10752,108,117,115,59,1,10753,105,109,101,115,59,1,10754,4,2,113,116,7294,7300,99,117,112,59,1,10758,97,114,59,1,9733,114,105,97,110,103,108,101,4,2,100,117,7318,7324,111,119,110,59,1,9661,112,59,1,9651,112,108,117,115,59,1,10756,101,101,59,1,8897,101,100,103,101,59,1,8896,97,114,111,119,59,1,10509,4,3,97,107,111,7362,7436,7458,4,2,99,110,7368,7432,107,4,3,108,115,116,7377,7386,7394,111,122,101,110,103,101,59,1,10731,113,117,97,114,101,59,1,9642,114,105,97,110,103,108,101,4,4,59,100,108,114,7411,7413,7419,7425,1,9652,111,119,110,59,1,9662,101,102,116,59,1,9666,105,103,104,116,59,1,9656,107,59,1,9251,4,2,49,51,7442,7454,4,2,50,52,7448,7451,59,1,9618,59,1,9617,52,59,1,9619,99,107,59,1,9608,4,2,101,111,7469,7485,4,2,59,113,7475,7478,3,61,8421,117,105,118,59,3,8801,8421,116,59,1,8976,4,4,112,116,119,120,7499,7504,7517,7523,102,59,3,55349,56659,4,2,59,116,7510,7512,1,8869,111,109,59,1,8869,116,105,101,59,1,8904,4,12,68,72,85,86,98,100,104,109,112,116,117,118,7549,7571,7597,7619,7655,7660,7682,7708,7715,7721,7728,7750,4,4,76,82,108,114,7559,7562,7565,7568,59,1,9559,59,1,9556,59,1,9558,59,1,9555,4,5,59,68,85,100,117,7583,7585,7588,7591,7594,1,9552,59,1,9574,59,1,9577,59,1,9572,59,1,9575,4,4,76,82,108,114,7607,7610,7613,7616,59,1,9565,59,1,9562,59,1,9564,59,1,9561,4,7,59,72,76,82,104,108,114,7635,7637,7640,7643,7646,7649,7652,1,9553,59,1,9580,59,1,9571,59,1,9568,59,1,9579,59,1,9570,59,1,9567,111,120,59,1,10697,4,4,76,82,108,114,7670,7673,7676,7679,59,1,9557,59,1,9554,59,1,9488,59,1,9484,4,5,59,68,85,100,117,7694,7696,7699,7702,7705,1,9472,59,1,9573,59,1,9576,59,1,9516,59,1,9524,105,110,117,115,59,1,8863,108,117,115,59,1,8862,105,109,101,115,59,1,8864,4,4,76,82,108,114,7738,7741,7744,7747,59,1,9563,59,1,9560,59,1,9496,59,1,9492,4,7,59,72,76,82,104,108,114,7766,7768,7771,7774,7777,7780,7783,1,9474,59,1,9578,59,1,9569,59,1,9566,59,1,9532,59,1,9508,59,1,9500,114,105,109,101,59,1,8245,4,2,101,118,7799,7804,118,101,59,1,728,98,97,114,5,166,1,59,7812,1,166,4,4,99,101,105,111,7824,7829,7834,7846,114,59,3,55349,56503,109,105,59,1,8271,109,4,2,59,101,7841,7843,1,8765,59,1,8909,108,4,3,59,98,104,7855,7857,7860,1,92,59,1,10693,115,117,98,59,1,10184,4,2,108,109,7872,7885,108,4,2,59,101,7879,7881,1,8226,116,59,1,8226,112,4,3,59,69,101,7894,7896,7899,1,8782,59,1,10926,4,2,59,113,7905,7907,1,8783,59,1,8783,4,15,97,99,100,101,102,104,105,108,111,114,115,116,117,119,121,7942,8021,8075,8080,8121,8126,8157,8279,8295,8430,8446,8485,8491,8707,8726,4,3,99,112,114,7950,7956,8007,117,116,101,59,1,263,4,6,59,97,98,99,100,115,7970,7972,7977,7984,7998,8003,1,8745,110,100,59,1,10820,114,99,117,112,59,1,10825,4,2,97,117,7990,7994,112,59,1,10827,112,59,1,10823,111,116,59,1,10816,59,3,8745,65024,4,2,101,111,8013,8017,116,59,1,8257,110,59,1,711,4,4,97,101,105,117,8031,8046,8056,8061,4,2,112,114,8037,8041,115,59,1,10829,111,110,59,1,269,100,105,108,5,231,1,59,8054,1,231,114,99,59,1,265,112,115,4,2,59,115,8069,8071,1,10828,109,59,1,10832,111,116,59,1,267,4,3,100,109,110,8088,8097,8104,105,108,5,184,1,59,8095,1,184,112,116,121,118,59,1,10674,116,5,162,2,59,101,8112,8114,1,162,114,100,111,116,59,1,183,114,59,3,55349,56608,4,3,99,101,105,8134,8138,8154,121,59,1,1095,99,107,4,2,59,109,8146,8148,1,10003,97,114,107,59,1,10003,59,1,967,114,4,7,59,69,99,101,102,109,115,8174,8176,8179,8258,8261,8268,8273,1,9675,59,1,10691,4,3,59,101,108,8187,8189,8193,1,710,113,59,1,8791,101,4,2,97,100,8200,8223,114,114,111,119,4,2,108,114,8210,8216,101,102,116,59,1,8634,105,103,104,116,59,1,8635,4,5,82,83,97,99,100,8235,8238,8241,8246,8252,59,1,174,59,1,9416,115,116,59,1,8859,105,114,99,59,1,8858,97,115,104,59,1,8861,59,1,8791,110,105,110,116,59,1,10768,105,100,59,1,10991,99,105,114,59,1,10690,117,98,115,4,2,59,117,8288,8290,1,9827,105,116,59,1,9827,4,4,108,109,110,112,8305,8326,8376,8400,111,110,4,2,59,101,8313,8315,1,58,4,2,59,113,8321,8323,1,8788,59,1,8788,4,2,109,112,8332,8344,97,4,2,59,116,8339,8341,1,44,59,1,64,4,3,59,102,108,8352,8354,8358,1,8705,110,59,1,8728,101,4,2,109,120,8365,8371,101,110,116,59,1,8705,101,115,59,1,8450,4,2,103,105,8382,8395,4,2,59,100,8388,8390,1,8773,111,116,59,1,10861,110,116,59,1,8750,4,3,102,114,121,8408,8412,8417,59,3,55349,56660,111,100,59,1,8720,5,169,2,59,115,8424,8426,1,169,114,59,1,8471,4,2,97,111,8436,8441,114,114,59,1,8629,115,115,59,1,10007,4,2,99,117,8452,8457,114,59,3,55349,56504,4,2,98,112,8463,8474,4,2,59,101,8469,8471,1,10959,59,1,10961,4,2,59,101,8480,8482,1,10960,59,1,10962,100,111,116,59,1,8943,4,7,100,101,108,112,114,118,119,8507,8522,8536,8550,8600,8697,8702,97,114,114,4,2,108,114,8516,8519,59,1,10552,59,1,10549,4,2,112,115,8528,8532,114,59,1,8926,99,59,1,8927,97,114,114,4,2,59,112,8545,8547,1,8630,59,1,10557,4,6,59,98,99,100,111,115,8564,8566,8573,8587,8592,8596,1,8746,114,99,97,112,59,1,10824,4,2,97,117,8579,8583,112,59,1,10822,112,59,1,10826,111,116,59,1,8845,114,59,1,10821,59,3,8746,65024,4,4,97,108,114,118,8610,8623,8663,8672,114,114,4,2,59,109,8618,8620,1,8631,59,1,10556,121,4,3,101,118,119,8632,8651,8656,113,4,2,112,115,8639,8645,114,101,99,59,1,8926,117,99,99,59,1,8927,101,101,59,1,8910,101,100,103,101,59,1,8911,101,110,5,164,1,59,8670,1,164,101,97,114,114,111,119,4,2,108,114,8684,8690,101,102,116,59,1,8630,105,103,104,116,59,1,8631,101,101,59,1,8910,101,100,59,1,8911,4,2,99,105,8713,8721,111,110,105,110,116,59,1,8754,110,116,59,1,8753,108,99,116,121,59,1,9005,4,19,65,72,97,98,99,100,101,102,104,105,106,108,111,114,115,116,117,119,122,8773,8778,8783,8821,8839,8854,8887,8914,8930,8944,9036,9041,9058,9197,9227,9258,9281,9297,9305,114,114,59,1,8659,97,114,59,1,10597,4,4,103,108,114,115,8793,8799,8805,8809,103,101,114,59,1,8224,101,116,104,59,1,8504,114,59,1,8595,104,4,2,59,118,8816,8818,1,8208,59,1,8867,4,2,107,108,8827,8834,97,114,111,119,59,1,10511,97,99,59,1,733,4,2,97,121,8845,8851,114,111,110,59,1,271,59,1,1076,4,3,59,97,111,8862,8864,8880,1,8518,4,2,103,114,8870,8876,103,101,114,59,1,8225,114,59,1,8650,116,115,101,113,59,1,10871,4,3,103,108,109,8895,8902,8907,5,176,1,59,8900,1,176,116,97,59,1,948,112,116,121,118,59,1,10673,4,2,105,114,8920,8926,115,104,116,59,1,10623,59,3,55349,56609,97,114,4,2,108,114,8938,8941,59,1,8643,59,1,8642,4,5,97,101,103,115,118,8956,8986,8989,8996,9001,109,4,3,59,111,115,8965,8967,8983,1,8900,110,100,4,2,59,115,8975,8977,1,8900,117,105,116,59,1,9830,59,1,9830,59,1,168,97,109,109,97,59,1,989,105,110,59,1,8946,4,3,59,105,111,9009,9011,9031,1,247,100,101,5,247,2,59,111,9020,9022,1,247,110,116,105,109,101,115,59,1,8903,110,120,59,1,8903,99,121,59,1,1106,99,4,2,111,114,9048,9053,114,110,59,1,8990,111,112,59,1,8973,4,5,108,112,116,117,119,9070,9076,9081,9130,9144,108,97,114,59,1,36,102,59,3,55349,56661,4,5,59,101,109,112,115,9093,9095,9109,9116,9122,1,729,113,4,2,59,100,9102,9104,1,8784,111,116,59,1,8785,105,110,117,115,59,1,8760,108,117,115,59,1,8724,113,117,97,114,101,59,1,8865,98,108,101,98,97,114,119,101,100,103,101,59,1,8966,110,4,3,97,100,104,9153,9160,9172,114,114,111,119,59,1,8595,111,119,110,97,114,114,111,119,115,59,1,8650,97,114,112,111,111,110,4,2,108,114,9184,9190,101,102,116,59,1,8643,105,103,104,116,59,1,8642,4,2,98,99,9203,9211,107,97,114,111,119,59,1,10512,4,2,111,114,9217,9222,114,110,59,1,8991,111,112,59,1,8972,4,3,99,111,116,9235,9248,9252,4,2,114,121,9241,9245,59,3,55349,56505,59,1,1109,108,59,1,10742,114,111,107,59,1,273,4,2,100,114,9264,9269,111,116,59,1,8945,105,4,2,59,102,9276,9278,1,9663,59,1,9662,4,2,97,104,9287,9292,114,114,59,1,8693,97,114,59,1,10607,97,110,103,108,101,59,1,10662,4,2,99,105,9311,9315,121,59,1,1119,103,114,97,114,114,59,1,10239,4,18,68,97,99,100,101,102,103,108,109,110,111,112,113,114,115,116,117,120,9361,9376,9398,9439,9444,9447,9462,9495,9531,9585,9598,9614,9659,9755,9771,9792,9808,9826,4,2,68,111,9367,9372,111,116,59,1,10871,116,59,1,8785,4,2,99,115,9382,9392,117,116,101,5,233,1,59,9390,1,233,116,101,114,59,1,10862,4,4,97,105,111,121,9408,9414,9430,9436,114,111,110,59,1,283,114,4,2,59,99,9421,9423,1,8790,5,234,1,59,9428,1,234,108,111,110,59,1,8789,59,1,1101,111,116,59,1,279,59,1,8519,4,2,68,114,9453,9458,111,116,59,1,8786,59,3,55349,56610,4,3,59,114,115,9470,9472,9482,1,10906,97,118,101,5,232,1,59,9480,1,232,4,2,59,100,9488,9490,1,10902,111,116,59,1,10904,4,4,59,105,108,115,9505,9507,9515,9518,1,10905,110,116,101,114,115,59,1,9191,59,1,8467,4,2,59,100,9524,9526,1,10901,111,116,59,1,10903,4,3,97,112,115,9539,9544,9564,99,114,59,1,275,116,121,4,3,59,115,118,9554,9556,9561,1,8709,101,116,59,1,8709,59,1,8709,112,4,2,49,59,9571,9583,4,2,51,52,9577,9580,59,1,8196,59,1,8197,1,8195,4,2,103,115,9591,9594,59,1,331,112,59,1,8194,4,2,103,112,9604,9609,111,110,59,1,281,102,59,3,55349,56662,4,3,97,108,115,9622,9635,9640,114,4,2,59,115,9629,9631,1,8917,108,59,1,10723,117,115,59,1,10865,105,4,3,59,108,118,9649,9651,9656,1,949,111,110,59,1,949,59,1,1013,4,4,99,115,117,118,9669,9686,9716,9747,4,2,105,111,9675,9680,114,99,59,1,8790,108,111,110,59,1,8789,4,2,105,108,9692,9696,109,59,1,8770,97,110,116,4,2,103,108,9705,9710,116,114,59,1,10902,101,115,115,59,1,10901,4,3,97,101,105,9724,9729,9734,108,115,59,1,61,115,116,59,1,8799,118,4,2,59,68,9741,9743,1,8801,68,59,1,10872,112,97,114,115,108,59,1,10725,4,2,68,97,9761,9766,111,116,59,1,8787,114,114,59,1,10609,4,3,99,100,105,9779,9783,9788,114,59,1,8495,111,116,59,1,8784,109,59,1,8770,4,2,97,104,9798,9801,59,1,951,5,240,1,59,9806,1,240,4,2,109,114,9814,9822,108,5,235,1,59,9820,1,235,111,59,1,8364,4,3,99,105,112,9834,9838,9843,108,59,1,33,115,116,59,1,8707,4,2,101,111,9849,9859,99,116,97,116,105,111,110,59,1,8496,110,101,110,116,105,97,108,101,59,1,8519,4,12,97,99,101,102,105,106,108,110,111,112,114,115,9896,9910,9914,9921,9954,9960,9967,9989,9994,10027,10036,10164,108,108,105,110,103,100,111,116,115,101,113,59,1,8786,121,59,1,1092,109,97,108,101,59,1,9792,4,3,105,108,114,9929,9935,9950,108,105,103,59,1,64259,4,2,105,108,9941,9945,103,59,1,64256,105,103,59,1,64260,59,3,55349,56611,108,105,103,59,1,64257,108,105,103,59,3,102,106,4,3,97,108,116,9975,9979,9984,116,59,1,9837,105,103,59,1,64258,110,115,59,1,9649,111,102,59,1,402,4,2,112,114,1e4,10005,102,59,3,55349,56663,4,2,97,107,10011,10016,108,108,59,1,8704,4,2,59,118,10022,10024,1,8916,59,1,10969,97,114,116,105,110,116,59,1,10765,4,2,97,111,10042,10159,4,2,99,115,10048,10155,4,6,49,50,51,52,53,55,10062,10102,10114,10135,10139,10151,4,6,50,51,52,53,54,56,10076,10083,10086,10093,10096,10099,5,189,1,59,10081,1,189,59,1,8531,5,188,1,59,10091,1,188,59,1,8533,59,1,8537,59,1,8539,4,2,51,53,10108,10111,59,1,8532,59,1,8534,4,3,52,53,56,10122,10129,10132,5,190,1,59,10127,1,190,59,1,8535,59,1,8540,53,59,1,8536,4,2,54,56,10145,10148,59,1,8538,59,1,8541,56,59,1,8542,108,59,1,8260,119,110,59,1,8994,99,114,59,3,55349,56507,4,17,69,97,98,99,100,101,102,103,105,106,108,110,111,114,115,116,118,10206,10217,10247,10254,10268,10273,10358,10363,10374,10380,10385,10406,10458,10464,10470,10497,10610,4,2,59,108,10212,10214,1,8807,59,1,10892,4,3,99,109,112,10225,10231,10244,117,116,101,59,1,501,109,97,4,2,59,100,10239,10241,1,947,59,1,989,59,1,10886,114,101,118,101,59,1,287,4,2,105,121,10260,10265,114,99,59,1,285,59,1,1075,111,116,59,1,289,4,4,59,108,113,115,10283,10285,10288,10308,1,8805,59,1,8923,4,3,59,113,115,10296,10298,10301,1,8805,59,1,8807,108,97,110,116,59,1,10878,4,4,59,99,100,108,10318,10320,10324,10345,1,10878,99,59,1,10921,111,116,4,2,59,111,10332,10334,1,10880,4,2,59,108,10340,10342,1,10882,59,1,10884,4,2,59,101,10351,10354,3,8923,65024,115,59,1,10900,114,59,3,55349,56612,4,2,59,103,10369,10371,1,8811,59,1,8921,109,101,108,59,1,8503,99,121,59,1,1107,4,4,59,69,97,106,10395,10397,10400,10403,1,8823,59,1,10898,59,1,10917,59,1,10916,4,4,69,97,101,115,10416,10419,10434,10453,59,1,8809,112,4,2,59,112,10426,10428,1,10890,114,111,120,59,1,10890,4,2,59,113,10440,10442,1,10888,4,2,59,113,10448,10450,1,10888,59,1,8809,105,109,59,1,8935,112,102,59,3,55349,56664,97,118,101,59,1,96,4,2,99,105,10476,10480,114,59,1,8458,109,4,3,59,101,108,10489,10491,10494,1,8819,59,1,10894,59,1,10896,5,62,6,59,99,100,108,113,114,10512,10514,10527,10532,10538,10545,1,62,4,2,99,105,10520,10523,59,1,10919,114,59,1,10874,111,116,59,1,8919,80,97,114,59,1,10645,117,101,115,116,59,1,10876,4,5,97,100,101,108,115,10557,10574,10579,10599,10605,4,2,112,114,10563,10570,112,114,111,120,59,1,10886,114,59,1,10616,111,116,59,1,8919,113,4,2,108,113,10586,10592,101,115,115,59,1,8923,108,101,115,115,59,1,10892,101,115,115,59,1,8823,105,109,59,1,8819,4,2,101,110,10616,10626,114,116,110,101,113,113,59,3,8809,65024,69,59,3,8809,65024,4,10,65,97,98,99,101,102,107,111,115,121,10653,10658,10713,10718,10724,10760,10765,10786,10850,10875,114,114,59,1,8660,4,4,105,108,109,114,10668,10674,10678,10684,114,115,112,59,1,8202,102,59,1,189,105,108,116,59,1,8459,4,2,100,114,10690,10695,99,121,59,1,1098,4,3,59,99,119,10703,10705,10710,1,8596,105,114,59,1,10568,59,1,8621,97,114,59,1,8463,105,114,99,59,1,293,4,3,97,108,114,10732,10748,10754,114,116,115,4,2,59,117,10741,10743,1,9829,105,116,59,1,9829,108,105,112,59,1,8230,99,111,110,59,1,8889,114,59,3,55349,56613,115,4,2,101,119,10772,10779,97,114,111,119,59,1,10533,97,114,111,119,59,1,10534,4,5,97,109,111,112,114,10798,10803,10809,10839,10844,114,114,59,1,8703,116,104,116,59,1,8763,107,4,2,108,114,10816,10827,101,102,116,97,114,114,111,119,59,1,8617,105,103,104,116,97,114,114,111,119,59,1,8618,102,59,3,55349,56665,98,97,114,59,1,8213,4,3,99,108,116,10858,10863,10869,114,59,3,55349,56509,97,115,104,59,1,8463,114,111,107,59,1,295,4,2,98,112,10881,10887,117,108,108,59,1,8259,104,101,110,59,1,8208,4,15,97,99,101,102,103,105,106,109,110,111,112,113,115,116,117,10925,10936,10958,10977,10990,11001,11039,11045,11101,11192,11220,11226,11237,11285,11299,99,117,116,101,5,237,1,59,10934,1,237,4,3,59,105,121,10944,10946,10955,1,8291,114,99,5,238,1,59,10953,1,238,59,1,1080,4,2,99,120,10964,10968,121,59,1,1077,99,108,5,161,1,59,10975,1,161,4,2,102,114,10983,10986,59,1,8660,59,3,55349,56614,114,97,118,101,5,236,1,59,10999,1,236,4,4,59,105,110,111,11011,11013,11028,11034,1,8520,4,2,105,110,11019,11024,110,116,59,1,10764,116,59,1,8749,102,105,110,59,1,10716,116,97,59,1,8489,108,105,103,59,1,307,4,3,97,111,112,11053,11092,11096,4,3,99,103,116,11061,11065,11088,114,59,1,299,4,3,101,108,112,11073,11076,11082,59,1,8465,105,110,101,59,1,8464,97,114,116,59,1,8465,104,59,1,305,102,59,1,8887,101,100,59,1,437,4,5,59,99,102,111,116,11113,11115,11121,11136,11142,1,8712,97,114,101,59,1,8453,105,110,4,2,59,116,11129,11131,1,8734,105,101,59,1,10717,100,111,116,59,1,305,4,5,59,99,101,108,112,11154,11156,11161,11179,11186,1,8747,97,108,59,1,8890,4,2,103,114,11167,11173,101,114,115,59,1,8484,99,97,108,59,1,8890,97,114,104,107,59,1,10775,114,111,100,59,1,10812,4,4,99,103,112,116,11202,11206,11211,11216,121,59,1,1105,111,110,59,1,303,102,59,3,55349,56666,97,59,1,953,114,111,100,59,1,10812,117,101,115,116,5,191,1,59,11235,1,191,4,2,99,105,11243,11248,114,59,3,55349,56510,110,4,5,59,69,100,115,118,11261,11263,11266,11271,11282,1,8712,59,1,8953,111,116,59,1,8949,4,2,59,118,11277,11279,1,8948,59,1,8947,59,1,8712,4,2,59,105,11291,11293,1,8290,108,100,101,59,1,297,4,2,107,109,11305,11310,99,121,59,1,1110,108,5,239,1,59,11316,1,239,4,6,99,102,109,111,115,117,11332,11346,11351,11357,11363,11380,4,2,105,121,11338,11343,114,99,59,1,309,59,1,1081,114,59,3,55349,56615,97,116,104,59,1,567,112,102,59,3,55349,56667,4,2,99,101,11369,11374,114,59,3,55349,56511,114,99,121,59,1,1112,107,99,121,59,1,1108,4,8,97,99,102,103,104,106,111,115,11404,11418,11433,11438,11445,11450,11455,11461,112,112,97,4,2,59,118,11413,11415,1,954,59,1,1008,4,2,101,121,11424,11430,100,105,108,59,1,311,59,1,1082,114,59,3,55349,56616,114,101,101,110,59,1,312,99,121,59,1,1093,99,121,59,1,1116,112,102,59,3,55349,56668,99,114,59,3,55349,56512,4,23,65,66,69,72,97,98,99,100,101,102,103,104,106,108,109,110,111,112,114,115,116,117,118,11515,11538,11544,11555,11560,11721,11780,11818,11868,12136,12160,12171,12203,12208,12246,12275,12327,12509,12523,12569,12641,12732,12752,4,3,97,114,116,11523,11528,11532,114,114,59,1,8666,114,59,1,8656,97,105,108,59,1,10523,97,114,114,59,1,10510,4,2,59,103,11550,11552,1,8806,59,1,10891,97,114,59,1,10594,4,9,99,101,103,109,110,112,113,114,116,11580,11586,11594,11600,11606,11624,11627,11636,11694,117,116,101,59,1,314,109,112,116,121,118,59,1,10676,114,97,110,59,1,8466,98,100,97,59,1,955,103,4,3,59,100,108,11615,11617,11620,1,10216,59,1,10641,101,59,1,10216,59,1,10885,117,111,5,171,1,59,11634,1,171,114,4,8,59,98,102,104,108,112,115,116,11655,11657,11669,11673,11677,11681,11685,11690,1,8592,4,2,59,102,11663,11665,1,8676,115,59,1,10527,115,59,1,10525,107,59,1,8617,112,59,1,8619,108,59,1,10553,105,109,59,1,10611,108,59,1,8610,4,3,59,97,101,11702,11704,11709,1,10923,105,108,59,1,10521,4,2,59,115,11715,11717,1,10925,59,3,10925,65024,4,3,97,98,114,11729,11734,11739,114,114,59,1,10508,114,107,59,1,10098,4,2,97,107,11745,11758,99,4,2,101,107,11752,11755,59,1,123,59,1,91,4,2,101,115,11764,11767,59,1,10635,108,4,2,100,117,11774,11777,59,1,10639,59,1,10637,4,4,97,101,117,121,11790,11796,11811,11815,114,111,110,59,1,318,4,2,100,105,11802,11807,105,108,59,1,316,108,59,1,8968,98,59,1,123,59,1,1083,4,4,99,113,114,115,11828,11832,11845,11864,97,59,1,10550,117,111,4,2,59,114,11840,11842,1,8220,59,1,8222,4,2,100,117,11851,11857,104,97,114,59,1,10599,115,104,97,114,59,1,10571,104,59,1,8626,4,5,59,102,103,113,115,11880,11882,12008,12011,12031,1,8804,116,4,5,97,104,108,114,116,11895,11913,11935,11947,11996,114,114,111,119,4,2,59,116,11905,11907,1,8592,97,105,108,59,1,8610,97,114,112,111,111,110,4,2,100,117,11925,11931,111,119,110,59,1,8637,112,59,1,8636,101,102,116,97,114,114,111,119,115,59,1,8647,105,103,104,116,4,3,97,104,115,11959,11974,11984,114,114,111,119,4,2,59,115,11969,11971,1,8596,59,1,8646,97,114,112,111,111,110,115,59,1,8651,113,117,105,103,97,114,114,111,119,59,1,8621,104,114,101,101,116,105,109,101,115,59,1,8907,59,1,8922,4,3,59,113,115,12019,12021,12024,1,8804,59,1,8806,108,97,110,116,59,1,10877,4,5,59,99,100,103,115,12043,12045,12049,12070,12083,1,10877,99,59,1,10920,111,116,4,2,59,111,12057,12059,1,10879,4,2,59,114,12065,12067,1,10881,59,1,10883,4,2,59,101,12076,12079,3,8922,65024,115,59,1,10899,4,5,97,100,101,103,115,12095,12103,12108,12126,12131,112,112,114,111,120,59,1,10885,111,116,59,1,8918,113,4,2,103,113,12115,12120,116,114,59,1,8922,103,116,114,59,1,10891,116,114,59,1,8822,105,109,59,1,8818,4,3,105,108,114,12144,12150,12156,115,104,116,59,1,10620,111,111,114,59,1,8970,59,3,55349,56617,4,2,59,69,12166,12168,1,8822,59,1,10897,4,2,97,98,12177,12198,114,4,2,100,117,12184,12187,59,1,8637,4,2,59,108,12193,12195,1,8636,59,1,10602,108,107,59,1,9604,99,121,59,1,1113,4,5,59,97,99,104,116,12220,12222,12227,12235,12241,1,8810,114,114,59,1,8647,111,114,110,101,114,59,1,8990,97,114,100,59,1,10603,114,105,59,1,9722,4,2,105,111,12252,12258,100,111,116,59,1,320,117,115,116,4,2,59,97,12267,12269,1,9136,99,104,101,59,1,9136,4,4,69,97,101,115,12285,12288,12303,12322,59,1,8808,112,4,2,59,112,12295,12297,1,10889,114,111,120,59,1,10889,4,2,59,113,12309,12311,1,10887,4,2,59,113,12317,12319,1,10887,59,1,8808,105,109,59,1,8934,4,8,97,98,110,111,112,116,119,122,12345,12359,12364,12421,12446,12467,12474,12490,4,2,110,114,12351,12355,103,59,1,10220,114,59,1,8701,114,107,59,1,10214,103,4,3,108,109,114,12373,12401,12409,101,102,116,4,2,97,114,12382,12389,114,114,111,119,59,1,10229,105,103,104,116,97,114,114,111,119,59,1,10231,97,112,115,116,111,59,1,10236,105,103,104,116,97,114,114,111,119,59,1,10230,112,97,114,114,111,119,4,2,108,114,12433,12439,101,102,116,59,1,8619,105,103,104,116,59,1,8620,4,3,97,102,108,12454,12458,12462,114,59,1,10629,59,3,55349,56669,117,115,59,1,10797,105,109,101,115,59,1,10804,4,2,97,98,12480,12485,115,116,59,1,8727,97,114,59,1,95,4,3,59,101,102,12498,12500,12506,1,9674,110,103,101,59,1,9674,59,1,10731,97,114,4,2,59,108,12517,12519,1,40,116,59,1,10643,4,5,97,99,104,109,116,12535,12540,12548,12561,12564,114,114,59,1,8646,111,114,110,101,114,59,1,8991,97,114,4,2,59,100,12556,12558,1,8651,59,1,10605,59,1,8206,114,105,59,1,8895,4,6,97,99,104,105,113,116,12583,12589,12594,12597,12614,12635,113,117,111,59,1,8249,114,59,3,55349,56513,59,1,8624,109,4,3,59,101,103,12606,12608,12611,1,8818,59,1,10893,59,1,10895,4,2,98,117,12620,12623,59,1,91,111,4,2,59,114,12630,12632,1,8216,59,1,8218,114,111,107,59,1,322,5,60,8,59,99,100,104,105,108,113,114,12660,12662,12675,12680,12686,12692,12698,12705,1,60,4,2,99,105,12668,12671,59,1,10918,114,59,1,10873,111,116,59,1,8918,114,101,101,59,1,8907,109,101,115,59,1,8905,97,114,114,59,1,10614,117,101,115,116,59,1,10875,4,2,80,105,12711,12716,97,114,59,1,10646,4,3,59,101,102,12724,12726,12729,1,9667,59,1,8884,59,1,9666,114,4,2,100,117,12739,12746,115,104,97,114,59,1,10570,104,97,114,59,1,10598,4,2,101,110,12758,12768,114,116,110,101,113,113,59,3,8808,65024,69,59,3,8808,65024,4,14,68,97,99,100,101,102,104,105,108,110,111,112,115,117,12803,12809,12893,12908,12914,12928,12933,12937,13011,13025,13032,13049,13052,13069,68,111,116,59,1,8762,4,4,99,108,112,114,12819,12827,12849,12887,114,5,175,1,59,12825,1,175,4,2,101,116,12833,12836,59,1,9794,4,2,59,101,12842,12844,1,10016,115,101,59,1,10016,4,2,59,115,12855,12857,1,8614,116,111,4,4,59,100,108,117,12869,12871,12877,12883,1,8614,111,119,110,59,1,8615,101,102,116,59,1,8612,112,59,1,8613,107,101,114,59,1,9646,4,2,111,121,12899,12905,109,109,97,59,1,10793,59,1,1084,97,115,104,59,1,8212,97,115,117,114,101,100,97,110,103,108,101,59,1,8737,114,59,3,55349,56618,111,59,1,8487,4,3,99,100,110,12945,12954,12985,114,111,5,181,1,59,12952,1,181,4,4,59,97,99,100,12964,12966,12971,12976,1,8739,115,116,59,1,42,105,114,59,1,10992,111,116,5,183,1,59,12983,1,183,117,115,4,3,59,98,100,12995,12997,13e3,1,8722,59,1,8863,4,2,59,117,13006,13008,1,8760,59,1,10794,4,2,99,100,13017,13021,112,59,1,10971,114,59,1,8230,112,108,117,115,59,1,8723,4,2,100,112,13038,13044,101,108,115,59,1,8871,102,59,3,55349,56670,59,1,8723,4,2,99,116,13058,13063,114,59,3,55349,56514,112,111,115,59,1,8766,4,3,59,108,109,13077,13079,13087,1,956,116,105,109,97,112,59,1,8888,97,112,59,1,8888,4,24,71,76,82,86,97,98,99,100,101,102,103,104,105,106,108,109,111,112,114,115,116,117,118,119,13142,13165,13217,13229,13247,13330,13359,13414,13420,13508,13513,13579,13602,13626,13631,13762,13767,13855,13936,13995,14214,14285,14312,14432,4,2,103,116,13148,13152,59,3,8921,824,4,2,59,118,13158,13161,3,8811,8402,59,3,8811,824,4,3,101,108,116,13173,13200,13204,102,116,4,2,97,114,13181,13188,114,114,111,119,59,1,8653,105,103,104,116,97,114,114,111,119,59,1,8654,59,3,8920,824,4,2,59,118,13210,13213,3,8810,8402,59,3,8810,824,105,103,104,116,97,114,114,111,119,59,1,8655,4,2,68,100,13235,13241,97,115,104,59,1,8879,97,115,104,59,1,8878,4,5,98,99,110,112,116,13259,13264,13270,13275,13308,108,97,59,1,8711,117,116,101,59,1,324,103,59,3,8736,8402,4,5,59,69,105,111,112,13287,13289,13293,13298,13302,1,8777,59,3,10864,824,100,59,3,8779,824,115,59,1,329,114,111,120,59,1,8777,117,114,4,2,59,97,13316,13318,1,9838,108,4,2,59,115,13325,13327,1,9838,59,1,8469,4,2,115,117,13336,13344,112,5,160,1,59,13342,1,160,109,112,4,2,59,101,13352,13355,3,8782,824,59,3,8783,824,4,5,97,101,111,117,121,13371,13385,13391,13407,13411,4,2,112,114,13377,13380,59,1,10819,111,110,59,1,328,100,105,108,59,1,326,110,103,4,2,59,100,13399,13401,1,8775,111,116,59,3,10861,824,112,59,1,10818,59,1,1085,97,115,104,59,1,8211,4,7,59,65,97,100,113,115,120,13436,13438,13443,13466,13472,13478,13494,1,8800,114,114,59,1,8663,114,4,2,104,114,13450,13454,107,59,1,10532,4,2,59,111,13460,13462,1,8599,119,59,1,8599,111,116,59,3,8784,824,117,105,118,59,1,8802,4,2,101,105,13484,13489,97,114,59,1,10536,109,59,3,8770,824,105,115,116,4,2,59,115,13503,13505,1,8708,59,1,8708,114,59,3,55349,56619,4,4,69,101,115,116,13523,13527,13563,13568,59,3,8807,824,4,3,59,113,115,13535,13537,13559,1,8817,4,3,59,113,115,13545,13547,13551,1,8817,59,3,8807,824,108,97,110,116,59,3,10878,824,59,3,10878,824,105,109,59,1,8821,4,2,59,114,13574,13576,1,8815,59,1,8815,4,3,65,97,112,13587,13592,13597,114,114,59,1,8654,114,114,59,1,8622,97,114,59,1,10994,4,3,59,115,118,13610,13612,13623,1,8715,4,2,59,100,13618,13620,1,8956,59,1,8954,59,1,8715,99,121,59,1,1114,4,7,65,69,97,100,101,115,116,13647,13652,13656,13661,13665,13737,13742,114,114,59,1,8653,59,3,8806,824,114,114,59,1,8602,114,59,1,8229,4,4,59,102,113,115,13675,13677,13703,13725,1,8816,116,4,2,97,114,13684,13691,114,114,111,119,59,1,8602,105,103,104,116,97,114,114,111,119,59,1,8622,4,3,59,113,115,13711,13713,13717,1,8816,59,3,8806,824,108,97,110,116,59,3,10877,824,4,2,59,115,13731,13734,3,10877,824,59,1,8814,105,109,59,1,8820,4,2,59,114,13748,13750,1,8814,105,4,2,59,101,13757,13759,1,8938,59,1,8940,105,100,59,1,8740,4,2,112,116,13773,13778,102,59,3,55349,56671,5,172,3,59,105,110,13787,13789,13829,1,172,110,4,4,59,69,100,118,13800,13802,13806,13812,1,8713,59,3,8953,824,111,116,59,3,8949,824,4,3,97,98,99,13820,13823,13826,59,1,8713,59,1,8951,59,1,8950,105,4,2,59,118,13836,13838,1,8716,4,3,97,98,99,13846,13849,13852,59,1,8716,59,1,8958,59,1,8957,4,3,97,111,114,13863,13892,13899,114,4,4,59,97,115,116,13874,13876,13883,13888,1,8742,108,108,101,108,59,1,8742,108,59,3,11005,8421,59,3,8706,824,108,105,110,116,59,1,10772,4,3,59,99,101,13907,13909,13914,1,8832,117,101,59,1,8928,4,2,59,99,13920,13923,3,10927,824,4,2,59,101,13929,13931,1,8832,113,59,3,10927,824,4,4,65,97,105,116,13946,13951,13971,13982,114,114,59,1,8655,114,114,4,3,59,99,119,13961,13963,13967,1,8603,59,3,10547,824,59,3,8605,824,103,104,116,97,114,114,111,119,59,1,8603,114,105,4,2,59,101,13990,13992,1,8939,59,1,8941,4,7,99,104,105,109,112,113,117,14011,14036,14060,14080,14085,14090,14106,4,4,59,99,101,114,14021,14023,14028,14032,1,8833,117,101,59,1,8929,59,3,10928,824,59,3,55349,56515,111,114,116,4,2,109,112,14045,14050,105,100,59,1,8740,97,114,97,108,108,101,108,59,1,8742,109,4,2,59,101,14067,14069,1,8769,4,2,59,113,14075,14077,1,8772,59,1,8772,105,100,59,1,8740,97,114,59,1,8742,115,117,4,2,98,112,14098,14102,101,59,1,8930,101,59,1,8931,4,3,98,99,112,14114,14157,14171,4,4,59,69,101,115,14124,14126,14130,14133,1,8836,59,3,10949,824,59,1,8840,101,116,4,2,59,101,14141,14144,3,8834,8402,113,4,2,59,113,14151,14153,1,8840,59,3,10949,824,99,4,2,59,101,14164,14166,1,8833,113,59,3,10928,824,4,4,59,69,101,115,14181,14183,14187,14190,1,8837,59,3,10950,824,59,1,8841,101,116,4,2,59,101,14198,14201,3,8835,8402,113,4,2,59,113,14208,14210,1,8841,59,3,10950,824,4,4,103,105,108,114,14224,14228,14238,14242,108,59,1,8825,108,100,101,5,241,1,59,14236,1,241,103,59,1,8824,105,97,110,103,108,101,4,2,108,114,14254,14269,101,102,116,4,2,59,101,14263,14265,1,8938,113,59,1,8940,105,103,104,116,4,2,59,101,14279,14281,1,8939,113,59,1,8941,4,2,59,109,14291,14293,1,957,4,3,59,101,115,14301,14303,14308,1,35,114,111,59,1,8470,112,59,1,8199,4,9,68,72,97,100,103,105,108,114,115,14332,14338,14344,14349,14355,14369,14376,14408,14426,97,115,104,59,1,8877,97,114,114,59,1,10500,112,59,3,8781,8402,97,115,104,59,1,8876,4,2,101,116,14361,14365,59,3,8805,8402,59,3,62,8402,110,102,105,110,59,1,10718,4,3,65,101,116,14384,14389,14393,114,114,59,1,10498,59,3,8804,8402,4,2,59,114,14399,14402,3,60,8402,105,101,59,3,8884,8402,4,2,65,116,14414,14419,114,114,59,1,10499,114,105,101,59,3,8885,8402,105,109,59,3,8764,8402,4,3,65,97,110,14440,14445,14468,114,114,59,1,8662,114,4,2,104,114,14452,14456,107,59,1,10531,4,2,59,111,14462,14464,1,8598,119,59,1,8598,101,97,114,59,1,10535,4,18,83,97,99,100,101,102,103,104,105,108,109,111,112,114,115,116,117,118,14512,14515,14535,14560,14597,14603,14618,14643,14657,14662,14701,14741,14747,14769,14851,14877,14907,14916,59,1,9416,4,2,99,115,14521,14531,117,116,101,5,243,1,59,14529,1,243,116,59,1,8859,4,2,105,121,14541,14557,114,4,2,59,99,14548,14550,1,8858,5,244,1,59,14555,1,244,59,1,1086,4,5,97,98,105,111,115,14572,14577,14583,14587,14591,115,104,59,1,8861,108,97,99,59,1,337,118,59,1,10808,116,59,1,8857,111,108,100,59,1,10684,108,105,103,59,1,339,4,2,99,114,14609,14614,105,114,59,1,10687,59,3,55349,56620,4,3,111,114,116,14626,14630,14640,110,59,1,731,97,118,101,5,242,1,59,14638,1,242,59,1,10689,4,2,98,109,14649,14654,97,114,59,1,10677,59,1,937,110,116,59,1,8750,4,4,97,99,105,116,14672,14677,14693,14698,114,114,59,1,8634,4,2,105,114,14683,14687,114,59,1,10686,111,115,115,59,1,10683,110,101,59,1,8254,59,1,10688,4,3,97,101,105,14709,14714,14719,99,114,59,1,333,103,97,59,1,969,4,3,99,100,110,14727,14733,14736,114,111,110,59,1,959,59,1,10678,117,115,59,1,8854,112,102,59,3,55349,56672,4,3,97,101,108,14755,14759,14764,114,59,1,10679,114,112,59,1,10681,117,115,59,1,8853,4,7,59,97,100,105,111,115,118,14785,14787,14792,14831,14837,14841,14848,1,8744,114,114,59,1,8635,4,4,59,101,102,109,14802,14804,14817,14824,1,10845,114,4,2,59,111,14811,14813,1,8500,102,59,1,8500,5,170,1,59,14822,1,170,5,186,1,59,14829,1,186,103,111,102,59,1,8886,114,59,1,10838,108,111,112,101,59,1,10839,59,1,10843,4,3,99,108,111,14859,14863,14873,114,59,1,8500,97,115,104,5,248,1,59,14871,1,248,108,59,1,8856,105,4,2,108,109,14884,14893,100,101,5,245,1,59,14891,1,245,101,115,4,2,59,97,14901,14903,1,8855,115,59,1,10806,109,108,5,246,1,59,14914,1,246,98,97,114,59,1,9021,4,12,97,99,101,102,104,105,108,109,111,114,115,117,14948,14992,14996,15033,15038,15068,15090,15189,15192,15222,15427,15441,114,4,4,59,97,115,116,14959,14961,14976,14989,1,8741,5,182,2,59,108,14968,14970,1,182,108,101,108,59,1,8741,4,2,105,108,14982,14986,109,59,1,10995,59,1,11005,59,1,8706,121,59,1,1087,114,4,5,99,105,109,112,116,15009,15014,15019,15024,15027,110,116,59,1,37,111,100,59,1,46,105,108,59,1,8240,59,1,8869,101,110,107,59,1,8241,114,59,3,55349,56621,4,3,105,109,111,15046,15057,15063,4,2,59,118,15052,15054,1,966,59,1,981,109,97,116,59,1,8499,110,101,59,1,9742,4,3,59,116,118,15076,15078,15087,1,960,99,104,102,111,114,107,59,1,8916,59,1,982,4,2,97,117,15096,15119,110,4,2,99,107,15103,15115,107,4,2,59,104,15110,15112,1,8463,59,1,8462,118,59,1,8463,115,4,9,59,97,98,99,100,101,109,115,116,15140,15142,15148,15151,15156,15168,15171,15179,15184,1,43,99,105,114,59,1,10787,59,1,8862,105,114,59,1,10786,4,2,111,117,15162,15165,59,1,8724,59,1,10789,59,1,10866,110,5,177,1,59,15177,1,177,105,109,59,1,10790,119,111,59,1,10791,59,1,177,4,3,105,112,117,15200,15208,15213,110,116,105,110,116,59,1,10773,102,59,3,55349,56673,110,100,5,163,1,59,15220,1,163,4,10,59,69,97,99,101,105,110,111,115,117,15244,15246,15249,15253,15258,15334,15347,15367,15416,15421,1,8826,59,1,10931,112,59,1,10935,117,101,59,1,8828,4,2,59,99,15264,15266,1,10927,4,6,59,97,99,101,110,115,15280,15282,15290,15299,15303,15329,1,8826,112,112,114,111,120,59,1,10935,117,114,108,121,101,113,59,1,8828,113,59,1,10927,4,3,97,101,115,15311,15319,15324,112,112,114,111,120,59,1,10937,113,113,59,1,10933,105,109,59,1,8936,105,109,59,1,8830,109,101,4,2,59,115,15342,15344,1,8242,59,1,8473,4,3,69,97,115,15355,15358,15362,59,1,10933,112,59,1,10937,105,109,59,1,8936,4,3,100,102,112,15375,15378,15404,59,1,8719,4,3,97,108,115,15386,15392,15398,108,97,114,59,1,9006,105,110,101,59,1,8978,117,114,102,59,1,8979,4,2,59,116,15410,15412,1,8733,111,59,1,8733,105,109,59,1,8830,114,101,108,59,1,8880,4,2,99,105,15433,15438,114,59,3,55349,56517,59,1,968,110,99,115,112,59,1,8200,4,6,102,105,111,112,115,117,15462,15467,15472,15478,15485,15491,114,59,3,55349,56622,110,116,59,1,10764,112,102,59,3,55349,56674,114,105,109,101,59,1,8279,99,114,59,3,55349,56518,4,3,97,101,111,15499,15520,15534,116,4,2,101,105,15506,15515,114,110,105,111,110,115,59,1,8461,110,116,59,1,10774,115,116,4,2,59,101,15528,15530,1,63,113,59,1,8799,116,5,34,1,59,15540,1,34,4,21,65,66,72,97,98,99,100,101,102,104,105,108,109,110,111,112,114,115,116,117,120,15586,15609,15615,15620,15796,15855,15893,15931,15977,16001,16039,16183,16204,16222,16228,16285,16312,16318,16363,16408,16416,4,3,97,114,116,15594,15599,15603,114,114,59,1,8667,114,59,1,8658,97,105,108,59,1,10524,97,114,114,59,1,10511,97,114,59,1,10596,4,7,99,100,101,110,113,114,116,15636,15651,15656,15664,15687,15696,15770,4,2,101,117,15642,15646,59,3,8765,817,116,101,59,1,341,105,99,59,1,8730,109,112,116,121,118,59,1,10675,103,4,4,59,100,101,108,15675,15677,15680,15683,1,10217,59,1,10642,59,1,10661,101,59,1,10217,117,111,5,187,1,59,15694,1,187,114,4,11,59,97,98,99,102,104,108,112,115,116,119,15721,15723,15727,15739,15742,15746,15750,15754,15758,15763,15767,1,8594,112,59,1,10613,4,2,59,102,15733,15735,1,8677,115,59,1,10528,59,1,10547,115,59,1,10526,107,59,1,8618,112,59,1,8620,108,59,1,10565,105,109,59,1,10612,108,59,1,8611,59,1,8605,4,2,97,105,15776,15781,105,108,59,1,10522,111,4,2,59,110,15788,15790,1,8758,97,108,115,59,1,8474,4,3,97,98,114,15804,15809,15814,114,114,59,1,10509,114,107,59,1,10099,4,2,97,107,15820,15833,99,4,2,101,107,15827,15830,59,1,125,59,1,93,4,2,101,115,15839,15842,59,1,10636,108,4,2,100,117,15849,15852,59,1,10638,59,1,10640,4,4,97,101,117,121,15865,15871,15886,15890,114,111,110,59,1,345,4,2,100,105,15877,15882,105,108,59,1,343,108,59,1,8969,98,59,1,125,59,1,1088,4,4,99,108,113,115,15903,15907,15914,15927,97,59,1,10551,100,104,97,114,59,1,10601,117,111,4,2,59,114,15922,15924,1,8221,59,1,8221,104,59,1,8627,4,3,97,99,103,15939,15966,15970,108,4,4,59,105,112,115,15950,15952,15957,15963,1,8476,110,101,59,1,8475,97,114,116,59,1,8476,59,1,8477,116,59,1,9645,5,174,1,59,15975,1,174,4,3,105,108,114,15985,15991,15997,115,104,116,59,1,10621,111,111,114,59,1,8971,59,3,55349,56623,4,2,97,111,16007,16028,114,4,2,100,117,16014,16017,59,1,8641,4,2,59,108,16023,16025,1,8640,59,1,10604,4,2,59,118,16034,16036,1,961,59,1,1009,4,3,103,110,115,16047,16167,16171,104,116,4,6,97,104,108,114,115,116,16063,16081,16103,16130,16143,16155,114,114,111,119,4,2,59,116,16073,16075,1,8594,97,105,108,59,1,8611,97,114,112,111,111,110,4,2,100,117,16093,16099,111,119,110,59,1,8641,112,59,1,8640,101,102,116,4,2,97,104,16112,16120,114,114,111,119,115,59,1,8644,97,114,112,111,111,110,115,59,1,8652,105,103,104,116,97,114,114,111,119,115,59,1,8649,113,117,105,103,97,114,114,111,119,59,1,8605,104,114,101,101,116,105,109,101,115,59,1,8908,103,59,1,730,105,110,103,100,111,116,115,101,113,59,1,8787,4,3,97,104,109,16191,16196,16201,114,114,59,1,8644,97,114,59,1,8652,59,1,8207,111,117,115,116,4,2,59,97,16214,16216,1,9137,99,104,101,59,1,9137,109,105,100,59,1,10990,4,4,97,98,112,116,16238,16252,16257,16278,4,2,110,114,16244,16248,103,59,1,10221,114,59,1,8702,114,107,59,1,10215,4,3,97,102,108,16265,16269,16273,114,59,1,10630,59,3,55349,56675,117,115,59,1,10798,105,109,101,115,59,1,10805,4,2,97,112,16291,16304,114,4,2,59,103,16298,16300,1,41,116,59,1,10644,111,108,105,110,116,59,1,10770,97,114,114,59,1,8649,4,4,97,99,104,113,16328,16334,16339,16342,113,117,111,59,1,8250,114,59,3,55349,56519,59,1,8625,4,2,98,117,16348,16351,59,1,93,111,4,2,59,114,16358,16360,1,8217,59,1,8217,4,3,104,105,114,16371,16377,16383,114,101,101,59,1,8908,109,101,115,59,1,8906,105,4,4,59,101,102,108,16394,16396,16399,16402,1,9657,59,1,8885,59,1,9656,116,114,105,59,1,10702,108,117,104,97,114,59,1,10600,59,1,8478,4,19,97,98,99,100,101,102,104,105,108,109,111,112,113,114,115,116,117,119,122,16459,16466,16472,16572,16590,16672,16687,16746,16844,16850,16924,16963,16988,17115,17121,17154,17206,17614,17656,99,117,116,101,59,1,347,113,117,111,59,1,8218,4,10,59,69,97,99,101,105,110,112,115,121,16494,16496,16499,16513,16518,16531,16536,16556,16564,16569,1,8827,59,1,10932,4,2,112,114,16505,16508,59,1,10936,111,110,59,1,353,117,101,59,1,8829,4,2,59,100,16524,16526,1,10928,105,108,59,1,351,114,99,59,1,349,4,3,69,97,115,16544,16547,16551,59,1,10934,112,59,1,10938,105,109,59,1,8937,111,108,105,110,116,59,1,10771,105,109,59,1,8831,59,1,1089,111,116,4,3,59,98,101,16582,16584,16587,1,8901,59,1,8865,59,1,10854,4,7,65,97,99,109,115,116,120,16606,16611,16634,16642,16646,16652,16668,114,114,59,1,8664,114,4,2,104,114,16618,16622,107,59,1,10533,4,2,59,111,16628,16630,1,8600,119,59,1,8600,116,5,167,1,59,16640,1,167,105,59,1,59,119,97,114,59,1,10537,109,4,2,105,110,16659,16665,110,117,115,59,1,8726,59,1,8726,116,59,1,10038,114,4,2,59,111,16679,16682,3,55349,56624,119,110,59,1,8994,4,4,97,99,111,121,16697,16702,16716,16739,114,112,59,1,9839,4,2,104,121,16708,16713,99,121,59,1,1097,59,1,1096,114,116,4,2,109,112,16724,16729,105,100,59,1,8739,97,114,97,108,108,101,108,59,1,8741,5,173,1,59,16744,1,173,4,2,103,109,16752,16770,109,97,4,3,59,102,118,16762,16764,16767,1,963,59,1,962,59,1,962,4,8,59,100,101,103,108,110,112,114,16788,16790,16795,16806,16817,16828,16832,16838,1,8764,111,116,59,1,10858,4,2,59,113,16801,16803,1,8771,59,1,8771,4,2,59,69,16812,16814,1,10910,59,1,10912,4,2,59,69,16823,16825,1,10909,59,1,10911,101,59,1,8774,108,117,115,59,1,10788,97,114,114,59,1,10610,97,114,114,59,1,8592,4,4,97,101,105,116,16860,16883,16891,16904,4,2,108,115,16866,16878,108,115,101,116,109,105,110,117,115,59,1,8726,104,112,59,1,10803,112,97,114,115,108,59,1,10724,4,2,100,108,16897,16900,59,1,8739,101,59,1,8995,4,2,59,101,16910,16912,1,10922,4,2,59,115,16918,16920,1,10924,59,3,10924,65024,4,3,102,108,112,16932,16938,16958,116,99,121,59,1,1100,4,2,59,98,16944,16946,1,47,4,2,59,97,16952,16954,1,10692,114,59,1,9023,102,59,3,55349,56676,97,4,2,100,114,16970,16985,101,115,4,2,59,117,16978,16980,1,9824,105,116,59,1,9824,59,1,8741,4,3,99,115,117,16996,17028,17089,4,2,97,117,17002,17015,112,4,2,59,115,17009,17011,1,8851,59,3,8851,65024,112,4,2,59,115,17022,17024,1,8852,59,3,8852,65024,117,4,2,98,112,17035,17062,4,3,59,101,115,17043,17045,17048,1,8847,59,1,8849,101,116,4,2,59,101,17056,17058,1,8847,113,59,1,8849,4,3,59,101,115,17070,17072,17075,1,8848,59,1,8850,101,116,4,2,59,101,17083,17085,1,8848,113,59,1,8850,4,3,59,97,102,17097,17099,17112,1,9633,114,4,2,101,102,17106,17109,59,1,9633,59,1,9642,59,1,9642,97,114,114,59,1,8594,4,4,99,101,109,116,17131,17136,17142,17148,114,59,3,55349,56520,116,109,110,59,1,8726,105,108,101,59,1,8995,97,114,102,59,1,8902,4,2,97,114,17160,17172,114,4,2,59,102,17167,17169,1,9734,59,1,9733,4,2,97,110,17178,17202,105,103,104,116,4,2,101,112,17188,17197,112,115,105,108,111,110,59,1,1013,104,105,59,1,981,115,59,1,175,4,5,98,99,109,110,112,17218,17351,17420,17423,17427,4,9,59,69,100,101,109,110,112,114,115,17238,17240,17243,17248,17261,17267,17279,17285,17291,1,8834,59,1,10949,111,116,59,1,10941,4,2,59,100,17254,17256,1,8838,111,116,59,1,10947,117,108,116,59,1,10945,4,2,69,101,17273,17276,59,1,10955,59,1,8842,108,117,115,59,1,10943,97,114,114,59,1,10617,4,3,101,105,117,17299,17335,17339,116,4,3,59,101,110,17308,17310,17322,1,8834,113,4,2,59,113,17317,17319,1,8838,59,1,10949,101,113,4,2,59,113,17330,17332,1,8842,59,1,10955,109,59,1,10951,4,2,98,112,17345,17348,59,1,10965,59,1,10963,99,4,6,59,97,99,101,110,115,17366,17368,17376,17385,17389,17415,1,8827,112,112,114,111,120,59,1,10936,117,114,108,121,101,113,59,1,8829,113,59,1,10928,4,3,97,101,115,17397,17405,17410,112,112,114,111,120,59,1,10938,113,113,59,1,10934,105,109,59,1,8937,105,109,59,1,8831,59,1,8721,103,59,1,9834,4,13,49,50,51,59,69,100,101,104,108,109,110,112,115,17455,17462,17469,17476,17478,17481,17496,17509,17524,17530,17536,17548,17554,5,185,1,59,17460,1,185,5,178,1,59,17467,1,178,5,179,1,59,17474,1,179,1,8835,59,1,10950,4,2,111,115,17487,17491,116,59,1,10942,117,98,59,1,10968,4,2,59,100,17502,17504,1,8839,111,116,59,1,10948,115,4,2,111,117,17516,17520,108,59,1,10185,98,59,1,10967,97,114,114,59,1,10619,117,108,116,59,1,10946,4,2,69,101,17542,17545,59,1,10956,59,1,8843,108,117,115,59,1,10944,4,3,101,105,117,17562,17598,17602,116,4,3,59,101,110,17571,17573,17585,1,8835,113,4,2,59,113,17580,17582,1,8839,59,1,10950,101,113,4,2,59,113,17593,17595,1,8843,59,1,10956,109,59,1,10952,4,2,98,112,17608,17611,59,1,10964,59,1,10966,4,3,65,97,110,17622,17627,17650,114,114,59,1,8665,114,4,2,104,114,17634,17638,107,59,1,10534,4,2,59,111,17644,17646,1,8601,119,59,1,8601,119,97,114,59,1,10538,108,105,103,5,223,1,59,17664,1,223,4,13,97,98,99,100,101,102,104,105,111,112,114,115,119,17694,17709,17714,17737,17742,17749,17754,17860,17905,17957,17964,18090,18122,4,2,114,117,17700,17706,103,101,116,59,1,8982,59,1,964,114,107,59,1,9140,4,3,97,101,121,17722,17728,17734,114,111,110,59,1,357,100,105,108,59,1,355,59,1,1090,111,116,59,1,8411,108,114,101,99,59,1,8981,114,59,3,55349,56625,4,4,101,105,107,111,17764,17805,17836,17851,4,2,114,116,17770,17786,101,4,2,52,102,17777,17780,59,1,8756,111,114,101,59,1,8756,97,4,3,59,115,118,17795,17797,17802,1,952,121,109,59,1,977,59,1,977,4,2,99,110,17811,17831,107,4,2,97,115,17818,17826,112,112,114,111,120,59,1,8776,105,109,59,1,8764,115,112,59,1,8201,4,2,97,115,17842,17846,112,59,1,8776,105,109,59,1,8764,114,110,5,254,1,59,17858,1,254,4,3,108,109,110,17868,17873,17901,100,101,59,1,732,101,115,5,215,3,59,98,100,17884,17886,17898,1,215,4,2,59,97,17892,17894,1,8864,114,59,1,10801,59,1,10800,116,59,1,8749,4,3,101,112,115,17913,17917,17953,97,59,1,10536,4,4,59,98,99,102,17927,17929,17934,17939,1,8868,111,116,59,1,9014,105,114,59,1,10993,4,2,59,111,17945,17948,3,55349,56677,114,107,59,1,10970,97,59,1,10537,114,105,109,101,59,1,8244,4,3,97,105,112,17972,17977,18082,100,101,59,1,8482,4,7,97,100,101,109,112,115,116,17993,18051,18056,18059,18066,18072,18076,110,103,108,101,4,5,59,100,108,113,114,18009,18011,18017,18032,18035,1,9653,111,119,110,59,1,9663,101,102,116,4,2,59,101,18026,18028,1,9667,113,59,1,8884,59,1,8796,105,103,104,116,4,2,59,101,18045,18047,1,9657,113,59,1,8885,111,116,59,1,9708,59,1,8796,105,110,117,115,59,1,10810,108,117,115,59,1,10809,98,59,1,10701,105,109,101,59,1,10811,101,122,105,117,109,59,1,9186,4,3,99,104,116,18098,18111,18116,4,2,114,121,18104,18108,59,3,55349,56521,59,1,1094,99,121,59,1,1115,114,111,107,59,1,359,4,2,105,111,18128,18133,120,116,59,1,8812,104,101,97,100,4,2,108,114,18143,18154,101,102,116,97,114,114,111,119,59,1,8606,105,103,104,116,97,114,114,111,119,59,1,8608,4,18,65,72,97,98,99,100,102,103,104,108,109,111,112,114,115,116,117,119,18204,18209,18214,18234,18250,18268,18292,18308,18319,18343,18379,18397,18413,18504,18547,18553,18584,18603,114,114,59,1,8657,97,114,59,1,10595,4,2,99,114,18220,18230,117,116,101,5,250,1,59,18228,1,250,114,59,1,8593,114,4,2,99,101,18241,18245,121,59,1,1118,118,101,59,1,365,4,2,105,121,18256,18265,114,99,5,251,1,59,18263,1,251,59,1,1091,4,3,97,98,104,18276,18281,18287,114,114,59,1,8645,108,97,99,59,1,369,97,114,59,1,10606,4,2,105,114,18298,18304,115,104,116,59,1,10622,59,3,55349,56626,114,97,118,101,5,249,1,59,18317,1,249,4,2,97,98,18325,18338,114,4,2,108,114,18332,18335,59,1,8639,59,1,8638,108,107,59,1,9600,4,2,99,116,18349,18374,4,2,111,114,18355,18369,114,110,4,2,59,101,18363,18365,1,8988,114,59,1,8988,111,112,59,1,8975,114,105,59,1,9720,4,2,97,108,18385,18390,99,114,59,1,363,5,168,1,59,18395,1,168,4,2,103,112,18403,18408,111,110,59,1,371,102,59,3,55349,56678,4,6,97,100,104,108,115,117,18427,18434,18445,18470,18475,18494,114,114,111,119,59,1,8593,111,119,110,97,114,114,111,119,59,1,8597,97,114,112,111,111,110,4,2,108,114,18457,18463,101,102,116,59,1,8639,105,103,104,116,59,1,8638,117,115,59,1,8846,105,4,3,59,104,108,18484,18486,18489,1,965,59,1,978,111,110,59,1,965,112,97,114,114,111,119,115,59,1,8648,4,3,99,105,116,18512,18537,18542,4,2,111,114,18518,18532,114,110,4,2,59,101,18526,18528,1,8989,114,59,1,8989,111,112,59,1,8974,110,103,59,1,367,114,105,59,1,9721,99,114,59,3,55349,56522,4,3,100,105,114,18561,18566,18572,111,116,59,1,8944,108,100,101,59,1,361,105,4,2,59,102,18579,18581,1,9653,59,1,9652,4,2,97,109,18590,18595,114,114,59,1,8648,108,5,252,1,59,18601,1,252,97,110,103,108,101,59,1,10663,4,15,65,66,68,97,99,100,101,102,108,110,111,112,114,115,122,18643,18648,18661,18667,18847,18851,18857,18904,18909,18915,18931,18937,18943,18949,18996,114,114,59,1,8661,97,114,4,2,59,118,18656,18658,1,10984,59,1,10985,97,115,104,59,1,8872,4,2,110,114,18673,18679,103,114,116,59,1,10652,4,7,101,107,110,112,114,115,116,18695,18704,18711,18720,18742,18754,18810,112,115,105,108,111,110,59,1,1013,97,112,112,97,59,1,1008,111,116,104,105,110,103,59,1,8709,4,3,104,105,114,18728,18732,18735,105,59,1,981,59,1,982,111,112,116,111,59,1,8733,4,2,59,104,18748,18750,1,8597,111,59,1,1009,4,2,105,117,18760,18766,103,109,97,59,1,962,4,2,98,112,18772,18791,115,101,116,110,101,113,4,2,59,113,18784,18787,3,8842,65024,59,3,10955,65024,115,101,116,110,101,113,4,2,59,113,18803,18806,3,8843,65024,59,3,10956,65024,4,2,104,114,18816,18822,101,116,97,59,1,977,105,97,110,103,108,101,4,2,108,114,18834,18840,101,102,116,59,1,8882,105,103,104,116,59,1,8883,121,59,1,1074,97,115,104,59,1,8866,4,3,101,108,114,18865,18884,18890,4,3,59,98,101,18873,18875,18880,1,8744,97,114,59,1,8891,113,59,1,8794,108,105,112,59,1,8942,4,2,98,116,18896,18901,97,114,59,1,124,59,1,124,114,59,3,55349,56627,116,114,105,59,1,8882,115,117,4,2,98,112,18923,18927,59,3,8834,8402,59,3,8835,8402,112,102,59,3,55349,56679,114,111,112,59,1,8733,116,114,105,59,1,8883,4,2,99,117,18955,18960,114,59,3,55349,56523,4,2,98,112,18966,18981,110,4,2,69,101,18973,18977,59,3,10955,65024,59,3,8842,65024,110,4,2,69,101,18988,18992,59,3,10956,65024,59,3,8843,65024,105,103,122,97,103,59,1,10650,4,7,99,101,102,111,112,114,115,19020,19026,19061,19066,19072,19075,19089,105,114,99,59,1,373,4,2,100,105,19032,19055,4,2,98,103,19038,19043,97,114,59,1,10847,101,4,2,59,113,19050,19052,1,8743,59,1,8793,101,114,112,59,1,8472,114,59,3,55349,56628,112,102,59,3,55349,56680,59,1,8472,4,2,59,101,19081,19083,1,8768,97,116,104,59,1,8768,99,114,59,3,55349,56524,4,14,99,100,102,104,105,108,109,110,111,114,115,117,118,119,19125,19146,19152,19157,19173,19176,19192,19197,19202,19236,19252,19269,19286,19291,4,3,97,105,117,19133,19137,19142,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,116,114,105,59,1,9661,114,59,3,55349,56629,4,2,65,97,19163,19168,114,114,59,1,10234,114,114,59,1,10231,59,1,958,4,2,65,97,19182,19187,114,114,59,1,10232,114,114,59,1,10229,97,112,59,1,10236,105,115,59,1,8955,4,3,100,112,116,19210,19215,19230,111,116,59,1,10752,4,2,102,108,19221,19225,59,3,55349,56681,117,115,59,1,10753,105,109,101,59,1,10754,4,2,65,97,19242,19247,114,114,59,1,10233,114,114,59,1,10230,4,2,99,113,19258,19263,114,59,3,55349,56525,99,117,112,59,1,10758,4,2,112,116,19275,19281,108,117,115,59,1,10756,114,105,59,1,9651,101,101,59,1,8897,101,100,103,101,59,1,8896,4,8,97,99,101,102,105,111,115,117,19316,19335,19349,19357,19362,19367,19373,19379,99,4,2,117,121,19323,19332,116,101,5,253,1,59,19330,1,253,59,1,1103,4,2,105,121,19341,19346,114,99,59,1,375,59,1,1099,110,5,165,1,59,19355,1,165,114,59,3,55349,56630,99,121,59,1,1111,112,102,59,3,55349,56682,99,114,59,3,55349,56526,4,2,99,109,19385,19389,121,59,1,1102,108,5,255,1,59,19395,1,255,4,10,97,99,100,101,102,104,105,111,115,119,19419,19426,19441,19446,19462,19467,19472,19480,19486,19492,99,117,116,101,59,1,378,4,2,97,121,19432,19438,114,111,110,59,1,382,59,1,1079,111,116,59,1,380,4,2,101,116,19452,19458,116,114,102,59,1,8488,97,59,1,950,114,59,3,55349,56631,99,121,59,1,1078,103,114,97,114,114,59,1,8669,112,102,59,3,55349,56683,99,114,59,3,55349,56527,4,2,106,110,19498,19501,59,1,8205,106,59,1,8204])},47757:function(e,n,r){"use strict";let a=r(79740),i=r(97700),o=a.CODE_POINTS;e.exports=class{constructor(){this.html=null,this.pos=-1,this.lastGapPos=-1,this.lastCharPos=-1,this.gapStack=[],this.skipNextNewLine=!1,this.lastChunkWritten=!1,this.endOfChunkHit=!1,this.bufferWaterline=65536}_err(){}_addGap(){this.gapStack.push(this.lastGapPos),this.lastGapPos=this.pos}_processSurrogate(e){if(this.pos!==this.lastCharPos){let n=this.html.charCodeAt(this.pos+1);if(a.isSurrogatePair(n))return this.pos++,this._addGap(),a.getSurrogatePairCodePoint(e,n)}else if(!this.lastChunkWritten)return this.endOfChunkHit=!0,o.EOF;return this._err(i.surrogateInInputStream),e}dropParsedChunk(){this.pos>this.bufferWaterline&&(this.lastCharPos-=this.pos,this.html=this.html.substring(this.pos),this.pos=0,this.lastGapPos=-1,this.gapStack=[])}write(e,n){this.html?this.html+=e:this.html=e,this.lastCharPos=this.html.length-1,this.endOfChunkHit=!1,this.lastChunkWritten=n}insertHtmlAtCurrentPos(e){this.html=this.html.substring(0,this.pos+1)+e+this.html.substring(this.pos+1,this.html.length),this.lastCharPos=this.html.length-1,this.endOfChunkHit=!1}advance(){if(this.pos++,this.pos>this.lastCharPos)return this.endOfChunkHit=!this.lastChunkWritten,o.EOF;let e=this.html.charCodeAt(this.pos);if(this.skipNextNewLine&&e===o.LINE_FEED)return this.skipNextNewLine=!1,this._addGap(),this.advance();if(e===o.CARRIAGE_RETURN)return this.skipNextNewLine=!0,o.LINE_FEED;this.skipNextNewLine=!1,a.isSurrogate(e)&&(e=this._processSurrogate(e));let n=e>31&&e<127||e===o.LINE_FEED||e===o.CARRIAGE_RETURN||e>159&&e<64976;return n||this._checkForProblematicCharacters(e),e}_checkForProblematicCharacters(e){a.isControlCodePoint(e)?this._err(i.controlCharacterInInputStream):a.isUndefinedCodePoint(e)&&this._err(i.noncharacterInInputStream)}retreat(){this.pos===this.lastGapPos&&(this.lastGapPos=this.gapStack.pop(),this.pos--),this.pos--}}},17385:function(e,n,r){"use strict";let{DOCUMENT_MODE:a}=r(28040);n.createDocument=function(){return{nodeName:"#document",mode:a.NO_QUIRKS,childNodes:[]}},n.createDocumentFragment=function(){return{nodeName:"#document-fragment",childNodes:[]}},n.createElement=function(e,n,r){return{nodeName:e,tagName:e,attrs:r,namespaceURI:n,childNodes:[],parentNode:null}},n.createCommentNode=function(e){return{nodeName:"#comment",data:e,parentNode:null}};let i=function(e){return{nodeName:"#text",value:e,parentNode:null}},o=n.appendChild=function(e,n){e.childNodes.push(n),n.parentNode=e},s=n.insertBefore=function(e,n,r){let a=e.childNodes.indexOf(r);e.childNodes.splice(a,0,n),n.parentNode=e};n.setTemplateContent=function(e,n){e.content=n},n.getTemplateContent=function(e){return e.content},n.setDocumentType=function(e,n,r,a){let i=null;for(let s=0;s(Object.keys(n).forEach(r=>{e[r]=n[r]}),e),Object.create(null))}},24592:function(e){"use strict";class n{constructor(e){let n={},r=this._getOverriddenMethods(this,n);for(let a of Object.keys(r))"function"==typeof r[a]&&(n[a]=e[a],e[a]=r[a])}_getOverriddenMethods(){throw Error("Not implemented")}}n.install=function(e,n,r){e.__mixins||(e.__mixins=[]);for(let a=0;a255)return"DOMAIN_TOO_LONG";for(var i=r.split("."),o=0;o63)return"LABEL_TOO_LONG";if("-"===n.charAt(0))return"LABEL_STARTS_WITH_DASH";if("-"===n.charAt(n.length-1))return"LABEL_ENDS_WITH_DASH";if(!/^[a-z0-9\-]+$/.test(n))return"LABEL_INVALID_CHARS"}},n.parse=function(e){if("string"!=typeof e)throw TypeError("Domain name must be a string.");var r=e.slice(0).toLowerCase();"."===r.charAt(r.length-1)&&(r=r.slice(0,r.length-1));var o=i.validate(r);if(o)return{input:e,error:{message:n.errorCodes[o],code:o}};var s={input:e,tld:null,sld:null,domain:null,subdomain:null,listed:!1},l=r.split(".");if("local"===l[l.length-1])return s;var u=function(){return/xn--/.test(r)&&(s.domain&&(s.domain=a.toASCII(s.domain)),s.subdomain&&(s.subdomain=a.toASCII(s.subdomain))),s},c=i.findRule(r);if(!c)return l.length<2?s:(s.tld=l.pop(),s.sld=l.pop(),s.domain=[s.sld,s.tld].join("."),l.length&&(s.subdomain=l.pop()),u());s.listed=!0;var p=c.suffix.split("."),m=l.slice(0,l.length-p.length);return c.exception&&m.push(p.shift()),s.tld=p.join("."),m.length&&(c.wildcard&&(p.unshift(m.pop()),s.tld=p.join(".")),m.length&&(s.sld=m.pop(),s.domain=[s.sld,s.tld].join("."),m.length&&(s.subdomain=m.join(".")))),u()},n.get=function(e){return e&&n.parse(e).domain||null},n.isValid=function(e){var r=n.parse(e);return Boolean(r.domain&&r.listed)}},11253:function(e,n,r){var a,i,o;e=r.nmd(e),a="object"==typeof window&&window||this,i=function(e){"use strict";var n={},r=-1;function a(e,n,r){try{e(n,r)}catch(i){var a;setTimeout(function(){throw i},0)}}function i(e,n,r){e(n,r)}function o(e,r,o,s){var l,u=n[r],c=s?i:a;if(Object.prototype.hasOwnProperty.call(n,r))for(l in u)Object.prototype.hasOwnProperty.call(u,l)&&c(u[l],e,o)}function s(e){var r=String(e);return Boolean(Object.prototype.hasOwnProperty.call(n,r)&&function(e){var n;for(n in e)if(Object.prototype.hasOwnProperty.call(e,n))return!0;return!1}(n[r]))}function l(e,n,r,a){var i,l,u,c=(i=e="symbol"==typeof e?e.toString():e,function(){var e=String(i),r=e.lastIndexOf(".");for(o(i,i,n,a);-1!==r;)r=(e=e.substr(0,r)).lastIndexOf("."),o(i,e,n,a);o(i,"*",n,a)});return!!function(e){for(var n=String(e),r=s(n)||s("*"),a=n.lastIndexOf(".");!r&&-1!==a;)a=(n=n.substr(0,a)).lastIndexOf("."),r=s(n);return r}(e)&&(!0===r?c():setTimeout(c,0),!0)}e.publish=function(n,r){return l(n,r,!1,e.immediateExceptions)},e.publishSync=function(n,r){return l(n,r,!0,e.immediateExceptions)},e.subscribe=function(e,a){if("function"!=typeof a)return!1;e="symbol"==typeof e?e.toString():e,Object.prototype.hasOwnProperty.call(n,e)||(n[e]={});var i="uid_"+String(++r);return n[e][i]=a,i},e.subscribeAll=function(n){return e.subscribe("*",n)},e.subscribeOnce=function(n,r){var a=e.subscribe(n,function(){e.unsubscribe(a),r.apply(this,arguments)});return e},e.clearAllSubscriptions=function(){n={}},e.clearSubscriptions=function(e){var r;for(r in n)Object.prototype.hasOwnProperty.call(n,r)&&0===r.indexOf(e)&&delete n[r]},e.countSubscriptions=function(e){var r,a,i=0;for(r in n)if(Object.prototype.hasOwnProperty.call(n,r)&&0===r.indexOf(e)){for(a in n[r])i++;break}return i},e.getSubscriptions=function(e){var r,a=[];for(r in n)Object.prototype.hasOwnProperty.call(n,r)&&0===r.indexOf(e)&&a.push(r);return a},e.unsubscribe=function(r){var a,i,o,s="string"==typeof r&&(Object.prototype.hasOwnProperty.call(n,r)||function(e){var r;for(r in n)if(Object.prototype.hasOwnProperty.call(n,r)&&0===r.indexOf(e))return!0;return!1}(r)),l=!s&&"string"==typeof r,u="function"==typeof r,c=!1;if(s){e.clearSubscriptions(r);return}for(a in n)if(Object.prototype.hasOwnProperty.call(n,a)){if(i=n[a],l&&i[r]){delete i[r],c=r;break}if(u)for(o in i)Object.prototype.hasOwnProperty.call(i,o)&&i[o]===r&&(delete i[o],c=!0)}return c}},o={},a.PubSub?(o=a.PubSub,console.warn("PubSub already loaded, using existing version")):(a.PubSub=o,i(o)),void 0!==e&&e.exports&&(n=e.exports=o),n.PubSub=o,e.exports=n=o},76269:function(e,n,r){"use strict";r.r(n),r.d(n,{decode:function(){return g},encode:function(){return b},toASCII:function(){return y},toUnicode:function(){return k},ucs2decode:function(){return m},ucs2encode:function(){return d}});let a=/^xn--/,i=/[^\0-\x7E]/,o=/[\x2E\u3002\uFF0E\uFF61]/g,s={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},l=Math.floor,u=String.fromCharCode;function c(e){throw RangeError(s[e])}function p(e,n){let r=e.split("@"),a="";r.length>1&&(a=r[0]+"@",e=r[1]),e=e.replace(o,".");let i=e.split("."),s=(function(e,n){let r=[],a=e.length;for(;a--;)r[a]=n(e[a]);return r})(i,n).join(".");return a+s}function m(e){let n=[],r=0,a=e.length;for(;r=55296&&i<=56319&&rString.fromCodePoint(...e),h=function(e,n){return e+22+75*(e<26)-((0!=n)<<5)},f=function(e,n,r){let a=0;for(e=r?l(e/700):e>>1,e+=l(e/n);e>455;a+=36)e=l(e/35);return l(a+36*e/(e+38))},g=function(e){let n=[],r=e.length,a=0,i=128,o=72,s=e.lastIndexOf("-");s<0&&(s=0);for(let u=0;u=128&&c("not-basic"),n.push(e.charCodeAt(u));for(let p=s>0?s+1:0;p=r&&c("invalid-input");let b=(g=e.charCodeAt(p++))-48<10?g-22:g-65<26?g-65:g-97<26?g-97:36;(b>=36||b>l((2147483647-a)/d))&&c("overflow"),a+=b*d;let k=h<=o?1:h>=o+26?26:h-o;if(bl(2147483647/y)&&c("overflow"),d*=y}let v=n.length+1;o=f(a-m,v,0==m),l(a/v)>2147483647-i&&c("overflow"),i+=l(a/v),a%=v,n.splice(a++,0,i)}return String.fromCodePoint(...n)},b=function(e){let n=[],r=(e=m(e)).length,a=128,i=0,o=72;for(let s of e)s<128&&n.push(u(s));let p=n.length,d=p;for(p&&n.push("-");d=a&&bl((2147483647-i)/k)&&c("overflow"),i+=(g-a)*k,a=g,e))if(y2147483647&&c("overflow"),y==a){let v=i;for(let E=36;;E+=36){let T=E<=o?1:E>=o+26?26:E-o;if(v0&&m(a.width)/e.offsetWidth||1,u=e.offsetHeight>0&&m(a.height)/e.offsetHeight||1);var c=(s(e)?o(e):window).visualViewport,p=!h()&&r,d=(a.left+(p&&c?c.offsetLeft:0))/i,f=(a.top+(p&&c?c.offsetTop:0))/u,g=a.width/i,b=a.height/u;return{width:g,height:b,top:f,right:d+g,bottom:f+b,left:d,x:d,y:f}}function g(e){var n,r=o(e);return{scrollLeft:r.pageXOffset,scrollTop:r.pageYOffset}}function b(e){return e?(e.nodeName||"").toLowerCase():null}function k(e){return((s(e)?e.ownerDocument:e.document)||window.document).documentElement}function y(e){return f(k(e)).left+g(e).scrollLeft}function v(e){return o(e).getComputedStyle(e)}function E(e){var n=v(e),r=n.overflow,a=n.overflowX,i=n.overflowY;return/auto|scroll|overlay|hidden/.test(r+i+a)}function T(e){var n=f(e),r=e.offsetWidth,a=e.offsetHeight;return 1>=Math.abs(n.width-r)&&(r=n.width),1>=Math.abs(n.height-a)&&(a=n.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:a}}function _(e){return"html"===b(e)?e:e.assignedSlot||e.parentNode||(u(e)?e.host:null)||k(e)}function x(e,n){void 0===n&&(n=[]);var r,a=function e(n){return["html","body","#document"].indexOf(b(n))>=0?n.ownerDocument.body:l(n)&&E(n)?n:e(_(n))}(e),i=a===(null==(r=e.ownerDocument)?void 0:r.body),s=o(a),u=i?[s].concat(s.visualViewport||[],E(a)?a:[]):a,c=n.concat(u);return i?c:c.concat(x(_(u)))}function w(e){return["table","td","th"].indexOf(b(e))>=0}function A(e){return l(e)&&"fixed"!==v(e).position?e.offsetParent:null}function j(e){for(var n=o(e),r=A(e);r&&w(r)&&"static"===v(r).position;)r=A(r);return r&&("html"===b(r)||"body"===b(r)&&"static"===v(r).position)?n:r||function(e){var n=/firefox/i.test(d());if(/Trident/i.test(d())&&l(e)&&"fixed"===v(e).position)return null;var r=_(e);for(u(r)&&(r=r.host);l(r)&&0>["html","body"].indexOf(b(r));){var a=v(r);if("none"!==a.transform||"none"!==a.perspective||"paint"===a.contain||-1!==["transform","perspective"].indexOf(a.willChange)||n&&"filter"===a.willChange||n&&a.filter&&"none"!==a.filter)return r;r=r.parentNode}return null}(e)||n}var S="bottom",C="right",N="left",O="auto",R=["top",S,C,N],M="start",I="viewport",L="popper",P=R.reduce(function(e,n){return e.concat([n+"-"+M,n+"-end"])},[]),D=[].concat(R,[O]).reduce(function(e,n){return e.concat([n,n+"-"+M,n+"-end"])},[]),z=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"],F={placement:"bottom",modifiers:[],strategy:"absolute"};function B(){for(var e=arguments.length,n=Array(e),r=0;r=0?"x":"y"}function K(e){var n,r=e.reference,a=e.element,i=e.placement,o=i?U(i):null,s=i?G(i):null,l=r.x+r.width/2-a.width/2,u=r.y+r.height/2-a.height/2;switch(o){case"top":n={x:l,y:r.y-a.height};break;case S:n={x:l,y:r.y+r.height};break;case C:n={x:r.x+r.width,y:u};break;case N:n={x:r.x-a.width,y:u};break;default:n={x:r.x,y:r.y}}var c=o?$(o):null;if(null!=c){var p="y"===c?"height":"width";switch(s){case M:n[c]=n[c]-(r[p]/2-a[p]/2);break;case"end":n[c]=n[c]+(r[p]/2-a[p]/2)}}return n}var V={top:"auto",right:"auto",bottom:"auto",left:"auto"};function q(e){var n,r,a=e.popper,i=e.popperRect,s=e.placement,l=e.variation,u=e.offsets,c=e.position,p=e.gpuAcceleration,d=e.adaptive,h=e.roundOffsets,f=e.isFixed,g=u.x,b=void 0===g?0:g,y=u.y,E=void 0===y?0:y,T="function"==typeof h?h({x:b,y:E}):{x:b,y:E};b=T.x,E=T.y;var _=u.hasOwnProperty("x"),x=u.hasOwnProperty("y"),w=N,A="top",O=window;if(d){var R=j(a),M="clientHeight",I="clientWidth";R===o(a)&&(R=k(a),"static"!==v(R).position&&"absolute"===c&&(M="scrollHeight",I="scrollWidth")),("top"===s||(s===N||s===C)&&"end"===l)&&(A=S,E-=(f&&R===O&&O.visualViewport?O.visualViewport.height:R[M])-i.height,E*=p?1:-1),(s===N||("top"===s||s===S)&&"end"===l)&&(w=C,b-=(f&&R===O&&O.visualViewport?O.visualViewport.width:R[I])-i.width,b*=p?1:-1)}var L,P,D,z,F=Object.assign({position:c},d&&V),B=!0===h?(P=(L={x:b,y:E}).x,D=L.y,{x:m(P*(z=window.devicePixelRatio||1))/z||0,y:m(D*z)/z||0}):{x:b,y:E};return(b=B.x,E=B.y,p)?Object.assign({},F,((r={})[A]=x?"0":"",r[w]=_?"0":"",r.transform=1>=(O.devicePixelRatio||1)?"translate("+b+"px, "+E+"px)":"translate3d("+b+"px, "+E+"px, 0)",r)):Object.assign({},F,((n={})[A]=x?E+"px":"",n[w]=_?b+"px":"",n.transform="",n))}var W={left:"right",right:"left",bottom:"top",top:"bottom"};function Y(e){return e.replace(/left|right|bottom|top/g,function(e){return W[e]})}var Q={start:"end",end:"start"};function Z(e){return e.replace(/start|end/g,function(e){return Q[e]})}function X(e,n){var r=n.getRootNode&&n.getRootNode();if(e.contains(n))return!0;if(r&&u(r)){var a=n;do{if(a&&e.isSameNode(a))return!0;a=a.parentNode||a.host}while(a)}return!1}function J(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function ee(e,n,r){var a,i,l,u,p,m,d,b,E,T,_,x;return n===I?J(function(e,n){var r=o(e),a=k(e),i=r.visualViewport,s=a.clientWidth,l=a.clientHeight,u=0,c=0;if(i){s=i.width,l=i.height;var p=h();(p||!p&&"fixed"===n)&&(u=i.offsetLeft,c=i.offsetTop)}return{width:s,height:l,x:u+y(e),y:c}}(e,r)):s(n)?((l=f(n,!1,"fixed"===r)).top=l.top+n.clientTop,l.left=l.left+n.clientLeft,l.bottom=l.top+n.clientHeight,l.right=l.left+n.clientWidth,l.width=n.clientWidth,l.height=n.clientHeight,l.x=l.left,l.y=l.top,l):J((u=k(e),m=k(u),d=g(u),b=null==(p=u.ownerDocument)?void 0:p.body,E=c(m.scrollWidth,m.clientWidth,b?b.scrollWidth:0,b?b.clientWidth:0),T=c(m.scrollHeight,m.clientHeight,b?b.scrollHeight:0,b?b.clientHeight:0),_=-d.scrollLeft+y(u),x=-d.scrollTop,"rtl"===v(b||m).direction&&(_+=c(m.clientWidth,b?b.clientWidth:0)-E),{width:E,height:T,x:_,y:x}))}function et(){return{top:0,right:0,bottom:0,left:0}}function en(e){return Object.assign({},et(),e)}function er(e,n){return n.reduce(function(n,r){return n[r]=e,n},{})}function ea(e,n){void 0===n&&(n={});var r,a,i,o,u,m,d,h,g,y,E=n,T=E.placement,w=void 0===T?e.placement:T,A=E.strategy,N=void 0===A?e.strategy:A,O=E.boundary,M=E.rootBoundary,P=E.elementContext,D=void 0===P?L:P,z=E.altBoundary,F=E.padding,B=void 0===F?0:F,H=en("number"!=typeof B?B:er(B,R)),U=e.rects.popper,G=e.elements[void 0!==z&&z?D===L?"reference":L:D],$=(r=s(G)?G:G.contextElement||k(e.elements.popper),g=(h=[].concat("clippingParents"===(a=void 0===O?"clippingParents":O)?(m=x(_(r)),d=["absolute","fixed"].indexOf(v(r).position)>=0&&l(r)?j(r):r,s(d)?m.filter(function(e){return s(e)&&X(e,d)&&"body"!==b(e)}):[]):[].concat(a),[void 0===M?I:M]))[0],(y=h.reduce(function(e,n){var a=ee(r,n,N);return e.top=c(a.top,e.top),e.right=p(a.right,e.right),e.bottom=p(a.bottom,e.bottom),e.left=c(a.left,e.left),e},ee(r,g,N))).width=y.right-y.left,y.height=y.bottom-y.top,y.x=y.left,y.y=y.top,y),V=f(e.elements.reference),q=K({reference:V,element:U,strategy:"absolute",placement:w}),W=J(Object.assign({},U,q)),Y=D===L?W:V,Q={top:$.top-Y.top+H.top,bottom:Y.bottom-$.bottom+H.bottom,left:$.left-Y.left+H.left,right:Y.right-$.right+H.right},Z=e.modifiersData.offset;if(D===L&&Z){var et=Z[w];Object.keys(Q).forEach(function(e){var n=[C,S].indexOf(e)>=0?1:-1,r=["top",S].indexOf(e)>=0?"y":"x";Q[e]+=et[r]*n})}return Q}function ei(e,n,r){return c(e,p(n,r))}function eo(e,n,r){return void 0===r&&(r={x:0,y:0}),{top:e.top-n.height-r.y,right:e.right-n.width+r.x,bottom:e.bottom-n.height+r.y,left:e.left-n.width-r.x}}function es(e){return["top",C,S,N].some(function(n){return e[n]>=0})}var el,eu,ec,ep,em,ed,eh=(el={defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var n=e.state,r=e.instance,a=e.options,i=a.scroll,s=void 0===i||i,l=a.resize,u=void 0===l||l,c=o(n.elements.popper),p=[].concat(n.scrollParents.reference,n.scrollParents.popper);return s&&p.forEach(function(e){e.addEventListener("scroll",r.update,H)}),u&&c.addEventListener("resize",r.update,H),function(){s&&p.forEach(function(e){e.removeEventListener("scroll",r.update,H)}),u&&c.removeEventListener("resize",r.update,H)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var n=e.state,r=e.name;n.modifiersData[r]=K({reference:n.rects.reference,element:n.rects.popper,strategy:"absolute",placement:n.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var n=e.state,r=e.options,a=r.gpuAcceleration,i=r.adaptive,o=r.roundOffsets,s=void 0===o||o,l={placement:U(n.placement),variation:G(n.placement),popper:n.elements.popper,popperRect:n.rects.popper,gpuAcceleration:void 0===a||a,isFixed:"fixed"===n.options.strategy};null!=n.modifiersData.popperOffsets&&(n.styles.popper=Object.assign({},n.styles.popper,q(Object.assign({},l,{offsets:n.modifiersData.popperOffsets,position:n.options.strategy,adaptive:void 0===i||i,roundOffsets:s})))),null!=n.modifiersData.arrow&&(n.styles.arrow=Object.assign({},n.styles.arrow,q(Object.assign({},l,{offsets:n.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:s})))),n.attributes.popper=Object.assign({},n.attributes.popper,{"data-popper-placement":n.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var n=e.state;Object.keys(n.elements).forEach(function(e){var r=n.styles[e]||{},a=n.attributes[e]||{},i=n.elements[e];l(i)&&b(i)&&(Object.assign(i.style,r),Object.keys(a).forEach(function(e){var n=a[e];!1===n?i.removeAttribute(e):i.setAttribute(e,!0===n?"":n)}))})},effect:function(e){var n=e.state,r={popper:{position:n.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(n.elements.popper.style,r.popper),n.styles=r,n.elements.arrow&&Object.assign(n.elements.arrow.style,r.arrow),function(){Object.keys(n.elements).forEach(function(e){var a=n.elements[e],i=n.attributes[e]||{},o=Object.keys(n.styles.hasOwnProperty(e)?n.styles[e]:r[e]).reduce(function(e,n){return e[n]="",e},{});l(a)&&b(a)&&(Object.assign(a.style,o),Object.keys(i).forEach(function(e){a.removeAttribute(e)}))})}},requires:["computeStyles"]},{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var n=e.state,r=e.options,a=e.name,i=r.offset,o=void 0===i?[0,0]:i,s=D.reduce(function(e,r){var a,i,s,l,u,c,p,m;return e[r]=(i=n.rects,u=[N,"top"].indexOf(l=U(r))>=0?-1:1,p=(c="function"==typeof o?o(Object.assign({},i,{placement:r})):o)[0],m=c[1],p=p||0,m=(m||0)*u,[N,C].indexOf(l)>=0?{x:m,y:p}:{x:p,y:m}),e},{}),l=s[n.placement],u=l.x,c=l.y;null!=n.modifiersData.popperOffsets&&(n.modifiersData.popperOffsets.x+=u,n.modifiersData.popperOffsets.y+=c),n.modifiersData[a]=s}},{name:"flip",enabled:!0,phase:"main",fn:function(e){var n=e.state,r=e.options,a=e.name;if(!n.modifiersData[a]._skip){for(var i=r.mainAxis,o=void 0===i||i,s=r.altAxis,l=void 0===s||s,u=r.fallbackPlacements,c=r.padding,p=r.boundary,m=r.rootBoundary,d=r.altBoundary,h=r.flipVariations,f=void 0===h||h,g=r.allowedAutoPlacements,b=n.options.placement,k=U(b),y=[b].concat(u||(k!==b&&f?function(e){if(U(e)===O)return[];var n=Y(e);return[Z(e),n,Z(n)]}(b):[Y(b)])).reduce(function(e,r){var a,i,o,s,l,u,d,h,b,k,y,v,E,T;return e.concat(U(r)===O?(i={placement:r,boundary:p,rootBoundary:m,padding:c,flipVariations:f,allowedAutoPlacements:g},s=(o=i).placement,l=o.boundary,u=o.rootBoundary,d=o.padding,h=o.flipVariations,k=void 0===(b=o.allowedAutoPlacements)?D:b,0===(E=(v=(y=G(s))?h?P:P.filter(function(e){return G(e)===y}):R).filter(function(e){return k.indexOf(e)>=0})).length&&(E=v),Object.keys(T=E.reduce(function(e,r){return e[r]=ea(n,{placement:r,boundary:l,rootBoundary:u,padding:d})[U(r)],e},{})).sort(function(e,n){return T[e]-T[n]})):r)},[]),v=n.rects.reference,E=n.rects.popper,T=new Map,_=!0,x=y[0],w=0;w=0,z=L?"width":"height",F=ea(n,{placement:A,boundary:p,rootBoundary:m,altBoundary:d,padding:c}),B=L?I?C:N:I?S:"top";v[z]>E[z]&&(B=Y(B));var H=Y(B),$=[];if(o&&$.push(F[j]<=0),l&&$.push(F[B]<=0,F[H]<=0),$.every(function(e){return e})){x=A,_=!1;break}T.set(A,$)}if(_)for(var K=f?3:1,V=function(e){var n=y.find(function(n){var r=T.get(n);if(r)return r.slice(0,e).every(function(e){return e})});if(n)return x=n,"break"},q=K;q>0&&"break"!==V(q);q--);n.placement!==x&&(n.modifiersData[a]._skip=!0,n.placement=x,n.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var n,r=e.state,a=e.options,i=e.name,o=a.mainAxis,s=a.altAxis,l=a.boundary,u=a.rootBoundary,m=a.altBoundary,d=a.padding,h=a.tether,f=void 0===h||h,g=a.tetherOffset,b=void 0===g?0:g,k=ea(r,{boundary:l,rootBoundary:u,padding:d,altBoundary:m}),y=U(r.placement),v=G(r.placement),E=!v,_=$(y),x="x"===_?"y":"x",w=r.modifiersData.popperOffsets,A=r.rects.reference,O=r.rects.popper,R="function"==typeof b?b(Object.assign({},r.rects,{placement:r.placement})):b,I="number"==typeof R?{mainAxis:R,altAxis:R}:Object.assign({mainAxis:0,altAxis:0},R),L=r.modifiersData.offset?r.modifiersData.offset[r.placement]:null,P={x:0,y:0};if(w){if(void 0===o||o){var D,z="y"===_?"top":N,F="y"===_?S:C,B="y"===_?"height":"width",H=w[_],K=H+k[z],V=H-k[F],q=f?-O[B]/2:0,W=v===M?A[B]:O[B],Y=v===M?-O[B]:-A[B],Q=r.elements.arrow,Z=f&&Q?T(Q):{width:0,height:0},X=r.modifiersData["arrow#persistent"]?r.modifiersData["arrow#persistent"].padding:et(),J=X[z],ee=X[F],en=ei(0,A[B],Z[B]),er=E?A[B]/2-q-en-J-I.mainAxis:W-en-J-I.mainAxis,eo=E?-A[B]/2+q+en+ee+I.mainAxis:Y+en+ee+I.mainAxis,es=r.elements.arrow&&j(r.elements.arrow),el=es?"y"===_?es.clientTop||0:es.clientLeft||0:0,eu=null!=(D=null==L?void 0:L[_])?D:0,ec=ei(f?p(K,H+er-eu-el):K,H,f?c(V,H+eo-eu):V);w[_]=ec,P[_]=ec-H}if(void 0!==s&&s){var ep,em,ed,eh,ef,eg=w[x],eb="y"===x?"height":"width",ek=eg+k["x"===_?"top":N],ey=eg-k["x"===_?S:C],ev=-1!==["top",N].indexOf(y),eE=null!=(ep=null==L?void 0:L[x])?ep:0,eT=ev?ek:eg-A[eb]-O[eb]-eE+I.altAxis,e_=ev?eg+A[eb]+O[eb]-eE-I.altAxis:ey,ex=f&&ev?(ef=ei(eT,eg,e_))>e_?e_:ef:ei(f?eT:ek,eg,f?e_:ey);w[x]=ex,P[x]=ex-eg}r.modifiersData[i]=P}},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:function(e){var n,r=e.state,a=e.name,i=e.options,o=r.elements.arrow,s=r.modifiersData.popperOffsets,l=U(r.placement),u=$(l),c=[N,C].indexOf(l)>=0?"height":"width";if(o&&s){var p,m,d=en("number"!=typeof(p="function"==typeof(p=i.padding)?p(Object.assign({},r.rects,{placement:r.placement})):p)?p:er(p,R)),h=T(o),f=r.rects.reference[c]+r.rects.reference[u]-s[u]-r.rects.popper[c],g=s[u]-r.rects.reference[u],b=j(o),k=b?"y"===u?b.clientHeight||0:b.clientWidth||0:0,y=d["y"===u?"top":N],v=k-h[c]-d["y"===u?S:C],E=k/2-h[c]/2+(f/2-g/2),_=ei(y,E,v);r.modifiersData[a]=((n={})[u]=_,n.centerOffset=_-E,n)}},effect:function(e){var n=e.state,r=e.options.element,a=void 0===r?"[data-popper-arrow]":r;if(null!=a&&("string"!=typeof a||(a=n.elements.popper.querySelector(a))))X(n.elements.popper,a)&&(n.elements.arrow=a)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var n=e.state,r=e.name,a=n.rects.reference,i=n.rects.popper,o=n.modifiersData.preventOverflow,s=ea(n,{elementContext:"reference"}),l=ea(n,{altBoundary:!0}),u=eo(s,a),c=eo(l,i,o),p=es(u),m=es(c);n.modifiersData[r]={referenceClippingOffsets:u,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:m},n.attributes.popper=Object.assign({},n.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":m})}}]},ep=void 0===(ec=(eu=el).defaultModifiers)?[]:ec,ed=void 0===(em=eu.defaultOptions)?F:em,function(e,n,r){void 0===r&&(r=ed);var a,i,u={placement:"bottom",orderedModifiers:[],options:Object.assign({},F,ed),modifiersData:{},elements:{reference:e,popper:n},attributes:{},styles:{}},c=[],p=!1,d={state:u,setOptions:function(r){var a,i,o,l,p,m,f,g,b="function"==typeof r?r(u.options):r;h(),u.options=Object.assign({},ed,u.options,b),u.scrollParents={reference:s(e)?x(e):e.contextElement?x(e.contextElement):[],popper:x(n)};var k=(o=Object.keys(i=(a=[].concat(ep,u.options.modifiers)).reduce(function(e,n){var r=e[n.name];return e[n.name]=r?Object.assign({},r,n,{options:Object.assign({},r.options,n.options),data:Object.assign({},r.data,n.data)}):n,e},{})).map(function(e){return i[e]}),p=new Map,m=new Set,f=[],o.forEach(function(e){p.set(e.name,e)}),o.forEach(function(e){m.has(e.name)||function e(n){m.add(n.name),[].concat(n.requires||[],n.requiresIfExists||[]).forEach(function(n){if(!m.has(n)){var r=p.get(n);r&&e(r)}}),f.push(n)}(e)}),z.reduce(function(e,n){return e.concat(f.filter(function(e){return e.phase===n}))},[]));return u.orderedModifiers=k.filter(function(e){return e.enabled}),u.orderedModifiers.forEach(function(e){var n=e.name,r=e.options,a=e.effect;if("function"==typeof a){var i=a({state:u,name:n,instance:d,options:void 0===r?{}:r}),o=function(){};c.push(i||o)}}),d.update()},forceUpdate:function(){if(!p){var e,n,r,a,i,s,c,h,v,_,x,w,A,S=u.elements,C=S.reference,N=S.popper;if(B(C,N)){u.rects={reference:(e=C,n=j(N),r="fixed"===u.options.strategy,a=l(n),v=l(n)&&(c=m((s=(i=n).getBoundingClientRect()).width)/i.offsetWidth||1,h=m(s.height)/i.offsetHeight||1,1!==c||1!==h),_=k(n),x=f(e,v,r),w={scrollLeft:0,scrollTop:0},A={x:0,y:0},(a||!a&&!r)&&(("body"!==b(n)||E(_))&&(w=function(e){var n;return e!==o(e)&&l(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:g(e)}(n)),l(n)?(A=f(n,!0),A.x+=n.clientLeft,A.y+=n.clientTop):_&&(A.x=y(_))),{x:x.left+w.scrollLeft-A.x,y:x.top+w.scrollTop-A.y,width:x.width,height:x.height}),popper:T(N)},u.reset=!1,u.placement=u.options.placement,u.orderedModifiers.forEach(function(e){return u.modifiersData[e.name]=Object.assign({},e.data)});for(var O=0;Oe.length)&&(n=e.length);for(var r=0,a=Array(n);r0?eb(ej,--ew):0,e_--,10===eA&&(e_=1,eT--),eA}function eO(){return eA=ew2||eI(eA)>3?"":" "}function eF(e,n){for(;--n&&eO()&&!(eA<48)&&!(eA>102)&&(!(eA>57)||!(eA<65))&&(!(eA>70)||!(eA<97)););return eM(e,ew+(n<6&&32==eR()&&32==eO()))}function eB(e,n){for(;eO();)if(e+eA===57)break;else if(e+eA===84&&47===eR())break;return"/*"+eM(n,ew-1)+"*"+em(47===e?e:eO())}function eH(e){for(;!eI(eR());)eO();return eM(e,ew)}var eU="-ms-",eG="-moz-",e$="-webkit-",eK="comm",eV="rule",eq="decl",eW="@keyframes";function eY(e,n){for(var r="",a=ev(e),i=0;i0?d[k]+" "+y:ef(y,/&\f/g,d[k])))&&(u[b++]=v);return eS(e,n,r,0===i?eV:l,u,c,p)}function eX(e,n,r){return eS(e,n,r,eK,em(eA),ek(e,2,-2),0)}function eJ(e,n,r,a){return eS(e,n,r,eq,ek(e,0,a),ek(e,a+1,-1),a)}var e1,e0,e9=function(e,n,r){for(var a=0,i=0;a=i,i=eR(),38===a&&12===i&&(n[r]=1),!eI(i);)eO();return eM(e,ew)},e5=function(e,n){var r=-1,a=44;do switch(eI(a)){case 0:38===a&&12===eR()&&(n[r]=1),e[r]+=e9(ew-1,n,r);break;case 2:e[r]+=eD(a);break;case 4:if(44===a){e[++r]=58===eR()?"&\f":"",n[r]=e[r].length;break}default:e[r]+=em(a)}while(a=eO());return e},e4=new WeakMap,e2=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var n=e.value,r=e.parent,a=e.column===r.column&&e.line===r.line;"rule"!==r.type;)if(!(r=r.parent))return;if((1!==e.props.length||58===n.charCodeAt(0)||e4.get(r))&&!a){e4.set(e,!0);for(var i,o,s=[],l=eP(e5(eL(n),s)),u=r.props,c=0,p=0;c-1&&!e.return)switch(e.type){case eq:e.return=function e(n,r){var a,i;switch((((r<<2^eb(n,0))<<2^eb(n,1))<<2^eb(n,2))<<2^eb(n,3)){case 5103:return e$+"print-"+n+n;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return e$+n+n;case 5349:case 4246:case 4810:case 6968:case 2756:return e$+n+eG+n+eU+n+n;case 6828:case 4268:return e$+n+eU+n+n;case 6165:return e$+n+eU+"flex-"+n+n;case 5187:return e$+n+ef(n,/(\w+).+(:[^]+)/,e$+"box-$1$2"+eU+"flex-$1$2")+n;case 5443:return e$+n+eU+"flex-item-"+ef(n,/flex-|-self/,"")+n;case 4675:return e$+n+eU+"flex-line-pack"+ef(n,/align-content|flex-|-self/,"")+n;case 5548:return e$+n+eU+ef(n,"shrink","negative")+n;case 5292:return e$+n+eU+ef(n,"basis","preferred-size")+n;case 6060:return e$+"box-"+ef(n,"-grow","")+e$+n+eU+ef(n,"grow","positive")+n;case 4554:return e$+ef(n,/([^-])(transform)/g,"$1"+e$+"$2")+n;case 6187:return ef(ef(ef(n,/(zoom-|grab)/,e$+"$1"),/(image-set)/,e$+"$1"),n,"")+n;case 5495:case 3959:return ef(n,/(image-set\([^]*)/,e$+"$1$`$1");case 4968:return ef(ef(n,/(.+:)(flex-)?(.*)/,e$+"box-pack:$3"+eU+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+e$+n+n;case 4095:case 3583:case 4068:case 2532:return ef(n,/(.+)-inline(.+)/,e$+"$1$2")+n;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(ey(n)-1-r>6)switch(eb(n,r+1)){case 109:if(45!==eb(n,r+4))break;case 102:return ef(n,/(.+:)(.+)-([^]+)/,"$1"+e$+"$2-$3$1"+eG+(108==eb(n,r+3)?"$3":"$2-$3"))+n;case 115:return~eg(n,"stretch")?e(ef(n,"stretch","fill-available"),r)+n:n}break;case 4949:if(115!==eb(n,r+1))break;case 6444:switch(eb(n,ey(n)-3-(~eg(n,"!important")&&10))){case 107:return ef(n,":",":"+e$)+n;case 101:return ef(n,/(.+:)([^;!]+)(;|!.+)?/,"$1"+e$+(45===eb(n,14)?"inline-":"")+"box$3$1"+e$+"$2$3$1"+eU+"$2box$3")+n}break;case 5936:switch(eb(n,r+11)){case 114:return e$+n+eU+ef(n,/[svh]\w+-[tblr]{2}/,"tb")+n;case 108:return e$+n+eU+ef(n,/[svh]\w+-[tblr]{2}/,"tb-rl")+n;case 45:return e$+n+eU+ef(n,/[svh]\w+-[tblr]{2}/,"lr")+n}return e$+n+eU+n+n}return n}(e.value,e.length);break;case eW:return eY([eC(e,{value:ef(e.value,"@","@"+e$)})],a);case eV:if(e.length){var i,o;return i=e.props,o=function(n){var r;switch(r=n,(r=/(::plac\w+|:read-\w+)/.exec(r))?r[0]:r){case":read-only":case":read-write":return eY([eC(e,{props:[ef(n,/:(read-\w+)/,":"+eG+"$1")]})],a);case"::placeholder":return eY([eC(e,{props:[ef(n,/:(plac\w+)/,":"+e$+"input-$1")]}),eC(e,{props:[ef(n,/:(plac\w+)/,":"+eG+"$1")]}),eC(e,{props:[ef(n,/:(plac\w+)/,eU+"input-$1")]})],a)}return""},i.map(o).join("")}}}],e7=function(e){var n=e.key;if("css"===n){var r=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(r,function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))})}var a=e.stylisPlugins||e6,i={},o=[];l=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+n+' "]'),function(e){for(var n=e.getAttribute("data-emotion").split(" "),r=1;r0&&ey(w)-d&&eE(f>32?eJ(w+";",i,a,d-1):eJ(ef(w," ","")+";",i,a,d-2),c);break;case 59:w+=";";default:if(eE(x=eZ(w,r,a,p,m,o,u,E,T=[],_=[],d),s),123===v){if(0===m)e(w,r,x,x,T,s,d,u,_);else switch(h){case 100:case 109:case 115:e(n,x,x,i&&eE(eZ(n,x,x,0,0,o,u,E,o,T=[],d),_),o,_,d,u,i?T:_);break;default:e(w,x,x,x,[""],_,0,u,_)}}}p=m=f=0,b=y=1,E=w="",d=l;break;case 58:d=1+ey(w),f=g;default:if(b<1){if(123==v)--b;else if(125==v&&0==b++&&125==eN())continue}switch(w+=em(v),v*b){case 38:y=m>0?1:(w+="\f",-1);break;case 44:u[p++]=(ey(w)-1)*y,y=1;break;case 64:45===eR()&&(w+=eD(eO())),h=eR(),m=d=ey(E=w+=eH(ew)),v++;break;case 45:45===g&&2==ey(w)&&(b=0)}}return s}("",null,null,null,[""],n=eL(n=e),0,[0],n)),h)};u=function(e,n,r,a){c=r,f(e?e+"{"+n.styles+"}":n.styles),a&&(g.inserted[n.name]=!0)};var g={key:n,sheet:new ec({key:n,container:l,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:i,registered:{},insert:u};return g.sheet.hydrate(o),g},e3=function(e){for(var n,r=0,a=0,i=e.length;i>=4;++a,i-=4)n=(65535&(n=255&e.charCodeAt(a)|(255&e.charCodeAt(++a))<<8|(255&e.charCodeAt(++a))<<16|(255&e.charCodeAt(++a))<<24))*1540483477+((n>>>16)*59797<<16),n^=n>>>24,r=(65535&n)*1540483477+((n>>>16)*59797<<16)^(65535&r)*1540483477+((r>>>16)*59797<<16);switch(i){case 3:r^=(255&e.charCodeAt(a+2))<<16;case 2:r^=(255&e.charCodeAt(a+1))<<8;case 1:r^=255&e.charCodeAt(a),r=(65535&r)*1540483477+((r>>>16)*59797<<16)}return r^=r>>>13,(((r=(65535&r)*1540483477+((r>>>16)*59797<<16))^r>>>15)>>>0).toString(36)},te={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},tt=/[A-Z]|^ms/g,tn=/_EMO_([^_]+?)_([^]*?)_EMO_/g,tr=function(e){return 45===e.charCodeAt(1)},ta=function(e){return null!=e&&"boolean"!=typeof e},ti=(e1=function(e){return tr(e)?e:e.replace(tt,"-$&").toLowerCase()},e0=Object.create(null),function(e){return void 0===e0[e]&&(e0[e]=e1(e)),e0[e]}),to=function(e,n){switch(e){case"animation":case"animationName":if("string"==typeof n)return n.replace(tn,function(e,n,r){return a={name:n,styles:r,next:a},n})}return 1===te[e]||tr(e)||"number"!=typeof n||0===n?n:n+"px"};function ts(e,n,r){if(null==r)return"";if(void 0!==r.__emotion_styles)return r;switch(typeof r){case"boolean":return"";case"object":if(1===r.anim)return a={name:r.name,styles:r.styles,next:a},r.name;if(void 0!==r.styles){var i,o=r.next;if(void 0!==o)for(;void 0!==o;)a={name:o.name,styles:o.styles,next:a},o=o.next;return r.styles+";"}return function(e,n,r){var a="";if(Array.isArray(r))for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:"white",r="background-color: ".concat(e,"; border-radius: 4px; padding: 2px 4px;");return n&&(r+=" color: ".concat(n,";")),[r,""]}function tT(e,n){for(var r,a,i=arguments.length,o=Array(i>2?i-2:0),s=2;sn?(e.apply(void 0,o),r=l):(clearTimeout(a),a=tx()(function(){e.apply(void 0,o),r=q()()},Math.max(0,n-l+r)))}}(function(e){var n=o.current;n&&n(e)},n)},[n,o]),l=(0,b.useCallback)(function(e){e.timeStampLow=q()(),s(e)},[s]);return(0,b.useLayoutEffect)(function(){return i.addEventListener(r,l,{passive:!0}),l({target:i,type:r}),function(){return i.removeEventListener(r,l)}},[r,l,i]),!1};tw.defaultProps={debounce:200};var tA=r(44353),tj=r.n(tA);function tS(e,n){var r=tj()(n-e),a=e+Math.sqrt(Math.abs(n-e))*r;return r>0?Math.min(n,a):Math.max(n,a)}var tC=function(e){var n=e.name,r=e.onEnd,a=e.target,i=e.value,o=(0,b.useRef)(),s=(0,b.useCallback)(function(e,n,i,l){var u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:q()();("100%"===i||"number"==typeof i)&&(cancelAnimationFrame(o.current),o.current=requestAnimationFrame(function(){if(a){var o="100%"===i?a.scrollHeight-a.offsetHeight:i,c=function(e,n,r,a){for(var i=e,o=0;oMath.abs(o-c)&&(c=o),a[e]=c,o===c?r&&r(!0):s(e,n,i,l+1,u)}}))},[o,r,a]),l=(0,b.useCallback)(function(){cancelAnimationFrame(o.current),r&&r(!1)},[r]);return(0,b.useLayoutEffect)(function(){return(s(n,a[n],i,1),a)?(a.addEventListener("pointerdown",l,{passive:!0}),a.addEventListener("wheel",l,{passive:!0}),function(){a.removeEventListener("pointerdown",l),a.removeEventListener("wheel",l),cancelAnimationFrame(o.current)}):function(){return cancelAnimationFrame(o.current)}},[s,o,l,n,a,i]),!1};function tN(e){var n=(0,b.useState)(e),r=m(n,2),a=r[0],i=r[1],o=(0,b.useRef)(),s=(0,b.useCallback)(function(e){"function"==typeof e?s(function(n){return e=e(n),o.current=e,e}):(o.current=e,s(e))},[o]);return o.current=a,[a,i,o]}function tO(e,n){var r=Z()(e);if(J()){var a=J()(e);n&&(a=et()(a).call(a,function(n){return er()(e,n).enumerable})),r.push.apply(r,a)}return r}function tR(e){for(var n=1;n1&&void 0!==arguments[1]?arguments[1]:{},r=n.force;return void 0!==r&&r?function(){for(var n=arguments.length,r=Array(n),a=0;a",{force:i})},[i]);s="top"===s?"top":"bottom";var p=(0,b.useRef)(0),d=(0,b.useRef)(o),h=tN("top"===s?0:"100%"),f=m(h,3),g=f[0],k=f[1],v=f[2],E=tN(null),x=m(E,3),A=x[0],j=x[1],S=x[2],N=(0,b.useRef)(0),O=(0,b.useRef)(0),R=(0,b.useRef)(0),M=m((0,b.useState)(!0),2),I=M[0],L=M[1],P=m((0,b.useState)(!0),2),z=P[0],B=P[1],U=m((0,b.useState)(!0),2),$=U[0],V=U[1],W=m((0,b.useState)(!1),2),Q=W[0],Z=W[1],X=tN(!0),J=m(X,3),ee=J[0],et=J[1],en=J[2],er=(0,b.useRef)([]),ea=(0,b.useCallback)(function(e){var n=S.current;return er.current.push(e),n&&e({scrollTop:n.scrollTop}),function(){var n=er.current,r=H()(n).call(n,e);~r&&G()(n).call(n,r,1)}},[er,S]),ei=(0,b.useCallback)(function(){var e=v.current;c(function(){var n;return K()(n=["%cSpineTo%c: %conEnd%c is fired."]).call(n,D(tE("magenta")),D(tE("orange")),[{animateTo:e}])}),p.current=q()(),tP(e,s)||et(!1),k(null)},[v,c,p,s,k,et]),eo=(0,b.useCallback)(function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.behavior,a=S.current;if("number"!=typeof e&&"100%"!==e)return console.warn('react-scroll-to-bottom: Arguments passed to scrollTo() must be either number or "100%".');c(function(){var n;return[K()(n=["%cscrollTo%c: Will scroll to %c".concat("number"==typeof e?e+"px":e.replace(/%/g,"%%"),"%c")]).call(n,D(tE("lime","")),D(tE("purple"))),{behavior:r,nextAnimateTo:e,target:a}]}),"auto"===r?(ei(),a&&(a.scrollTop="100%"===e?a.scrollHeight-a.offsetHeight:e)):("smooth"!==r&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollTo". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.'),k(e)),tP(e,s)&&(c(function(){var n;return[K()(n=["%cscrollTo%c: Scrolling to end, will set sticky to %ctrue%c."]).call(n,D(tE("lime","")),D(tE("purple"))),[{mode:s,nextAnimateTo:e}]]}),et(!0))},[c,ei,s,k,et,S]),es=(0,b.useCallback)(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.behavior;c(function(){var e;return K()(e=["%cscrollToBottom%c: Called"]).call(e,D(tE("yellow","")))}),"smooth"!==n&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToBottom". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.'),eo("100%",{behavior:n||"smooth"})},[c,eo]),el=(0,b.useCallback)(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.behavior;c(function(){var e;return K()(e=["%cscrollToTop%c: Called"]).call(e,D(tE("yellow","")))}),"smooth"!==n&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToTop". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.'),eo(0,{behavior:n||"smooth"})},[c,eo]),eu=(0,b.useCallback)(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.behavior;c(function(){var e;return K()(e=["%cscrollToEnd%c: Called"]).call(e,D(tE("yellow","")))}),"smooth"!==n&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToEnd". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.');var r={behavior:n||"smooth"};"top"===s?el(r):es(r)},[c,s,es,el]),ec=(0,b.useCallback)(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.behavior;c(function(){var e;return K()(e=["%cscrollToStart%c: Called"]).call(e,D(tE("yellow","")))}),"smooth"!==n&&console.warn('react-scroll-to-bottom: Please set "behavior" when calling "scrollToStart". In future versions, the default behavior will be changed from smooth scrolling to discrete scrolling to align with HTML Standard.');var r={behavior:n||"smooth"};"top"===s?es(r):el(r)},[c,s,es,el]),ep=(0,b.useCallback)(function(){var e=S.current;if(e){if("auto"===d.current){c(function(){var e;return K()(e=["%ctarget changed%c: Initial scroll"]).call(e,D(tE("blue")))}),e.scrollTop="top"===s?0:e.scrollHeight-e.offsetHeight,d.current=!1;return}var n,r=N.current,a=e.offsetHeight,i=e.scrollHeight,o=e.scrollTop,l="top"===s?0:Math.max(0,i-a-o),p=Math.max(0,r-o),m=u({maxValue:l,minValue:p,offsetHeight:a,scrollHeight:i,scrollTop:o}),h=Math.max(0,Math.min(l,m));n="top"===s||h!==l?o+h:"100%",c(function(){var e,s,u;return[K()(e=[K()(s=K()(u="%cscrollToSticky%c: Will animate from %c".concat(r,"px%c to %c")).call(u,"number"==typeof n?n+"px":n.replace(/%/g,"%%"),"%c (%c")).call(s,("100%"===n?l:n)+r,"px%c)")]).call(e,D(tE("orange")),D(tE("purple")),D(tE("purple")),D(tE("purple"))),{animateFrom:r,maxValue:l,minValue:p,nextAnimateTo:n,nextValue:h,offsetHeight:a,rawNextValue:m,scrollHeight:i,scrollTop:o}]}),eo(n,{behavior:"smooth"})}},[N,c,s,u,eo,S]),em=(0,b.useCallback)(function(e){var n,r=e.timeStampLow,a=v.current,i=S.current,o=null!==a;if(!(r<=p.current)&&i){var l=tL({mode:s,target:i}),u=l.atBottom,m=l.atEnd,d=l.atStart,h=l.atTop;L(u),B(m),Z(d),V(h);var f=i.offsetHeight,g=i.scrollHeight,b=O.current,k=R.current,y=f!==b,E=g!==k;if(y&&(O.current=f),E&&(R.current=g),y||E)en.current&&(c(function(){var e;return[K()(e=["%conScroll%c: Size changed while sticky, calling %cscrollToSticky()%c"]).call(e,D(tE("red")),D(tE("orange")),[{offsetHeightChanged:y,scrollHeightChanged:E}]),{nextOffsetHeight:f,prevOffsetHeight:b,nextScrollHeight:g,prevScrollHeight:k}]}),ep());else{var T=o&&tP(a,s)||m;en.current!==T&&(c(function(){var e,n,r,l;return[K()(e=["%conScroll%c: %csetSticky%c(%c".concat(T,"%c)")]).call(e,D(tE("red")),D(tE("red")),D(tE("purple"))),K()(n=[K()(r=K()(l="(animating = %c".concat(o,"%c && isEnd = %c")).call(l,tP(a,s),"%c) || atEnd = %c")).call(r,m,"%c")]).call(n,D(tE("purple")),D(tE("purple")),D(tE("purple")),[{animating:o,animateTo:a,atEnd:m,mode:s,offsetHeight:i.offsetHeight,scrollHeight:i.scrollHeight,sticky:en.current,nextSticky:T}])]}),et(T))}var _=i.scrollTop;Y()(n=er.current).call(n,function(e){return e({scrollTop:_})})}},[v,c,p,s,O,R,er,ep,L,B,Z,V,et,en,S]);(0,b.useEffect)(function(){if(A){var e,r,a=!1,i=((e=function(){var e=S.current,n=null!==v.current;en.current?tL({mode:s,target:e}).atEnd?a=!1:a?q()()-a>34&&(n||(N.current=e.scrollTop,c(function(){var e;return K()(e=["%cInterval check%c: Should sticky but not at end, calling %cscrollToSticky()%c to scroll"]).call(e,D(tE("navy")),D(tE("orange")))}),ep()),a=!1):a=q()():e.scrollHeight<=e.offsetHeight&&!en.current&&(c(function(){var n;return[K()(n=["%cInterval check%c: Container is emptied, setting sticky back to %ctrue%c"]).call(n,D(tE("navy")),D(tE("purple"))),[{offsetHeight:e.offsetHeight,scrollHeight:e.scrollHeight,sticky:en.current}]]}),et(!0))})(),F()(e,Math.max(17,n)||17));return function(){return clearInterval(i)}}},[v,n,c,s,ep,et,en,A,S]);var ed=(0,b.useMemo)(function(){var e=tI[l]||(tI[l]=tf({key:"react-scroll-to-bottom--css-"+tk()().toString(26).substr(2,5).replace(/[0-9]/g,function(e){return String.fromCharCode(e.charCodeAt(0)+65)}),nonce:l}));return function(n){return e.css(n)+""}},[l]),eh=(0,b.useMemo)(function(){return{observeScrollPosition:ea,setTarget:j,styleToClassName:ed}},[ea,j,ed]),ef=(0,b.useMemo)(function(){return{atBottom:I,atEnd:z,atStart:Q,atTop:$,mode:s}},[I,z,Q,$,s]),eg=(0,b.useMemo)(function(){var e=null!==g;return{animating:e,animatingToEnd:e&&tP(g,s),sticky:ee}},[g,s,ee]),eb=(0,b.useMemo)(function(){return tR(tR({},ef),eg)},[ef,eg]),ek=(0,b.useMemo)(function(){return{scrollTo:eo,scrollToBottom:es,scrollToEnd:eu,scrollToStart:ec,scrollToTop:el}},[eo,es,eu,ec,el]);return(0,b.useEffect)(function(){if(A){var e=function(){R.current=A.scrollHeight};return A.addEventListener("focus",e,{capture:!0,passive:!0}),function(){return A.removeEventListener("focus",e)}}},[A]),c(function(){var e;return[K()(e=["%cRender%c: Render"]).call(e,D(tE("cyan",""))),{animateTo:g,animating:null!==g,sticky:ee,target:A}]}),b.createElement(C.Provider,{value:eh},b.createElement(y.Provider,{value:ek},b.createElement(w.Provider,{value:eb},b.createElement(T.Provider,{value:ef},b.createElement(_.Provider,{value:eg},r,A&&b.createElement(tw,{debounce:a,name:"scroll",onEvent:em,target:A}),A&&null!==g&&b.createElement(tC,{name:"scrollTop",onEnd:ei,target:A,value:g}))))))};tD.defaultProps={checkInterval:100,children:void 0,debounce:17,debug:void 0,initialScrollBehavior:"smooth",mode:void 0,nonce:void 0,scroller:tM},tD.propTypes={checkInterval:g().number,children:g().any,debounce:g().number,debug:g().bool,initialScrollBehavior:g().oneOf(["auto","smooth"]),mode:g().oneOf(["bottom","top"]),nonce:g().string,scroller:g().func};var tz=tD,tF={height:"100%",overflowY:"auto",width:"100%"},tB=function(e){var n=e.children,r=e.className,a=(0,b.useContext)(C).setTarget,i=O()(tF);return b.createElement("div",{className:h()(i,(r||"")+""),ref:a},n)};tB.defaultProps={children:void 0,className:void 0},tB.propTypes={children:g().any,className:g().string};var tH=tB,tU={position:"relative"},tG=function(e){var n=e.children,r=e.className,a=e.followButtonClassName,i=e.scrollViewClassName,o=O()(tU);return b.createElement("div",{className:h()(o,(r||"")+"")},b.createElement(tH,{className:(i||"")+""},n),b.createElement(I,{className:(a||"")+""}))};tG.defaultProps={children:void 0,className:void 0,followButtonClassName:void 0,scrollViewClassName:void 0},tG.propTypes={children:g().any,className:g().string,followButtonClassName:g().string,scrollViewClassName:g().string};var t$=function(e){var n=e.checkInterval,r=e.children,a=e.className,i=e.debounce,o=e.debug,s=e.followButtonClassName,l=e.initialScrollBehavior,u=e.mode,c=e.nonce,p=e.scroller,m=e.scrollViewClassName;return b.createElement(tz,{checkInterval:n,debounce:i,debug:o,initialScrollBehavior:l,mode:u,nonce:c,scroller:p},b.createElement(tG,{className:a,followButtonClassName:s,scrollViewClassName:m},r))};function tK(){return[j(2).animating]}function tV(){return[j(2).animatingToEnd]}function tq(){return[j(1).atBottom]}function tW(){return[j(1).atEnd]}function tY(){return[j(1).atStart]}function tQ(){return[j(1).atTop]}function tZ(){return[j(1).mode]}function tX(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];e&&"function"!=typeof e?console.error('react-scroll-to-bottom: First argument passed to "useObserveScrollPosition" must be a function.'):tv()(r)||console.error('react-scroll-to-bottom: Second argument passed to "useObserveScrollPosition" must be an array if specified.');var a=N().observeScrollPosition;(0,b.useEffect)(function(){return e&&a(e)},K()(n=[]).call(n,D(r),[!e,a]))}function tJ(){return v().scrollTo}function t1(){return v().scrollToBottom}function t0(){return v().scrollToStart}function t9(){return v().scrollToTop}t$.defaultProps={checkInterval:void 0,children:void 0,className:void 0,debounce:void 0,debug:void 0,followButtonClassName:void 0,initialScrollBehavior:"smooth",mode:void 0,nonce:void 0,scroller:void 0,scrollViewClassName:void 0},t$.propTypes={checkInterval:g().number,children:g().any,className:g().string,debounce:g().number,debug:g().bool,followButtonClassName:g().string,initialScrollBehavior:g().oneOf(["auto","smooth"]),mode:g().oneOf(["bottom","top"]),nonce:g().string,scroller:g().func,scrollViewClassName:g().string};var t5=t$;!function(e,n){try{var a=r.g.document;if(void 0!==a&&a.createElement&&a.head&&a.head.appendChild){var i=a.querySelector('html meta[name="'.concat(encodeURI(e),'"]'))||a.createElement("meta");i.setAttribute("name",e),i.setAttribute("content",n),a.head.appendChild(i)}}catch(o){}}("react-scroll-to-bottom:version","4.2.0")},78791:function(e,n,r){var a=r(29058);e.exports=function(e,n){var r,i,o,s=null;if(!e||"string"!=typeof e)return s;for(var l=a(e),u="function"==typeof n,c=0,p=l.length;c/g,">").replace(/"/g,""").replace(/'/g,"'")}function o(e,...n){let r=Object.create(null);for(let a in e)r[a]=e[a];return n.forEach(function(e){for(let n in e)r[n]=e[n]}),r}let s=e=>!!e.scope||e.sublanguage&&e.language,l=(e,{prefix:n})=>{if(e.includes(".")){let r=e.split(".");return[`${n}${r.shift()}`,...r.map((e,n)=>`${e}${"_".repeat(n+1)}`)].join(" ")}return`${n}${e}`};class u{constructor(e,n){this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){this.buffer+=i(e)}openNode(e){if(!s(e))return;let n="";n=e.sublanguage?`language-${e.language}`:l(e.scope,{prefix:this.classPrefix}),this.span(n)}closeNode(e){s(e)&&(this.buffer+="")}value(){return this.buffer}span(e){this.buffer+=``}}let c=(e={})=>{let n={children:[]};return Object.assign(n,e),n};class p{constructor(){this.rootNode=c(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){let n=c({scope:e});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),n.children.forEach(n=>this._walk(e,n)),e.closeNode(n)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every(e=>"string"==typeof e)?e.children=[e.children.join("")]:e.children.forEach(e=>{p._collapse(e)}))}}class m extends p{constructor(e){super(),this.options=e}addKeyword(e,n){""!==e&&(this.openNode(n),this.addText(e),this.closeNode())}addText(e){""!==e&&this.add(e)}addSublanguage(e,n){let r=e.root;r.sublanguage=!0,r.language=n,this.add(r)}toHTML(){let e=new u(this,this.options);return e.value()}finalize(){return!0}}function d(e){return e?"string"==typeof e?e:e.source:null}function h(e){return b("(?=",e,")")}function f(e){return b("(?:",e,")*")}function g(e){return b("(?:",e,")?")}function b(...e){let n=e.map(e=>d(e)).join("");return n}function k(...e){let n=function(e){let n=e[e.length-1];return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}(e),r="("+(n.capture?"":"?:")+e.map(e=>d(e)).join("|")+")";return r}function y(e){return RegExp(e.toString()+"|").exec("").length-1}let v=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function E(e,{joinWith:n}){let r=0;return e.map(e=>{r+=1;let n=r,a=d(e),i="";for(;a.length>0;){let o=v.exec(a);if(!o){i+=a;break}i+=a.substring(0,o.index),a=a.substring(o.index+o[0].length),"\\"===o[0][0]&&o[1]?i+="\\"+String(Number(o[1])+n):(i+=o[0],"("===o[0]&&r++)}return i}).map(e=>`(${e})`).join(n)}let T="[a-zA-Z]\\w*",_="[a-zA-Z_]\\w*",x="\\b\\d+(\\.\\d+)?",w="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",A="\\b(0b[01]+)",j=(e={})=>{let n=/^#![ ]*\//;return e.binary&&(e.begin=b(n,/.*\b/,e.binary,/\b.*/)),o({scope:"meta",begin:n,end:/$/,relevance:0,"on:begin"(e,n){0!==e.index&&n.ignoreMatch()}},e)},S={begin:"\\\\[\\s\\S]",relevance:0},C=function(e,n,r={}){let a=o({scope:"comment",begin:e,end:n,contains:[]},r);a.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let i=k("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return a.contains.push({begin:b(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),a},N=C("//","$"),O=C("/\\*","\\*/"),R=C("#","$"),M=function(e){return Object.assign(e,{"on:begin"(e,n){n.data._beginMatch=e[1]},"on:end"(e,n){n.data._beginMatch!==e[1]&&n.ignoreMatch()}})};var I=Object.freeze({__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:T,UNDERSCORE_IDENT_RE:_,NUMBER_RE:x,C_NUMBER_RE:w,BINARY_NUMBER_RE:A,RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:j,BACKSLASH_ESCAPE:S,APOS_STRING_MODE:{scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[S]},QUOTE_STRING_MODE:{scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[S]},PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},COMMENT:C,C_LINE_COMMENT_MODE:N,C_BLOCK_COMMENT_MODE:O,HASH_COMMENT_MODE:R,NUMBER_MODE:{scope:"number",begin:x,relevance:0},C_NUMBER_MODE:{scope:"number",begin:w,relevance:0},BINARY_NUMBER_MODE:{scope:"number",begin:A,relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[S,{begin:/\[/,end:/\]/,relevance:0,contains:[S]}]}]},TITLE_MODE:{scope:"title",begin:T,relevance:0},UNDERSCORE_TITLE_MODE:{scope:"title",begin:_,relevance:0},METHOD_GUARD:{begin:"\\.\\s*"+_,relevance:0},END_SAME_AS_BEGIN:M});function L(e,n){let r=e.input[e.index-1];"."===r&&n.ignoreMatch()}function P(e,n){void 0!==e.className&&(e.scope=e.className,delete e.className)}function D(e,n){n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=L,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function z(e,n){Array.isArray(e.illegal)&&(e.illegal=k(...e.illegal))}function F(e,n){if(e.match){if(e.begin||e.end)throw Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function B(e,n){void 0===e.relevance&&(e.relevance=1)}let H=(e,n)=>{if(!e.beforeMatch)return;if(e.starts)throw Error("beforeMatch cannot be used with starts");let r=Object.assign({},e);Object.keys(e).forEach(n=>{delete e[n]}),e.keywords=r.keywords,e.begin=b(r.beforeMatch,h(r.begin)),e.starts={relevance:0,contains:[Object.assign(r,{endsParent:!0})]},e.relevance=0,delete r.beforeMatch},U=["of","and","for","in","not","or","if","then","parent","list","value"],G={},$=e=>{console.error(e)},K=(e,...n)=>{console.log(`WARN: ${e}`,...n)},V=(e,n)=>{G[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),G[`${e}/${n}`]=!0)},q=Error();function W(e,n,{key:r}){let a=0,i=e[r],o={},s={};for(let l=1;l<=n.length;l++)s[l+a]=i[l],o[l+a]=!0,a+=y(n[l-1]);e[r]=s,e[r]._emit=o,e[r]._multi=!0}function Y(e){var n;(n=e).scope&&"object"==typeof n.scope&&null!==n.scope&&(n.beginScope=n.scope,delete n.scope),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),function(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw $("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),q;if("object"!=typeof e.beginScope||null===e.beginScope)throw $("beginScope must be object"),q;W(e,e.begin,{key:"beginScope"}),e.begin=E(e.begin,{joinWith:""})}}(e),function(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw $("skip, excludeEnd, returnEnd not compatible with endScope: {}"),q;if("object"!=typeof e.endScope||null===e.endScope)throw $("endScope must be object"),q;W(e,e.end,{key:"endScope"}),e.end=E(e.end,{joinWith:""})}}(e)}class Q extends Error{constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}}let Z=Symbol("nomatch");var X=function(e){let r=Object.create(null),s=Object.create(null),l=[],u=!0,c="Could not find the language '{}', did you forget to load/include a language module?",p={disableAutodetect:!0,name:"Plain text",contains:[]},v={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:m};function T(e){return v.noHighlightRe.test(e)}function _(e,n,r){let a="",i="";"object"==typeof n?(a=e,r=n.ignoreIllegals,i=n.language):(V("10.7.0","highlight(lang, code, ...args) has been deprecated."),V("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),i=e,a=n),void 0===r&&(r=!0);let o={code:a,language:i};M("before:highlight",o);let s=o.result?o.result:x(o.language,o.code,r);return s.code=o.code,M("after:highlight",s),s}function x(e,n,s,l){let p=Object.create(null);function m(e,n){return e.keywords[n]}function h(){if(!C.keywords){R.addText(M);return}let e=0;C.keywordPatternRe.lastIndex=0;let n=C.keywordPatternRe.exec(M),r="";for(;n;){r+=M.substring(e,n.index);let a=A.case_insensitive?n[0].toLowerCase():n[0],i=m(C,a);if(i){let[o,s]=i;if(R.addText(r),r="",p[a]=(p[a]||0)+1,p[a]<=7&&(I+=s),o.startsWith("_"))r+=n[0];else{let l=A.classNameAliases[o]||o;R.addKeyword(n[0],l)}}else r+=n[0];e=C.keywordPatternRe.lastIndex,n=C.keywordPatternRe.exec(M)}r+=M.substring(e),R.addText(r)}function f(){null!=C.subLanguage?function(){if(""===M)return;let e=null;if("string"==typeof C.subLanguage){if(!r[C.subLanguage]){R.addText(M);return}e=x(C.subLanguage,M,!0,O[C.subLanguage]),O[C.subLanguage]=e._top}else e=w(M,C.subLanguage.length?C.subLanguage:null);C.relevance>0&&(I+=e.relevance),R.addSublanguage(e._emitter,e.language)}():h(),M=""}function g(e,n){let r=1,a=n.length-1;for(;r<=a;){if(!e._emit[r]){r++;continue}let i=A.classNameAliases[e[r]]||e[r],o=n[r];i?R.addKeyword(o,i):(M=o,h(),M=""),r++}}function b(e,n){return e.scope&&"string"==typeof e.scope&&R.openNode(A.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(R.addKeyword(M,A.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),M=""):e.beginScope._multi&&(g(e.beginScope,n),M="")),C=Object.create(e,{parent:{value:C}})}function k(e){return 0===C.matcher.regexIndex?(M+=e[0],1):(K=!0,0)}let T={};function _(r,i){let o=i&&i[0];if(M+=r,null==o)return f(),0;if("begin"===T.type&&"end"===i.type&&T.index===i.index&&""===o){if(M+=n.slice(i.index,i.index+1),!u){let l=Error(`0 width match regex (${e})`);throw l.languageName=e,l.badRule=T.rule,l}return 1}if(T=i,"begin"===i.type)return function(e){let n=e[0],r=e.rule,i=new a(r),o=[r.__beforeBegin,r["on:begin"]];for(let s of o)if(s&&(s(e,i),i.isMatchIgnored))return k(n);return r.skip?M+=n:(r.excludeBegin&&(M+=n),f(),r.returnBegin||r.excludeBegin||(M=n)),b(r,e),r.returnBegin?0:n.length}(i);if("illegal"!==i.type||s){if("end"===i.type){let c=function e(r){let i=r[0],o=n.substring(r.index),s=function e(n,r,i){let o=function e(n,r){let a=n&&n.exec(r);return a&&0===a.index}(n.endRe,i);if(o){if(n["on:end"]){let s=new a(n);n["on:end"](r,s),s.isMatchIgnored&&(o=!1)}if(o){for(;n.endsParent&&n.parent;)n=n.parent;return n}}if(n.endsWithParent)return e(n.parent,r,i)}(C,r,o);if(!s)return Z;let l=C;C.endScope&&C.endScope._wrap?(f(),R.addKeyword(i,C.endScope._wrap)):C.endScope&&C.endScope._multi?(f(),g(C.endScope,r)):l.skip?M+=i:(l.returnEnd||l.excludeEnd||(M+=i),f(),l.excludeEnd&&(M=i));do C.scope&&R.closeNode(),C.skip||C.subLanguage||(I+=C.relevance),C=C.parent;while(C!==s.parent);return s.starts&&b(s.starts,r),l.returnEnd?0:i.length}(i);if(c!==Z)return c}}else{let p=Error('Illegal lexeme "'+o+'" for mode "'+(C.scope||"")+'"');throw p.mode=C,p}if("illegal"===i.type&&""===o)return 1;if(G>1e5&&G>3*i.index){let m=Error("potential infinite loop, way more iterations than matches");throw m}return M+=o,o.length}let A=N(e);if(!A)throw $(c.replace("{}",e)),Error('Unknown language: "'+e+'"');let j=function(e){function n(n,r){return RegExp(d(n),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(r?"g":""))}class r{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,n){n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),this.matchAt+=y(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);let e=this.regexes.map(e=>e[1]);this.matcherRe=n(E(e,{joinWith:"|"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;let n=this.matcherRe.exec(e);if(!n)return null;let r=n.findIndex((e,n)=>n>0&&void 0!==e),a=this.matchIndexes[r];return n.splice(0,r),Object.assign(n,a)}}class a{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];let n=new r;return this.rules.slice(e).forEach(([e,r])=>n.addRule(e,r)),n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){let n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex;let r=n.exec(e);if(this.resumingScanAtSamePosition()){if(r&&r.index===this.lastIndex);else{let a=this.getMatcher(0);a.lastIndex=this.lastIndex+1,r=a.exec(e)}}return r&&(this.regexIndex+=r.position+1,this.regexIndex===this.count&&this.considerAll()),r}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=o(e.classNameAliases||{}),function r(i,s){let l=i;if(i.isCompiled)return l;[P,F,Y,H].forEach(e=>e(i,s)),e.compilerExtensions.forEach(e=>e(i,s)),i.__beforeBegin=null,[D,z,B].forEach(e=>e(i,s)),i.isCompiled=!0;let u=null;return"object"==typeof i.keywords&&i.keywords.$pattern&&(i.keywords=Object.assign({},i.keywords),u=i.keywords.$pattern,delete i.keywords.$pattern),u=u||/\w+/,i.keywords&&(i.keywords=function e(n,r,a="keyword"){let i=Object.create(null);return"string"==typeof n?o(a,n.split(" ")):Array.isArray(n)?o(a,n):Object.keys(n).forEach(function(a){Object.assign(i,e(n[a],r,a))}),i;function o(e,n){r&&(n=n.map(e=>e.toLowerCase())),n.forEach(function(n){var r,a,o;let s=n.split("|");i[s[0]]=[e,(r=s[0],a=s[1],a?Number(a):(o=r,U.includes(o.toLowerCase()))?0:1)]})}}(i.keywords,e.case_insensitive)),l.keywordPatternRe=n(u,!0),s&&(i.begin||(i.begin=/\B|\b/),l.beginRe=n(l.begin),i.end||i.endsWithParent||(i.end=/\B|\b/),i.end&&(l.endRe=n(l.end)),l.terminatorEnd=d(l.end)||"",i.endsWithParent&&s.terminatorEnd&&(l.terminatorEnd+=(i.end?"|":"")+s.terminatorEnd)),i.illegal&&(l.illegalRe=n(i.illegal)),i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map(function(e){var n;return n="self"===e?i:e,(n.variants&&!n.cachedVariants&&(n.cachedVariants=n.variants.map(function(e){return o(n,{variants:null},e)})),n.cachedVariants)?n.cachedVariants:!function e(n){return!!n&&(n.endsWithParent||e(n.starts))}(n)?Object.isFrozen(n)?o(n):n:o(n,{starts:n.starts?o(n.starts):null})})),i.contains.forEach(function(e){r(e,l)}),i.starts&&r(i.starts,s),l.matcher=function(e){let n=new a;return e.contains.forEach(e=>n.addRule(e.begin,{rule:e,type:"begin"})),e.terminatorEnd&&n.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n}(l),l}(e)}(A),S="",C=l||j,O={},R=new v.__emitter(v);!function(){let e=[];for(let n=C;n!==A;n=n.parent)n.scope&&e.unshift(n.scope);e.forEach(e=>R.openNode(e))}();let M="",I=0,L=0,G=0,K=!1;try{for(C.matcher.considerAll();;){G++,K?K=!1:C.matcher.considerAll(),C.matcher.lastIndex=L;let V=C.matcher.exec(n);if(!V)break;let q=n.substring(L,V.index),W=_(q,V);L=V.index+W}return _(n.substring(L)),R.closeAllNodes(),R.finalize(),S=R.toHTML(),{language:e,value:S,relevance:I,illegal:!1,_emitter:R,_top:C}}catch(Q){if(Q.message&&Q.message.includes("Illegal"))return{language:e,value:i(n),illegal:!0,relevance:0,_illegalBy:{message:Q.message,index:L,context:n.slice(L-100,L+100),mode:Q.mode,resultSoFar:S},_emitter:R};if(u)return{language:e,value:i(n),illegal:!1,relevance:0,errorRaised:Q,_emitter:R,_top:C};throw Q}}function w(e,n){n=n||v.languages||Object.keys(r);let a=function(e){let n={value:i(e),illegal:!1,relevance:0,_top:p,_emitter:new v.__emitter(v)};return n._emitter.addText(e),n}(e),o=n.filter(N).filter(R).map(n=>x(n,e,!1));o.unshift(a);let s=o.sort((e,n)=>{if(e.relevance!==n.relevance)return n.relevance-e.relevance;if(e.language&&n.language){if(N(e.language).supersetOf===n.language)return 1;if(N(n.language).supersetOf===e.language)return -1}return 0}),[l,u]=s,c=l;return c.secondBest=u,c}function A(e){let n=null,r=function(e){let n=e.className+" ";n+=e.parentNode?e.parentNode.className:"";let r=v.languageDetectRe.exec(n);if(r){let a=N(r[1]);return a||(K(c.replace("{}",r[1])),K("Falling back to no-highlight mode for this block.",e)),a?r[1]:"no-highlight"}return n.split(/\s+/).find(e=>T(e)||N(e))}(e);if(T(r))return;if(M("before:highlightElement",{el:e,language:r}),e.children.length>0&&(v.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(e)),v.throwUnescapedHTML)){let a=new Q("One of your code blocks includes unescaped HTML.",e.innerHTML);throw a}n=e;let i=n.textContent,o=r?_(i,{language:r,ignoreIllegals:!0}):w(i);e.innerHTML=o.value,function(e,n,r){let a=n&&s[n]||r;e.classList.add("hljs"),e.classList.add(`language-${a}`)}(e,r,o.language),e.result={language:o.language,re:o.relevance,relevance:o.relevance},o.secondBest&&(e.secondBest={language:o.secondBest.language,relevance:o.secondBest.relevance}),M("after:highlightElement",{el:e,result:o,text:i})}let j=()=>{C(),V("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},S=!1;function C(){if("loading"===document.readyState){S=!0;return}let e=document.querySelectorAll(v.cssSelector);e.forEach(A)}function N(e){return r[e=(e||"").toLowerCase()]||r[s[e]]}function O(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach(e=>{s[e.toLowerCase()]=n})}function R(e){let n=N(e);return n&&!n.disableAutodetect}function M(e,n){l.forEach(function(r){r[e]&&r[e](n)})}for(let L in"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",function(){S&&C()},!1),Object.assign(e,{highlight:_,highlightAuto:w,highlightAll:C,highlightElement:A,highlightBlock:function(e){return V("10.7.0","highlightBlock will be removed entirely in v12.0"),V("10.7.0","Please use highlightElement now."),A(e)},configure:function(e){v=o(v,e)},initHighlighting:j,initHighlightingOnLoad:function(){C(),V("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function(n,a){let i=null;try{i=a(e)}catch(o){if($("Language definition for '{}' could not be registered.".replace("{}",n)),u)$(o);else throw o;i=p}i.name||(i.name=n),r[n]=i,i.rawDefinition=a.bind(null,e),i.aliases&&O(i.aliases,{languageName:n})},unregisterLanguage:function(e){for(let n of(delete r[e],Object.keys(s)))s[n]===e&&delete s[n]},listLanguages:function(){return Object.keys(r)},getLanguage:N,registerAliases:O,autoDetection:R,inherit:o,addPlugin:function(e){var n;(n=e)["before:highlightBlock"]&&!n["before:highlightElement"]&&(n["before:highlightElement"]=e=>{n["before:highlightBlock"](Object.assign({block:e.el},e))}),n["after:highlightBlock"]&&!n["after:highlightElement"]&&(n["after:highlightElement"]=e=>{n["after:highlightBlock"](Object.assign({block:e.el},e))}),l.push(e)}}),e.debugMode=function(){u=!1},e.safeMode=function(){u=!0},e.versionString="11.7.0",e.regex={concat:b,lookahead:h,either:k,optional:g,anyNumberOfTimes:f},I)"object"==typeof I[L]&&n.exports(I[L]);return Object.assign(e,I),e}({});e.exports=X,X.HighlightJS=X,X.default=X},35888:function(e,n,r){"use strict";r.d(n,{R:function(){return q}});var a=r(70079),i=r(62530),o=r(19430),s=r(9335),l=r(41800);function u(e,n){let[r,i]=(0,a.useState)(e),o=(0,l.E)(e);return(0,s.e)(()=>i(o.current),[o,i,...n]),r}var c,p,m,d,h,f=r(84325),g=r(34741),b=r(71690),k=r(570),y=r(52076),v=((c=v||{})[c.First=0]="First",c[c.Previous=1]="Previous",c[c.Next=2]="Next",c[c.Last=3]="Last",c[c.Specific=4]="Specific",c[c.Nothing=5]="Nothing",c),E=r(46428),T=r(90723),_=r(77095),x=r(16446),w=r(43562),A=r(82756),j=r(85483),S=r(90385),C=r(27721),N=r(19184),O=((p=O||{})[p.Open=0]="Open",p[p.Closed=1]="Closed",p),R=((m=R||{})[m.Single=0]="Single",m[m.Multi=1]="Multi",m),M=((d=M||{})[d.Pointer=0]="Pointer",d[d.Other=1]="Other",d),I=((h=I||{})[h.OpenListbox=0]="OpenListbox",h[h.CloseListbox=1]="CloseListbox",h[h.SetDisabled=2]="SetDisabled",h[h.SetOrientation=3]="SetOrientation",h[h.GoToOption=4]="GoToOption",h[h.Search=5]="Search",h[h.ClearSearch=6]="ClearSearch",h[h.RegisterOption=7]="RegisterOption",h[h.UnregisterOption=8]="UnregisterOption",h);function L(e,n=e=>e){let r=null!==e.activeOptionIndex?e.options[e.activeOptionIndex]:null,a=(0,T.z2)(n(e.options.slice()),e=>e.dataRef.current.domRef.current),i=r?a.indexOf(r):null;return -1===i&&(i=null),{options:a,activeOptionIndex:i}}let P={1:e=>e.disabled||1===e.listboxState?e:{...e,activeOptionIndex:null,listboxState:1},0(e){if(e.disabled||0===e.listboxState)return e;let n=e.activeOptionIndex,{value:r,mode:a,compare:i}=e.propsRef.current,o=e.options.findIndex(e=>{let n=e.dataRef.current.value;return(0,b.E)(a,{1:()=>r.some(e=>i(e,n)),0:()=>i(r,n)})});return -1!==o&&(n=o),{...e,listboxState:0,activeOptionIndex:n}},2:(e,n)=>e.disabled===n.disabled?e:{...e,disabled:n.disabled},3:(e,n)=>e.orientation===n.orientation?e:{...e,orientation:n.orientation},4(e,n){var r;if(e.disabled||1===e.listboxState)return e;let a=L(e),i=function(e,n){let r=n.resolveItems();if(r.length<=0)return null;let a=n.resolveActiveIndex(),i=null!=a?a:-1,o=(()=>{switch(e.focus){case 0:return r.findIndex(e=>!n.resolveDisabled(e));case 1:{let a=r.slice().reverse().findIndex((e,r,a)=>(-1===i||!(a.length-r-1>=i))&&!n.resolveDisabled(e));return -1===a?a:r.length-1-a}case 2:return r.findIndex((e,r)=>!(r<=i)&&!n.resolveDisabled(e));case 3:{let o=r.slice().reverse().findIndex(e=>!n.resolveDisabled(e));return -1===o?o:r.length-1-o}case 4:return r.findIndex(r=>n.resolveId(r)===e.id);case 5:return null;default:!function(e){throw Error("Unexpected object: "+e)}(e)}})();return -1===o?a:o}(n,{resolveItems:()=>a.options,resolveActiveIndex:()=>a.activeOptionIndex,resolveId:e=>e.id,resolveDisabled:e=>e.dataRef.current.disabled});return{...e,...a,searchQuery:"",activeOptionIndex:i,activationTrigger:null!=(r=n.trigger)?r:1}},5(e,n){if(e.disabled||1===e.listboxState)return e;let r=""!==e.searchQuery?0:1,a=e.searchQuery+n.value.toLowerCase(),i=(null!==e.activeOptionIndex?e.options.slice(e.activeOptionIndex+r).concat(e.options.slice(0,e.activeOptionIndex+r)):e.options).find(e=>{var n;return!e.dataRef.current.disabled&&(null==(n=e.dataRef.current.textValue)?void 0:n.startsWith(a))}),o=i?e.options.indexOf(i):-1;return -1===o||o===e.activeOptionIndex?{...e,searchQuery:a}:{...e,searchQuery:a,activeOptionIndex:o,activationTrigger:1}},6:e=>e.disabled||1===e.listboxState||""===e.searchQuery?e:{...e,searchQuery:""},7(e,n){let r={id:n.id,dataRef:n.dataRef},a=L(e,e=>[...e,r]);if(null===e.activeOptionIndex){let{value:i,mode:o,compare:s}=e.propsRef.current,l=n.dataRef.current.value;(0,b.E)(o,{1:()=>i.some(e=>s(e,l)),0:()=>s(i,l)})&&(a.activeOptionIndex=a.options.indexOf(r))}return{...e,...a}},8(e,n){let r=L(e,e=>{let r=e.findIndex(e=>e.id===n.id);return -1!==r&&e.splice(r,1),e});return{...e,...r,activationTrigger:1}}},D=(0,a.createContext)(null);function z(e){let n=(0,a.useContext)(D);if(null===n){let r=Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,z),r}return n}function F(e,n){return(0,b.E)(n.type,P,e,n)}D.displayName="ListboxContext";let B=a.Fragment,H=(0,g.yV)(function(e,n){let{value:r,defaultValue:i,name:o,onChange:l,by:u=(e,n)=>e===n,disabled:c=!1,horizontal:p=!1,multiple:m=!1,...d}=e,h=p?"horizontal":"vertical",k=(0,f.T)(n),[y,v]=(0,N.q)(r,l,i),E=(0,a.useReducer)(F,{listboxState:1,propsRef:{current:{value:y,onChange:v,mode:m?1:0,compare:(0,C.z)("string"==typeof u?(e,n)=>(null==e?void 0:e[u])===(null==n?void 0:n[u]):u)}},labelRef:(0,a.createRef)(),buttonRef:(0,a.createRef)(),optionsRef:(0,a.createRef)(),disabled:c,orientation:h,options:[],searchQuery:"",activeOptionIndex:null,activationTrigger:1}),[{listboxState:x,propsRef:S,optionsRef:O,buttonRef:R},M]=E;S.current.value=y,S.current.mode=m?1:0,(0,s.e)(()=>{S.current.onChange=e=>(0,b.E)(S.current.mode,{0:()=>v(e),1(){let n=S.current.value.slice(),{compare:r}=S.current,a=n.findIndex(n=>r(n,e));return -1===a?n.push(e):n.splice(a,1),v(n)}})},[v,S]),(0,s.e)(()=>M({type:2,disabled:c}),[c]),(0,s.e)(()=>M({type:3,orientation:h}),[h]),(0,w.O)([R,O],(e,n)=>{var r;M({type:1}),(0,T.sP)(n,T.tJ.Loose)||(e.preventDefault(),null==(r=R.current)||r.focus())},0===x);let I=(0,a.useMemo)(()=>({open:0===x,disabled:c,value:y}),[x,c,y]);return a.createElement(D.Provider,{value:E},a.createElement(_.up,{value:(0,b.E)(x,{0:_.ZM.Open,1:_.ZM.Closed})},null!=o&&null!=y&&(0,j.t)({[o]:y}).map(([e,n])=>a.createElement(A._,{features:A.A.Hidden,...(0,g.oA)({key:e,as:"input",type:"hidden",hidden:!0,readOnly:!0,name:e,value:n})})),(0,g.sY)({ourProps:{ref:k},theirProps:d,slot:I,defaultTag:B,name:"Listbox"})))}),U=(0,g.yV)(function(e,n){var r;let[s,l]=z("Listbox.Button"),c=(0,f.T)(s.buttonRef,n),p=`headlessui-listbox-button-${(0,o.M)()}`,m=(0,i.G)(),d=(0,C.z)(e=>{switch(e.key){case y.R.Space:case y.R.Enter:case y.R.ArrowDown:e.preventDefault(),l({type:0}),m.nextFrame(()=>{s.propsRef.current.value||l({type:4,focus:v.First})});break;case y.R.ArrowUp:e.preventDefault(),l({type:0}),m.nextFrame(()=>{s.propsRef.current.value||l({type:4,focus:v.Last})})}}),h=(0,C.z)(e=>{e.key===y.R.Space&&e.preventDefault()}),b=(0,C.z)(e=>{if((0,E.P)(e.currentTarget))return e.preventDefault();0===s.listboxState?(l({type:1}),m.nextFrame(()=>{var e;return null==(e=s.buttonRef.current)?void 0:e.focus({preventScroll:!0})})):(e.preventDefault(),l({type:0}))}),k=u(()=>{if(s.labelRef.current)return[s.labelRef.current.id,p].join(" ")},[s.labelRef.current,p]),T=(0,a.useMemo)(()=>({open:0===s.listboxState,disabled:s.disabled,value:s.propsRef.current.value}),[s]),_={ref:c,id:p,type:(0,x.f)(e,s.buttonRef),"aria-haspopup":!0,"aria-controls":null==(r=s.optionsRef.current)?void 0:r.id,"aria-expanded":s.disabled?void 0:0===s.listboxState,"aria-labelledby":k,disabled:s.disabled,onKeyDown:d,onKeyUp:h,onClick:b};return(0,g.sY)({ourProps:_,theirProps:e,slot:T,defaultTag:"button",name:"Listbox.Button"})}),G=(0,g.yV)(function(e,n){let[r]=z("Listbox.Label"),i=`headlessui-listbox-label-${(0,o.M)()}`,s=(0,f.T)(r.labelRef,n),l=(0,C.z)(()=>{var e;return null==(e=r.buttonRef.current)?void 0:e.focus({preventScroll:!0})}),u=(0,a.useMemo)(()=>({open:0===r.listboxState,disabled:r.disabled}),[r]);return(0,g.sY)({ourProps:{ref:s,id:i,onClick:l},theirProps:e,slot:u,defaultTag:"label",name:"Listbox.Label"})}),$=g.AN.RenderStrategy|g.AN.Static,K=(0,g.yV)(function(e,n){var r;let[s,l]=z("Listbox.Options"),c=(0,f.T)(s.optionsRef,n),p=`headlessui-listbox-options-${(0,o.M)()}`,m=(0,i.G)(),d=(0,i.G)(),h=(0,_.oJ)(),E=null!==h?h===_.ZM.Open:0===s.listboxState;(0,a.useEffect)(()=>{var e;let n=s.optionsRef.current;n&&0===s.listboxState&&n!==(null==(e=(0,S.r)(n))?void 0:e.activeElement)&&n.focus({preventScroll:!0})},[s.listboxState,s.optionsRef]);let T=(0,C.z)(e=>{switch(d.dispose(),e.key){case y.R.Space:if(""!==s.searchQuery)return e.preventDefault(),e.stopPropagation(),l({type:5,value:e.key});case y.R.Enter:if(e.preventDefault(),e.stopPropagation(),null!==s.activeOptionIndex){let{dataRef:n}=s.options[s.activeOptionIndex];s.propsRef.current.onChange(n.current.value)}0===s.propsRef.current.mode&&(l({type:1}),(0,k.k)().nextFrame(()=>{var e;return null==(e=s.buttonRef.current)?void 0:e.focus({preventScroll:!0})}));break;case(0,b.E)(s.orientation,{vertical:y.R.ArrowDown,horizontal:y.R.ArrowRight}):return e.preventDefault(),e.stopPropagation(),l({type:4,focus:v.Next});case(0,b.E)(s.orientation,{vertical:y.R.ArrowUp,horizontal:y.R.ArrowLeft}):return e.preventDefault(),e.stopPropagation(),l({type:4,focus:v.Previous});case y.R.Home:case y.R.PageUp:return e.preventDefault(),e.stopPropagation(),l({type:4,focus:v.First});case y.R.End:case y.R.PageDown:return e.preventDefault(),e.stopPropagation(),l({type:4,focus:v.Last});case y.R.Escape:return e.preventDefault(),e.stopPropagation(),l({type:1}),m.nextFrame(()=>{var e;return null==(e=s.buttonRef.current)?void 0:e.focus({preventScroll:!0})});case y.R.Tab:e.preventDefault(),e.stopPropagation();break;default:1===e.key.length&&(l({type:5,value:e.key}),d.setTimeout(()=>l({type:6}),350))}}),x=u(()=>{var e,n,r;return null!=(r=null==(e=s.labelRef.current)?void 0:e.id)?r:null==(n=s.buttonRef.current)?void 0:n.id},[s.labelRef.current,s.buttonRef.current]),w=(0,a.useMemo)(()=>({open:0===s.listboxState}),[s]),A={"aria-activedescendant":null===s.activeOptionIndex||null==(r=s.options[s.activeOptionIndex])?void 0:r.id,"aria-multiselectable":1===s.propsRef.current.mode||void 0,"aria-labelledby":x,"aria-orientation":s.orientation,id:p,onKeyDown:T,role:"listbox",tabIndex:0,ref:c};return(0,g.sY)({ourProps:A,theirProps:e,slot:w,defaultTag:"ul",features:$,visible:E,name:"Listbox.Options"})}),V=(0,g.yV)(function(e,n){let{disabled:r=!1,value:i,...l}=e,[u,c]=z("Listbox.Option"),p=`headlessui-listbox-option-${(0,o.M)()}`,m=null!==u.activeOptionIndex&&u.options[u.activeOptionIndex].id===p,{value:d,compare:h}=u.propsRef.current,y=(0,b.E)(u.propsRef.current.mode,{1:()=>d.some(e=>h(e,i)),0:()=>h(d,i)}),E=(0,a.useRef)(null),T=(0,f.T)(n,E);(0,s.e)(()=>{if(0!==u.listboxState||!m||0===u.activationTrigger)return;let e=(0,k.k)();return e.requestAnimationFrame(()=>{var e,n;null==(n=null==(e=E.current)?void 0:e.scrollIntoView)||n.call(e,{block:"nearest"})}),e.dispose},[E,m,u.listboxState,u.activationTrigger,u.activeOptionIndex]);let _=(0,a.useRef)({disabled:r,value:i,domRef:E});(0,s.e)(()=>{_.current.disabled=r},[_,r]),(0,s.e)(()=>{_.current.value=i},[_,i]),(0,s.e)(()=>{var e,n;_.current.textValue=null==(n=null==(e=E.current)?void 0:e.textContent)?void 0:n.toLowerCase()},[_,E]);let x=(0,C.z)(()=>u.propsRef.current.onChange(i));(0,s.e)(()=>(c({type:7,id:p,dataRef:_}),()=>c({type:8,id:p})),[_,p]);let w=(0,C.z)(e=>{if(r)return e.preventDefault();x(),0===u.propsRef.current.mode&&(c({type:1}),(0,k.k)().nextFrame(()=>{var e;return null==(e=u.buttonRef.current)?void 0:e.focus({preventScroll:!0})}))}),A=(0,C.z)(()=>{if(r)return c({type:4,focus:v.Nothing});c({type:4,focus:v.Specific,id:p})}),j=(0,C.z)(()=>{r||m||c({type:4,focus:v.Specific,id:p,trigger:0})}),S=(0,C.z)(()=>{r||!m||c({type:4,focus:v.Nothing})}),N=(0,a.useMemo)(()=>({active:m,selected:y,disabled:r}),[m,y,r]);return(0,g.sY)({ourProps:{id:p,ref:T,role:"option",tabIndex:!0===r?void 0:-1,"aria-disabled":!0===r||void 0,"aria-selected":y,disabled:void 0,onClick:w,onFocus:A,onPointerMove:j,onMouseMove:j,onPointerLeave:S,onMouseLeave:S},theirProps:l,slot:N,defaultTag:"li",name:"Listbox.Option"})}),q=Object.assign(H,{Button:U,Label:G,Options:K,Option:V})},87093:function(e,n,r){"use strict";r.d(n,{J:function(){return B}});var a,i,o=r(70079),s=r(71690),l=r(34741),u=r(84325),c=r(19430),p=r(52076),m=r(46428),d=r(90723),h=r(77095),f=r(16446),g=r(43562),b=r(90385),k=r(61566),y=r(69990),v=r(82756),E=r(27721),T=r(43412),_=((a=_||{})[a.Open=0]="Open",a[a.Closed=1]="Closed",a),x=((i=x||{})[i.TogglePopover=0]="TogglePopover",i[i.ClosePopover=1]="ClosePopover",i[i.SetButton=2]="SetButton",i[i.SetButtonId=3]="SetButtonId",i[i.SetPanel=4]="SetPanel",i[i.SetPanelId=5]="SetPanelId",i);let w={0:e=>({...e,popoverState:(0,s.E)(e.popoverState,{0:1,1:0})}),1:e=>1===e.popoverState?e:{...e,popoverState:1},2:(e,n)=>e.button===n.button?e:{...e,button:n.button},3:(e,n)=>e.buttonId===n.buttonId?e:{...e,buttonId:n.buttonId},4:(e,n)=>e.panel===n.panel?e:{...e,panel:n.panel},5:(e,n)=>e.panelId===n.panelId?e:{...e,panelId:n.panelId}},A=(0,o.createContext)(null);function j(e){let n=(0,o.useContext)(A);if(null===n){let r=Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,j),r}return n}A.displayName="PopoverContext";let S=(0,o.createContext)(null);function C(e){let n=(0,o.useContext)(S);if(null===n){let r=Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,C),r}return n}S.displayName="PopoverAPIContext";let N=(0,o.createContext)(null);function O(){return(0,o.useContext)(N)}N.displayName="PopoverGroupContext";let R=(0,o.createContext)(null);function M(e,n){return(0,s.E)(n.type,w,e,n)}R.displayName="PopoverPanelContext";let I=(0,l.yV)(function(e,n){var r;let a=`headlessui-popover-button-${(0,c.M)()}`,i=`headlessui-popover-panel-${(0,c.M)()}`,p=(0,o.useRef)(null),m=(0,u.T)(n,(0,u.h)(e=>{p.current=e})),f=(0,o.useReducer)(M,{popoverState:1,button:null,buttonId:a,panel:null,panelId:i,beforePanelSentinel:(0,o.createRef)(),afterPanelSentinel:(0,o.createRef)()}),[{popoverState:b,button:v,panel:T,beforePanelSentinel:_,afterPanelSentinel:x},w]=f,j=(0,k.i)(null!=(r=p.current)?r:v);(0,o.useEffect)(()=>w({type:3,buttonId:a}),[a,w]),(0,o.useEffect)(()=>w({type:5,panelId:i}),[i,w]);let C=(0,o.useMemo)(()=>{if(!v||!T)return!1;for(let e of document.querySelectorAll("body > *"))if(Number(null==e?void 0:e.contains(v))^Number(null==e?void 0:e.contains(T)))return!0;return!1},[v,T]),N=(0,o.useMemo)(()=>({buttonId:a,panelId:i,close:()=>w({type:1})}),[a,i,w]),R=O(),I=null==R?void 0:R.registerPopover,L=(0,E.z)(()=>{var e;return null!=(e=null==R?void 0:R.isFocusWithinPopoverGroup())?e:(null==j?void 0:j.activeElement)&&((null==v?void 0:v.contains(j.activeElement))||(null==T?void 0:T.contains(j.activeElement)))});(0,o.useEffect)(()=>null==I?void 0:I(N),[I,N]),(0,y.O)(null==j?void 0:j.defaultView,"focus",e=>{var n,r,a,i;0===b&&(L()||!v||!T||null!=(r=null==(n=_.current)?void 0:n.contains)&&r.call(n,e.target)||null!=(i=null==(a=x.current)?void 0:a.contains)&&i.call(a,e.target)||w({type:1}))},!0),(0,g.O)([v,T],(e,n)=>{w({type:1}),(0,d.sP)(n,d.tJ.Loose)||(e.preventDefault(),null==v||v.focus())},0===b);let P=(0,E.z)(e=>{w({type:1});let n=e?e instanceof HTMLElement?e:"current"in e&&e.current instanceof HTMLElement?e.current:v:v;null==n||n.focus()}),D=(0,o.useMemo)(()=>({close:P,isPortalled:C}),[P,C]),z=(0,o.useMemo)(()=>({open:0===b,close:P}),[b,P]);return o.createElement(A.Provider,{value:f},o.createElement(S.Provider,{value:D},o.createElement(h.up,{value:(0,s.E)(b,{0:h.ZM.Open,1:h.ZM.Closed})},(0,l.sY)({ourProps:{ref:m},theirProps:e,slot:z,defaultTag:"div",name:"Popover"}))))}),L=(0,l.yV)(function(e,n){let[r,a]=j("Popover.Button"),{isPortalled:i}=C("Popover.Button"),h=(0,o.useRef)(null),g=`headlessui-focus-sentinel-${(0,c.M)()}`,b=O(),y=null==b?void 0:b.closeOthers,_=(0,o.useContext)(R),x=null!==_&&_===r.panelId,w=(0,u.T)(h,n,x?null:e=>a({type:2,button:e})),A=(0,u.T)(h,n),S=(0,k.i)(h),N=(0,E.z)(e=>{var n,i,o;if(x){if(1===r.popoverState)return;switch(e.key){case p.R.Space:case p.R.Enter:e.preventDefault(),null==(i=(n=e.target).click)||i.call(n),a({type:1}),null==(o=r.button)||o.focus()}}else switch(e.key){case p.R.Space:case p.R.Enter:e.preventDefault(),e.stopPropagation(),1===r.popoverState&&(null==y||y(r.buttonId)),a({type:0});break;case p.R.Escape:if(0!==r.popoverState)return null==y?void 0:y(r.buttonId);if(!h.current||(null==S?void 0:S.activeElement)&&!h.current.contains(S.activeElement))return;e.preventDefault(),e.stopPropagation(),a({type:1})}}),M=(0,E.z)(e=>{x||e.key===p.R.Space&&e.preventDefault()}),I=(0,E.z)(n=>{var i,o;(0,m.P)(n.currentTarget)||e.disabled||(x?(a({type:1}),null==(i=r.button)||i.focus()):(n.preventDefault(),n.stopPropagation(),1===r.popoverState&&(null==y||y(r.buttonId)),a({type:0}),null==(o=r.button)||o.focus()))}),L=(0,E.z)(e=>{e.preventDefault(),e.stopPropagation()}),P=0===r.popoverState,D=(0,o.useMemo)(()=>({open:P}),[P]),z=(0,f.f)(e,h),F=x?{ref:A,type:z,onKeyDown:N,onClick:I}:{ref:w,id:r.buttonId,type:z,"aria-expanded":e.disabled?void 0:0===r.popoverState,"aria-controls":r.panel?r.panelId:void 0,onKeyDown:N,onKeyUp:M,onClick:I,onMouseDown:L},B=(0,T.l)(),H=(0,E.z)(()=>{let e=r.panel;e&&(0,s.E)(B.current,{[T.N.Forwards]:()=>(0,d.jA)(e,d.TO.First),[T.N.Backwards]:()=>(0,d.jA)(e,d.TO.Last)})});return o.createElement(o.Fragment,null,(0,l.sY)({ourProps:F,theirProps:e,slot:D,defaultTag:"button",name:"Popover.Button"}),P&&!x&&i&&o.createElement(v._,{id:g,features:v.A.Focusable,as:"button",type:"button",onFocus:H}))}),P=l.AN.RenderStrategy|l.AN.Static,D=(0,l.yV)(function(e,n){let[{popoverState:r},a]=j("Popover.Overlay"),i=(0,u.T)(n),s=`headlessui-popover-overlay-${(0,c.M)()}`,p=(0,h.oJ)(),d=null!==p?p===h.ZM.Open:0===r,f=(0,E.z)(e=>{if((0,m.P)(e.currentTarget))return e.preventDefault();a({type:1})}),g=(0,o.useMemo)(()=>({open:0===r}),[r]);return(0,l.sY)({ourProps:{ref:i,id:s,"aria-hidden":!0,onClick:f},theirProps:e,slot:g,defaultTag:"div",features:P,visible:d,name:"Popover.Overlay"})}),z=l.AN.RenderStrategy|l.AN.Static,F=(0,l.yV)(function(e,n){let{focus:r=!1,...a}=e,[i,m]=j("Popover.Panel"),{close:f,isPortalled:g}=C("Popover.Panel"),b=`headlessui-focus-sentinel-before-${(0,c.M)()}`,y=`headlessui-focus-sentinel-after-${(0,c.M)()}`,_=(0,o.useRef)(null),x=(0,u.T)(_,n,e=>{m({type:4,panel:e})}),w=(0,k.i)(_),A=(0,h.oJ)(),S=null!==A?A===h.ZM.Open:0===i.popoverState,N=(0,E.z)(e=>{var n;if(e.key===p.R.Escape){if(0!==i.popoverState||!_.current||(null==w?void 0:w.activeElement)&&!_.current.contains(w.activeElement))return;e.preventDefault(),e.stopPropagation(),m({type:1}),null==(n=i.button)||n.focus()}});(0,o.useEffect)(()=>{var n;e.static||1===i.popoverState&&(null==(n=e.unmount)||n)&&m({type:4,panel:null})},[i.popoverState,e.unmount,e.static,m]),(0,o.useEffect)(()=>{if(!r||0!==i.popoverState||!_.current)return;let e=null==w?void 0:w.activeElement;_.current.contains(e)||(0,d.jA)(_.current,d.TO.First)},[r,_,i.popoverState]);let O=(0,o.useMemo)(()=>({open:0===i.popoverState,close:f}),[i,f]),M={ref:x,id:i.panelId,onKeyDown:N,onBlur:r&&0===i.popoverState?e=>{var n,r,a,o,s;let l=e.relatedTarget;!l||!_.current||null!=(n=_.current)&&n.contains(l)||(m({type:1}),((null==(a=null==(r=i.beforePanelSentinel.current)?void 0:r.contains)?void 0:a.call(r,l))||(null==(s=null==(o=i.afterPanelSentinel.current)?void 0:o.contains)?void 0:s.call(o,l)))&&l.focus({preventScroll:!0}))}:void 0,tabIndex:-1},I=(0,T.l)(),L=(0,E.z)(()=>{let e=_.current;e&&(0,s.E)(I.current,{[T.N.Forwards](){(0,d.jA)(e,d.TO.First)},[T.N.Backwards](){var e;null==(e=i.button)||e.focus({preventScroll:!0})}})}),P=(0,E.z)(()=>{let e=_.current;e&&(0,s.E)(I.current,{[T.N.Forwards](){var e,n,r;if(!i.button)return;let a=(0,d.GO)(),o=a.indexOf(i.button),s=a.slice(0,o+1),l=[...a.slice(o+1),...s];for(let u of l.slice())if((null==(n=null==(e=null==u?void 0:u.id)?void 0:e.startsWith)?void 0:n.call(e,"headlessui-focus-sentinel-"))||(null==(r=i.panel)?void 0:r.contains(u))){let c=l.indexOf(u);-1!==c&&l.splice(c,1)}(0,d.jA)(l,d.TO.First,!1)},[T.N.Backwards]:()=>(0,d.jA)(e,d.TO.Last)})});return o.createElement(R.Provider,{value:i.panelId},S&&g&&o.createElement(v._,{id:b,ref:i.beforePanelSentinel,features:v.A.Focusable,as:"button",type:"button",onFocus:L}),(0,l.sY)({ourProps:M,theirProps:a,slot:O,defaultTag:"div",features:z,visible:S,name:"Popover.Panel"}),S&&g&&o.createElement(v._,{id:y,ref:i.afterPanelSentinel,features:v.A.Focusable,as:"button",type:"button",onFocus:P}))}),B=Object.assign(I,{Button:L,Overlay:D,Panel:F,Group:(0,l.yV)(function(e,n){let r=(0,o.useRef)(null),a=(0,u.T)(r,n),[i,s]=(0,o.useState)([]),c=(0,E.z)(e=>{s(n=>{let r=n.indexOf(e);if(-1!==r){let a=n.slice();return a.splice(r,1),a}return n})}),p=(0,E.z)(e=>(s(n=>[...n,e]),()=>c(e))),m=(0,E.z)(()=>{var e;let n=(0,b.r)(r);if(!n)return!1;let a=n.activeElement;return!!(null!=(e=r.current)&&e.contains(a))||i.some(e=>{var r,i;return(null==(r=n.getElementById(e.buttonId))?void 0:r.contains(a))||(null==(i=n.getElementById(e.panelId))?void 0:i.contains(a))})}),d=(0,E.z)(e=>{for(let n of i)n.buttonId!==e&&n.close()}),h=(0,o.useMemo)(()=>({registerPopover:p,unregisterPopover:c,isFocusWithinPopoverGroup:m,closeOthers:d}),[p,c,m,d]),f=(0,o.useMemo)(()=>({}),[]);return o.createElement(N.Provider,{value:h},(0,l.sY)({ourProps:{ref:a},theirProps:e,slot:f,defaultTag:"div",name:"Popover.Group"}))})})},6004:function(e,n,r){"use strict";r.d(n,{r:function(){return E}});var a=r(70079),i=r(34741),o=r(19430),s=r(52076),l=r(46428),u=r(9335),c=r(84325),p=r(27721);let m=(0,a.createContext)(null),d=(0,i.yV)(function(e,n){let{passive:r=!1,...s}=e,l=function e(){let n=(0,a.useContext)(m);if(null===n){let r=Error("You used a